Merge branch 'master' into bug-4403-remove-polyfill
[maxima.git] / doc / info / trigtools.texi.m4
blobaf63d140d2ee74ee077976d9eb691e46a8dd7b88
1 @c -*- mode: texinfo -*-
3 @menu
4 * Introduction to trigtools::
5 * Functions and Variables for trigtools::
6 * References::
7 @end menu
9 @node Introduction to trigtools, Functions and Variables for trigtools, Package trigtools, Package trigtools
10 @center @titlefont{Trigtools Package}
11 @sp 2
12 @center @b{Aleksas Dormarkas}
13 @center @email{aleksasd873@@gmail.com}
14 @center @email{aleksas.domarkas@@mif.vu.lt}
15 @center December 1, 2013
17 @section Introduction to trigtools
18 We use open-source computer algebra system(CAS) maxima 5.31.2.
19 The trigtools package@footnote{This is a conversion by hand of the original ``trigtools-doc.pdf'' file in ``share/contrib/trigtools'', by Raymond Toy.  See the pdf for the definitive version.} contains commands that help you work with
20 trigonometric expessions. List of functions in trigtools package:
22 @itemize
23 @item @mref{c2sin}
24 @item @mref{c2cos}
25 @item @mref{c2trig}
26 @item @mref{c2hyp}
27 @item @mref{trigfactor}
28 @item @mref{trigsolve}
29 @item @mref{trigvalue}
30 @item @mref{trigeval}
31 @item @mref{atan_contract}
32 @end itemize
35 @node Functions and Variables for trigtools, References, Introduction to trigtools, Package trigtools
36 @section Functions and Variables for trigtools
38 @menu
39 * Convert to sin and cos::
40 * Convert to Trignometric Functions::
41 * Convert to Hyperbolic Functions::
42 * Factor Sums of sin and cos Functions::
43 * Solve Trignometric Equations::
44 * Evaluation of Trignometric Functions::
45 * Contract atan Functions::
46 @end menu
48 @node Convert to sin and cos, Convert to Trignometric Functions, Functions and Variables for trigtools, Functions and Variables for trigtools
49 @subsection Convert to sin and cos
51 @anchor{c2sin}
52 @deffn {Function} c2sin (@var{x})
53 @anchor{c2cos}
54 @deffnx {Function} c2cos (@var{x})
55 The function c2sin converts the expression 
56 m4_math(<<<a\cos x + b\sin x>>>, <<<@math{a*cos(x)+b*sin(x)}>>>) 
58 m4_mathdot(<<<r\sin(x+\phi)>>>, <<<@math{r*sin(x+phi)}>>>)
60 The function c2cos converts the expression 
61 m4_math(<<<a\cos x + b\sin x>>>, <<<@math{ a*cos(x)+b*sin(x)}>>>) 
63 m4_mathdot(<<<r\cos(x-\phi)>>>, <<<@math{r*cos(x-phi)}>>>)
65 Examples:
66 @example
67 (%i1) load("trigtools")$
68 (%i2) c2sin(3*sin(x)+4*cos(x));
69                                             4
70 (%o2)                        5 sin(x + atan(-))
71                                             3
72 (%i3) trigexpand(%),expand;
73 (%o3)                        3 sin(x) + 4 cos(x)
75 @group
76 (%i4) c2cos(3*sin(x)-4*cos(x));
77                                              3
78 (%o4)                       - 5 cos(x + atan(-))
79                                              4
80 @end group
81 @group
82 (%i5) trigexpand(%),expand;
83 (%o5)                        3 sin(x) - 4 cos(x)
84 @end group
85 @group
86 (%i6) c2sin(sin(x)+cos(x));
87                                             %pi
88 (%o6)                       sqrt(2) sin(x + ---)
89                                              4
90 @end group
91 (%i7) trigexpand(%),expand;
92 (%o7)                          sin(x) + cos(x)
93 (%i8) c2cos(sin(x)+cos(x));
94                                             %pi
95 (%o8)                       sqrt(2) cos(x - ---)
96                                              4
97 @group
98 (%i9) trigexpand(%),expand;
99 (%o9)                          sin(x) + cos(x)
100 @end group
101 @end example
103 Example. Solve trigonometric equation
105 @example
106 @group
107 (%i10) eq:3*sin(x)+4*cos(x)=2;
108 (%o10)                      3 sin(x) + 4 cos(x) = 2
109 @end group
111 (%i11) plot2d([3*sin(x)+4*cos(x),2],[x,-%pi,%pi]);
113 @center @image{figures/trigtools-1,5in,,plot1}
115 (%i12) eq1:c2sin(lhs(eq))=2;
116                                            4
117 (%o35)                      5 sin(x + atan(-)) = 2
118                                            3
119 (%i13) solvetrigwarn:false$
120 (%i14) solve(eq1)[1]$ x1:rhs(%);
121                                     2         4
122 (%o15)                         asin(-) - atan(-)
123                                     5         3
124 (%i16) float(%), numer;
125 (%o39)                       - 0.5157783719341241
126 (%i17) eq2:c2cos(lhs(eq))=2;
127                                            3
128 (%o17)                      5 cos(x - atan(-)) = 2
129 (%i18) solve(eq2,x)[1]$ x2:rhs(%);
130                                     3         2
131 (%o19)                         atan(-) + acos(-)
132                                     4         5
133 (%i20) float(%), numer;
134 (%o20)                         1.802780589520693
136 (%i21) sol:[x1,x2];
137                           2         4        3         2
138 (%o44)              [asin(-) - atan(-), atan(-) + acos(-)]
139                           5         3        4         5
140 @end example
142 Answ.: 
143 m4_mathcomma(<<<x = x_1 + 2\pi k>>>,<<<x = x1 + 2*%pi*k>>>)
144 m4_mathcomma(<<<x_1 = \sin^{-1}{2\over 5} - \tan^{-1}{4\over
145 3}>>>, <<<x1 = asin(2/5)-atan(4/3)>>>)
147 m4_mathcomma(<<<x_1 = \tan^{-1}{3\over 4} + \cos^{-1}{2\over 5}>>>,
148 <<<x1 = atan(3/4)+acos(2/5)>>>)
149 for @math{k} any integer.
151 @end deffn
153 @node Convert to Trignometric Functions, Convert to Hyperbolic Functions, Convert to sin and cos, Functions and Variables for trigtools
154 @subsection Convert to Trignometric Functions
156 @anchor{c2trig}
157 @deffn {Function} c2trig (@var{x})
158 The function c2trig (convert to trigonometric) reduce expression with hyperbolic functions
159 sinh, cosh, tanh, coth to trigonometric expression with sin, cos, tan, cot.
161 Examples:
163 @enumerate
165 @item @w{ }
166 @example
167 (%i1) load(trigtools)$
168 (%i2) sinh(x)=c2trig(sinh(x));
169 cosh(x)=c2trig(cosh(x));
170 tanh(x)=c2trig(tanh(x));
171 coth(x)=c2trig(coth(x));
172 (%o2)                     sinh(x) = - %i sin(%i x)
173 (%o3)                        cosh(x) = cos(%i x)
174 (%o4)                     tanh(x) = - %i tan(%i x)
175 (%o5)                      coth(x) = %i cot(%i x)
176 @end example
178 @item see @url{http://www.math.utexas.edu/pipermail/maxima/2013/034585.html}
179 @example
180 (%i6) cos(p+q*%i);
181 (%o6)                           cos(%i q + p)
182 (%i7) trigexpand(%);
183 (%o7)                cos(p) cosh(q) - %i sin(p) sinh(q)
184 (%i8) c2trig(%);
185 (%o8)                           cos(%i q + p)
186 @end example
188 @item @w{ }
189 @example
190 (%i9) sin(a+b*%i);
191 (%o9)                           sin(%i b + a)
192 (%i10) trigexpand(%);
193 (%o10)                %i cos(a) sinh(b) + sin(a) cosh(b)
194 (%i11) c2trig(%);
195 (%o11)                           sin(%i b + a)
196 @end example
198 @item @w{ }
199 @example
200 (%i12) cos(a*%i+b*%i);
201 (%o12)                         cos(%i b + %i a)
202 (%i13) trigexpand(%);
203 (%o13)                 sinh(a) sinh(b) + cosh(a) cosh(b)
204 (%i14) c2trig(%);
205 (%o14)                         cos(%i b + %i a)
206 @end example
208 @item @w{ }
209 @example
210 (%i15) tan(a+%i*b);
211 (%o15)                           tan(%i b + a)
212 @group
213 (%i16) trigexpand(%);
214                               %i tanh(b) + tan(a)
215 (%o16)                       ---------------------
216                              1 - %i tan(a) tanh(b)
217 @end group
218 @group
219 (%i17) c2trig(%);
220 (%o217)                           tan(%i b + a)
221 @end group
222 @end example
224 @item @w{ }
226 @example
227 (%i18) cot(x+%i*y);
228 (%o18)                           cot(%i y + x)
229 (%i19) trigexpand(%);
230                            (- %i cot(x) coth(y)) - 1
231 (%o19)                     -------------------------
232                               cot(x) - %i coth(y)
233 (%i20) c2trig(%);
234 (%o20)                           cot(%i y + x)
235 @end example
236 @end enumerate
238 @end deffn
240 @node Convert to Hyperbolic Functions, Factor Sums of sin and cos Functions, Convert to Trignometric Functions, Functions and Variables for trigtools
241 @subsection Convert to Hyperbolic Functions
243 @anchor{c2hyp}
244 @deffn {Function} c2hyp (@var{x})
245 The function c2hyp (convert to hyperbolic) convert expression with exp function
246 to expression with hyperbolic functions sinh, cosh.
248 Examples:
250 @example
251 (%i6) c2hyp(exp(x));
252 (%o6)                         sinh(x) + cosh(x)
253 (%i7) c2hyp(exp(x)+exp(x^2)+1);
254                        2          2
255 (%o7)            sinh(x ) + cosh(x ) + sinh(x) + cosh(x) + 1
256 (%i8) c2hyp(exp(x)/(2*exp(y)-3*exp(z)));
257                               sinh(x) + cosh(x)
258 (%o8)           ---------------------------------------------
259                 2 (sinh(y) + cosh(y)) - 3 (sinh(z) + cosh(z))
260 @end example
262 @end deffn
264 @node Factor Sums of sin and cos Functions, Solve Trignometric Equations, Convert to Hyperbolic Functions, Functions and Variables for trigtools
265 @subsection Factor Sums of sin and cos Functions
267 @anchor{trigfactor}
268 @deffn {Function} trigfactor (@var{x})
269 The function trigfactor factors expresions of
270 form 
271 m4_mathdot(<<<\pm \sin x \pm \cos y>>>, <<<+-sin(x)+-cos(y)>>>)
273 Examples:
275 @enumerate
276 @item @w{ }
277 @example
278 (%i2) trigfactor(sin(x)+cos(x));
279                                             %pi
280 (%o2)                       sqrt(2) cos(x - ---)
281                                              4
282 (%i3) trigrat(%);
283 (%o3)                          sin(x) + cos(x)
284 @end example
286 @item @w{ }
287 @example
288 @group
289 (%i4) trigfactor(sin(x)+cos(y));
290                            y   x   %pi      y   x   %pi
291 (%o4)                2 cos(- - - + ---) cos(- + - - ---)
292                            2   2    4       2   2    4
293 @end group
294 @group
295 (%i5) trigrat(%);
296 (%o5)                          cos(y) + sin(x)
297 @end group
298 @end example
300 @item @w{ }
301 @example
302 (%i6) trigfactor(sin(x)-cos(3*y));
303                          3 y   x   %pi      3 y   x   %pi
304 (%o6)              2 sin(--- - - + ---) sin(--- + - - ---)
305                           2    2    4        2    2    4
306 (%i7) trigrat(%);
307 (%o7)                         sin(x) - cos(3 y)
308 @end example
310 @item @w{ }
311 @example
312 (%i8) trigfactor(-sin(5*x)-cos(3*y));
313                         3 y   5 x   %pi      3 y   5 x   %pi
314 (%o8)           - 2 cos(--- - --- + ---) cos(--- + --- - ---)
315                          2     2     4        2     2     4
316 (%i9) trigrat(%);
317 (%o9)                      (- cos(3 y)) - sin(5 x)
318 @end example
320 @item @w{ }
321 @example 
322 @group
323 (%i10) sin(alpha)+sin(beta)=trigfactor(sin(alpha)+sin(beta));
324                                        beta   alpha      beta   alpha
325 (%o10)  sin(beta) + sin(alpha) = 2 cos(---- - -----) sin(---- + -----)
326                                         2       2         2       2
327 @end group
328 (%i11) trigrat(%);
329 (%o78)          sin(beta) + sin(alpha) = sin(beta) + sin(alpha)
330 @end example
332 @item @w{ }
333 @example
334 (%i12) sin(alpha)-sin(beta)=trigfactor(sin(alpha)-sin(beta));
335                                         beta   alpha      beta   alpha
336 (%o12) sin(alpha) - sin(beta) = - 2 sin(---- - -----) cos(---- + -----)
337                                          2       2         2       2
338 @end example
340 @item @w{ }
341 @example
342 (%i13) cos(alpha)+cos(beta)=trigfactor(cos(alpha)+cos(beta));
343                                        beta   alpha      beta   alpha
344 (%o80)  cos(beta) + cos(alpha) = 2 cos(---- - -----) cos(---- + -----)
345                                         2       2         2       2
346 @end example
348 @item @w{ }
349 @example
350 @group
351 (%i14) cos(alpha)-cos(beta)=trigfactor(cos(alpha)-cos(beta));
352                                        beta   alpha      beta   alpha
353 (%o14)  cos(alpha) - cos(beta) = 2 sin(---- - -----) sin(---- + -----)
354                                         2       2         2       2
355 @end group
356 @end example
358 @item @w{ }
359 @example
360 (%i15) trigfactor(3*sin(x)+7*cos(x));
361 (%o15)                        3 sin(x) + 7 cos(x)
362 @group
363 (%i16) c2sin(%);
364                                                  7
365 (%o16)                     sqrt(58) sin(x + atan(-))
366                                                  3
367 @end group
368 @group
369 (%i17) trigexpand(%),expand;
370 (%o17)                        3 sin(x) + 7 cos(x)
371 @end group
372 @end example
375 @example
376 (%i18) trigfactor(sin(2*x));
377 (%o18)                             sin(2 x)
378 (%i19) trigexpand(%);
379 (%o19)                          2 cos(x) sin(x)
380 @end example
381 @end enumerate
383 @end deffn
385 @node Solve Trignometric Equations, Evaluation of Trignometric Functions, Factor Sums of sin and cos Functions, Functions and Variables for trigtools
386 @subsection Solve Trignometric Equations
388 @anchor{trigsolve}
389 @deffn {Function} trigsolve (@var{x})
390 The function trigsolve find solutions of trigonometric equation from
391 interval 
392 m4_mathdot(<<<[a,b)>>>, <<<[a, b)>>>)
394 Examples:
395 @enumerate
396 @item @w{ }
397 @example
398 (%i38) eq:eq:3*sin(x)+4*cos(x)=2;
399 (%o38)                      3 sin(x) + 4 cos(x) = 2
401 (%i39) plot2d([3*sin(x)+4*cos(x),2],[x,-%pi,%pi]);
403 @center @image{figures/trigtools-2,5in,,plot2}
405 (%o39)
406 (%i40) sol:trigsolve(eq,-%pi,%pi);
407                   2 sqrt(21)   12              2 sqrt(21)   12
408 (%o40)      @{atan(---------- - --), %pi - atan(---------- + --)@}
409                       5        5                   5        5
410 (%i41) float(%), numer;
411 (%o41)            @{- 0.5157783719341241, 1.802780589520693@}
412 @end example
414 Answ. : 
415 m4_math(<<<x = \tan^{-1}\left({2\sqrt{21}\over 5} - {12\over
416 5}\right) + 2\pi k>>>, <<<x = atan((2*sqrt(21))/5-12/5)+2*%pi*k>>>)
418 m4_mathcomma(<<<x = \pi - \tan^{-1}\left({2\sqrt{21}\over 5} +
419 {12\over 5}\right) + 2\pi k>>>,
420 <<<x=%pi-atan((2*sqrt(21))/5+12/5)+2*%pi*k>>>) 
421 @math{k} -- any integer.
423 @item @w{ }
424 @example
425 (%i6) eq:cos(3*x)-sin(x)=sqrt(3)*(cos(x)-sin(3*x));
426 (%o6)         cos(3 x) - sin(x) = sqrt(3) (cos(x) - sin(3 x))
427 (%i7) plot2d([lhs(eq)-rhs(eq)], [x,0,2*%pi])$
429 @center @image{figures/trigtools-3,5in,,plot3}
431 @end example
433 We have 6 solutions from [0, 2*pi].
434 @example
435 (%i8) plot2d([lhs(eq)-rhs(eq)], [x,0.2,0.5]);
437 @center @image{figures/trigtools-4,5in,,plot4}
439 (%i9) plot2d([lhs(eq)-rhs(eq)], [x,3.3,3.6]);
441 @center @image{figures/trigtools-5,5in,,plot4}
443 (%i10) trigfactor(lhs(eq))=map(trigfactor,rhs(eq));
444                    %pi            %pi                      %pi            %pi
445 (%o15) - 2 sin(x + ---) sin(2 x - ---) = 2 sqrt(3) sin(x - ---) sin(2 x - ---)
446                     4              4                        4              4
447 (%i11) factor(lhs(%)-rhs(%));
448                  4 x + %pi                4 x - %pi       8 x - %pi
449 (%o11)  - 2 (sin(---------) + sqrt(3) sin(---------)) sin(---------)
450                      4                        4               4
451 @end example
453 Equation is equivalent to
454 @example
455 @group
456 (%i12) L:factor(rhs(%)-lhs(%));
457                 4 x + %pi                4 x - %pi       8 x - %pi
458 (%o12)   2 (sin(---------) + sqrt(3) sin(---------)) sin(---------)
459                     4                        4               4
460 @end group
461 @group
462 (%i13) eq1:part(L,2)=0;
463                      4 x + %pi                4 x - %pi
464 (%o13)           sin(---------) + sqrt(3) sin(---------) = 0
465                          4                        4
466 @end group
467 @group
468 (%i14) eq2:part(L,3)=0;
469                                  8 x - %pi
470 (%o14)                       sin(---------) = 0
471                                      4
472 @end group
473 (%i15) S1:trigsolve(eq1,0,2*%pi);
474                                  %pi  13 %pi
475 (%o15)                         @{---, ------@}
476                                  12     12
477 (%i16) S2:trigsolve(eq2,0,2*%pi);
478                            %pi  5 %pi  9 %pi  13 %pi
479 (%o16)                   @{---, -----, -----, ------@}
480                             8     8      8      8
481 (%i17) S:listify(union(S1,S2));
482                    %pi  %pi  5 %pi  13 %pi  9 %pi  13 %pi
483 (%o17)            [---, ---, -----, ------, -----, ------]
484                    12    8     8      12      8      8
485 (%i18) float(%), numer;
486 (%o18) [0.2617993877991494, 0.3926990816987241, 1.963495408493621, 
487                       3.403392041388942, 3.534291735288517, 5.105088062083414]
488 @end example
490 Answer: 
491 m4_mathcomma(<<<x = a + 2\pi k>>>, <<<x = a+2*%pi*k>>>)
492 where @math{a} any from @math{S}, @math{k} any integer.
494 @item @w{ }
495 @example
496 (%i19) eq:8*cos(x)*cos(4*x)*cos(5*x)-1=0;
497 (%o19)               8 cos(x) cos(4 x) cos(5 x) - 1 = 0
499 (%i20) trigrat(%);
500 (%o20)          2 cos(10 x) + 2 cos(8 x) + 2 cos(2 x) + 1 = 0
501 @end example
503 Left side is periodic with period 
504 m4_mathdot(<<<T=\pi>>>, <<<T=%pi>>>)
506 We have 10 solutions from [0, pi].
507 @example
508 (%i21) plot2d([lhs(eq),rhs(eq)],[x,0,%pi]);
510 @center @image{figures/trigtools-6,5in,,plot6}
512 (%i22) x4:find_root(eq, x, 1.3, 1.32);
513 (%o22)                        1.308996938995747
514 (%i23) x5:find_root(eq, x, 1.32, 1.35);
515 (%o23)                        1.346396851538483
516 (%i24) plot2d([lhs(eq),0], [x,1.3,1.35], [gnuplot_preamble, "set grid;"]);
518 @center @image{figures/trigtools-7,5in,,plot7}
520 @end example
522 Equation we multiply by 
523 m4_mathpunc(:, <<<2\sin x\cos 2x>>>, <<<2*sin(x)*cos(2*x)>>>)
526 @example
527 (%i25) eq*2*sin(x)*cos(2*x);
528 (%o25)     2 sin(x) cos(2 x) (8 cos(x) cos(4 x) cos(5 x) - 1) = 0
529 (%i26) eq1:trigreduce(%),expand;
530 (%o26)                     sin(13 x) + sin(x) = 0
531 @group
532 (%i27) trigfactor(lhs(eq1))=0;
533 (%o27)                     2 cos(6 x) sin(7 x) = 0
534 @end group
535 @group
536 (%i28) S1:trigsolve(cos(6*x),0,%pi);
537                     %pi  %pi  5 %pi  7 %pi  3 %pi  11 %pi
538 (%o28)             @{---, ---, -----, -----, -----, ------@}
539                     12    4    12     12      4      12
540 @end group
541 @group
542 (%i29) S2:trigsolve(sin(7*x),0,%pi);
543                      %pi  2 %pi  3 %pi  4 %pi  5 %pi  6 %pi
544 (%o29)           @{0, ---, -----, -----, -----, -----, -----@}
545                       7     7      7      7      7      7
546 @end group
547 @end example
549 We remove solutions of 
550 m4_math(<<<\sin x = 0>>>, <<<sin(x)=0>>>) 
552 m4_mathdot(<<<\cos 2x = 0>>>, <<<cos(2*x) = 0>>>)
554 @example
555 (%i30) S3:trigsolve(sin(x),0,%pi);
556 (%o30)                               @{0@}
557 (%i31) S4:trigsolve(cos(2*x),0,%pi);
558                                  %pi  3 %pi
559 (%o31)                          @{---, -----@}
560                                   4     4
561 @end example
563 We find 10 solutions from 
564 m4_mathpunc(:,<<<[0, \pi]>>>,<<<[0, %pi]>>>)
566 @example
567 @group
568 (%i32) union(S1,S2)$ setdifference(%,S3)$ setdifference(%,S4);
569          %pi  %pi  2 %pi  5 %pi  3 %pi  4 %pi  7 %pi  5 %pi  6 %pi  11 %pi
570 (%o34) @{---, ---, -----, -----, -----, -----, -----, -----, -----, ------@}
571          12    7     7     12      7      7     12      7      7      12
572 @end group
573 @group
574 (%i35) S:listify(%);
575         %pi  %pi  2 %pi  5 %pi  3 %pi  4 %pi  7 %pi  5 %pi  6 %pi  11 %pi
576 (%o35) [---, ---, -----, -----, -----, -----, -----, -----, -----, ------]
577         12    7     7     12      7      7     12      7      7      12
578 @end group
579 (%i36) length(S);
580 (%o36)                               10
581 (%i37) float(S), numer;
582 (%o37) [0.2617993877991494, 0.4487989505128276, 0.8975979010256552, 
583 1.308996938995747, 1.346396851538483, 1.79519580205131, 1.832595714594046, 
584 2.243994752564138, 2.692793703076966, 2.879793265790644]
585 @end example
586 Answer: 
587 m4_mathcomma(<<<x = a + 2\pi k>>>, <<<x = a+2*%pi*k>>>)
588 where @math{a} any from @math{S}, @math{k} any integer.
590 @end enumerate
591 @end deffn
593 @node Evaluation of Trignometric Functions, Contract atan Functions, Solve Trignometric Equations, Functions and Variables for trigtools
594 @subsection Evaluation of Trignometric Functions
596 @anchor{trigvalue}
597 @deffn {Function} trigvalue (@var{x})
598 The function trigvalue compute values of 
599 m4_mathcomma(<<<\sin
600 {m\pi\over n}>>>, <<<sin(m*%pi/n)>>>)
601 m4_mathcomma(<<<\cos
602 {m\pi\over n}>>>, <<<cos(m*%pi/n)>>>)
603 m4_mathcomma(<<<\tan
604 {m\pi\over n}>>>, <<<tan(m*%pi/n)>>>)
605 and 
606 m4_math(<<<\cot
607 {m\pi\over n}>>>, <<<cot(m*%pi/n)>>>) 
608 in radicals.
609 @end deffn
611 @anchor{trigeval}
612 @deffn {Function} trigeval (@var{x})
613 The function trigeval compute values of expressions with 
614 m4_mathcomma(<<<\sin
615 {m\pi\over n}>>>, <<<sin(m*%pi/n)>>>)
616 m4_mathcomma(<<<\cos
617 {m\pi\over n}>>>, <<<cos(m*%pi/n)>>>)
618 m4_mathcomma(<<<\tan
619 {m\pi\over n}>>>, <<<tan(m*%pi/n)>>>) 
620 and 
621 m4_math(<<<\cot
622 {m\pi\over n}>>>, <<<cot(m*%pi/n)>>>) 
623 in radicals.
624 @end deffn
626 Examples:
627 @enumerate
628 @item Values of trignometric functions
629 @example
630 (%i1) load(trigtools)$
631 @group
632 (%i2) trigvalue(sin(%pi/10));
633                                   sqrt(5) - 1
634 (%o2)                             -----------
635                                        4
636 @end group
637 @group
638 (%i3) trigvalue(cos(%pi/10));
639                                sqrt(sqrt(5) + 5)
640 (%o3)                          -----------------
641                                       3/2
642                                      2
643 @end group
644 @group
645 (%i4) trigvalue(tan(%pi/10));
646                               sqrt(5 - 2 sqrt(5))
647 (%o4)                         -------------------
648                                     sqrt(5)
649 @end group
650 (%i5) float(%), numer;
651 (%o5)                         0.3249196962329063
652 (%i6) float(tan(%pi/10)), numer;
653 (%o6)                         0.3249196962329063
654 (%i7) trigvalue(cot(%pi/10));
655 (%o7)                         sqrt(2 sqrt(5) + 5)
656 (%i8) float(%), numer;
657 (%o8)                          3.077683537175254
658 (%i9) float(cot(%pi/10)), numer;
659 (%o9)                          3.077683537175254
660 (%i10) trigvalue(sin(%pi/32));
661                      sqrt(2 - sqrt(sqrt(sqrt(2) + 2) + 2))
662 (%o10)               -------------------------------------
663                                        2
664 (%i11) trigvalue(cos(%pi/32));
665                      sqrt(sqrt(sqrt(sqrt(2) + 2) + 2) + 2)
666 (%o11)               -------------------------------------
667                                        2
668 (%i12) trigvalue(cos(%pi/256));
669        sqrt(sqrt(sqrt(sqrt(sqrt(sqrt(sqrt(2) + 2) + 2) + 2) + 2) + 2) + 2)
670 (%o12) -------------------------------------------------------------------
671                                         2
672 (%i13) trigvalue(cos(%pi/60));
673         sqrt(sqrt(sqrt(2) sqrt(3) sqrt(sqrt(5) + 5) + sqrt(5) + 7) + 4)
674 (%o13)  ---------------------------------------------------------------
675                                       3/2
676                                      2
677 @group
678 (%i14) trigvalue(sin(%pi/60));
679         sqrt(4 - sqrt(sqrt(2) sqrt(3) sqrt(sqrt(5) + 5) + sqrt(5) + 7))
680 (%o14)  ---------------------------------------------------------------
681                                       3/2
682                                      2
683 @end group
684 @group
685 (%i15) trigvalue(sin(%pi/18));
686                                        %pi
687 (%o15)                             sin(---)
688                                        18
689 @end group
690 @group
691 (%i16) trigvalue(sin(%pi/20));
692                       sqrt(4 - sqrt(2) sqrt(sqrt(5) + 5))
693 (%o16)                -----------------------------------
694                                       3/2
695                                      2
696 @end group
697 @end example
699 @item ode example
700 @example
701 (%i17) load(odes)$
702 @group
703 (%i18) eq:'diff(y,x,5)+2*y=0;
704                                   5
705                                  d y
706 (%o18)                           --- + 2 y = 0
707                                    5
708                                  dx
709 @end group
710 (%i19) odeL(eq,y,x);
711 @group
712                    1/5     4 %pi
713                 - 2    cos(-----) x
714                              5           1/5     4 %pi
715 (%o19) y = C5 %e                    sin(2    sin(-----) x)
716                                                    5
717            1/5     4 %pi
718         - 2    cos(-----) x
719                      5           1/5     4 %pi
720  + C4 %e                    cos(2    sin(-----) x)
721                                            5
722            1/5     2 %pi
723         - 2    cos(-----) x
724                      5           1/5     2 %pi
725  + C3 %e                    sin(2    sin(-----) x)
726                                            5
727            1/5     2 %pi
728         - 2    cos(-----) x                                  1/5
729                      5           1/5     2 %pi            - 2    x
730  + C2 %e                    cos(2    sin(-----) x) + C1 %e
731                                            5
732 @end group
733 @group
734 (%i20) sol:trigeval(%);
735                   (sqrt(5) - 1) x
736                 - ---------------
737                         9/5
738                        2              sqrt(sqrt(5) + 5) x
739 (%o20) y = C3 %e                  sin(-------------------)
740                                              13/10
741                                             2
742           (sqrt(5) - 1) x
743         - ---------------
744                 9/5
745                2              sqrt(sqrt(5) + 5) x
746  + C2 %e                  cos(-------------------)
747                                      13/10
748                                     2
749         (sqrt(5) + 1) x
750         ---------------
751               9/5
752              2              sqrt(5 - sqrt(5)) x
753  + C5 %e                sin(-------------------)
754                                    13/10
755                                   2
756         (sqrt(5) + 1) x
757         ---------------
758               9/5                                          1/5
759              2              sqrt(5 - sqrt(5)) x         - 2    x
760  + C4 %e                cos(-------------------) + C1 %e
761                                    13/10
762                                   2
763 @end group
764 (%i21) subst(sol,eq)$
765 (%i22) ev(%, nouns)$
766 (%i23) radcan(%);
767 (%o23)                               0 = 0
768 @end example
770 @item n-th root of complex number
772 Example. Find the 4-th roots of %i
773 @example
774 (%i24) solve(x^4=%i,x);
775                  1/8                1/8             1/8              1/8
776 (%o24) [x = (- 1)    %i, x = - (- 1)   , x = - (- 1)    %i, x = (- 1)   ]
777 @group
778 (%i25) rectform(%);
779                    %pi        %pi                 %pi         %pi
780 (%o25) [x = %i cos(---) - sin(---), x = (- %i sin(---)) - cos(---), 
781                     8          8                   8           8
782                                 %pi           %pi              %pi        %pi
783                         x = sin(---) - %i cos(---), x = %i sin(---) + cos(---)]
784                                  8             8                8          8
785 @end group
786 @group
787 (%i26) trigeval(%);
788             sqrt(sqrt(2) + 2) %i   sqrt(2 - sqrt(2))
789 (%o26) [x = -------------------- - -----------------, 
790                      2                     2
791        sqrt(2 - sqrt(2)) %i    sqrt(sqrt(2) + 2)
792 x = (- --------------------) - -----------------, 
793                 2                      2
794     sqrt(2 - sqrt(2))   sqrt(sqrt(2) + 2) %i
795 x = ----------------- - --------------------, 
796             2                    2
797     sqrt(2 - sqrt(2)) %i   sqrt(sqrt(2) + 2)
798 x = -------------------- + -----------------]
799              2                     2
800 @end group
801 @end example
802 @end enumerate
804 @node Contract atan Functions,  , Evaluation of Trignometric Functions, Functions and Variables for trigtools
805 @subsection Contract atan Functions
807 @anchor{atan_contract}
808 @deffn {Function} atan_contract (@var{r})
809 The function atan_contract(r) contracts atan functions. We
810 assume: 
811 m4_mathdot(<<<|r| < {\pi\over 2}>>>, <<<abs(r)<%pi/2>>>)
813 Examples:
814 @example
815 (%i1) load(trigtools)$
816 @end example
818 @enumerate
819 @item @w{ }
820 @example
821 (%i2) atan_contract(atan(x)+atan(y));
822 (%o2)                          atan(y) + atan(x)
823 (%i3) assume(abs(atan(x)+atan(y))<%pi/2)$
824 (%i4) atan(x)+atan(y)=atan_contract(atan(x)+atan(y));
825                                                  y + x
826 (%o4)                  atan(y) + atan(x) = atan(-------)
827                                                 1 - x y
828 @end example
830 @item @w{ }
831 @example
832 (%i5) atan(1/3)+atan(1/5)+atan(1/7)+atan(1/8)$ %=atan_contract(%);
833                        1         1         1         1    %pi
834 (%o6)             atan(-) + atan(-) + atan(-) + atan(-) = ---
835                        3         5         7         8     4
836 @end example
838 @item Machin's formulae
839 @example
840 (%i7) 4*atan(1/5)-atan(1/239)=atan_contract(4*atan(1/5)-atan(1/239));
841                                  1          1     %pi
842 (%o7)                     4 atan(-) - atan(---) = ---
843                                  5         239     4
844 @end example
846 @item see @url{http://en.wikipedia.org/wiki/Machin-like_formula}
847 @example
848 (%i8) 12*atan(1/49)+32*atan(1/57)-5*atan(1/239)+12*atan(1/110443)$
849 %=atan_contract(%);
850                 1             1             1               1       %pi
851 (%o9)   12 atan(--) + 32 atan(--) - 5 atan(---) + 12 atan(------) = ---
852                 49            57           239            110443     4
853 @end example
854 @end enumerate
856 @end deffn
858 @node References,  , Functions and Variables for trigtools, Package trigtools
859 @section References
861 @enumerate
862 @item @url{http://maxima.sourceforge.net}
863 @end enumerate