努梅罗夫方法 属于四阶线性多步法,用于求解不出现一阶微分项的二阶常微分方程 。努梅罗夫方法属于隐式方法 ,但如果微分方程线性,则可转化为显式方法 。该方法由
俄国天文学家Boris Vasil'evich Numerov 提出。
可由努梅罗夫方法求解的微分方程形式为
(
d
2
d
x
2
+
f
(
x
)
)
y
(
x
)
=
0
{\displaystyle \left({\frac {d^{2}}{dx^{2}}}+f(x)\right)y(x)=0}
求出函数
y
(
x
)
{\displaystyle y(x)}
在区间
[
a
,
b
]
{\displaystyle [a,b]}
上等距格点上的值,从连续的两个格点上的函数值
x
n
−
1
{\displaystyle x_{n-1}}
和
x
n
{\displaystyle x_{n}}
开始,其他的函数值可由
y
n
+
1
=
(
2
−
5
h
2
6
f
n
)
y
n
−
(
1
+
h
2
12
f
n
−
1
)
y
n
−
1
1
+
h
2
12
f
n
+
1
{\displaystyle y_{n+1}={\frac {\left(2-{\frac {5h^{2}}{6}}f_{n}\right)y_{n}-\left(1+{\frac {h^{2}}{12}}f_{n-1}\right)y_{n-1}}{1+{\frac {h^{2}}{12}}f_{n+1}}}}
算得。
其中,
f
n
=
f
(
x
n
)
{\displaystyle f_{n}=f(x_{n})}
和
y
n
=
y
(
x
n
)
{\displaystyle y_{n}=y(x_{n})}
为在格点
x
n
{\displaystyle x_{n}}
上的函数值,
h
=
x
n
−
x
n
−
1
{\displaystyle h=x_{n}-x_{n-1}}
为格点间距。
对于非线性方程,
d
2
d
t
2
y
=
f
(
t
,
y
)
{\displaystyle {\frac {d^{2}}{dt^{2}}}y=f(t,y)}
则非线性方程的努梅罗夫方法 为
y
n
+
1
=
2
y
n
−
y
n
−
1
+
1
12
h
2
(
f
n
+
1
+
10
f
n
+
f
n
−
1
)
.
{\displaystyle y_{n+1}=2y_{n}-y_{n-1}+{\tfrac {1}{12}}h^{2}(f_{n+1}+10f_{n}+f_{n-1}).}
该式为隐式的线性多步方法 。当
f
{\displaystyle f}
是
y
{\displaystyle y}
的线性函数时,该式变为显式方法,精度为4阶(Hairer, Nørsett & Wanner 1993 ,§III.10)。
在物理中用于数值求解任意势场中径向薛定谔方程 :
[
−
ℏ
2
2
μ
(
1
r
∂
2
∂
r
2
r
−
l
(
l
+
1
)
r
2
)
+
V
(
r
)
]
R
(
r
)
=
E
R
(
r
)
{\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)}
此式可重写为
[
∂
2
∂
r
2
−
l
(
l
+
1
)
r
2
+
2
μ
ℏ
2
(
E
−
V
(
r
)
)
]
u
(
r
)
=
0
{\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}
其中
u
(
r
)
=
r
R
(
r
)
{\displaystyle u(r)=rR(r)}
. 与Numerov方法求解的方程形式做比较,
f
(
x
)
=
2
μ
ℏ
2
(
E
−
V
(
x
)
)
−
l
(
l
+
1
)
x
2
{\displaystyle f(x)={\frac {2\mu }{\hbar ^{2}}}\left(E-V(x)\right)-{\frac {l(l+1)}{x^{2}}}}
这样,我们可以数值求解薛定谔方程。
从
y
(
x
n
)
{\displaystyle y(x_{n})}
的泰勒展开 开始, 我们可求
x
n
{\displaystyle x_{n}}
的相接邻点上的函数值
y
n
+
1
=
y
(
x
n
+
h
)
=
y
(
x
n
)
+
h
y
′
(
x
n
)
+
h
2
2
!
y
″
(
x
n
)
+
h
3
3
!
y
‴
(
x
n
)
+
h
4
4
!
y
⁗
(
x
n
)
+
h
5
5
!
y
′′′′′
(
x
n
)
+
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})}
y
n
−
1
=
y
(
x
n
−
h
)
=
y
(
x
n
)
−
h
y
′
(
x
n
)
+
h
2
2
!
y
″
(
x
n
)
−
h
3
3
!
y
‴
(
x
n
)
+
h
4
4
!
y
⁗
(
x
n
)
−
h
5
5
!
y
′′′′′
(
x
n
)
+
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})}
上两式之和为
y
n
−
1
+
y
n
+
1
=
2
y
n
+
h
2
y
n
″
+
h
4
12
y
n
⁗
+
O
(
h
6
)
{\displaystyle y_{n-1}+y_{n+1}=2y_{n}+{h^{2}}y''_{n}+{\frac {h^{4}}{12}}y''''_{n}+{\mathcal {O}}(h^{6})}
用所求微分方程的定义式
y
n
″
=
−
f
n
y
n
{\displaystyle y''_{n}=-f_{n}y_{n}}
替换掉
y
n
″
{\displaystyle y''_{n}}
,
h
2
f
n
y
n
=
2
y
n
−
y
n
−
1
−
y
n
+
1
+
h
4
12
y
n
⁗
+
O
(
h
6
)
{\displaystyle h^{2}f_{n}y_{n}=2y_{n}-y_{n-1}-y_{n+1}+{\frac {h^{4}}{12}}y''''_{n}+{\mathcal {O}}(h^{6})}
对所求微分方程的定义式
y
n
″
=
−
f
n
y
n
{\displaystyle y''_{n}=-f_{n}y_{n}}
取二次微分
y
⁗
(
x
)
=
−
d
2
d
x
2
[
f
(
x
)
y
(
x
)
]
{\displaystyle y''''(x)=-{\frac {d^{2}}{dx^{2}}}\left[f(x)y(x)\right]}
将其代入到四阶微分项中,并把二阶导
d
2
d
x
2
[
f
(
x
)
y
(
x
)
]
{\displaystyle {\frac {d^{2}}{dx^{2}}}\left[f(x)y(x)\right]}
替换为
f
n
y
n
{\displaystyle f_{n}y_{n}}
的二阶差分公式
f
n
−
1
y
n
−
1
−
2
f
n
y
n
+
f
n
+
1
y
n
+
1
h
2
{\displaystyle {\frac {f_{n-1}y_{n-1}-2f_{n}y_{n}+f_{n+1}y_{n+1}}{h^{2}}}}
h
2
f
n
y
n
=
2
y
n
−
y
n
−
1
−
y
n
+
1
−
h
4
12
f
n
−
1
y
n
−
1
−
2
f
n
y
n
+
f
n
+
1
y
n
+
1
h
2
+
O
(
h
6
)
{\displaystyle h^{2}f_{n}y_{n}=2y_{n}-y_{n-1}-y_{n+1}-{\frac {h^{4}}{12}}{\frac {f_{n-1}y_{n-1}-2f_{n}y_{n}+f_{n+1}y_{n+1}}{h^{2}}}+{\mathcal {O}}(h^{6})}
求解
y
n
+
1
{\displaystyle y_{n+1}}
可得
y
n
+
1
=
(
2
−
5
h
2
6
f
n
)
y
n
−
(
1
+
h
2
12
f
n
−
1
)
y
n
−
1
1
+
h
2
12
f
n
+
1
+
O
(
h
6
)
.
{\displaystyle y_{n+1}={\frac {\left(2-{\frac {5h^{2}}{6}}f_{n}\right)y_{n}-\left(1+{\frac {h^{2}}{12}}f_{n-1}\right)y_{n-1}}{1+{\frac {h^{2}}{12}}f_{n+1}}}+{\mathcal {O}}(h^{6}).}
忽略掉
O
(
h
6
)
{\displaystyle {\mathcal {O}}(h^{6})}
就可以得到努梅罗夫方法,最终收敛阶数为4(假定稳定)。
Hairer, Ernst; Nørsett, Syvert Paul; Wanner, Gerhard, Solving ordinary differential equations I: Nonstiff problems, Berlin, New York: Springer-Verlag , 1993, ISBN 978-3-540-56670-0 . This book includes the following references:
Numerov, Boris Vasil'evich , A method of extrapolation of perturbations, Monthly Notices of the Royal Astronomical Society , 1924, 84 : 592–601 .
Numerov, Boris Vasil'evich , Note on the numerical integration of d2 x /dt 2 = f (x ,t ), Astronomische Nachrichten , 1927, 230 : 359–364 .