Miller's recurrence algorithm is a procedure for the backward calculation of a rapidly decreasing solution of a three-term recurrence relation developed by J. C. P. Miller. It was originally developed to compute tables of the modified Bessel function but also applies to Bessel functions of the first kind and has other applications such as computation of the coefficients of Chebyshev expansions of other special functions.
Many families of special functions satisfy a recurrence relation that relates the values of the functions of different orders with common argument
x
The modified Bessel functions of the first kind
In(x)
In-1(x)=
2n | |
x |
In(x)+In+1(x)
Kn(x)
Kn-1(x)=
2n | |
x |
Kn(x)+Kn+1(x)
The first solution decreases rapidly with
n
n
To compute the terms of a recurrence
a0
aN
M
N
aM
aM+1
aM-1
aM-2
a0
In the example of the modified Bessel functions, a suitable normalizing relation is a summation involving the even terms of the recurrence:
I0(x)+2\sum
infty | |
m=1 |
mI | |
(-1) | |
2m |
(x)=1
aM+1
Finally, it is confirmed that the approximation error of the procedure is acceptable by repeating the procedure with a second choice of
M
a0
aN
M
aM
In contrast to Miller's algorithm, attempts to apply the recurrence relation in the forward direction starting from known values of
I0(x)
I1(x)
Olver and Gautschi analyses the error propagation of the algorithm in detail.
For Bessel functions of the first kind, the equivalent recurrence relation and normalizing relationship are:
Jn-1(x)=
2n | |
x |
Jn(x)-Jn+1(x)
J0(x)+2\sum
infty | |
m=1 |
J2m(x)=1
The algorithm is particularly efficient in applications that require the values of the Bessel functions for all orders
0 … N
x
N+1