Numerov's method (also called Cowell's method) is a numerical method to solve ordinary differential equations of second order in which the first-order term does not appear. It is a fourth-order linear multistep method. The method is implicit, but can be made explicit if the differential equation is linear.

Numerov's method was developed by the Russian astronomer Boris Vasil'evich Numerov.

The method

The Numerov method can be used to solve differential equations of the form

\frac{d^2 y}{dx^2} = - g(x) y(x) + s(x).

In it, three values of y_{n-1}, y_n, y_{n+1} taken at three equidistant points x_{n-1}, x_n, x_{n+1} are related as follows:

y_{n+1} \left(1 + \frac{h^2}{12} g_{n+1}\right) = 2 y_n \left(1 - \frac{5 h^2}{12} g_n\right) - y_{n-1} \left(1 + \frac{h^2}{12} g_{n-1}\right) + \frac{h^2}{12} (s_{n+1} + 10 s_n + s_{n-1}) + \mathcal{O}(h^6),

where y_n = y(x_n), g_n = g(x_n), s_n = s(x_n), and h = x_{n+1} - x_n.

Nonlinear equations

For nonlinear equations of the form

\frac{d^2 y}{dx^2} = f(x,y),

the method gives

y_{n+1} - 2 y_n + y_{n-1} = \frac{h^2}{12} (f_{n+1} + 10 f_n + f_{n-1}) + \mathcal{O} (h^6).

This is an implicit linear multistep method, which reduces to the explicit method given above if f is linear in y by setting f(x,y) = - g(x) y(x) + s(x). It achieves order-4 accuracy (Hairer, Nørsett & Wanner 1993, §III.10).

Application

In numerical physics the method is used to find solutions of the unidimensional Schrödinger equation for arbitrary potentials. An example of which is solving the radial equation for a spherically symmetric potential. In this example, after separating the variables and analytically solving the angular equation, we are left with the following equation of the radial function R(r):

\frac{d}{dr} \left(r^2 \frac{dR}{dr} \right) - \frac{2 m r^2}{\hbar^2} (V(r) - E) R(r) = l (l + 1) R(r).

This equation can be reduced to the form necessary for the application of Numerov's method with the following substitution:

u(r) = r R(r) \Rightarrow R(r) = \frac{u(r)}{r},
\frac{dR}{dr} = \frac{1}{r} \frac{du}{dr} - \frac{u(r)}{r^2} = \frac{1}{r^2} \left (r \frac{du}{dr} - u(r) \right) \Rightarrow \frac{d}{dr} \left(r^2 \frac{dR}{dr} \right) = \frac{du}{dr} + r \frac{d^2 u}{dr^2} - \frac{du}{dr} = r \frac{d^2 u}{dr^2}.

And when we make the substitution, the radial equation becomes

r \frac{d^2 u}{dr^2} - \frac{2 m r}{\hbar^2} (V(r) - E) u(r) = \frac{l (l + 1)}{r} u(r),

or

-\frac{\hbar^2}{2 m} \frac{d^2 u}{dr^2} + \left(V(r) + \frac{\hbar^2}{2 m} \frac{l (l + 1)}{r^2} \right) u(r) = E u(r),

which is equivalent to the one-dimensional Schrödinger equation, but with the modified effective potential

V_\text{eff}(r) = V(r) + \frac{\hbar^2}{2 m} \frac{l (l + 1)}{r^2} = V(r) + \frac{L^2}{2 m r^2}, \quad L^2 = l (l + 1) \hbar^2.

This equation we can proceed to solve the same way we would have solved the one-dimensional Schrödinger equation. We can rewrite the equation a little bit differently and thus see the possible application of Numerov's method more clearly:

\frac{d^2 u}{dr^2} = - \frac{2 m}{\hbar^2} (E - V_\text{eff}(r)) u(r),
g(r) = \frac{2 m}{\hbar^2} (E - V_\text{eff}(r)),
s(r) = 0.

Derivation

We are given the differential equation

y''(x) = - g(x) y(x) + s(x).

To derive the Numerov's method for solving this equation, we begin with the Taylor expansion of the function we want to solve, y(x), around the point x_0:

y(x) = y(x_0) + (x-x_0)y'(x_0) + \frac{(x-x_0)^2}{2!}y''(x_0) + \frac{(x-x_0)^3}{3!}y'''(x_0) + \frac{(x-x_0)^4}{4!}y''''(x_0) + \frac{(x-x_0)^5}{5!}y'''''(x_0) + \mathcal{O}(h^6).

Denoting the distance from x to x_0 by h = x - x_0, we can write the above equation as

y(x_0 + h) = y(x_0) + hy'(x_0) + \frac{h^2}{2!}y''(x_0) + \frac{h^3}{3!}y'''(x_0) + \frac{h^4}{4!}y''''(x_0) + \frac{h^5}{5!}y'''''(x_0) + \mathcal{O}(h^6).

If we evenly discretize the space, we get a grid of x points, where h = x_{n+1} - x_n. By applying the above equations to this discrete space, we get a relation between the y_n and y_{n+1}:

y_{n+1} = y_n + hy'(x_n) + \frac{h^2}{2!}y''(x_n) + \frac{h^3}{3!}y'''(x_n) + \frac{h^4}{4!}y''''(x_n) + \frac{h^5}{5!}y'''''(x_n) + \mathcal{O}(h^6).

Computationally, this amounts to taking a step forward by an amount h. If we want to take a step backwards, we replace every h with - h and get the expression for y_{n-1}:

y_{n-1} = y_n - hy'(x_n) + \frac{h^2}{2!}y''(x_n) - \frac{h^3}{3!}y'''(x_n) + \frac{h^4}{4!}y''''(x_n) - \frac{h^5}{5!}y'''''(x_n) + \mathcal{O}(h^6).

Note that only the odd powers of h experienced a sign change. By summing the two equations, we derive that

y_{n+1} - 2 y_n + y_{n-1} = h^2 y''_n + \frac{h^4}{12}y''''_n + \mathcal{O}(h^6).

We can solve this equation for y_{n+1} by substituting the expression given at the beginning, that is y''_n = - g_n y_n + s_n. To get an expression for the y''''_n factor, we simply have to differentiate y''_n = - g_n y_n + s_n twice and approximate it again in the same way we did this above:

y''''_n = \frac{d^2}{d x^2} (-g_n y_n + s_n),
h^2 y''''_n = -g_{n+1} y_{n+1} + s_{n+1} + 2 g_n y_n - 2 s_n - g_{n-1} y_{n-1} + s_{n-1} + \mathcal{O}(h^4).

If we now substitute this to the preceding equation, we get

y_{n+1} - 2 y_n + y_{n-1} = {h^2} (- g_n y_n + s_n) + \frac{h^2}{12} (- g_{n+1} y_{n+1} + s_{n+1} + 2 g_n y_n - 2 s_n - g_{n-1} y_{n-1} + s_{n-1}) + \mathcal{O}(h^6),

or

y_{n+1} \left(1 + \frac{h^2}{12} g_{n+1} \right) - 2 y_n \left(1 - \frac{5 h^2}{12} g_n \right) + y_{n-1} \left(1 + \frac{h^2}{12} g_{n-1} \right) = \frac{h^2}{12} (s_{n+1} + 10 s_n + s_{n-1}) + \mathcal{O}(h^6).

This yields the Numerov's method if we ignore the term of order h^6. It follows that the order of convergence (assuming stability) is 4.

References