QTRAP
Name
QTRAP
Purpose
Integrate using trapezoidal rule to specified accuracy.
Explanation
Integrate a function to specified accuracy using the extended
trapezoidal rule. Adapted from Numerical Recipes (1992, 2nd edition),
Section 4.2.
Calling Sequence
QTRAP, func, A, B, S, [EPS = , MAX_ITER =, _EXTRA = ]
Inputs
func - scalar string giving name of function of one variable to
be integrated
A,B - numeric scalars giving the lower and upper bound of the
integration
Outputs
S - Scalar giving the approximation to the integral of the specified
function between A and B.
OPTIONAL KEYWORD PARAMETERS:
EPS - scalar specify the fractional accuracy before ending the
iteration. Default = 1E-6
MAX_ITER - Integer specifying the total number iterations at which
QTRAP will terminate even if the specified accuracy has not yet
been met. The maximum number of function evaluations will
be 2^(MAX_ITER). Default value is MAX_ITER = 20
Any other keywords are passed directly to the user-supplied function
via the _EXTRA facility.
Notes
QTRAP is robust way of doing integrals that are not very smooth. If the
function has a continuous 3rd derivative then the function QSIMP will
likely be more efficient at performing the integral.
Example
Compute the integral of sin(x) from 0 to !PI/3.
IDL> QTRAP, 'sin', 0, !PI/3, S & print,S
The value obtained should be cos(!PI/3) = 0.5
Procedures Called
TRAPZD, ZPARCHECK
Revision History
W. Landsman ST Systems Co. August, 1991
Continue after Max Iter warning message, W. Landsman March 1996
Converted to IDL V5.0 W. Landsman September 1997
Pass keyword to function via _EXTRA facility W. Landsman July 1999