Keyboard shortcuts

Press ← or → to navigate between chapters

Press S or / to search in the book

Press ? to show this help

Press Esc to hide this help

7.1–7.2 初值问题与单步法

对应教材 7.1、7.2.1–7.2.3、定理 7.1–7.3、例 1–5。老师本章尚未开讲,先按教材铺。 主线:Euler 是最简单的单步法;RK 用多算几个斜率把阶抬高;收敛看相容 + Lipschitz,稳定看测试方程。

7.1 初值问题与基本概念

一阶初值问题: y′=f(t,y),y(t0)=y0,t∈[t0,T]. y'=f(t,y),\qquad y(t_0)=y_0,\qquad t\in[t_0,T]. 若 ff 对 yy 满足 Lipschitz 条件 ∣f(t,y1)−f(t,y2)∣≤L∣y1−y2∣, |f(t,y_1)-f(t,y_2)|\le L|y_1-y_2|, 则解存在唯一,且对初值连续依赖(适定)。

局部截断误差:设 y(t)y(t) 是精确解,单步法写成 yn+1=yn+hΦ(tn,yn,h)y_{n+1}=y_n+h\Phi(t_n,y_n,h)。令 Tn+1=y(tn+1)−y(tn)−hΦ(tn,y(tn),h). T_{n+1}=y(t_{n+1})-y(t_n)-h\Phi(t_n,y(t_n),h). 若 Tn+1=O(hp+1)T_{n+1}=O(h^{p+1}),称方法为 pp 阶;全局误差为 O(hp)O(h^p)。

7.2.1 Euler 法、后退 Euler、梯形法

显式 Euler: yn+1=yn+hf(tn,yn). y_{n+1}=y_n+hf(t_n,y_n). 局部截断误差 O(h2)O(h^2),一阶方法。几何上沿当前点切线走一步。

后退 Euler: yn+1=yn+hf(tn+1,yn+1). y_{n+1}=y_n+hf(t_{n+1},y_{n+1}). 隐式,每步解一个方程;一阶,但绝对稳定区域更大,适合刚性方程。

梯形法: yn+1=yn+h2[f(tn,yn)+f(tn+1,yn+1)]. y_{n+1}=y_n+\frac h2\left[f(t_n,y_n)+f(t_{n+1},y_{n+1})\right]. 隐式,二阶;是“平均斜率”。

改进 Euler(预测–校正): yˉn+1=yn+hf(tn,yn),yn+1=yn+h2[f(tn,yn)+f(tn+1,yˉn+1)]. \bar y_{n+1}=y_n+hf(t_n,y_n),\qquad y_{n+1}=y_n+\frac h2\left[f(t_n,y_n)+f(t_{n+1},\bar y_{n+1})\right]. 显式,二阶。

7.2.2 Runge–Kutta 方法

在 [tn,tn+1][t_n,t_{n+1}] 上多取几个斜率,加权平均: yn+1=yn+h∑i=1sbiki,ki=f(tn+cih, yn+h∑j=1i−1aijkj). y_{n+1}=y_n+h\sum_{i=1}^s b_ik_i, \qquad k_i=f\left(t_n+c_ih,\ y_n+h\sum_{j=1}^{i-1}a_{ij}k_j\right). 系数满足阶条件。常用:

中点公式(RK2): k1=f(tn,yn),k2=f(tn+h2,yn+h2k1),yn+1=yn+hk2. k_1=f(t_n,y_n),\quad k_2=f\left(t_n+\frac h2,y_n+\frac h2k_1\right),\quad y_{n+1}=y_n+hk_2.

四阶 RK(RK4): k1=f(tn,yn),k2=f(tn+h2,yn+h2k1),k3=f(tn+h2,yn+h2k2),k4=f(tn+h,yn+hk3),yn+1=yn+h6(k1+2k2+2k3+k4). \begin{aligned} k_1&=f(t_n,y_n),\ k_2&=f\left(t_n+\frac h2,y_n+\frac h2k_1\right),\ k_3&=f\left(t_n+\frac h2,y_n+\frac h2k_2\right),\ k_4&=f(t_n+h,y_n+hk_3),\ y_{n+1}&=y_n+\frac h6(k_1+2k_2+2k_3+k_4). \end{aligned} 四阶方法,每步 4 次函数求值;工程中最常用。

7.2.3 收敛性与稳定性

定理 7.1(阶):若单步法的局部截断误差为 O(hp+1)O(h^{p+1}),则它是 pp 阶方法。

定理 7.2(收敛):若单步法相容(p≥1p\ge1)且 Φ\Phi 对 yy 满足 Lipschitz 条件,则方法收敛,全局误差 O(hp)O(h^p)。

定理 7.3(绝对稳定):对测试方程 y′=λyy&#x27;=\lambda y(λ\lambda 可复),单步法写成 yn+1=R(hλ)yn. y_{n+1}=R(h\lambda)y_n. 若 ∣R(z)∣<1|R(z)|\lt1,称方法在 z=hλz=h\lambda 处绝对稳定;所有这样的 zz 组成绝对稳定区域。

  • Euler:R(z)=1+zR(z)=1+z,稳定区域 ∣1+z∣<1|1+z|\lt1;
  • 后退 Euler:R(z)=1/(1−z)R(z)=1/(1-z),稳定区域 ∣1−z∣>1|1-z|\gt1(包含左半平面);
  • RK4:R(z)=1+z+z2/2+z3/6+z4/24R(z)=1+z+z^2/2+z^3/6+z^4/24。

例 1(教材 7.2.1):对 y′=y−t2+1y&#x27;=y-t^2+1、y(0)=0.5y(0)=0.5,取 h=0.1h=0.1,Euler 法: yn+1=yn+h(yn−tn2+1). y_{n+1}=y_n+h(y_n-t_n^2+1).

tnt_nEuler yny_n精确解误差
0.00.500000000.500000000
0.10.650000000.65741454−7.41×10−3-7.41\times10^{-3}
0.20.814000000.82929862−1.53×10−2-1.53\times10^{-2}
0.30.991400001.01507060−2.37×10−2-2.37\times10^{-2}
0.41.181540001.21408765−3.25×10−2-3.25\times10^{-2}
0.51.383694001.42563936−4.19×10−2-4.19\times10^{-2}

误差随 tt 增大,步长减半误差约减半(一阶收敛)。

例 2–5(教材 7.2.2):改进 Euler、中点公式、RK4 对同一初值问题计算;同样步长下 RK4 误差最小,但每步函数求值最多。

覆盖核对

本节覆盖教材 7.1、7.2.1–7.2.3、定理 7.1–7.3、例 1–5;老师本章尚未开讲。下一节:7.3 线性多步法。