These functions approximate the integral of a real valued function over a
semi-infinite interval, using the Gaussian-Rational quadrature method of
specified order.
a, b, Result | Subroutine |
Short-precision real | SGRAQ |
Long-precision real | DGRAQ |
Fortran | SGRAQ | DGRAQ (subf, a, b, n) |
C and C++ | sgraq | dgraq (subf, a, b, n); |
PL/I | SGRAQ | DGRAQ (subf, a, b, n); |
Specified as: subf must be declared as an external subroutine in your application program. It can be whatever name you choose.
If a+b > 0, it is the lower limit of integration.
If a+b < 0, it is the upper limit of integration.
Specified as: a number of the data type indicated in Table 165.
The integral is approximated for a real valued function over a semi-infinite interval, using the Gauss-Rational quadrature method of specified order. The region of integration is:
The method of order n is theoretically exact for integrals of the following form, where f is a polynomial of degree less than 2n:
The method of order n is a good approximation when your integrand is closely approximated by a function of the following form, where f is a polynomial of degree less than 2n:
See references [26] and [92]. The result is returned as the function value to a Fortran, C, C++, or PL/I program.
None
This example shows how to compute the integral of the function f given by:
over the interval (-infinity, -2.0), using the Gauss-Rational method with 10 points:
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(*),TEMP DO 1 I=1,N TEMP=1.0/T(I) 1 Y(I)=EXP(TEMP)*TEMP**2 RETURN END
EXTERNAL FUN1 . . . SUBF A B N | | | | XINT = SGRAQ( FUN1 , -2.0 , 0.0 , 10 ) . . .
XINT = 0.393
This example shows how to compute the integral of the function f given by:
over the interval (4.0, infinity), using the Gauss-Rational method with 6 points:
The user-supplied subroutine FUN2, which evaluates the integrand function, is coded in Fortran as follows:
SUBROUTINE FUN2 (T,Y,N) INTEGER*4 N REAL*4 T(*),Y(*),TEMP DO 1 I=1,N TEMP=1.0/(T(I)-3.0) 1 Y(I)=TEMP**2+10.0*TEMP**11 RETURN END
EXTERNAL FUN2 . . . SUBF A B N | | | | XINT = SGRAQ( FUN2 , 4.0 , -3.0 , 6 ) . . . FUN2 = (see above)
XINT = 2.00