Automatic evaluation and transformations can sometimes be inconvenient: They act in only one chosen direction and the result can be overly complicated. For example, the expression is generally preferable to the more complicated . Mathematica provides automatic transformation of the second expression into the first one. But compact expressions like should not be automatically expanded into the more complicated expression . Mathematica has special functions that produce these types of expansions. Some of them are demonstrated in the next section.
The function TrigExpand expands out trigonometric and hyperbolic functions. In more detail, it splits up sums and integer multiples that appear in the arguments of trigonometric and hyperbolic functions, and then expands out the products of the trigonometric and hyperbolic functions into sums of powers, using the trigonometric and hyperbolic identities where possible. Here are some examples.
The command TrigFactor factors trigonometric and hyperbolic functions. In more detail, it splits up sums and integer multiples that appear in the arguments of trigonometric and hyperbolic functions, and then factors the resulting polynomials in the trigonometric and hyperbolic functions, using the corresponding identities where possible. Here are some examples.
The command TrigReduce rewrites products and powers of trigonometric and hyperbolic functions in terms of those functions with combined arguments. In more detail, it typically yields a linear expression involving trigonometric and hyperbolic functions with more complicated arguments. TrigReduce is approximately opposite to TrigExpand and TrigFactor. Here are some examples.
The command TrigToExp converts direct and inverse trigonometric and hyperbolic functions to exponentials or logarithmic functions. It tries, where possible, to give results that do not involve explicit complex numbers. Here are some examples.
The command ExpToTrig converts exponentials to trigonometric or hyperbolic functions. It tries, where possible, to give results that do not involve explicit complex numbers. It is approximately opposite to TrigToExp. Here are some examples.
The function ComplexExpand expands expressions assuming that all the occurring variables are real. The value option TargetFunctions is a list of functions from the set {Re, Im, Abs, Arg, Conjugate, Sign}. ComplexExpand tries to give results in terms of the specified functions. Here are some examples.
The command Simplify performs a sequence of algebraic transformations on an expression, and returns the simplest form it finds. Here are two examples.
Here is a large collection of hyperbolic identities. All are written as one large logical conjunction.
The command Simplify has the Assumption option. For example, Mathematica knows that for all real positive , and uses the periodicity of hyperbolic functions for the symbolic integer coefficient of .
Mathematica also knows that the composition of inverse and direct hyperbolic functions produces the value of the inner argument under the appropriate restriction. Here are some examples.
While the hyperbolic functions auto‐evaluate for simple fractions of , for more complicated cases they stay as hyperbolic functions to avoid the build up of large expressions. Using the function FunctionExpand, such expressions can be transformed into explicit radicals.
If the denominator contains squares of integers other than 2, the results always contain complex numbers (meaning that the imaginary number appears unavoidably).
Here the function RootReduce is used to express the previous algebraic numbers as numbered roots of polynomial equations.
The function FunctionExpand also reduces hyperbolic expressions with compound arguments or compositions, including hyperbolic functions, to simpler forms. Here are some examples.
Applying Simplify to the last expression gives a more compact result.
Here are some similar examples.
The function FullSimplify tries a wider range of transformations than the function Simplify and returns the simplest form it finds. Here are some examples that contrast the results of applying these functions to the same expressions.
