努梅罗夫方法

来自testwiki
跳转到导航 跳转到搜索

努梅罗夫方法属于四阶线性多步法,用于求解不出现一阶微分项的二阶常微分方程。努梅罗夫方法属于隐式方法,但如果微分方程线性,则可转化为显式方法。该方法由 俄国天文学家Boris Vasil'evich Numerov提出。

方法

可由努梅罗夫方法求解的微分方程形式为

(d2dx2+f(x))y(x)=0

求出函数 y(x) 在区间 [a,b] 上等距格点上的值,从连续的两个格点上的函数值 xn1xn 开始,其他的函数值可由

yn+1=(25h26fn)yn(1+h212fn1)yn11+h212fn+1

算得。

其中, fn=f(xn)yn=y(xn) 为在格点 xn 上的函数值,h=xnxn1为格点间距。

对于非线性方程,

d2dt2y=f(t,y)

则非线性方程的努梅罗夫方法

yn+1=2ynyn1+112h2(fn+1+10fn+fn1).

该式为隐式的线性多步方法。当 fy 的线性函数时,该式变为显式方法,精度为4阶Template:Harv

应用

在物理中用于数值求解任意势场中径向薛定谔方程

[22μ(1r2r2rl(l+1)r2)+V(r)]R(r)=ER(r)

此式可重写为

[2r2l(l+1)r2+2μ2(EV(r))]u(r)=0

其中 u(r)=rR(r). 与Numerov方法求解的方程形式做比较,

f(x)=2μ2(EV(x))l(l+1)x2

这样,我们可以数值求解薛定谔方程。

推导

y(xn)泰勒展开开始, 我们可求 xn 的相接邻点上的函数值

yn+1=y(xn+h)=y(xn)+hy(xn)+h22!y(xn)+h33!y(xn)+h44!y(xn)+h55!y′′′′′(xn)+𝒪(h6)
yn1=y(xnh)=y(xn)hy(xn)+h22!y(xn)h33!y(xn)+h44!y(xn)h55!y′′′′′(xn)+𝒪(h6)

上两式之和为

yn1+yn+1=2yn+h2y'n+h412y'n+𝒪(h6)

用所求微分方程的定义式 y'n=fnyn 替换掉 y'n

h2fnyn=2ynyn1yn+1+h412y'n+𝒪(h6)

对所求微分方程的定义式 y'n=fnyn 取二次微分

y(x)=d2dx2[f(x)y(x)]

将其代入到四阶微分项中,并把二阶导 d2dx2[f(x)y(x)] 替换为 fnyn 的二阶差分公式 fn1yn12fnyn+fn+1yn+1h2

h2fnyn=2ynyn1yn+1h412fn1yn12fnyn+fn+1yn+1h2+𝒪(h6)

求解 yn+1 可得

yn+1=(25h26fn)yn(1+h212fn1)yn11+h212fn+1+𝒪(h6).

忽略掉 𝒪(h6) 就可以得到努梅罗夫方法,最终收敛阶数为4(假定稳定)。

参考文献

外部链接