*Outdated* Please use the 'specialzeros' package instead. Left here for backwards compatibility.
The Bessel function cross product arise in problems on an annulus, and the roots of these need to be found to solve certain boundary value problems.
This function uses Olver's uniform asymptotic expansion to find an initial guess at the roots of the desired Bessel function cross product, then updates via Newton's method. The method works over a large range of radius ratio and order.
David E. Horsley (2020). ZeroBessCross (https://www.mathworks.com/matlabcentral/fileexchange/45371-zerobesscross), MATLAB Central File Exchange. Retrieved .
2 Feb 15: Now uses a better method to calculate the phase functions, so no auxiliary root finding is needed. This should give about a 2x speed-up.
Minor improvement of theta phase function approximation for small order. The initial guess for early roots when order is near zero now have a worst case relative error less than 10^(-2) rather than ~10^(-1).
File no longer requires zerobess.
25/07/14 update: The script now uses a new method based on Olver's asymptotics to generate initial guess. This fixes some missed roots when the order is very large or very small.