[ < ] | [ > ] |  | [ << ] | [ Up ] | [ >> ] |  |  |  |  | [Top] | [Contents] | [Index] | [ ? ]

# 15. Trigonometric

[ < ] | [ > ] |  | [ << ] | [ Up ] | [ >> ] |  |  |  |  | [Top] | [Contents] | [Index] | [ ? ]

## 15.1 Introduction to Trigonometric

Maxima has many trigonometric functions defined. Not all trigonometric identities are programmed, but it is possible for the user to add many of them using the pattern matching capabilities of the system. The trigonometric functions defined in Maxima are: `acos`, `acosh`, `acot`, `acoth`, `acsc`, `acsch`, `asec`, `asech`, `asin`, `asinh`, `atan`, `atanh`, `cos`, `cosh`, `cot`, `coth`, `csc`, `csch`, `sec`, `sech`, `sin`, `sinh`, `tan`, and `tanh`. There are a number of commands especially for handling trigonometric functions, see `trigexpand`, `trigreduce`, and the switch `trigsign`. Two share packages extend the simplification rules built into Maxima, `ntrig` and `atrig1`. Do `describe(command)` for details.

Categories: Trigonometric functions

[ < ] | [ > ] |  | [ << ] | [ Up ] | [ >> ] |  |  |  |  | [Top] | [Contents] | [Index] | [ ? ]

## 15.2 Functions and Variables for Trigonometric

Option variable: %piargs

  Default value: `true`

  When `%piargs` is `true`, trigonometric functions are simplified to algebraic constants when the argument is an integer multiple of %pi, %pi/2, %pi/3, %pi/4, or %pi/6.

  Maxima knows some identities which can be applied when %pi, etc., are multiplied by an integer variable (that is, a symbol declared to be integer).

  Examples:

      (%i1) %piargs : false;
      (%o1)                         false
      (%i2) [sin (%pi), sin (%pi/2), sin (%pi/3)];
                                      %pi       %pi
      (%o2)            [sin(%pi), sin(---), sin(---)]
                                       2         3
      (%i3) [sin (%pi/4), sin (%pi/5), sin (%pi/6)];
                            %pi       %pi       %pi
      (%o3)            [sin(---), sin(---), sin(---)]
                             4         5         6
      (%i4) %piargs : true;
      (%o4)                         true
      (%i5) [sin (%pi), sin (%pi/2), sin (%pi/3)];
                                      sqrt(3)
      (%o5)                    [0, 1, -------]
                                         2
      (%i6) [sin (%pi/4), sin (%pi/5), sin (%pi/6)];
                               1         %pi   1
      (%o6)                [-------, sin(---), -]
                            sqrt(2)       5    2
      (%i7) [cos (%pi/3), cos (10*%pi/3), tan (10*%pi/3), cos (sqrt(2)*%pi/3)];
                      1    1               sqrt(2) %pi
      (%o7)          [-, - -, sqrt(3), cos(-----------)]
                      2    2                    3

  Some identities are applied when %pi and %pi/2 are multiplied by an integer variable.

      (%i1) declare (n, integer, m, even);
      (%o1)                         done
      (%i2) [sin (%pi * n), cos (%pi * m), sin (%pi/2 * m), cos (%pi/2 * m)];
                                            m/2
      (%o2)                  [0, 1, 0, (- 1)   ]

  Categories: Trigonometric functions · Simplification flags and variables

Option variable: %iargs

  Default value: `true`

  When `%iargs` is `true`, trigonometric functions are simplified to hyperbolic functions when the argument is apparently a multiple of the imaginary unit %i.

  Even when the argument is demonstrably real, the simplification is applied; Maxima considers only whether the argument is a literal multiple of %i.

  Examples:

      (%i1) %iargs : false;
      (%o1)                         false
      (%i2) [sin (%i * x), cos (%i * x), tan (%i * x)];
      (%o2)           [sin(%i x), cos(%i x), tan(%i x)]
      (%i3) %iargs : true;
      (%o3)                         true
      (%i4) [sin (%i * x), cos (%i * x), tan (%i * x)];
      (%o4)           [%i sinh(x), cosh(x), %i tanh(x)]

  Even when the argument is demonstrably real, the simplification is applied.

      (%i1) declare (x, imaginary);
      (%o1)                         done
      (%i2) [featurep (x, imaginary), featurep (x, real)];
      (%o2)                     [true, false]
      (%i3) sin (%i * x);
      (%o3)                      %i sinh(x)

  Categories: Trigonometric functions · Hyperbolic functions · Simplification flags and variables

Function: acos (x)

  - Arc Cosine.

  Categories: Trigonometric functions

Function: acosh (x)

  - Hyperbolic Arc Cosine.

  Categories: Hyperbolic functions

Function: acot (x)

  - Arc Cotangent.

  Categories: Trigonometric functions

Function: acoth (x)

  - Hyperbolic Arc Cotangent.

  Categories: Hyperbolic functions

Function: acsc (x)

  - Arc Cosecant.

  Categories: Trigonometric functions

Function: acsch (x)

  - Hyperbolic Arc Cosecant.

  Categories: Hyperbolic functions

Function: asec (x)

  - Arc Secant.

  Categories: Trigonometric functions

Function: asech (x)

  - Hyperbolic Arc Secant.

  Categories: Hyperbolic functions

Function: asin (x)

  - Arc Sine.

  Categories: Trigonometric functions

Function: asinh (x)

  - Hyperbolic Arc Sine.

  Categories: Hyperbolic functions

Function: atan (x)

  - Arc Tangent.

  Categories: Trigonometric functions

Function: atan2 (y, x)

  - yields the value of `atan(y/x)` in the interval `-%pi` to `%pi`.

  Categories: Trigonometric functions

Function: atanh (x)

  - Hyperbolic Arc Tangent.

  Categories: Hyperbolic functions

Package: atrig1

  The `atrig1` package contains several additional simplification rules for inverse trigonometric functions. Together with rules already known to Maxima, the following angles are fully implemented: `0`, `%pi/6`, `%pi/4`, `%pi/3`, and `%pi/2`. Corresponding angles in the other three quadrants are also available. Do `load(atrig1);` to use them.

  Categories: Trigonometric functions · Package atrig1

Function: cos (x)

  - Cosine.

  Categories: Trigonometric functions

Function: cosh (x)

  - Hyperbolic Cosine.

  Categories: Hyperbolic functions

Function: cot (x)

  - Cotangent.

  Categories: Trigonometric functions

Function: coth (x)

  - Hyperbolic Cotangent.

  Categories: Hyperbolic functions

Function: csc (x)

  - Cosecant.

  Categories: Trigonometric functions

Function: csch (x)

  - Hyperbolic Cosecant.

  Categories: Hyperbolic functions

Option variable: halfangles

  Default value: `false`

  When `halfangles` is `true`, trigonometric functions of arguments `expr/2` are simplified to functions of expr.

  Examples:

      (%i1) halfangles : false;
      (%o1)                         false
      (%i2) sin (x / 2);
                                       x
      (%o2)                        sin(-)
                                       2
      (%i3) halfangles : true;
      (%o3)                         true
      (%i4) sin (x / 2);
                              sqrt(1 - cos(x))
      (%o4)                   ----------------
                                  sqrt(2)

  Categories: Trigonometric functions · Simplification flags and variables

Package: ntrig

  The `ntrig` package contains a set of simplification rules that are used to simplify trigonometric function whose arguments are of the form `f(n %pi/10)` where f is any of the functions `sin`, `cos`, `tan`, `csc`, `sec` and `cot`.

  Categories: Trigonometric functions · Package ntrig

Function: sec (x)

  - Secant.

  Categories: Trigonometric functions

Function: sech (x)

  - Hyperbolic Secant.

  Categories: Hyperbolic functions

Function: sin (x)

  - Sine.

  Categories: Trigonometric functions

Function: sinh (x)

  - Hyperbolic Sine.

  Categories: Hyperbolic functions

Function: tan (x)

  - Tangent.

  Categories: Trigonometric functions

Function: tanh (x)

  - Hyperbolic Tangent.

  Categories: Hyperbolic functions

Function: trigexpand (expr)

  Expands trigonometric and hyperbolic functions of sums of angles and of multiple angles occurring in expr. For best results, expr should be expanded. To enhance user control of simplification, this function expands only one level at a time, expanding sums of angles or multiple angles. To obtain full expansion into sines and cosines immediately, set the switch `trigexpand: true`.

  `trigexpand` is governed by the following global flags:

  `trigexpand`

    If `true` causes expansion of all expressions containing sin's and cos's occurring subsequently.

  `halfangles`

    If `true` causes half-angles to be simplified away.

  `trigexpandplus`

    Controls the "sum" rule for `trigexpand`, expansion of sums (e.g. `sin(x + y)`) will take place only if `trigexpandplus` is `true`.

  `trigexpandtimes`

    Controls the "product" rule for `trigexpand`, expansion of products (e.g. `sin(2 x)`) will take place only if `trigexpandtimes` is `true`.

  Examples:

      (%i1) x+sin(3*x)/sin(x),trigexpand=true,expand;
                               2           2
      (%o1)               - sin (x) + 3 cos (x) + x
      (%i2) trigexpand(sin(10*x+y));
      (%o2)          cos(10 x) sin(y) + sin(10 x) cos(y)

  Categories: Trigonometric functions · Simplification functions

Option variable: trigexpandplus

  Default value: `true`

  `trigexpandplus` controls the "sum" rule for `trigexpand`. Thus, when the `trigexpand` command is used or the `trigexpand` switch set to `true`, expansion of sums (e.g. `sin(x+y))` will take place only if `trigexpandplus` is `true`.

  Categories: Trigonometric functions · Simplification flags and variables

Option variable: trigexpandtimes

  Default value: `true`

  `trigexpandtimes` controls the "product" rule for `trigexpand`. Thus, when the `trigexpand` command is used or the `trigexpand` switch set to `true`, expansion of products (e.g. `sin(2*x)`) will take place only if `trigexpandtimes` is `true`.

  Categories: Trigonometric functions · Simplification flags and variables

Option variable: triginverses

  Default value: `all`

  `triginverses` controls the simplification of the composition of trigonometric and hyperbolic functions with their inverse functions.

  If `all`, both e.g. `atan(tan(x))` and `tan(atan(x))` simplify to x.

  If `true`, the `arcfun(fun(x))` simplification is turned off.

  If `false`, both the `arcfun(fun(x))` and `fun(arcfun(x))` simplifications are turned off.

  Categories: Trigonometric functions · Simplification flags and variables

Function: trigreduce (expr, x)
Function: trigreduce (expr)

  Combines products and powers of trigonometric and hyperbolic sin's and cos's of x into those of multiples of x. It also tries to eliminate these functions when they occur in denominators. If x is omitted then all variables in expr are used.

  See also `poissimp`.

      (%i1) trigreduce(-sin(x)^2+3*cos(x)^2+x);
                     cos(2 x)      cos(2 x)   1        1
      (%o1)          -------- + 3 (-------- + -) + x - -
                        2             2       2        2

  The trigonometric simplification routines will use declared information in some simple cases. Declarations about variables are used as follows, e.g.

      (%i1) declare(j, integer, e, even, o, odd)$
      (%i2) sin(x + (e + 1/2)*%pi);
      (%o2)                        cos(x)
      (%i3) sin(x + (o + 1/2)*%pi);
      (%o3)                       - cos(x)

  Categories: Trigonometric functions · Simplification functions

Option variable: trigsign

  Default value: `true`

  When `trigsign` is `true`, it permits simplification of negative arguments to trigonometric functions. E.g., `sin(-x)` will become `-sin(x)` only if `trigsign` is `true`.

  Categories: Trigonometric functions · Simplification flags and variables

Function: trigsimp (expr)

  Employs the identities sin(x)^2 + cos(x)^2 = 1 and cosh(x)^2 - sinh(x)^2 = 1 to simplify expressions containing `tan`, `sec`, etc., to `sin`, `cos`, `sinh`, `cosh`.

  `trigreduce`, `ratsimp`, and `radcan` may be able to further simplify the result.

  `demo ("trgsmp.dem")` displays some examples of `trigsimp`.

  Categories: Trigonometric functions · Simplification functions

Function: trigrat (expr)

  Gives a canonical simplifyed quasilinear form of a trigonometrical expression; expr is a rational fraction of several `sin`, `cos` or `tan`, the arguments of them are linear forms in some variables (or kernels) and `%pi/n` (n integer) with integer coefficients. The result is a simplified fraction with numerator and denominator linear in `sin` and `cos`. Thus `trigrat` linearize always when it is possible.

      (%i1) trigrat(sin(3*a)/sin(a+%pi/3));
      (%o1)            sqrt(3) sin(2 a) + cos(2 a) - 1

  The following example is taken from Davenport, Siret, and Tournier, Calcul Formel, Masson (or in English, Addison-Wesley), section 1.5.5, Morley theorem.

      (%i1) c: %pi/3 - a - b;
                                          %pi
      (%o1)                     - b - a + ---
                                           3
      (%i2) bc: sin(a)*sin(3*c)/sin(a+b);
                            sin(a) sin(3 b + 3 a)
      (%o2)                 ---------------------
                                 sin(b + a)
      (%i3) ba: bc, c=a, a=c$
      (%i4) ac2: ba^2 + bc^2 - 2*bc*ba*cos(b);
               2       2
            sin (a) sin (3 b + 3 a)
      (%o4) -----------------------
                     2
                  sin (b + a)

                                              %pi
         2 sin(a) sin(3 a) cos(b) sin(b + a - ---) sin(3 b + 3 a)
                                               3
       - --------------------------------------------------------
                                 %pi
                         sin(a - ---) sin(b + a)
                                  3

            2         2         %pi
         sin (3 a) sin (b + a - ---)
                                 3
       + ---------------------------
                   2     %pi
                sin (a - ---)
                          3
      (%i5) trigrat (ac2);
      (%o5) - (sqrt(3) sin(4 b + 4 a) - cos(4 b + 4 a)

       - 2 sqrt(3) sin(4 b + 2 a) + 2 cos(4 b + 2 a)

       - 2 sqrt(3) sin(2 b + 4 a) + 2 cos(2 b + 4 a)

       + 4 sqrt(3) sin(2 b + 2 a) - 8 cos(2 b + 2 a) - 4 cos(2 b - 2 a)

       + sqrt(3) sin(4 b) - cos(4 b) - 2 sqrt(3) sin(2 b) + 10 cos(2 b)

       + sqrt(3) sin(4 a) - cos(4 a) - 2 sqrt(3) sin(2 a) + 10 cos(2 a)

       - 9)/4

  Categories: Trigonometric functions · Simplification functions

[ << ] | [ >> ] |  |  |  |  |  | [Top] | [Contents] | [Index] | [ ? ]

This document was generated by Robert Dodier on August, 24 2008 using texi2html 1.76.