【数值分析】9 常微分方程初值问题数值解法

9 常微分方程初值问题数值解法

迭代公式

对于

{ y ′ = f ( x , y ) y ( x 0 ) = y 0 , x ∈ [ x 0 , b ] , \left\{ \begin{array}{l} y' = f(x, y) \\ y(x_0) = y_0 \end{array} \right., x \in [x_0, b], {y=f(x,y)y(x0)=y0,x[x0,b],

  • 欧拉法
    y n + 1 − y n x n + 1 − x n = f ( x n , y n ) ⇒ y n + 1 = y n + h f ( x n , y n ) \frac{y_{n+1}-y_n}{x_{n+1}-x_n}=f(x_n,y_n)\Rightarrow y_{n+1}=y_n+hf(x_n,y_n) xn+1xnyn+1yn=f(xn,yn)yn+1=yn+hf(xn,yn)

  • 后退欧拉法
    y n + 1 = y n + h f ( x n + 1 , y ( x n + 1 ) ) y_{n+1} = y_n + h f(x_{n+1}, y(x_{n+1})) yn+1=yn+hf(xn+1,y(xn+1))

  • 梯形法
    y n + 1 = y n + h 2 [ f ( x n , y n ) + f ( x n + 1 , y n + 1 ) ] y_{n+1}=y_n+\frac{h}{2}\left[f(x_n,y_n)+f(x_{n+1},y_{n+1})\right] yn+1=yn+2h[f(xn,yn)+f(xn+1,yn+1)]

  • 改进Euler法
    { 预测 y ‾ n + 1 = y n + h f ( x n , y n ) 校正 y n + 1 = y n + h 2 [ f ( x n , y n ) + f ( x n + 1 , y ‾ n + 1 ) ] , k = 0 , 1 , ⋯ \begin{cases} \text{预测} & \overline{y}_{n+1}=y_n+hf(x_n,y_n) \\ \text{校正} & y_{n+1}=y_n+\dfrac{h}{2}\left[f(x_n,y_n)+f(x_{n+1},\overline{y}_{n+1})\right],k=0,1,\cdots & \end{cases} 预测校正yn+1=yn+hf(xn,yn)yn+1=yn+2h[f(xn,yn)+f(xn+1,yn+1)],k=0,1,


局部截断误差、阶的证明

基本上就是对 y ( x n + 1 ) y(x_{n+1}) y(xn+1) 利用 Taylor 展开,即:
y ( x n + 1 ) = y ( x n + h ) = y ( x n ) + h y ′ ( x n ) + h 2 2 y ′ ′ ( x n ) + O ( h 3 ) y(x_{n+1})=y(x_n+h)=y(x_n)+hy'(x_n)+\frac {h^2}{2}y''(x_n)+O(h^3) y(xn+1)=y(xn+h)=y(xn)+hy(xn)+2h2y′′(xn)+O(h3)

  • 欧拉法
    T n + 1 = y ( x n + 1 ) − y ( x n ) − h y ′ ( x n ) = y ( x n ) + h y ′ ( x n ) + h 2 2 y ′ ′ ( x n ) + O ( h 3 ) − y n − h y ′ ( x n ) = h 2 2 y ′ ′ ( x n ) + O ( h 3 ) \begin{aligned} T_{n+1} & = y(x_{n+1})-y(x_n) -hy'(x_{n}) \\ & = y(x_{n}) + hy'(x_n) + \frac{h^2}{2}y''(x_n) + O(h^3) - y_n-hy'(x_n) \\ & = \frac{h^2}{2}y''(x_n) + O(h^3) \end{aligned} Tn+1=y(xn+1)y(xn)hy(xn)=y(xn)+hy(xn)+2h2y′′(xn)+O(h3)ynhy(xn)=2h2y′′(xn)+O(h3)

    所以, T n + 1 T_{n+1} Tn+1 O ( h 2 ) O(h^2) O(h2),欧拉法是1阶方法。


  • 后退欧拉法
    T n + 1 = y ( x n + 1 ) − y ( x n ) − h y ′ ( x n + 1 ) = y ( x n ) + h y ′ ( x n ) + h 2 2 y ′ ′ ( x n ) − y ( x n ) + O ( h 3 ) − h [ y ′ ( x n ) + h y ′ ′ ( x n ) + O ( h 2 ) ] = − h 2 2 y ′ ′ ( x n ) + O ( h 3 ) \begin{aligned} T_{n+1} & = y(x_{n+1})-y(x_n) -hy'(x_{n+1}) \\ & = y(x_{n})+hy'(x_n)+\frac{h^2}{2}y''(x_n)-y(x_n)+O(h^3) - h[y'(x_{n} )+hy''(x_n)+O(h^2)] \\ & = -\frac{h^2}{2}y''(x_n)+O(h^3) \end{aligned} Tn+1=y(xn+1)y(xn)hy(xn+1)=y(xn)+hy(xn)+2h2y′′(xn)y(xn)+O(h3)h[y(xn)+hy′′(xn)+O(h2)]=2h2y′′(xn)+O(h3)
    所以, T n + 1 T_{n+1} Tn+1 O ( h 2 ) O(h^2) O(h2),后退欧拉法是1阶方法。


  • 梯形法
    T n + 1 = y ( x n + 1 ) − y ( x n ) − h 2 ( y ′ ( x n ) + y ′ ( x n + 1 ) ) = y ( x n ) + h y ′ ( x n ) + h 2 2 y ′ ′ ( x n ) + h 3 3 ! y ′ ′ ′ ( x n ) + O ( h 4 ) − y ( x n ) − h 2 [ y ′ ( x n ) + y ′ ( x n ) + h y ′ ′ ( x n ) + h 2 2 y ′ ′ ′ ( x n ) + O ( h 3 ) ] = h y ′ ( x n ) + h 2 2 y ′ ′ ( x n ) + h 3 3 ! y ′ ′ ′ ( x n ) − h 2 y ′ ( x n ) − h 2 y ′ ( x n ) − h 2 2 y ′ ′ ( x n ) − h 3 4 y ′ ′ ′ ( x n ) + O ( h 4 ) = h 3 6 y ′ ′ ′ ( x n ) − h 3 4 y ′ ′ ′ ( x n ) + O ( h 4 ) = − h 3 12 y ′ ′ ′ ( x n ) + O ( h 4 ) \begin{aligned} & T_{n+1} \\ & = y(x_{n+1})-y(x_n) -\frac{h}{2}(y'(x_n)+y'(x_{n+1})) \\ & = y(x_{n})+hy'(x_n)+\frac{h^2}{2}y''(x_n) + \frac{h^3}{3!}y'''(x_n) +O(h^4) - y(x_n) - \frac{h}{2}[y'(x_n) + y'(x_{n}) + hy''(x_n) + \frac{h^2}{2}y'''(x_n) + O(h^3)] \\ & = hy'(x_n)+\frac{h^2}{2}y''(x_n) + \frac{h^3}{3!}y'''(x_n) - \frac{h}{2}y'(x_n) - \frac{h}{2}y'(x_{n}) - \frac{h^2}{2}y''(x_n) - \frac{h^3}{4}y'''(x_n) + O(h^4) \\ & = \frac{h^3}{6}y'''(x_n) - \frac{h^3}{4}y'''(x_n) + O(h^4) \\ & = - \frac{h^3}{12}y'''(x_n) + O(h^4) \end{aligned} Tn+1=y(xn+1)y(xn)2h(y(xn)+y(xn+1))=y(xn)+hy(xn)+2h2y′′(xn)+3!h3y′′′(xn)+O(h4)y(xn)2h[y(xn)+y(xn)+hy′′(xn)+2h2y′′′(xn)+O(h3)]=hy(xn)+2h2y′′(xn)+3!h3y′′′(xn)2hy(xn)2hy(xn)2h2y′′(xn)4h3y′′′(xn)+O(h4)=6h3y′′′(xn)4h3y′′′(xn)+O(h4)=12h3y′′′(xn)+O(h4)
    所以, T n + 1 T_{n+1} Tn+1 O ( h 3 ) O(h^3) O(h3),梯形法是2阶方法。


  • 改进欧拉法
    T n + 1 = y ( x n + 1 ) − y ( x n ) − h 2 [ f ( x n , y ( x n ) + f ( x n + 1 , y ( x n ) + h f ( x n , y ( x n ) ) ) ] = y ( x n + 1 ) − y ( x n ) − h 2 [ f ( x n , y ( x n ) ) + f ( x n + 1 , y ( x n + 1 ) ) ] + h 2 [ f ( x n + 1 , y ( x n + 1 ) ) − h f ( x x + 1 , y ( x n ) + h f ( x n , y ( x n ) ) ) ] \begin{aligned} T_{n+1} & = y(x_{n+1}) - y(x_n) - \frac{h}{2}[ f(x_n, y(x_n) + f(x_{n+1}, y(x_n)+hf(x_{n}, y(x_n))) ] \\ & = y(x_{n+1}) - y(x_n) - \frac{h}{2}[f(x_n,y(x_n)) +f(x_{n+1},y(x_{n+1}))] \\ &\quad + \frac{h}{2}[f(x_{n+1},y(x_{n+1})) - hf(x_{x+1},y(x_n)+hf(x_{n},y(x_n)))] \end{aligned} Tn+1=y(xn+1)y(xn)2h[f(xn,y(xn)+f(xn+1,y(xn)+hf(xn,y(xn)))]=y(xn+1)y(xn)2h[f(xn,y(xn))+f(xn+1,y(xn+1))]+2h[f(xn+1,y(xn+1))hf(xx+1,y(xn)+hf(xn,y(xn)))]
    其中, y ( x n + 1 ) − y ( x n ) − h 2 [ f ( x n , y ( x n ) ) − f ( x n + 1 , y ( x n + 1 ) ) ] y(x_{n+1}) - y(x_n) -\dfrac{h}{2}[f(x_n,y(x_n)) -f(x_{n+1},y(x_{n+1}))] y(xn+1)y(xn)2h[f(xn,y(xn))f(xn+1,y(xn+1))] 部分可以看作梯形法的局部截断误差,该部分的值计算为:
    − h 3 12 y ′ ′ ′ ( x n ) + O ( h 4 ) -\frac{h^3}{12}y'''(x_n) + O(h^4) 12h3y′′′(xn)+O(h4)
    对剩下的部分:
    h 2 [ f ( x n + 1 , y ( x n + 1 ) ) − h f ( x x + 1 , y ( x n ) + h f ( x n , y ( x n ) ) ) ] = h 2 [ ∂ f ( x n + 1 , η i ) ∂ y ( y ( x n + 1 ) − y ( x n ) − h f ( x n , y ( x n ) ) ) ] , 求导定义 , η 介于两个 y 值之间 = h 2 ∂ f ( x n + 1 , η i ) ∂ y ( y ( x n + 1 ) − y ( x n ) − h f ( x n , y ( x n ) ) ) = h 3 4 ∂ f ( x n + 1 , η i ) ∂ y y ′ ′ ( ξ i ) + O ( h 4 ) , E u l e r 法 \begin{aligned} &\quad\frac{h}{2}[f(x_{n+1},y(x_{n+1})) - hf(x_{x+1},y(x_n)+hf(x_{n},y(x_n)))] \\ &=\frac{h}{2} [\frac{\partial f(x_{n+1}, \eta_i)}{\partial y}(y(x_{n+1}) - y(x_n)-hf(x_{n},y(x_n)))], 求导定义,\eta介于两个y值之间 \\ &=\frac{h}{2}\frac{\partial f(x_{n+1}, \eta_i)}{\partial y}(y(x_{n+1}) - y(x_n) - hf(x_{n}, y(x_n))) \\ &=\frac{h^3}{4}\frac{\partial f(x_{n+1}, \eta_i)}{\partial y}y''(\xi_i) + O(h^4), Euler 法 \end{aligned} 2h[f(xn+1,y(xn+1))hf(xx+1,y(xn)+hf(xn,y(xn)))]=2h[yf(xn+1,ηi)(y(xn+1)y(xn)hf(xn,y(xn)))],求导定义,η介于两个y值之间=2hyf(xn+1,ηi)(y(xn+1)y(xn)hf(xn,y(xn)))=4h3yf(xn+1,ηi)y′′(ξi)+O(h4),Euler
    所以,改进欧拉法的局部截断误差为
    T n + 1 = [ 1 4 ∂ f ( x n + 1 , η i ) ∂ y y ′ ′ ( ξ i ) − 1 12 y ′ ′ ′ ( x n ) ] h 3 + O ( h 4 ) T_{n+1}=[\frac{1}{4}\frac{\partial{f(x_{n+1}, \eta_i)}}{\partial{y}}y''(\xi_i) - \frac{1}{12}y'''(x_n)]h^3 + O(h^4) Tn+1=[41yf(xn+1,ηi)y′′(ξi)121y′′′(xn)]h3+O(h4)
    综上所述, T n + 1 T_{n+1} Tn+1 O ( h 3 ) O(h^3) O(h3),改进欧拉法是2阶方法。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值