IBM Books

Engineering and Scientific Subroutine Library for AIX Version 3 Release 3: Guide and Reference

SGLNQ and DGLNQ--Numerical Quadrature Performed on a Function Using Gauss-Legendre Quadrature

These functions approximate the integral of a real valued function over a finite interval, using the Gauss-Legendre Quadrature method of specified order.

Table 161. Data Types

a, b, Result Subroutine
Short-precision real SGLNQ
Long-precision real DGLNQ

Syntax

Fortran SGLNQ | DGLNQ (subf, a, b, n)
C and C++ sglnq | dglnq (subf, a, b, n);
PL/I SGLNQ | DGLNQ (subf, a, b, n);

On Entry

subf
is the user-supplied subroutine that evaluates the integrand function. The subroutine should be defined with three arguments: t, y, and n. For details, see Programming Considerations for the SUBF Subroutine.

Specified as: subf must be declared as an external subroutine in you application program. It can be whatever name you choose.

a
is the lower limit of integration, a. Specified as: a number of the data type indicated in Table 161.

b
is the upper limit of integration, b. Specified as: a number of the data type indicated in Table 161.

n
is the order of the quadrature method to be used. Specified as: a fullword integer; n = 1, 2, 3, 4, 5, 6, 8, 10, 12, 14, 16, 20, 24, 32, 40, 48, 64, 96, 128, or 256.

On Return

Function value
 

is the approximation of the integral. Returned as: a number of the data type indicated in Table 161.

Notes
  1. Declare the DGLNQ function in your program as returning a long-precision real number. Declare the SGLNQ, if necessary, as returning a short-precision real number.
  2. The subroutine specified for subf must be declared as external in your program. Also, data types used by subf must agree with the data types specified by this ESSL subroutine. The variable x, described under Function, and the argument n correspond to the subf arguments t and n, respectively. For details on how to set up the subroutine, see Programming Considerations for the SUBF Subroutine.

Function

The integral is approximated for a real valued function over a finite interval, using the Gauss-Legendre Quadrature method of specified order. The region of integration is from a to b. The method of order n is theoretically exact for integrals of the following form, where f is a polynomial of degree less than 2n:



Integral Graphic

The method of order n is a good approximation when your integrand is closely approximated by a function of the form f(x), where f is a polynomial of degree less than 2n. See references [26] and [92]. The result is returned as the function value.

Error Conditions

Computational Errors

None

Input-Argument Errors

n is not an allowable value, as listed in the syntax for this argument.

Example

This example shows how to compute the integral of the function f given by:

f(x) = x2+ex

over the interval (0.0, 2.0), using the Gauss-Legendre method with 10 points:



Integral Graphic

The user-supplied subroutine FUN1, which evaluates the integrand function, is coded in Fortran as follows:

   SUBROUTINE FUN1 (T,Y,N)
   INTEGER*4 N
   REAL*4 T(*),Y(*)
   DO 1 I=1,N
1     Y(I)=T(I)**2+EXP(T(I))
   RETURN
   END

Program Statements and Input
EXTERNAL FUN1
        .
        .
        .
              SUBF    A     B    N
               |      |     |    |
XINT = SGLNQ( FUN1 , 0.0 , 2.0 , 10 )
        .
        .
        .

FUN1 =(see above)

Output
XINT     =  9.056


[ Top of Page | Previous Page | Next Page | Table of Contents | Index ]