数值分析 $6 常微分方程

本文详细探讨了常微分方程的数值解法,包括欧拉方法、显式梯形方法、龙格-库塔方法、隐式方法、多步方法以及边值问题的解法。重点讲解了不同方法的优缺点、阶数和稳定性,并举例说明了如何应用这些方法来求解微分方程。
摘要由CSDN通过智能技术生成

§6 常微分方程

C1 ODE求解器

d y d x = f ( x , y ) \frac{\mathrm{d}y}{\mathrm{d}x}=f(x,y) dxdy=f(x,y) f f f是矩形域 R : ∣ x − x 0 ∣ ≤ a , ∣ y − y 0 ∣ ≤ b R:|x-x_0|\le a,|y-y_0|\le b R:xx0a,yy0b上连续函数 式6.1.1

1)欧拉方法:从 ( x 0 , y 0 ) (x_0,y_0) (x0,y0)开始,选定固定步长 x n + 1 − x n = h x_{n+1}-x_n=h xn+1xn=h,得 y ^ n + 1 = y ^ n + h y ′ ( x n ) \hat y_{n+1}=\hat y_n+hy'(x_n) y^n+1=y^n+hy(xn)

  • 欧拉方法简单但精度差

2)全局截断误差 g i = ∣ y i − y ^ i ∣ g_i = |y_i - \hat y_i| gi=yiy^i局部截断误差 e i + 1 = ∣ y ^ i + 1 − z i + 1 ∣ , z e_{i+1} = |\hat y_{i+1}-z_{i+1}|,z ei+1=y^i+1zi+1,z是以 ( x i , y ^ i ) (x_i,\hat y_i) (xi,y^i)为初值的精确解

  • 定理:假设对 y y y有Lipschitz常数 L L L,则ODE求解器误差 g i ≤ C L h k ( e L ( x i − a ) − 1 ) , C , k g_i\le\frac{C}{L}h^k(e^{L(x_i-a)}-1),C,k giLChk(eL(xia)1),C,k是某个与界限相关的常数。若 h → 0 h\to 0 h0时满足此式,则称求解器为 k k k阶方法
  • 欧拉方法局部截断误差上界为 sup ⁡ y ′ ′ 2 h 2 \frac{\sup y''}{2}h^2 2supyh2,可得 g i ≤ sup ⁡ y ′ ′ 2 L h ( e L ( x i − a ) − 1 ) g_i\le\frac{\sup y''}{2L}h(e^{L(x_i-a)}-1) gi2Lsupyh(eL(xia)1),故为一阶方法

3)显式梯形方法 x n + 1 − x n = h , y ^ n + 1 = y ^ n + h 2 ( f ( x n , y ^ n ) + f ( x n + h , y ^ n + h f ( x n , y ^ n ) ) ) x_{n+1}-x_n=h,\hat y_{n+1} = \hat y_n +\frac{h}{2}(f(x_n,\hat y_n)+f(x_n+h,\hat y_n+hf(x_n,\hat y_n))) xn+1xn=h,y^n+1=y^n+2h(f(xn,y^n)+f(xn+h,y^n+hf(xn,y^n)))

  • 注记:梯形含义为对 ∫ x n x n + 1 f ( x , y ) d x \int_{x_n}^{x_{n+1}}f(x,y)\mathrm{d}x xnxn+1f(x,y)dx使用近似梯形法则
  • 该方法是二阶方法

4)泰勒方法:k阶泰勒方法: x n + 1 − x n = h , y ^ n + 1 = y ^ n + ∑ i = 1 k − 1 1 i ! h i f ( i ) ( x n , y ^ n ) x_{n+1}-x_n=h,\hat y_{n+1}=\hat y_n+\sum\limits_{i=1}^{k-1}\frac{1}{i!}h^if^{(i)}(x_n,\hat y_n) xn+1xn=h,y^n+1=y^n+i=1k1i!1hif(i)(xn,y^n)

  • 注记:一阶泰勒方法即欧拉方法
  • f ( i ) f^{(i)} f(i) i i i阶全导数,需要计算
  • 泰勒方法主要证明了存在任意 k k k阶近似方法,实际使用困难

5)高阶微分方程可转为一阶微分方程组进行求解

6)龙格-库塔(RK)方法

  • 中点方法:(2阶) x n + 1 − x n = h , y ^ n + 1 = y ^ n + h f ( x n + h 2 , y ^ n + h 2 f ( x n , y ^ n ) ) x_{n+1}-x_n=h,\hat y_{n+1}=\hat y_n +hf(x_n+\frac{h}{2},\hat y_n+\frac{h}{2}f(x_n,\hat y_n)) xn+1x

  • 0
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值