NUMAL Section 6.9.1
BEGIN SECTION : 6.9.1 (December, 1978)
AUTHORS: M. BAKKER AND N.M. TEMME.
INSTITUTE: MATHEMATICAL CENTRE.
RECEIVED: 780601.
BRIEF DESCRIPTION:
THIS SECTION CONTAINS THE FOLLOWING PROCEDURES:
BESS J0;
COMPUTES THE ORDINARY BESSEL FUNCTION OF THE FIRST KIND OF
ORDER ZERO WITH ARGUMENT X;
BESS J1;
COMPUTES THE ORDINARY BESSEL FUNCTION OF THE FIRST KIND OF
ORDER ONE WITH ARGUMENT X;
BESS J;
GENERATES AN ARRAY OF ORDINARY BESSEL FUNCTIONS OF THE FIRST
KIND OF ORDER L (L = 0,...,N) WITH ARGUMENT X;
BESS Y01;
COMPUTES THE ORDINARY BESSEL FUNCTIONS OF THE SECOND KIND OF
ORDERS ZERO AND ONE WITH ARGUMENT X; X > 0;
BESS Y;
GENERATES AN ARRAY OF ORDINARY BESSEL FUNCTIONS OF THE SECOND
KIND OF ORDER L ( L = 0,...N) WITH ARGUMENT X; X> 0;
BESS PQ0;
THIS PROCEDURE IS AN AUXILIARY PROCEDURE FOR THE COMPUTATION OF
THE ORDINARY BESSEL FUNCTIONS OF ORDER ZERO FOR LARGE VALUES OF
THEIR ARGUMENT;
BESS PQ1;
THIS PROCEDURE IS AN AUXILIARY PROCEDURE FOR THE COMPUTATION OF
THE ORDINARY BESSEL FUNCTIONS OF ORDER ONE FOR LARGE VALUES OF
THEIR ARGUMENT.
KEYWORDS: BESSEL FUNCTION,
ORDINARY BESSEL FUNCTION OF THE FIRST KIND,
ORDINARY BESSEL FUNCTION OF THE SECOND KIND.
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. (1964).
[2] C.W. CLENSHAW,
CHEBYSHEV SERIES FOR MATHEMATICAL FUNCTIONS, NAT. PHYS. LAB.
MATH. TABLES, VOL. 5, HER MAJESTY'S STATIONARY OFFICE,
LONDON (1962).
[3] W. GAUTSCHI,
COMPUTATIONAL ASPECTS OF THREE TERM RECURRENCE RELATIONS,
SIAM REVIEW, VOL. 9, 24-82 (1967).
SUBSECTION: BESS J0.
CALLING SEQUENCE:
THE HEADING OF THE PROCEDURE READS :
"REAL" "PROCEDURE" BESS J0(X); "VALUE" X; "REAL" X;
"CODE" 35160;
BESS J0 DELIVERS THE ORDINARY BESSEL FUNCTION OF THE FIRST KIND OF
ORDER ZERO WITH ARGUMENT X;
THE MEANING OF THE FORMAL PARAMETERS IS:
X: <ARITHMETIC EXPRESSION>;
THE ARGUMENT OF THE BESSEL FUNCTION.
PROCEDURES USED:
BESS PQ0 = CP 35165.
REQUIRED CENTRAL MEMORY:
NO ARRAYS ARE USED.
RUNNING TIME:
FOR ABS(X) < 8: LESS THAN 3 MS,
FOR ABS(X) >= 8: LESS THAN 5 MS, ON THE CYBER 73/28.
METHOD AND PERFORMANCE:
CHEBYSHEV SERIES FROM [2].
EXAMPLE OF USE:
THE PROGRAM
"BEGIN" "REAL" X;
X:= 1; OUTPUT(61,"("/,D,6B-.14D "-ZD")",
X, BESS J0(X))
"END"
PRINTS THE FOLLOWING RESULTS:
1 .76519768655794" 0
SUBSECTION: BESS J1.
CALLING SEQUENCE:
THE HEADING OF THE PROCEDURE READS:
"REAL" "PROCEDURE" BESS J1(X); "VALUE" X; "REAL" X;
"CODE" 35161;
BESS J1 DELIVERS THE ORDINARY BESSEL FUNCTION OF THE FIRST KIND OF
ORDER ONE WITH ARGUMENT X;
THE MEANING OF THE FORMAL PARAMETERS IS:
X: <ARITHMETIC EXPRESSION>;
THE ARGUMENT OF THE BESSEL FUNCTION.
PROCEDURES USED:
BESS PQ1 = CP 35166.
REQUIRED CENTRAL MEMORY:
NO ARRAYS ARE USED.
RUNNING TIME:
FOR ABS(X) < 8: LESS THAN 3 MS,
FOR ABS(X) >= 8: LESS THAN 5 MS, ON THE CYBER 73/28.
METHOD AND PERFORMANCE:
CHEBYSHEV SERIES FROM [2].
EXAMPLE OF USE:
THE PROGRAM
"BEGIN" "REAL" X;
X:= 1; OUTPUT(61,"("/,D,6B-.14D "-ZD")",
X, BESS J1(X))
"END"
DELIVERS THE FOLLOWING RESULTS:
1 .44005058574492" 0
SUBSECTION: BESS J.
CALLING SEQUENCE:
THE HEADING OF THE PROCEDURE READS :
"PROCEDURE" BESS J(X,N,J); "VALUE" X,N;
"INTEGER" N; "REAL" X; "ARRAY" J;
"CODE" 35162;
THE MEANING OF THE FORMAL PARAMETERS IS:
X: <ARITHMETIC EXPRESSION>;
THE ARGUMENT OF THE BESSEL FUNCTIONS;
N: <ARITHMETIC EXPRESSION>;
THE UPPER BOUND OF THE INDICES OF ARRAY J; N >= 0;
J: <ARRAY IDENTIFIER>;
"ARRAY" J[0:N];
EXIT: J[L] IS THE ORDINARY BESSEL FUNCTION OF THE FIRST KIND OF
ORDER L AND ARGUMENT X.
PROCEDURES USED: START = CP 35185;
REQUIRED CENTRAL MEMORY: NO AUXILIARY ARRAYS ARE DECLARED.
RUNNING TIME:
ROUGHLY PROPORTIONAL TO THE MAXIMUM OF 1.359 * X + 72 AND N + 18.
METHOD AND PERFORMANCE: MILLER'S ALGORITHM, SEE [3].
EXAMPLE OF USE:
THE PROGRAM
THE PROGRAM
"BEGIN" "REAL" X; "ARRAY" J[0:1];
"FOR" X:= 1,5,10,25 "DO"
"BEGIN" BESS J(X,1,J);
OUTPUT(61,"("ZZ.D, 2(BB-.D"-ZD),/")",
X, J[0] - BESS J0(X),J[1] - BESS J1(X))
"END"
"END"
DELIVERS THE FOLLOWING RESULTS:
1.0 .2"-13 .2"-13
5.0 -.8"-14 -.4"-14
10.0 -.4"-14 .4"-14
25.0 -.1"-14 -.9"-15
SUBSECTION: BESS Y01.
CALLING SEQUENCE:
THE HEADING OF THE PROCEDURE READS :
"PROCEDURE" BESS Y01(X,Y0,Y1); "VALUE" X; "REAL" X,Y0,Y1;
"CODE" 35163;
THE MEANING OF THE FORMAL PARAMETERS IS:
X: <ARITHMETIC EXPRESSION>;
THE ARGUMENT OF THE BESSEL FUNCTIONS; X > 0;
Y0: <VARIABLE>;
EXIT: Y0 HAS THE VALUE OF THE ORDINARY BESSEL FUNCTION OF THE
SECOND KIND OF ORDER 0 AND ARGUMENT X;
Y1: <VARIABLE>;
EXIT: Y1 HAS THE VALUE OF THE ORDINARY BESSEL FUNCTION OF THE
SECOND KIND OF ORDER 1 AND ARGUMENT X.
PROCEDURES USED:
BESS J0 = CP 35160,
BESS J1 = CP 35161,
BESS PQ0 = CP 35165,
BESS PQ1 = CP 35166.
REQUIRED CENTRAL MEMORY: NO AUXILIARY ARRAYS ARE DECLARED.
RUNNING TIME:
ABOUT 15 MS, ON THE CYBER 73/28.
METHOD AND PERFORMANCE:
CHEBYSHEV SERIES FROM [2].
EXAMPLE OF USE:
THE PROGRAM
"BEGIN" "REAL" X,Y0,Y1;
X:= 1; BESS Y01(X,Y0,Y1);
OUTPUT(61,"("/,4BD.D,2(B-.14D"-ZD)")",X,Y0,Y1)
"END"
DELIVERS THE FOLLOWING RESULTS:
1.0 .88256964215676" -1 -.78121282130028" 0
SUBSECTION: BESS Y.
CALLING SEQUENCE:
THE HEADING OF THE PROCEDURE READS:
"PROCEDURE" BESS Y(X,N,Y); "VALUE" X,N;
"INTEGER" N; "REAL" X; "ARRAY" Y;
"CODE" 35164;
THE MEANING OF THE FORMAL PARAMETERS IS:
X: <ARITHMETIC EXPRESSION>;
THE ARGUMENT; THIS ARGUMENT SHOULD SATISFY 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[I] IS THE VALUE OF THE ORDINARY BESSEL FUNCTION OF THE
SECOND KIND OF ORDER I (I = 0,...,N) AND ARGUMENT X.
PROCEDURES USED:
BESS Y01 = CP 35163.
REQUIRED CENTRAL MEMORY: NO AUXILIARY ARRAYS ARE DECLARED.
RUNNING TIME:
DEPENDS ON N; SEE BESS Y01.
METHOD AND PERFORMANCE:
Y[0] AND Y[1] ARE COMPUTED BY USING BESS Y01 (CP 35163); THE
REMAINING Y[I] ARE COMPUTED BY USING THE RECURRENCE RELATION
Y[I+1]:= Y[I] * 2 * I/X - Y[I-1], I >= 1.
EXAMPLE OF USE:
THE PROGRAM
"BEGIN" "ARRAY" Y[0:2];
BESS Y(1,2,Y);
OUTPUT(61,"("3(-D.13D"-ZD)")", Y[0], Y[1], Y[2])
"END"
PRINTS THE FOLLOWING RESULTS:
8.8256964215676"- 2 -7.8121282130028"- 1 -1.6506826068162" 0
SUBSECTION: BESS PQ0.
CALLING SEQUENCE:
THE HEADING OF THE PROCEDURE READS:
"PROCEDURE" BESS PQ0(X,P0,Q0); "VALUE" X; "REAL" X,P0,Q0;
"CODE" 35165;
THE MEANING OF THE FORMAL PARAMETERS IS:
X: <ARITHMETIC EXPRESSION>;
THE ARGUMENT; THIS ARGUMENT SHOULD SATISFY X > 0;
P0: <VARIABLE>;
EXIT: P0 CORRESPONDS WITH THE FUNCTION P(X,0) DEFINED
IN [1,FORMULAS 9.2.5 AND 9.2.6];
Q0: <VARIABLE>;
EXIT: Q0 CORRESPONDS WITH THE FUNCTION Q(X,0) DEFINED
IN [1,FORMULAS 9.2.5 AND 9.2.6].
PROCEDURES USED:
BESS J0 = CP 35160,
BESS Y01 = CP 35163.
REQUIRED CENTRAL MEMORY:
NO ARRAYS ARE USED.
RUNNING TIME:
ABOUT 15 MS, ON THE CYBER 73/28.
METHOD AND PERFORMANCE:
FOR X >= 8 CHEBYSHEV SERIES FROM [2],
FOR X < 8 WITH BESS J0 AND BESS Y01.
EXAMPLE OF USE:
SEE SUBSECTION BESS PQ1.
SUBSECTION: BESS PQ1.
CALLING SEQUENCE:
THE HEADING OF THE PROCEDURE READS:
"PROCEDURE" BESS PQ1(X,P1,Q1); "VALUE" X; "REAL" X,P1,Q1;
"CODE" 35166;
THE MEANING OF THE FORMAL PARAMETERS IS:
X: <ARITHMETIC EXPRESSION>;
THE ARGUMENT; THIS ARGUMENT SHOULD SATISFY X > 0;
P1: <VARIABLE>;
EXIT: P1 CORRESPONDS WITH THE FUNCTION P(X,1) DEFINED
IN [1,FORMULAS 9.2.5 AND 9.2.6];
Q1: <VARIABLE>;
EXIT: Q1 CORRESPONDS WITH THE FUNCTION Q(X,1) DEFINED
IN [1,FORMULAS 9.2.5 AND 9.2.6].
PROCEDURES USED:
BESS J1 = CP 35161,
BESS Y01 = CP 35163.
REQUIRED CENTRAL MEMORY:
NO ARRAYS ARE USED.
RUNNING TIME:
ABOUT 15 MS, ON THE CYBER 73/28.
METHOD AND PERFORMANCE:
FOR X >= 8 CHEBYSHEV SERIES FROM [2],
FOR X < 8 WITH BESS J1 AND BESS Y01.
EXAMPLE OF USE:
FROM THE WRONSKIAN RELATION [1,9.1.16] IT CAN BE SHOWN THAT
P0 * P1 + Q0 * Q1 = 1, WHATEVER X. IN THE FOLLOWING PROGRAM WE
VERIFY THIS RELATION.
"BEGIN" "REAL" X,P,Q,R,S;
"FOR" X:= 1,3,5,10 "DO"
"BEGIN" BESSPQ0(X,P,Q); BESSPQ1(X,R,S);
OUTPUT(61,"("BB,D.2D"+3D")", ABS(P*R + Q*S -1))
"END"
"END"
THE RESULTS ARE:
4.97"-014 4.26"-014 5.68"-014 7.11"-015
SOURCE TEXT(S):
"CODE" 35160;
"CODE" 35161;
"CODE" 35162;
"CODE" 35163;
"CODE" 35164;
"CODE" 35165;
"CODE" 35166;