Jump to: navigation, search

Simplify is command, operator in the Mathematica language.

Usually, the call of this routine has form



Simplify[expresson, conditions]

Several conditions can be combined, for example

conditions\(=\){condition1, condition2, ..}

in the most of cases, Simplify returns expression, equivalent to its argument; and often, it is written in a form, shorter than its argument.

Example of inconditional simplification

Simplify[2 Sin[x] Cos[x]]


Sin[2 x]

Example of conditional simplification

Sometimes, the simplification is valid only for certain range of values of parameters. The simple example is below.

f[x_] = Sqrt[1 + x] Sqrt[1 - x]

g[x_] = Simplify[f[x]]

The last line returns the same expression as


Specification of \(x\) may allow the simplification:

h[x_] = Simplify[f[x], x > 0]

leads to non-equivalent expression


that coincides with initial expression for positive \(x\), and in this sense is correct.

However, the result of the conditional simplification may be not valid for values of parameters out of range, declared at the call of Simplify:

g[-1.+I] gives the same as f[-1.+I], id est,

1.27202 + 0.786151 I

while h[-1.+I] gives

1.27202 - 0.786151 I

(In Mathemaica, capital "I" denotes \(\mathrm i=\sqrt{-1}\).

Not perfect

In some cases, the rules, used in the implementation of the Simplify command, are not sufficient to perform the simplification.

For example,

Simplify[Integrate[(BesselJ[0, BesselJZero[0,1] p]/(1-p^2) )^2 p , {p,0,Infinity}]]

gives complicated expression

-(1/2) Sqrt[Pi] MeijerG[{{}, {1/2}}, {{0, 1}, {0}}, BesselJZero[0, 1]^2]

instead of just 1/2 .



Bessel function, BesselJ, Mathematica