Welcome to the Exelis VIS product documentation center! Here you will find reference guides, help documents, and product libraries. Discover the products ENVI, IDL, ENVI LiDAR, and ESE, developed by Exelis VIS.
﻿

### QSIMP

QSIMP

The QSIMP function performs numerical integration of a function over the closed interval [A, B] using Simpson’s rule.

## Examples

To integrate the SIMPSON function (listed above) over the interval [0, π/2] and print the result:

`; Define lower limit of integration:A = 0.0; Define upper limit of integration:B = !PI/2.0PRINT, QSIMP('simpson', A, B)`

IDL prints:

` -0.479158`

The exact solution can be found using the integration-by-parts formula:

`FB = 4.*B*(B^2-7.)*SIN(B) - (B^4-14.*B^2+28.)*COS(B)FA = 4.*A*(A^2-7.)*SIN(A) - (A^4-14.*A^2+28.)*COS(A)exact = FB - FAPRINT, exact`

IDL prints:

` -0.479156`

## Syntax

Result = QSIMP( Func, A, B [, /DOUBLE] [, EPS=value] [, JMAX=value] )

## Return Value

The result will have the same structure as the smaller of A and B, and the resulting type will be single- or double-precision floating, depending on the input types.

## 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 closed interval [A, B].

For example, if we wish to integrate the fourth-order polynomial

y = (x4 - 2x2) sin(x)

we define a function SIMPSON to express this relationship in the IDL language:

`FUNCTION simpson, X`
`   RETURN, (X^4 - 2.0 * X^2) * SIN(X)`
`END`

Note: If QSIMP 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.

Note: If arrays are specified for A and B, then QSIMP 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 desired fractional accuracy. 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

2(JMAX - 1) is the maximum allowed number of steps. If not specified, a default of 20 is used.

## Version History

 4 Introduced

## Resources and References

QSIMP is based on the routine qsimp described in section 4.2 of Numerical Recipes in C: The Art of Scientific Computing (Second Edition), published by Cambridge University Press, and is used by permission.

﻿

## Notes

###### This information is not subject to the controls of the International Traffic in Arms Regulations (ITAR) or the Export Administration Regulations (EAR). However, it may be restricted from transfer to various embargoed countries under U.S. laws and regulations.
 PRODUCTS & SERVICES ENVI IDL Professional Services

 INDUSTRIES Defense & Intelligence Environmental Monitoring Academic
 LEARN Code Videos Events & Training Case Studies Whitepapers Resources
 SUPPORT Forums Help Articles Reference Guides Updates & Maintenance
 COMPANY Mission Careers Press Room Legal Exelis, Inc
© 2014 Exelis Visual Information Solutions