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}