0
$\begingroup$

There are some functions implemented in the Wolfram Language related to Airy functions. For example, AiryAi, AiryAiZero or AiryAiPrime, etc.

How do I implement the AiryAiPrimeZero and AiryBiPrimeZero functions?

I've only found this website related to the problem. This question is kind of related to my previous question.

$\endgroup$

1 Answer 1

2
$\begingroup$

Using the expressions derived in this paper, we have the following:

SetAttributes[aiPrimeZero, Listable]; 
aiPrimeZero[s_Integer, prec_: MachinePrecision] := With[{t = N[3 π (4 s - 3)/8, prec]}, 
  FixedPoint[# - AiryAiPrime[#]/(# AiryAi[#]) &,
             -t^(2/3) Fold[#1/t^2 + #2 &,
                           {18683371/1244160, -181223/207360, 35/288, -7/48, 1}]]]

SetAttributes[biPrimeZero, Listable]; 
biPrimeZero[s_Integer, prec_: MachinePrecision] := With[{t = N[3 π (4 s - 1)/8, prec]}, 
  FixedPoint[# - AiryBiPrime[#]/(# AiryBi[#]) &,
             -t^(2/3) Fold[#1/t^2 + #2 &,
                           {18683371/1244160, -181223/207360, 35/288, -7/48, 1}]]]

Using biPrimeZero[] as an example,

biPrimeZero[Range[10], 20]
   {-2.2944396826141232466, -4.0731550890718282156, -5.5123957296635994963,
    -6.7812944459903053900, -7.9401786891685789267, -9.0195833587942390674,
    -10.0376963349085458018, -11.0064626677122899404, -11.934261645014844663,
    -12.827258309177217640}

With aiPrimeZero[], aiPrimeZero[1] unfortunately does not return a result close to the actual first root of AiryAiPrime[]; the other roots, however, do well:

aiPrimeZero[Range[2, 10], 20]
   {-3.2481975821798365379, -4.8200992111787356394, -6.1633073556394865476,
    -7.3721772550477701771, -8.4884867340197221329, -9.5354490524335474707,
    -10.5276603969574072820, -11.4750566334802452949, -12.384788371845747325}
$\endgroup$

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge you have read our privacy policy.

Not the answer you're looking for? Browse other questions tagged or ask your own question.