努梅罗夫方法

努梅罗夫方法属于四阶线性多步法，用于求解不出现一阶微分项的二阶常微分方程。努梅罗夫方法属于隐式方法，但如果微分方程线性，则可转化为显式方法。该方法由 俄国天文学家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 d2x/dt2 = f(x,t), Astronomische Nachrichten, 1927, 230: 359–364 . Lecture notes: Computerphysik und Numerik （页面存档备份，存于互联网档案馆） - by Jan Krieger Lecture notes of Werner Scholz - At Vienna University of Technology Lecture notes of Alexander Wagner （页面存档备份，存于互联网档案馆）