NUMAL Section 6.10.4
BEGIN SECTION : 6.10.4 (October, 1975)
AUTHOR : P.W.HEMKER.
CONTRIBUTOR : F.GROEN.
INSTITUTE : MATHEMATICAL CENTRE.
RECEIVED : 740620.
BRIEF DESCRIPTION :
THIS SECTION CONTAINS TWO PROCEDURES FOR THE EVALUATION OF AIRY
FUNCTIONS AND COMPUTING THEIR ZEROS. FOR THE DEFINITION OF THESE
FUNCTIONS SEE REF[1].
AIRY EVALUATES THE AIRY FUNCTIONS AI(Z) AND BI(Z) AND
THEIR DERIVATIVES.
AIRYZEROS COMPUTES THE ZEROS AND ASSOCIATED VALUES
OF THE AIRY FUNCTIONS AI(Z) AND BI(Z) AND THEIR DERIVATIVES.
KEYWORDS :
AIRY FUNCTION,
DERIVATIVE AIRY FUNCTION,
ZERO OF AIRY FUNCTION.
SUBSECTION : AIRY.
CALLING SEQUENCE :
THE HEADING OF THE PROCEDURE READS :
"PROCEDURE" AIRY(X,AI,AID,BI,BID,EXPON,FIRST);
"VALUE" X,FIRST; "BOOLEAN" FIRST;
"REAL" X,AI,AID,BI,BID,EXPON;
"CODE" 35140;
THE MEANING OF THE FORMAL PARAMETERS IS :
X: <ARITHMETIC EXPRESSION>;
ENTRY : THE REAL ARGUMENT OF THE AIRY FUNCTIONS.
AI: <VARIABLE>;
EXIT : THE VALUE OF THE AIRY
FUNCTION AI IS GIVEN BY : EXP( -EXPON ) * AI.
NOTE : IF X < 9 THEN EXPON = 0.
AID: <VARIABLE>;
EXIT : THE VALUE OF THE DERIVATIVE OF THE AIRY
FUNCTION AI IS GIVEN BY : EXP( -EXPON ) * AID.
NOTE : IF X < 9 THEN EXPON = 0.
BI: <VARIABLE>;
EXIT : THE VALUE OF THE AIRY
FUNCTION BI IS GIVEN BY : EXP( EXPON ) * BI.
NOTE : IF X < 9 THEN EXPON = 0.
BID: <VARIABLE>;
EXIT : THE VALUE OF THE DERIVATIVE OF THE AIRY
FUNCTION BI IS GIVEN BY : EXP( EXPON ) * BID.
NOTE : IF X < 9 THEN EXPON = 0.
EXPON: <VARIABLE>;
EXIT : IF X < 9 THEN 0 ELSE 2/3 * X ** (3/2).
FIRST: <BOOLEAN EXPRESSION>;
FIRST SHOULD BE "FALSE" UNLESS THE PROCEDURE IS CALLED
FOR THE FIRST TIME. IF FIRST IS "TRUE" THEN TWO OWN
ARRAYS OF COEFFICIENTS ARE BUILT UP.
PROCEDURES USED : NONE.
REQUIRED CENTRAL MEMORY : TWO OWN ARRAYS OF ORDER 10 ARE DECLARED.
RUNNING TIME : IF 2.5 <= X <= 8 THEN ABOUT 8"-3 SEC., ELSE BETWEEN
3"-3 AND 4"-3 SEC. ON THE CYBER 73/28.
LANGUAGE : ALGOL 60.
METHOD AND PERFORMANCE :
SEE REF[2] OF THE SUBSECTION AIRYZEROS (THIS SECTION).
REFERENCES :
SEE REFERENCES OF THE SUBSECTION AIRYZEROS (THIS SECTION).
EXAMPLE OF USE :
"BEGIN" "REAL" A,B,C,D,E;
AIRY(9.654894,A,B,C,D,E,"TRUE");
OUTPUT(61,"("/,"("AI (9.654894) = ")",N")",A*EXP(-E));
OUTPUT(61,"("/,"("AID(9.654894) = ")",N")",B*EXP(-E));
OUTPUT(61,"("/,"("BI (9.654894) = ")",N")",C*EXP( E));
OUTPUT(61,"("/,"("BID(9.654894) = ")",N")",D*EXP( E));
"END"
RESULTS :
AI (9.654894) = +3.2873525549165"-010
AID(9.654894) = -1.0297999323482"-009
BI (9.654894) = +1.5583887049670"+008
BID(9.654894) = +4.8010374682654"+008
SUBSECTION : AIRYZEROS.
CALLING SEQUENCE :
THE HEADING OF THE PROCEDURE READS :
"REAL" "PROCEDURE" AIRYZEROS(N,D,ZAI,VAI);
"VALUE" N,D; "INTEGER" N,D; "ARRAY" ZAI,VAI;
"CODE" 35145;
AIRYZEROS := THE N-TH ZERO OF THE SELECTED AIRY-FUNCTION.
THE MEANING OF THE FORMAL PARAMETERS IS :
N : <ARITHMETIC EXPRESSION>;
ENTRY : THE NUMBER OF ZEROS TO BE CALCULATED;
D : <ARITHMETIC EXPRESSION>;
ENTRY : AN INTEGER WHICH SELECTS THE REQUIRED AIRY
FUNCTION. D = 0, 1, 2 OR 3.
ZAI : <ARRAY IDENTIFIER>;
"ARRAY" ZAI[1 : N];
EXIT : ZAI[J] CONTAINS THE J-TH ZERO OF THE SELECTED
AIRY-FUNCTION :
IF D = 0 THEN AI(Z),
IF D = 1 THEN (D/DX) AI(X),
IF D = 2 THEN BI(X),
IF D = 3 THEN (D/DX) BI(X);
VAI : <ARRAY IDENTIFIER>;
"ARRAY" VAI[1 : N];
EXIT: VAI[J] CONTAINS THE VALUE AT X = ZAI[J] OF THE
FOLLOWING FUNCTION :
IF D = 0 THEN (D/DX) AI(X),
IF D = 1 THEN AI(X),
IF D = 2 THEN (D/DX) BI(X),
IF D = 3 THEN BI(X);
PROCEDURES USED :
AIRY = CP35140;
REQUIRED CENTRAL MEMORY : NO AUXILIARY ARRAYS ARE DECLARED.
RUNNING TIME : DEPENDENT ON THE VALUES OF N AND D. IN MOST CASES THE
RUNNING TIME IS LESS THAN N * 0.01 SEC. ON THE CYBER 73/28.
LANGUAGE : ALGOL 60.
METHOD AND PERFORMANCE :
A FIRST APPROXIMATION OF THE ZEROS OF THE SELECTED AIRY-FUNCTION IS
CALCULATED BY MEANS OF THE ASYMPTOTIC EXPANSION ( SEE THE FORMULAS
10.4.94 - 10.4.105 OF REF[1] ); THIS VALUE IS CORRECTED BY THE
(REPEATED) USE OF A QUADRATIC INTERPOLATION RULE.
THE COMPUTED ZEROS WILL SATISFY AT LEAST ONE OF THE FOLLOWING
CONDITIONS :
1: THE ABSOLUTE VALUE OF THE SELECTED AIRY-FUNCTION AT A COMPUTED
ZERO IS LESS THAN "-12. NOTE: THE VALUES OF THE AIRY-FUNCTIONS
ARE CALCULATED BY MEANS OF THE PROCEDURE AIRY (THIS SECTION).
2: THE RELATIVE PRECISION OF THE COMPUTED ZERO IS "-14.
THE ASSOCIATED VALUES ( DELIVERED IN THE ARRAY VAI ) ARE ALSO
CALCULATED BY MEANS OF THE PROCEDURE AIRY (THIS SECTION).
REFERENCES :
[1] : M.ABRAMOWITZ AND I.A.STEGUN,
HANDBOOK OF MATHMATICAL FUNCTIONS,
DOVER PUBLICATIONS, INC. NEW YORK, 1965.
[2] : R.G.GORDON,
EVALUATION OF AIRY FUNCTIONS,
THE JOURNAL OF CHEMICAL PHYSICS, VOLUME 51, 1969, PP. 23-24.
EXAMPLE OF USE :
"BEGIN" "ARRAY" ZBI,VBID[1 : 3];
OUTPUT(61,"("/"("THE THIRD ZERO OF BI(X) IS")"/,N,
/"("THE VALUE OF (D/DX)BI(X) IN THIS POINT IS")"/,N")"
,AIRYZEROS(3,2,ZBI,VBID),VBID[3])
"END"
RESULTS :
THE THIRD ZERO OF BI(X) IS
-4.8307378416626"+000
THE VALUE OF (D/DX)BI(X) IN THIS POINT IS
+8.3699101261986"-001
SOURCE TEXT(S):
"CODE" 35140;
"CODE" 35145;