NUMAL Section 4.2.3.2

BEGIN SECTION : 4.2.3.2 (November, 1976)

AUTHOR: M.BAKKER.

INSTITUTE: MATHEMATICAL CENTRE, AMSTERDAM.

RECEIVED: 760131.

BRIEF DESCRIPTION:

    THIS SECTION CONTAINS THE FOLLOWING PROCEDURES:

    (1)  GSS JAC WGHTS:

    GIVEN THE TWO PARAMETERS ALFA AND BETA,THIS PROCEDURE
    CALCULATES THE N ZEROS OF THE N-TH JACOBI POLYNOMIAL
    AND THE CORRESPONDING GAUSS-CHRISTOFFEL NUMBERS NEEDED FOR
    THE N-POINT GAUSS-JACOBI QUADRATURE OVER [-1,+1]
    WITH WEIGHT FUNCTION

        W(X) = (1-X)**ALFA*(1+X)**BETA;

    (2)  GSS LAG WGHTS:

    GIVEN THE PARAMETER ALFA,THIS PROCEDURE
    CALCULATES THE N ZEROS OF THE N-TH LAGUERRE POLYNOMIAL
    AND THE GAUSS-CHRISTOFFEL NUMBERS NEEDED FOR THE
    N-POINT GAUSS-LAGUERRE QUADRATURE OF F(X) OVER
    (0, INFINITY) WITH RESPECT TO THE WEIGHT FUNCTION

        W(X) = X**ALFA*EXP(-X).

    THESE PROCEDURES CAN BE USED FOR GAUSSIAN QUADRATURE-
    RULES OF THE JACOBI AND LAGUERRE TYPE.LET THE WEIGHT
    FUNCTION W(X) AND THE INTERVAL(A,B) DETERMINE THE
    SYSTEM OF POLYNOMIALS ORTHOGONAL ON (A,B) WITH RESPECT
    TO W(X).THEN THE N-POINT GAUSSIAN QUADRATURE RULE
    APPROXIMATES THE INTEGRAL
                TO X=B
               INTEGRAL F(X) W(X) DX
               FROM X=A
    BY THE EXPRESSION
                   J=N
                   SUM  W[J] F(X[J])
                   J=1
    WHERE THE ABSCISSAS X[J] ARE THE ZEROS OF THE N-TH
    POLYNOMIAL AND W[J] ARE THE CORRESPONDING GAUSS-CHRISTOFFEL
    NUMBERS.

KEYWORDS:

    GAUSSIAN QUADRATURE,
    ZEROS OF ORTHOGONAL POLYNOMIALS,
    GAUSS-CHRISTOFFEL NUMBERS,
    GAUSSIAN WEIGHTS.

LANGUAGE: ALGOL 60.

REFERENCES:

    [1] M.ABRAMOWITZ AND I.A. STEGUN.
        HANDBOOK OF MATHEMATICAL FUNCTIONS, CH.22,

    [2] J.STOER,
        EINFUEHRUNG IN DIE NUMERISCHE MATHEMATIK 1,
        SPRINGER VERLAG, BERLIN, HEIDELBERG, GOETTINGEN.


SUBSECTION: GSS JAC WGHTS.

CALLING SEQUENCE:

    THE DECLARATION OF THE PROCEDURE IN THE CALLING PROGRAM READS:

    "PROCEDURE" GSS JAC WGHTS(N, ALFA, BETA, X, W);
    "VALUE" N, ALFA, BETA;
    "INTEGER" N; "REAL" ALFA, BETA; "ARRAY" X, W;
    "CODE" 31425;

    THE MEANING OF THE FORMAL PARAMETERS IS:
    N:  <ARITHMETIC EXPRESSION>;
        THE UPPER BOUND OF THE ARRAYS X AND W; N>=1;
    ALFA, BETA:  <ARITHMETIC EXPRESSION>;
        THE PARAMETERS OF THE WEIGHT FUNCTION FOR
        THE JACOBI POLYNOMIALS; ALFA, BETA > -1;
    X;  <ARRAY IDENTIFIER>;
        "ARRAY" X[1:N];
        EXIT: X[I] IS THE I-TH ZERO OF THE N-TH JACOBI POLYNOMIAL;
    W:  <ARRAY IDENTIFIER>;
        "ARRAY" W[1:N];
        EXIT: W[I] IS THE GAUSS-CHRISTOFFEL NUMBER
        ASSOCIATED WITH THE I-TH ZERO OF THE N-TH JACOBI POLYNOMIAL.

PROCEDURES USED:

    GAMMA          = CP 35061;
    ALL JAC ZER    = CP 31370.

REQUIRED CENTRAL MEMORY:

    TWO AUXILIARY ARRAYS OF N REALS ARE USED.

RUNNING TIME: ROUGHLY PROPORTIONAL TO N CUBED.

METHOD AND PERFORMANCE:

    AS IS WELL-KNOWN,THE GAUSSIAN QUADRATURE RULES ARE
    BASED ON THE ZEROS OF ORTHOGONAL POLYNOMIALS.
    PROCEDURES FOR THE COMPUTATION OF THESE ZEROS CAN
    BE FOUND IN SECTION 3.6.2.
    AFTER THE COMPUTATION OF THE ZEROS OF THE JACOBI POLYNOMIAL
    THE GAUSSIAN WEIGHTS ARE COMPUTED OF THE FORMULA
                   J=N-1
          W[I]=1/(  SUM   P(J, ALFA, BETA, X[I])**2)
                   J=0
    WHERE P(J, ALFA, BETA, X[I]) IS THE J-TH ORTHONORMAL
    JACOBI POLYNOMIAL;SEE FURTHER [2],CH.III.

EXAMPLE OF USE:

    THE PROGRAM

    "BEGIN""COMMENT" EVALUATION OF THE INTEGRAL
      TO X=1
     INTEGRAL  (1+X)**2 * (1-X) * EXP(X) DX
     FROM X=-1
    BY MEANS OF FIVE POINT GAUSS-JACOBI QUADRATURE.
    THE EXACT VALUE IS 2*EXP(1)-10/EXP(1);
    "REAL" ALFA, BETA, INT; "INTEGER" N; "ARRAY" X, W[1:5];
    "REAL" "PROCEDURE" F(X); "VALUE" X; "REAL" X; F:=EXP(X);
    ALFA:= 1; BETA:= 2; N:= 5; INT:= 0;
    GSS JAC WGHTS( N, ALFA, BETA, X, W);
    "FOR" N:= 1 "STEP" 1 "UNTIL" 5 "DO" INT:= INT + W[N] * F(X[N]);
    OUTPUT(61, "(" /, 4B+D. 4D"+ZD")", INT - 2 * EXP(1) + 10 / EXP(1))
    "END"

    PRINTS THE FOLOWING RESULT:

     -1.5932"-10


SUBSECTION: GSS LAG WGHTS.

CALLING SEQUENCE:

    THE DECLARATION OF THE PROCEDURE IN THE CALLING PROGRAM READS:

    "PROCEDURE" GSS LAG WGHTS (N, ALFA, X, W);
    "VALUE" N, ALFA;
    "INTEGER" N; "REAL" ALFA;  "ARRAY" X, W;
    "CODE" 31427;

    THE MEANING OF THE FORMAL PARAMETERS IS:
    N:  <ARITHMETIC EXPRESSION>;
        THE UPPER BOUND OF THE ARRAYS X AND W; N>=1;
    ALFA:  <ARITHMETIC EXPRESSION>;
        THE PARAMETER OF THE WEIGHT FUNCTION FOR THE
        LAGUERRE POLYNOMIALS;
        ALFA>-1;
    X:  <ARRAY IDENTIFIER>;
        "ARRAY" X[1: N];
        EXIT:  X[I] IS THE I-TH ZERO OF THE N-TH
        LAGUERRE POLYNOMIAL;
    W:  <ARRAY IDENTIFIER>;
        "ARRAY" W[1: N];
        EXIT:  W[I] IS THE GAUSSIAN WEIGHT CORRESPONDING
        WITH THE I-TH ZERO OF THE N-TH LAGUERRE POLYNOMIAL.

PROCEDURES USED:

    GAMMA          = CP 35061,
    ALL LAG ZER    = CP 31371.

REQUIRED CENTRAL MEMORY:

    TWO AUXILIARY ARRAYS OF N REALS ARE USED.

RUNNING TIME:

    ROUGHLY PROPORTIONAL TO N CUBED.

METHOD AND PERFORMANCE:

    THE ZEROS AND WEIGHTS ARE COMPUTED IN THE SAME
    WAY AS IN THE PROCEDURE GSS JAC WGHTS.

EXAMPLE OF USE:

    THE PROGRAM

    "BEGIN" "COMMENT" COMPUTATION OF THE INTEGRAL FROM 0 TO INFINITY OF
       SIN(X)*EXP(-X) BY MEANS OF A TEN POINT GAUSS-LAGUERRE
       QUADRATURE.THE EXACT VALUE IS 0.5;
       "REAL" INT;"INTEGER" N;"ARRAY" X, W[1:10];
       "REAL""PROCEDURE" F(X); "VALUE"X; "REAL"X; F:=SIN(X);
       GSS LAG WGHTS(10, 0, X, W);  INT:=0;
       "FOR" N:=10 "STEP" -1 "UNTIL" 1 "DO" INT:= INT + W[N] * F(X[N]);
       OUTPUT(61, "("-D.4D"-ZD")", INT-0.5)
     "END"

     PRINTS THE RESULT:

     2.0497" -7

SOURCE TEXTS:
"CODE" 31425;
"CODE" 31427;