manual:chapter8:numinteg

Numeric integration of symbolic expressions is performed in newRPL via the NUMINT command which implements the Adaptive Simpson's method.

NUMINT accepts four arguments:

• the mono-variate function to integrate, either in symbolic or program form;
• the lower integration limit;
• the upper integration limit;
• the error tolerance.

If the function to integrate is expressed in symbolic form it must respect a precise syntax:

• it must be written as an equation;
• the left side must be in the form func(var) where var is the integrating variable and func is the function's name;
• the right side is a function, expressed in terms of var.

For example valid expressions are:

'F(X)=X*LN(X)'
'G(Z)=Z^2-2*COS(Z)'
'VEL(T)=ACC*T'

As shown above, the functions may refer to global or local variables; the function's name is only descriptive and bears no relevance to the calculation.

Alternatively, the function can be written as a program which accepts exactly one numeric argument and returns exactly one numeric result. The expressions above can be rewritten as:

« DUP LN * »
« DUP SQ SWAP COS 2 * - »
« 'ACC' RCL * »

The integration limits can be either real or complex finite numbers; symbolic constants are accepted and silently converted to numerical values.

The error tolerance is a real number used to specify the required precision of the calculation: when two successive iterations differ by a value which is less than the tolerance the calculation stops.

When a real number is input to a trigonometric function newRPL assumes that it is an angle expressed in the current angular mode; however the trigonometric functions are meant to process quantities expressed in radians. In other words the following transformations are implicitly applied:

• in RAD mode $θ=θ_{r}\,$;
• in DEG mode $θ=\frac{\pi}{180}{θ_°}\,$;
• in GRAD mode $θ=\frac{\pi}{200}{θ_g}\,$.

where $θ_{r}\,$, $θ_{°}$ and $θ_{g}$ are the quantities entered by the user and $θ$ is what is actually fed to the trigonometric functions.

From this, two important consequences derive:

1. the antiderivative changes according to the angular mode. Let's consider e.g. the function $f(θ)=\sin{θ}$ and apply the transformations above:

• in RAD mode $f(θ_r)$ is equivalent to $f(θ)$ which differentiates to $f(θ_r)\,dθ_r=\sin{θ}\,d{θ}$ and whose antiderivative is $F(θ)=-\cos{θ}\,$;
• in DEG mode $f(θ_°)$ is actually $f\left(\frac{\pi}{180}θ_°\right)$ which differentiates to $f\left(\frac{\pi}{180}θ_°\right)\,dθ_°=\frac{180}{\pi}\sin{θ}\,d{θ}$ and whose antiderivative is $F(θ)=-\frac{180}{\pi}\cos{θ}\,$;
• in GRAD mode $f(θ_g)$ is actually $f\left(\frac{\pi}{200}θ_g\right)$ which differentiates to $f\left(\frac{\pi}{200}θ_g\right)\,dθ_g=\frac{200}{\pi}\sin{θ}\,d{θ}$ and whose antiderivative is $F(θ)=-\frac{200}{\pi}\cos{θ}\,$;

2. no inverse transformation is applied to the resulting output: this is mathematically correct, but can be disconcerting if one is not immediately aware of the implicit variable substitution.

In conclusion, unless the user knows exactly what he/she is doing it's advisable to perform numeric integration of trigonometric expressions in RAD mode.

 pic $$\int^{2}_{0} x^{10}e^{\left(4x^{3}-3x^{4}\right)} \,dx$$ Input: 16 SETPREC 'F(X)=X^10*EXP(4*X^3-3*X^4)' 0 2 tol NUMINT tol=10-4 7.258 376 114 514 225 … |Δ| = 1.9·10-5 tol=10-8 7.258 395 173 115 920 … |Δ| = 2.5·10-9 tol=10-12 7.258 395 170 615 141 … |Δ| = 8.5·10-13 tol=10-16 7.258 395 170 614 323 … |Δ| = 3.2·10-14 Truncated at 16 digits 7.258 395 170 614 291 …

This integral is interesting because the shape of the function in the interval is flat almost everywhere except for a narrow peak which is however captured by the algorithm.

• manual/chapter8/numinteg.txt