Skip to content

InverseFunctions

Status: Experimental

present and registered, but lightly documented and not yet covered by dedicated tests.

Description

InverseFunctions is an option for Solve that enables the
    inverse-function specialist for elementary invertible heads
    (Log, Exp, Sin, Cos, Tan, ArcSin, ArcCos, Sinh, ..., and
    integer Power).  Default: Automatic (enabled).  Setting it
    to False disables the specialist; equations that can only
    be solved through inversion then return unevaluated.

Examples

No verified examples yet for this function.

Implementation notes

InverseFunctions is an option symbol for Solve, not a callable function. It is interned in sym_names.c and documented in solve.c; it has no builtin handler. solve.c's option parser recognises InverseFunctions -> spec: the default Automatic (and any value other than False) leaves the enabled flag set in the solver state (solveinv.h), while InverseFunctions -> False disables it. When enabled, Solve is allowed to "peel" invertible heads (Exp, Log, trig, powers) off an equation by applying their inverse function — the work is done by the inverse-function specialist registered as Solve`SolveInverseFunctions in solveinv.c. The symbol is consumed only as a configuration key.

Attributes: none registered.

Implementation status

Experimental — present and registered, but lightly documented and not yet covered by dedicated tests.

References

Notes & additional examples

Worked examples

With the specialist enabled (the default), a transcendental equation is solved by inverting its head; disabling it returns the equation unevaluated:

In[1]:= Solve[Sin[x] == 1/2, x]
Out[1]= {{x -> ConditionalExpression[2 C[1] Pi + 5/6 Pi, Element[C[1], Integers]]}, {x -> ConditionalExpression[2 C[1] Pi + 1/6 Pi, Element[C[1], Integers]]}}

In[2]:= Solve[Sin[x] == 1/2, x, InverseFunctions -> False]
Out[2]= Solve[Sin[x] == 1/2, x, InverseFunctions -> False]

Inverting Exp yields the full set of complex logarithm branches:

In[1]:= Solve[Exp[x] == 5, x]
Out[1]= {{x -> ConditionalExpression[Log[5] + (2*I) C[1] Pi, Element[C[1], Integers]]}}

Notes

InverseFunctions is a Solve option (default Automatic, i.e. enabled) that controls the inverse-function specialist for invertible heads such as Sin, Log, Exp, and integer Power. With it on, Sin[x] == 1/2 is inverted to the full periodic solution set; setting InverseFunctions -> False disables the specialist, so the equation is returned unevaluated.