# Numerov's method

(diff) ← Older revision | Latest revision (diff) | Newer revision → (diff)

Numerov'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

${\displaystyle \left({\frac {d^{2}}{dx^{2}}}+a(x)\right)y(x)=0}$

The function ${\displaystyle a(x)}$ is sampled in the interval [a..b] at equidistant positions ${\displaystyle x_{n}}$. Starting from function values at two consecutive samples ${\displaystyle x_{n-1}}$ and ${\displaystyle x_{n}}$ the remaining function values can be calculated as

${\displaystyle y_{n+1}={\frac {\left(2-{\frac {5h^{2}}{6}}a_{n}\right)y_{n}-\left(1+{\frac {h^{2}}{12}}a_{n-1}\right)y_{n-1}}{1+{\frac {h^{2}}{12}}a_{n+1}}}}$

where ${\displaystyle a_{n}=a(x_{n})}$ and ${\displaystyle y_{n}=y(x_{n})}$ are the function values at the positions ${\displaystyle x_{n}}$ and ${\displaystyle h=x_{n}-x_{n-1}}$ is the distance between two consecutive samples.

### Nonlinear equations

For nonlinear equations of the form

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

the method is given by

${\displaystyle y_{n+1}=2y_{n}-y_{n-1}+{\tfrac {1}{12}}h^{2}(f_{n+1}+10f_{n}+f_{n-1}).}$

This is an implicit linear multistep method, which reduces to the explicit method given above if f is linear in y by setting ${\displaystyle f(x,y)=-a(x)y(x)}$. It achieves order 4 Template:Harv.

## Application

In numerical physics the method is used to find solutions of the radial Schrödinger equation for arbitrary potentials.

${\displaystyle \left[-{\hbar ^{2} \over 2\mu }\left({\frac {1}{r}}{\partial ^{2} \over \partial r^{2}}r-{l(l+1) \over r^{2}}\right)+V(r)\right]R(r)=ER(r)}$

The above equation can be rewritten in the form

${\displaystyle \left[{\partial ^{2} \over \partial r^{2}}-{l(l+1) \over r^{2}}+{2\mu \over \hbar ^{2}}\left(E-V(r)\right)\right]u(r)=0}$

with ${\displaystyle u(r)=rR(r)}$. If we compare this equation with the defining equation of the Numerov method we see

${\displaystyle a(x)={\frac {2\mu }{\hbar ^{2}}}\left(E-V(x)\right)-{\frac {l(l+1)}{x^{2}}}}$

and thus can numerically solve the radial Schrödinger equation.

## Derivation

${\displaystyle 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})}$

Denote the distance from ${\displaystyle x}$ to ${\displaystyle x_{0}}$ by ${\displaystyle h=x-x_{0}}$ and, noting that this means ${\displaystyle x=x_{0}+h}$, we can write the above equation as

${\displaystyle 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})}$

Computationally, this amounts taking a step forward by an amount h. If we want to take a step backwards, replace every h with -h for the equation of ${\displaystyle y(x_{0}-h)}$:

${\displaystyle 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})}$

Note that only the odd powers of h experienced a sign change. On an evenly spaced grid, the nth site on a computational grid corresponds to position ${\displaystyle x_{n}}$ if the step-size between grid points are of length ${\displaystyle h}$ (hence h should be small for the computation to be accurate). This means we have sampling points ${\displaystyle (x_{n-1},y_{n-1})}$ and ${\displaystyle (x_{n+1},y_{n+1})}$. Taking the equations for ${\displaystyle y_{n-1}}$ and ${\displaystyle y_{n+1}}$ from continuous space to discrete space, we see that

${\displaystyle y_{n+1}=y(x_{n}+h)=y(x_{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})}$
${\displaystyle y_{n-1}=y(x_{n}-h)=y(x_{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})}$

The sum of those two equations gives

${\displaystyle y_{n-1}+y_{n+1}=2y_{n}+{h^{2}}y''_{n}+{\frac {h^{4}}{12}}y''''_{n}+{\mathcal {O}}(h^{6})}$

We solve this equation for ${\displaystyle y''_{n}}$ and replace it by the expression ${\displaystyle y''_{n}=-a_{n}y_{n}}$ which we get from the defining differential equation.

${\displaystyle h^{2}a_{n}y_{n}=2y_{n}-y_{n-1}-y_{n+1}+{\frac {h^{4}}{12}}y''''_{n}+{\mathcal {O}}(h^{6})}$

We take the second derivative of our defining differential equation and get

${\displaystyle y''''(x)=-{\frac {d^{2}}{dx^{2}}}\left[a(x)y(x)\right]}$

We replace the second derivative ${\displaystyle {\frac {d^{2}}{dx^{2}}}}$ with the second order difference quotient and insert this into our equation for ${\displaystyle a_{n}y_{n}}$ (note that we take the mixed forward and backward finite difference, not the double forward difference or the double backward difference)

${\displaystyle h^{2}a_{n}y_{n}=2y_{n}-y_{n-1}-y_{n+1}-{\frac {h^{4}}{12}}{\frac {a_{n-1}y_{n-1}-2a_{n}y_{n}+a_{n+1}y_{n+1}}{h^{2}}}+{\mathcal {O}}(h^{6})}$

We solve for ${\displaystyle y_{n+1}}$ to get

${\displaystyle y_{n+1}={\frac {\left(2-{\frac {5h^{2}}{6}}a_{n}\right)y_{n}-\left(1+{\frac {h^{2}}{12}}a_{n-1}\right)y_{n-1}}{1+{\frac {h^{2}}{12}}a_{n+1}}}+{\mathcal {O}}(h^{6}).}$

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

## References

• {{#invoke:citation/CS1|citation

|CitationClass=citation }}.
This book includes the following references:

• {{#invoke:citation/CS1|citation

|CitationClass=citation }}.

• {{#invoke:citation/CS1|citation

|CitationClass=citation }}.