RISCH
and EXPA
.
The RISCH
program accepts functions as input and
(tries to) return the primitive. EXPA
should be called for
symbolic expressions which contains the
symbol. The last
computed antiderivative is stored in the variable PRIMIT
.
The variable ERABLEMSG
contains additionnal information
if RISCH
returns an unevaluated antiderivative (with a
sign).
Some examples for RISCH
:
RISCH
program must sometimes be used in conjunction
with the TSIMP
function to get ``weak normalization''. If you
get No closed form
in ERABLMSG
, try TSIMP
and
RISCH
again, if you get again the message No closed form
,
this does not mean that RISCH
failed, but that your input does
not admit an antiderivative which may be expressed in terms of elementary
functions.
RISCH
is only a partial
implementation of the Risch algorithm: it works with pure transcendental
extensions (i.e. square root are generically not allowed),
and exponential polynomial parts must not contain logarithms or
other exponentials.
Examples:
In addition to this partial implementation, RISCH
can integrate
fractions of the type
.
VX
is set to X
,
evaluation of:
For integrals with bounds, the right instruction is EXPA
.
Example of EXPA
usage (in real and symbolic mode):
RISCH
,
you can evaluate it between two bounds using PREVAL
. Arguments
of PREVAL
are a function f(x) at level 3, lower and upper
bounds a and b at level 2 and 1. It returns f(b)-f(a) (x
is the variable contained in VX
).
EXPA
does not detect discontinuities of the antiderivative.
It blindly computes the value at both end of the integration interval
(by a call to LIMIT
, hence infinite bounds are allowed)
and returns the difference.
For example,
returns 0. You
should always check the answer numerically and if the answers are
not the same, you have to study the antiderivative for discontinuities.