QROMO
The QROMO function evaluates the integral of a function over the open interval (A, B) using a modified Romberg’s method.
Examples
Consider the following function:
FUNCTION hyper, X
RETURN, 1.0 / X^4
END
This example integrates the HYPER function over the open interval (2, ∞) and prints the result:
PRINT, QROMO('hyper', 2.0, /MIDEXP)
IDL prints:
0.0412050
Note: When using the MIDEXP keyword, the upper integration limit is assumed to be infinity and is not supplied.
Syntax
Result = QROMO(Func, A [, B] [, /DOUBLE] [, EPS=value] [, JMAX=value] [, K=value] [, /MIDEXP | , /MIDINF | , /MIDPNT | , /MIDSQL | , /MIDSQU] )
Return Value
Returns the integral of the function.
Arguments
Func
A scalar string specifying the name of a user-supplied IDL function to be integrated. This function must accept a single scalar argument X and return a scalar result. It must be defined over the open interval (A, B).
For example, if we wish to integrate the fourth-order polynomial
y = 1 / x4
we define a function HYPER to express this relationship in the IDL language:
FUNCTION hyper, X
RETURN, 1.0 / X^4
END
Note: If QROMO is complex then only the real part is used for the computation.
A
The lower limit of the integration. A can be either a scalar or an array.
B
The upper limit of the integration. B can be either a scalar or an array. If the MIDEXP keyword is specified, B is assumed to be infinite, and should not be supplied by the user.
Note: If arrays are specified for A and B, then QROMO integrates the user-supplied function over the interval [Ai, Bi] for each i. If either A or B is a scalar and the other an array, the scalar is paired with each array element in turn.
Keywords
DOUBLE
Set this keyword to force the computation to be done in double-precision arithmetic.
EPS
The fractional accuracy desired, as determined by the extrapolation error estimate. For single-precision calculations, the default value is 1.0 x 10-6. For double-precision calculations, the default value is 1.0 x 10-12.
JMAX
Set to specify the maximum allowed number of mid quadrature points to be 3(JMAX - 1). The default value is 14.
K
Integration is performed by Romberg’s method of order 2K. If not specified, the default is K=5.
MIDEXP
Use the midexp()
function (see Numerical Recipes, section 4.4) as the integrating function. If the MIDEXP keyword is specified, argument B is assumed to be infinite, and should not be supplied by the user.
MIDINF
Use the midinf()
function (see Numerical Recipes, section 4.4) as the integrating function.
MIDPNT
Use the midpnt()
function (see Numerical Recipes, section 4.4) as the integrating function. This is the default if no other integrating function keyword is specified.
MIDSQL
Use the midsql()
function (see Numerical Recipes, section 4.4) as the integrating function.
MIDSQU
Use the midsqu()
function (see Numerical Recipes, section 4.4) as the integrating function.
Version History
4.0 |
Introduced |
Resources and References
QROMO is based on the routine qromo
described in section 4.4 of Numerical Recipes in C: The Art of Scientific Computing (Second Edition), published by Cambridge University Press, and is used by permission.