123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180 |
- \chapter[TRIGSIMP: Trigonometric simplification]%
- {TRIGSIMP: Simplification and factorisation of trigonometric
- and hyperbolic functions}
- \label{TRIGSIMP}
- \typeout{{TRIGSIMP: Simplification and factorisation of trigonometric
- and hyperbolic functions}}
- {\footnotesize
- \begin{center}
- Wolfram Koepf, Andreas Bernig and Herbert Melenk\\
- Konrad--Zuse--Zentrum f\"ur Informationstechnik Berlin \\
- Takustra\"se 7 \\
- D--14195 Berlin--Dahlem, Germany \\[0.05in]
- e--mail: Koepf@zib.de
- \end{center}
- }
- \ttindex{TRIGSIMP}
- There are three
- procedures included in TRIGSIMP: trigsimp, trigfactorize and triggcd.
- The first is for finding simplifications of trigonometric or
- hyperbolic expressions with many options, the second for factorising
- them and the third
- for finding the greatest common divisor of two trigonometric or
- hyperbolic polynomials.
- \section{Simplifiying trigonometric expressions}
- As there is no normal form for trigonometric and hyperbolic functions,
- the same function can convert in many different directions, {\em e.g. }
- $\sin(2x) \leftrightarrow 2\sin(x)\cos(x)$.
- The user has the possibility to give several parameters to the
- procedure {\tt trigsimp} in order to influence the direction of
- transformations. The decision whether a rational expression in
- trigonometric and hyperbolic functions vanishes or not is possible.
- \ttindex{trigsimp}
- To simplify a function {\tt f}, one uses {\tt trigsimp(f[,options])}. Example:
- \begin{verbatim}
- 2: trigsimp(sin(x)^2+cos(x)^2);
- 1
- \end{verbatim}
- Possible options are (* denotes the default):
- \begin{enumerate}
- \item {\tt sin} (*) or {\tt cos}\index{trigsimp ! sin}\index{trigsimp ! cos}
- \item {\tt sinh} (*) or {\tt cosh}\index{trigsimp ! sinh}\index{trigsimp ! cosh}
- \item {\tt expand} (*) or {\tt combine} or {\tt compact}\index{trigsimp ! expand}\index{trigsimp ! combine}\index{trigsimp ! compact}
- \item {\tt hyp} or {\tt trig} or {\tt expon}\index{trigsimp ! hyp}\index{trigsimp ! trig}\index{trigsimp ! expon}
- \item {\tt keepalltrig}\index{trigsimp ! keepalltrig}
- \end{enumerate}
- From each group one can use at most one option, otherwise an error
- message will occur. The first group fixes the preference used while
- transforming a trigonometric expression.
- The second group is the equivalent for the hyperbolic functions.
- The third group determines the type of transformations. With
- the default {\tt expand}, an expression is written in a form only using
- single arguments and no sums of arguments. With {\tt combine},
- products of trigonometric functions are transformed to trigonometric
- functions involving sums of arguments.
- \begin{verbatim}
- trigsimp(sin(x)^2,cos);
- 2
- - cos(x) + 1
- trigsimp(sin(x)*cos(y),combine);
-
- sin(x - y) + sin(x + y)
- -------------------------
- 2
- \end{verbatim}
- With {\tt compact}, the \REDUCE\ operator {\tt compact} (see
- chapter~\ref{COMPACT}) is applied to {\tt f}.
- This leads often to a simple form, but in contrast to {\tt expand} one
- doesn't get a normal form.
- \begin{verbatim}
- trigsimp((1-sin(x)**2)**20*(1-cos(x)**2)**20,compact);
- 40 40
- cos(x) *sin(x)
- \end{verbatim}
- With the fourth group each expression is transformed to a
- trigonometric, hyperbolic or exponential form:
- \begin{verbatim}
- trigsimp(sin(x),hyp);
- - sinh(i*x)*i
- trigsimp(e^x,trig);
- x x
- cos(---) + sin(---)*i
- i i
- \end{verbatim}
- Usually, {\tt tan}, {\tt cot}, {\tt sec}, {\tt csc} are expressed in terms of
- {\tt sin} and {\tt cos}. It can
- be sometimes useful to avoid this, which is handled by the option
- {\tt keepalltrig}:
- \begin{verbatim}
- trigsimp(tan(x+y),keepalltrig);
- - (tan(x) + tan(y))
- ----------------------
- tan(x)*tan(y) - 1
- \end{verbatim}
- It is possible to use the options of different groups simultaneously.
- \section{Factorising trigonometric expressions}
- With {\tt trigfactorize(p,x)} one can factorise the trigonometric or
- hyperbolic polynomial {\tt p} with respect to the argument x. Example:
- \ttindex{trigfactorize}
- \begin{verbatim}
- trigfactorize(sin(x),x/2);
- x x
- {2,cos(---),sin(---)}
- 2 2
- \end{verbatim}
- If the polynomial is not coordinated or balanced the output will equal
- the input. In this case, changing the value for x can help to find a
- factorisation:
- \begin{verbatim}
- trigfactorize(1+cos(x),x);
- {cos(x) + 1}
- trigfactorize(1+cos(x),x/2);
- x x
- {2,cos(---),cos(---)}
- 2 2
- \end{verbatim}
- \section{GCDs of trigonometric expressions}
- The operator {\tt triggcd}\ttindex{triggcd} is an application of {\tt
- trigfactorize}. With its help the user can find the greatest common
- divisor of two trigonometric or hyperbolic polynomials. The syntax is: {\tt
- triggcd(p,q,x)}, where p and q are the polynomials and x is the
- smallest unit to use. Example:
- \begin{verbatim}
- triggcd(sin(x),1+cos(x),x/2);
- x
- cos(---)
- 2
- triggcd(sin(x),1+cos(x),x);
- 1
- \end{verbatim}
- See also the ASSIST package (chapter~\ref{ASSIST}).
|