NUMAL Section 6.10.3
BEGIN SECTION : 6.10.3 (December, 1978)
AUTHOR: M. BAKKER.
INSTITUTE: MATHEMATICAL CENTRE.
BRIEF DESCRIPTION:
THIS SECTION CONTAINS THE PROCEDURES
SPHER BESS J:
THIS PROCEDURE CALCULATES THE SPHERICAL BESSEL FUNCTIONS
J[K+.5](X)*SQRT(PI/(2*X)),K=0, ..., N, WHERE J[K+.5](X)
DENOTES THE BESSEL FUNCTION OF THE FIRST KIND OF ORDER K+.5;
X>= 0;
SPHER BESS Y:
THIS PROCEDURE CALCULATES THE SPHERICAL BESSEL FUNCTIONS
Y[K+.5](X)*SQRT(PI/(2*X)), K=0, ..., N, WHERE Y[K+.5](X)
DENOTES THE BESSEL FUNCTION OF THE THIRD KIND OF ORDER K+.5;
X SHOULD BE POSITIVE;
SPHER BESS I:
THIS PROCEDURE CALCULATES THE MODIFIED SPHERICAL BESSEL
FUNCTIONS I[K+.5](X)*SQRT(PI/(2*X))), K=0, ..., N,
WHERE I[K+.5](X) DENOTES THE MODIFIED BESSEL FUNCTION OF THE
FIRST KIND OF ORDER K+.5; X>=0;
NONEXP SPHER BESS I:
THIS PROCEDURE CALCULATES THE MODIFIED SPHERICAL BESSEL
FUNCTIONS MULTIPIED BY EXP(-X)
EXP(-X)*I[K+.5](X)*SQRT(PI/(2*X)), K=0, ...,N,
WHERE I[K+.5](X) DENOTES THE MODIFIED BESSEL FUNCTION
OF THE FIRST KIND OF ORDER K+.5; X>= 0;
SPHER BESS K:
THIS PROCEDURE CALCULATES THE MODIFIED SPHERICAL BESSEL
FUNCTIONS
K[I+.5](X)*SQRT(PI/(2*X)), I=0, ...,N,
WHERE K[I+.5](X) DENOTES THE MODIFIED BESSEL FUNCTION
OF THE THIRD KIND OF ORDER I+.5; X>0;
NONEXP SPHER BESS K:
THIS PROCEDURE CALCULATES THE MODIFIED SPHERICAL BESSEL
FUNCTIONS MULTIPLIED BY EXP(+X)
EXP(+X)*K[I+.5](X)*SQRT(PI/(2*X)), I=0, ..., N,
WHERE K[I+.5](X) DENOTES THE MODIFIED BESSEL
FUNCTION OF THE THIRD KIND OF ORDER I+.5; X>0;
KEYWORDS:
BESSEL FUNCTIONS,
SPHERICAL BESSEL FUNCTIONS,
MODIFIED SPHERICAL BESSEL FUNCTIONS.
REFERENCES:
[1]. ABRAMOWITZ, M., AND STEGUN, I. (EDS),
HANDBOOK OF MATHEMATICAL FUNCTIONS WITH FORMULAS, GRAPHS AND
MATHEMATICAL TABLES.
APPL. MATH. SER. 55, U.S. GOVT. PRINTING OFFICE,
WASHINGTON, D.C. , 1974.
[2]. GAUTSCHI, W., COMPUTATIONAL ASPECTS OF
THREE TERM RECURRENCE RELATIONS.
SIAM REVIEW, VOLUME 9(1967), NUMBER 1, P.24 FF.
SUBSECTION: SPHER BESS J.
CALLING SEQUENCE:
THE HEADING OF THE PROCEDURE READS:
"PROCEDURE" SPHER BESS J (X, N, J); "VALUE" X, N;
"REAL" X; "INTEGER" N; "ARRAY" J;
"CODE" 35150;
THE MEANING OF THE FORMAL PARAMETERS IS:
X: < ARITHMETIC EXPRESSION >;
THE VALUE OF THE ARGUMENT; X > = 0;
N: < ARITHMETIC EXPRESSION >;
THE UPPER BOUND OF THE INDICES OF THE ARRAY J; N > = 0;
J: < ARRAY IDENTIFIER >;
"ARRAY" J[0:N];
EXIT: J[K] HAS THE VALUE OF THE SPHERICAL BESSEL FUNCTION
J[K+.5](X) * SQRT(PI/(2*X)), 0< = K < = N;
PROCEDURES USED: START = CP 35185.
REQUIRED CENTRAL MEMORY: NO AUXILIARY ARRAYS ARE DECLARED.
METHOD AND PERFORMANCE:
AT FIRST THE RATIO OF TWO CONSEQUENT ARRAY ELEMENTS
IS COMPUTED BY MEANS OF A BACKWARD RECURRENCE
FORMULA USING MILLER 'S METHOD (SEE[2, P.46-52])
AND HENCE ALL THE ARRAY ELEMENTS ARE COMPUTED SINCE
THE ZEROTH ELEMENT IS KNOWN TO BE SIN(X)/X.
THE STARTING VALUE IS COMPUTED BY START.
RUNNING TIME:
ROUGHLY PROPERTIONAL TO THE MAXIMUM OF X AND N.
EXAMPLE OF USE:
THE PROGRAM
"BEGIN" "REAL" X ; "ARRAY" J[0:2]; "INTEGER" N;
X:= 1.5; N:= 2; SPHER BESS J(X, N, J);
OUTPUT(61, "("/, "("X=")" D.D, B"("N=")"D,/,
3(3B-.14D"-ZD)")", X, N, J[0], J[1], J[2])
"END"
PRINTS THE FOLLOWING RESULTS:
X=1.5 N=2
.66499665773603"0 .3961729707122"0 .12734928368841"0
SUBSECTION: SPHER BESS Y.
CALLING SEQUENCE:
THE HEADING OF THE PROCEDURE READS:
"PROCEDURE" SPHER BESS Y(X, N, Y); "VALUE" X, N;
"REAL" X; "INTEGER" N; "ARRAY" Y;
"CODE" 35151;
THE MEANING OF THE FORMAL PARAMETERS IS :
X: < ARITHMETIC EXPRESSION >;
THE ARGUMENT OF THE BESSEL FUNCTIONS; X > 0;
N: < ARITHMETIC EXPRESSION >;
THE UPPER BOUND OF THE INDICES OF THE ARRAY Y; N > = 0;
Y: < ARRAY IDENTIFIER >;
"ARRAY" Y[0:N];
EXIT: Y[K] HAS THE VALUE OF THE K-TH SPHERICAL
BESSEL FUNCTION OF THE SECOND KIND;
PROCEDURES USED: NONE.
REQUIRED CENTRAL MEMORY: NO AUXILIARY ARRAYS ARE DECLARED.
METHOD AND PERFORMANCE:
Y[0] AND Y[1] ARE GIVEN IN [1, P.438, FORMULA 10.1.12]
AND Y[2], ..., Y[N] ARE COMPUTED BY USING THE
RECURRENCE FORMULA
Y[K]:= ((2*K-1)/X) * Y[K-1] - Y[K-2], K > = 2.
EXAMPLE OF USE:
THE PROGRAM
"BEGIN" "REAL" X; "INTEGER" N; "ARRAY" Y[0:2];
X:= 1.5707 96326 79489; "COMMENT" X= PI/2; N:= 2;
SPHER BESS Y(X, N, Y);
OUTPUT(61, "("2(4B-.10D"-ZD), /,
3(4B-.10D"-ZD)")", X, N, Y)
"END"
PRINTS THE FOLLOWING RESULTS:
.15707963271"1 .2000000000"1
-.6223649549"-13 -.6366197724"0 -.1215854204"1
SUBSECTION: SPHER BESS I.
CALLING SEQUENCE:
THE HEADING OF THE PROCEDURE READS:
"PROCEDURE" SPHER BESS I(X, N, I); "VALUE" X, N;
"REAL" X; "INTEGER" N; "ARRAY" I;
"CODE" 35152;
THE MEANING OF THE FORMAL PARAMETERS IS:
X: < ARITHMETIC EXPRESSION >;
THE ARGUMENT OF THE BESSEL FUNCTIONS; X > = 0;
N: < ARITHMETIC EXPRESSION >;
THE UPPER BOUND OF THE INDICES OF THE ARRAY I; N > = 0;
I: < ARRAY IDENTIFIER >;
"ARRAY" I[0:N];
EXIT: I[K] HAS THE VALUE OF THE MODIFIED SPHERICAL
BESSEL FUNCTION AS DESCRIBED IN [1, CH.10.2].
METHOD AND PERFORMANCE:
AT FIRST THE NONEXPONENTIAL MODIFIED SPHERICAL BESSEL FUNCTIONS
ARE COMPUTED BY USING THE PROCEDURE NONEXP SPHER BESS I;
AFTERWARDS THEY ARE MULTIPLIED BY EXP(X).
REQUIRED CENTRAL MEMORY: NO AUXILIARY ARRAYS ARE DECLARED.
PROCEDURES USED: NONEXP SPHER BESS I = CP 35154.
EXAMPLE OF USE:
THE PROGRAM SHOWS THAT THE RESULTS OF SPHER BESS I AND
NONEXP SPHER BESS I DIFFER ONLY BY A FACTOR EXP(X):
"BEGIN" "REAL" X, EXPX; "INTEGER" N; "ARRAY" I1, I2[0:3];
X:=1; EXPX:= EXP(X); N:= 3; SPHER BESS I(X, N,I1);
NONEXPSPHER BESS I(X, N, I2);"FOR" N:=0, 1, 2, 3 "DO"
OUTPUT(61, "("/ZD, 2(5B-.14D"-ZD)")", N, I1[N], I2[N]*EXPX)
"END"
RESULTS:
0 .11752011936438" 1 .11752011936438" 1
1 .36787944117144" 0 .36787944117144" 0
2 .71562870129474"-1 .71562870129474"-1
3 .10065090524070"-1 .10065090524070"-1
SUBSECTION: NONEXP SPHER BESS I.
CALLING SEQUENCE:
THE HEADING OF THE PROCEDURE READS:
"PROCEDURE" NONEXP SPHER BESS I(X, N, I);
"VALUE" X, N; "REAL" X; "INTEGER" N; "ARRAY" I;
"CODE" 35154;
THE MEANING OF THE FORMAL PARAMETERS IS:
X: <ARITHMETIC EXPRESSION>;
THE ARGUMENT OF THE BESSEL FUNCTIONS; X >= 0;
N: <ARITHMETIC EXPRESSION>;
THE UPPER BOUND OF THE INDICES OF THE ARRAY I; N >= 0;
I: <ARRAY IDENTIFIER>;
"ARRAY" I[0:N];
EXIT: I[K] HAS THE VALUE OF THE FUNCTION
I[K+.5](X)*EXP(-X)*SQRT(PI/(2*X)), K=0, ..., N, N >=0.
PROCEDURES USED: SINH = CP 35111,
START = CP 35185.
REQUIRED CENTRAL MEMORY: NO AUXILIARY ARRAYS ARE DECLARED.
METHOD AND PERFORMANCE:
THE RATIO OF TWO SUBSEQUENT ELEMENTS IS COMPUTED USING A BACKWARD
RECURRENCE FORMULA ACCORDING MILLER'S METHOD (SEE[2]); SINCE THE
ZEROETH ELEMENT IS KNOWN TO BE (1-EXP(-2*X))/(2*X), THE OTHER
ELEMENTS FOLLOW IMMEDIATELY.THE STARTING VALUE IS COMPUTED BY START.
EXAMPLE OF USE: SEE SPHER BESS I.
SUBSECTION: SPHER BESS K.
CALLING SEQUENCE :
THE HEADING OF THE PROCEDURE READS:
"PROCEDURE" SPHER BESS K(X, N, K); "VALUE" X, N;
"REAL" X; "INTEGER" N; "ARRAY" K;
"CODE" 35153;
THE MEANING OF THE FORMAL PARAMETERS IS:
X: < ARITHMETIC EXPRESSION >;
THE ARGUMENT VALUE; X > 0;
N: < ARITHMETIC EXPRESSION >;
THE UPPER BOUND OF THE INDICES OF THE ARRAY K; N > = 0;
K: < ARRAY IDENTIFIER >;
"ARRAY" K[0:N];
EXIT: K[J] HAS THE VALUE OF THE J-TH MODIFIED
SPHERICAL BESSEL FUNCTION OF THE THIRD KIND,
0 < = J < = N.
PROCEDURES USED: NON EXP SPHER BESS K = CP 35155.
REQUIRED CENTRAL MEMORY: NO AUXILIARY ARRAYS ARE DECLARED.
METHOD AND PERFORMANCE:
AT FIRST THE NONEXPONENTIAL MODIFIED SPHERICAL BESSEL FUNCTIONS
OF THE THIRD KIND ARE COMPUTED BY THE PROCEDURE NONEXP SPHER BESS K
; AFTERWARDS THEY ARE MULTIPLIED BY EXP(-X).
EXAMPLE OF USE:
THE FOLLOWING PROGRAM SHOWS THAT THE RESULTS OF THE PROCEDURES
SPHER BESS K EN NONEXP SPHER BESS K DIFFER ONLY BY A FACTOR EXP(X);
"BEGIN" "REAL" X, EXPX; "INTEGER" N; "ARRAY" K1, K2[0:3];
X:= 2; EXPX:= EXP(-X); N:= 3; SPHER BESS K (X, N, K1);
NONEXPSPHER BESS K (X, N, K2); "FOR" N:= 0, 1, 2, 3 "DO"
OUTPUT(61, "("/D, 2(5B-.14D"-ZD)")", N, K1[N], K2[N]*EXPX)
"END"
RESULTS:
0 .10629208289691"0 .10629208289691"0
1 .15943812434536"0 .15943812434536"0
2 .34544926941495"0 .34544926941494"0
3 .10230612978828"1 .10230612978828"1
SUBSECTION: NONEXP SPHER BESS K.
CALLING SEQUENCE:
THE HEADING OF THE PROCEDURE READS:
"PROCEDURE" NON EXP SPHER BESS K(X, N, K);
"VALUE" X, N; "REAL" X; "INTEGER" N; "ARRAY" K;
"CODE" 35155;
THE MEANING OF THE FORMAL PARAMETERS IS:
X: <ARITHMETIC EXPRESSION>;
THE ARGUMENT OF THE BESSEL FUNCTIONS; X > 0;
N: <ARITHMETIC EXPRESSION>;
THE UPPER BOUND OF THE INDICES OF THE ARRAY K; N >= 0;
K: <ARRAY IDENTIFIER>;
"ARRAY" K[0:N];
EXIT: K[J] HAS THE VALUE OF THE FUNCTION
K[J+.5](X)*EXP(X)*SQRT(PI/(2*X)), J=0,...,N.
PROCEDURES USED: NONE.
REQUIRED CENTRAL MEMORY : NO AUXILIARY ARRAYS ARE DECLARED.
METHOD AND PERFORMANCE:
THE FUNCTIONS ARE COMPUTED BY USING THE (NUMERICALLY STABLE)
RECURRENCE FORMULA : K[J]=((2*J-1)/X)*K[J-1]+K[J-2], J >=2,
K[0]=PI/(2*X), K[1]=K[0]*(1+1/X) .
EXAMPLE OF USE: SEE SPHER BESS K.
SOURCE TEXT(S):
"CODE" 35150;
"CODE" 35151;
"CODE" 35152;
"CODE" 35153;
"CODE" 35154;
"CODE" 35155;