Simplify

Simplify is command, operator in the Mathematica language.

Usually, the call of this routine has form

Simplify[expresson]

or

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]]

returns

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

\(\sqrt{1+x}\sqrt{1-x}\)

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

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

leads to non-equivalent expression

\(\sqrt{1-x^2}\)

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.

Keywords
Bessel function, BesselJ, Mathematica