More efficient methods of approximating Bessel functions of the second kind

49 Views Asked by At

Looking at Bessel functions I see that Bessel functions of the first kind can be described by the equations

$$J_a(x)=\sum_{m=0}^\infty\frac{(-1)^m}{m!\Gamma(m+a+1)}\left(\frac{x}{2}\right)^{2m+a}$$

and Bessel functions of the second kind can be described by the equation

$$Y_a=\frac{J_a(x)\cos(a\pi)-J_{-a}(x)}{\sin(a\pi)}$$

in the case of $a$ being a non integer and by

$$Y_n(x)=\lim_{n\rightarrow{a}}Y_a(x)$$

Based on this information the most obvious method for approximating a Bessel function of the second kind, with $n$ being an integer value, is to set $a$ to a value very close to the integer value $n$ I want to approximate, and approximate $J_a(x)$ and $J_{-a}(x)$ as finite sums with many terms.

I found that setting $a=0.99999999$

and

$$J_a(x)\approx\sum_{m=0}^{25}\frac{(-1)^m}{m!\Gamma(m+a+1)}\left(\frac{x}{2}\right)^{2m+a}$$

seems to be accurate to 6 significant figures $Y_1(x)$ in the range of $6.8/1999$ to $6.8$ for values, for which I compared my approximations to answers in Wolfram Alpha. Similarly I found that setting $a=0.000000001$ gives a very good approximation for values of $Y_0(x)$.

I found however that if I try this same approach to approximate $Y_n(x)$ then even if I set

$$J_a(x)\approx\sum_{m=0}^{90}\frac{(-1)^m}{m!\Gamma(m+a+1)}\left(\frac{x}{2}\right)^{2m+a}$$ and set the new $a$ to a number closer to $2$ than the first $a$ was to $1$ I can't even get an accuracy of $1$ significant figure.

I also found that $$\left(\frac{Y_1(x)}{x}\right)'=\frac{Y_2(x)}{x}$$ however even using a very small $\Delta{x}$ to approximate the derivative of $\frac{Y_1(x)}{x}$, such as $\Delta{x}=0.00000001$ at most gives me one significant figure of $\frac{Y_2(x)}{x}$

I also found trying to use a sum, such as

$$Y_a(x)\approx\sum_{m=0}^k\left(\frac{\cos(a\pi)(-1)^m}{\sin(a\pi)m!\Gamma(m+a+1)}\left(\frac{x}{2}\right)^{2m+a}-\frac{(-1)^m}{\sin(a\pi)m!\Gamma(m-a+1)}\left(\frac{x}{2}\right)^{2m-a}\right)$$

to approximate $Y_2(x)$ doesn't seem to help me get an accurate approximation of values.

So is there a more efficient way to approximate $Y_n(x)$ for integer values greater than $1$?