§1
许多物理、工程问题归结为初值问题(initial value problem, IVP)
$$y'=f(x,y),\qquad y(x_0)=y_0.$$
除极少数特殊情况外,解析解难以显式写出,必须依靠数值方法在离散节点 $x_n=x_0+nh$ 上逐步求出近似解 $y_n\approx y(x_n)$。数值方法的核心是"用差分替代微分",并在每一步用局部近似累积推进。
一、初值问题与离散化思想
设步长 $h>0$,节点 $x_n=x_0+nh$。我们追求递推格式
$$y_{n+1}=y_n+h\,\Phi(x_n,y_n,h),$$
其中 $\Phi$ 是某种"平均斜率"的近似。方法的局部截断误差指单步忽略前面误差时的误差,全局误差指累积到某固定点的总误差;全局误差阶通常比局部低一阶。
二、欧拉法
最朴素的方法是用当前点切线斜率近似:
$$y_{n+1}=y_n+h\,f(x_n,y_n).$$
由泰勒展开
$$y(x_{n+1})=y(x_n)+h\,y'(x_n)+\frac{h^2}{2}y''(\xi)=y_n+h\,f_n+\frac{h^2}{2}y''(\xi),$$
故局部截断误差为 $O(h^2)$,全局误差为 $O(h)$。欧拉法显式、易实现,但对较大步长精度差、且对刚性(stiff)问题不稳定。
三、改进欧拉法(预测-校正 / 梯形)
先用欧拉法给出预测值,再用梯形公式校正,得到二阶方法:
- 预测:$\displaystyle \bar y_{n+1}=y_n+h\,f(x_n,y_n)$;
- 校正:$\displaystyle y_{n+1}=y_n+\frac{h}{2}\Big[f(x_n,y_n)+f(x_{n+1},\bar y_{n+1})\Big]$。
梯形公式是辛普森思想在 ODE 上的体现,其局部截断误差提升到 $O(h^3)$,故全局误差为 $O(h^2)$。代价是每步需两次函数估值。
四、经典 RK4 方法
四阶经典龙格-库塔(Runge-Kutta)法通过计算四个斜率的加权平均达到四阶精度。设
$$\begin{aligned} k_1&=f(x_n,y_n),\\ k_2&=f\!\left(x_n+\frac{h}{2},\,y_n+\frac{h}{2}k_1\right),\\ k_3&=f\!\left(x_n+\frac{h}{2},\,y_n+\frac{h}{2}k_2\right),\\ k_4&=f(x_n+h,\,y_n+h\,k_3), \end{aligned}$$
则
$$y_{n+1}=y_n+\frac{h}{6}\big(k_1+2k_2+2k_3+k_4\big).$$
其全局误差为 $O(h^4)$,是单步法中精度与代价平衡最好的通用选择。
五、稳定性
对模型方程 $y'=\lambda y$($\lambda$ 为复数,实部决定增长/衰减),显式欧拉要求放大因子满足
$$|1+h\lambda|\le 1$$
才稳定;当 $\operatorname{Re}\lambda\ll0$(刚性系统)时步长 $h$ 被迫极小,否则数值解爆炸。这类刚性(stiff)问题需要隐式方法(如向后欧拉 $y_{n+1}=y_n+h f(x_{n+1},y_{n+1})$,无条件稳定)或多步法(Adams 族)。本模块重点掌握单步显式法及其精度差异。
六、收敛阶与误差对比
| 方法 | 全局误差阶 | 每步函数估值次数 |
|---|---|---|
| 欧拉法 | $O(h)$ | $1$ |
| 改进欧拉法 | $O(h^2)$ | $2$ |
| 经典 RK4 | $O(h^4)$ | $4$ |
可见提高一阶精度、代价是更多函数估值;RK4 以 4 次估值换来四阶,性价比最高。
七、例题与解答
例题1(欧拉 vs RK4). 解 $y'=-2x,\ y(0)=1$,精确解 $y=1-x^2$。取 $h=0.2$,比较 $x=1$ 处误差。
解(欧拉法): 递推 $y_{n+1}=y_n+h(-2x_n)$,5 步:
$$\begin{aligned} y_1&=1+0.2\cdot0=1.00,\\ y_2&=1.00+0.2(-0.4)=0.92,\\ y_3&=0.92+0.2(-0.8)=0.76,\\ y_4&=0.76+0.2(-1.2)=0.52,\\ y_5&=0.52+0.2(-1.6)=0.20. \end{aligned}$$
精确值 $y(1)=0$,欧拉误差 $=0.20-0=-0.20$。
解(RK4): 因 $f(x,y)=-2x$ 与 $y$ 无关,RK4 的步进增量恰等于精确积分 $\int_{x_n}^{x_{n+1}}-2x\,dx=-2hx_n-h^2$,逐步累积得到精确解,故 $y_5=0$,误差为 $0$。✓
例题2(显式欧拉的发散). 解 $y'=y,\ y(0)=1$,精确解 $y=e^x$。讨论大步长下显式欧拉的表现。
解: 显式欧拉递推 $y_{n+1}=(1+h)y_n$,故 $y_n=(1+h)^n$。与精确解 $e^{x}=e^{nh}$ 比较:
$$(1+h)^n\;/\;e^{nh}=\big((1+h)e^{-h}\big)^n.$$
由于对任意 $h>0$ 有 $e^h>1+h$,故 $(1+h)e^{-h}<1$,近似相对精确解恒被压低;且放大因子 $1+h>1$ 意味着每一步误差也被放大,数值上是不稳定的。例如 $h=1$ 时 $y(2)\approx(2)^2=4$,而 $e^2\approx7.389$,偏差显著;$h$ 越大偏差越大。这说明显式欧拉仅在其稳定区域内(对本例要求 $|1+h|<1$,即 $h<0$,正步长下无法满足)才可靠,刚性增长问题需改用隐式法。✓
练习
1. 用欧拉法取 $h=0.5$ 解 $y'=x+y,\ y(0)=0$,求 $y(1)$ 的近似值并与精确解比较。
2. 写出改进欧拉法用于 $y'=-y,\ y(0)=1$ 的前两步递推值(取 $h=0.5$)。
3. RK4 用于 $y'=y$ 时,若 $h=0.5$,求一步后 $y_1$ 并说明它与精确解 $e^{0.5}$ 的接近程度(提示:展开 $1+h+h^2/2+h^3/6+h^4/24$ 与 $e^h$ 的泰勒展开比较)。
4. 为什么刚性方程不适合用显式欧拉?用稳定性条件 $|1+h\lambda|<1$ 说明。
参考答案与提示
1. 欧拉:$y_1=0+0.5(0+0)=0$,$y_2=0+0.5(0.5+0)=0.25$。精确解 $y=e^x-x-1$,$y(1)=e-2\approx0.718$,误差约 $-0.468$(一阶方法步长大时误差显著)。
2. 预测 $\bar y_{1}=1+0.5(-1)=0.5$;校正 $y_1=1+0.25(-1-0.5)=0.625$。第二步类似得 $y_2\approx0.382$(精确 $e^{-0.5}\approx0.607$,二阶方法更接近)。
3. RK4 对 $y'=y$ 给出 $y_1=(1+h+h^2/2+h^3/6+h^4/24)y_0$,即 $e^h$ 的四阶泰勒截断;$h=0.5$ 时约为 $1.6487$,与 $e^{0.5}\approx1.6487$ 高度吻合(误差 $O(h^5)$)。
4. 刚性方程有 $\operatorname{Re}\lambda\ll0$,显式欧拉稳定要求 $|1+h\lambda|<1$,即 $h<2/|\lambda|$,步长受限极严;超出则数值解振荡发散,故须用隐式法。
本章小结
- 初值问题 $y'=f(x,y),\ y(x_0)=y_0$ 用离散递推近似求解。
- 欧拉法 $y_{n+1}=y_n+h f_n$,全局 $O(h)$,简单但不稳。
- 改进欧拉(梯形校正)全局 $O(h^2)$。
- 经典 RK4 全局 $O(h^4)$,是通用高精度单步法。
- 显式方法存在稳定区域,刚性(stiff)问题步长受限,需用隐式/多步法。
- 精度阶与每步函数估值次数权衡:RK4 性价比最优。
互动演示
拖动下方控件观察动态过程。
常微分方程数值解对比:青=欧拉、琥珀=改进欧拉、绿=RK4(粉=精确解 y=1-x^2),同步长下 RK4 最贴合。