Skip to content

Latest commit

 

History

History
139 lines (98 loc) · 4.56 KB

simplify.rst

File metadata and controls

139 lines (98 loc) · 4.56 KB

Simplification of expressions

Simplification of expression is a big and non-trivial subject. Simplification implies that there is a preferred form. In practice the preferred form depends on the calculation at hand. This chapter describes the functions offered that allow simplification of expressions.

Simplify(expr)

try to simplify an expression

This function tries to simplify the expression expr as much as possible. It does this by grouping powers within terms, and then grouping similar terms.

Example
In> a*b*a^2/b-a^3
Out> (b*a^3)/b-a^3;
In> Simplify(a*b*a^2/b-a^3)
Out> 0;

FactorialSimplify, LnCombine, LnExpand, RadSimp, TrigSimpCombine

RadSimp(expr)

simplify expression with nested radicals

This function tries to write the expression expr as a sum of roots of integers: $\sqrt{e_1} + \sqrt{e_2} + ...$, where e1, e2 and so on are natural numbers. The expression expr may not contain free variables.

It does this by trying all possible combinations for e1, e2, …. Every possibility is numerically evaluated using N and compared with the numerical evaluation of expr. If the approximations are equal (up to a certain margin), this possibility is returned. Otherwise, the expression is returned unevaluated.

Note

Due to the use of numerical approximations, there is a small chance that the expression returned by RadSimp is close but not equal to expr:

In> RadSimp(Sqrt(1+10^(-6))) Out> 1;

Note

If the numerical value of expr is large, the number of possibilities becomes exorbitantly big so the evaluation may take very long.

Example
In> RadSimp(Sqrt(9+4*Sqrt(2)))
Out> Sqrt(8)+1;
In> RadSimp(Sqrt(5+2*Sqrt(6)) + Sqrt(5-2*Sqrt(6)))
Out> Sqrt(12);
In> RadSimp(Sqrt(14+3*Sqrt(3+2*Sqrt(5-12*Sqrt(3-2*Sqrt(2))))))
Out> Sqrt(2)+3;

Simplify, N, Sqrt

FactorialSimplify(expression)

simplify hypergeometric expressions containing factorials

FactorialSimplify takes an expression that may contain factorials, and tries to simplify it. An expression like $\frac{(n+1)!}{n!}$ would simplify to (n + 1).

Simplify, !

LnExpand(expr)

expand a logarithmic expression using standard logarithm rules

LnExpand takes an expression of the form ln (expr), and applies logarithm rules to expand this into multiple Ln expressions where possible. An expression like ln (abn) would be expanded to ln (a) + nln (b). If the logarithm of an integer is discovered, it is factorised using Factors and expanded as though LnExpand had been given the factorised form. So ln (18) goes to ln (2) + 2ln (3).

LnCombine, Simplify, Ln, Expand

LnCombine(expr)

combine logarithmic expressions using standard logarithm rules

LnCombine finds Ln terms in the expression it is given, and combines them using logarithm rules. It is intended to be the converse of LnExpand.

LnExpand, Simplify, Ln

TrigSimpCombine(expr)

combine products of trigonometric functions

This function applies the product rules of trigonometry, e.g. $\cos{u}\sin{v} = \frac{1}{2}(\sin(v-u) + \sin(v+u))$. As a result, all products of the trigonometric functions Cos and Sin disappear. The function also tries to simplify the resulting expression as much as possible by combining all similar terms. This function is used in for instance Integrate, to bring down the expression into a simpler form that hopefully can be integrated easily.

Example
In> PrettyPrinter'Set("PrettyForm");
True
In> TrigSimpCombine(Cos(a)^2+Sin(a)^2)
1
In> TrigSimpCombine(Cos(a)^2-Sin(a)^2)
Cos( -2 * a )
Out>
In> TrigSimpCombine(Cos(a)^2*Sin(b))
Sin( b )   Sin( -2 * a + b )
-------- + -----------------
   2               4
  Sin( -2 * a - b )
- -----------------
         4

Simplify, Integrate, Expand, Sin, Cos, Tan