数值微分与常微分方程数值解
模块导航
- 第一组:数值微分基础与 ODE 背景 —— Part 0–2
- 第二组:单步法、多步法与稳定性 —— Part 3–6
- 第三组:课程收束与复习 —— Part 7 + 速查
这一页连接的是两段本质上高度相关的内容:Chap20 先讨论如何用差商近似导数,Chap21 再讨论如何把导数关系 $y'=f(x,y)$ 变成一个可递推的数值算法。前者解决“局部斜率怎样估”,后者解决“沿着这些斜率怎样前进”。
因此本章真正的主线不是“差分公式 + ODE 方法”两块散知识,而是一个统一问题:如何把连续变化规律离散化成网格上的计算规则,并控制由此带来的误差。
前置知识回顾
- Taylor 展开:差商精度、Euler 法误差和 Runge-Kutta 推导都要依赖 Taylor 展开。
- Lagrange 插值:数值求导公式不仅能从 Taylor 展开推出来,也能从插值多项式求导得到。
- 定积分近似思想:Euler 法、修正 Euler 法都可从积分形式配合矩形 / 梯形近似来理解。
- 初值问题:一阶常微分方程初值问题 $y'=f(x,y),\ y(x_0)=y_0$ 是后续数值解法的基本对象。
在实际问题里,我们常常只有离散数据点或函数值表,解析求导不可行;即使函数已知,复杂表达式的导数也可能难算。这迫使我们用邻近点的函数值构造差商,去近似局部斜率。
而常微分方程数值解进一步把这一想法推进一步:既然导数 $y'$ 可以用差商近似,那么关系式 $y'=f(x,y)$ 就能转化为网格点之间的递推关系。于是我们不再追求直接求出整个解函数,而是求出一系列离散点上的近似值。
差分近似与截断误差
由 Taylor 展开可得:
前向差商
中心差商
二阶中心差商
中心差商比单边差商更准,核心原因是对称结构抵消了低阶误差项。
插值型数值求导
另一条构造思路是:先用插值多项式 $p(x)$ 逼近 $f(x)$,再用 $p'(x)$ 去近似 $f'(x)$。这说明差分公式不是凭空记忆的,而是插值思想的直接延伸。
Richardson 外推
若某近似量满足
则可构造
消去主误差项,从而提高精度。它的本质是“用不同步长结果线性组合去消误差”。
单步法、阶数、收敛性、稳定性
对初值问题
若求 $y_{n+1}$ 时只依赖当前步或当前步附近有限信息,则称为单步法。
若局部截断误差为 $O(h^{p+1})$,则称方法是 $p$ 阶的。
收敛性回答“当 $h\to 0$ 时,数值解会不会逼近真解”;稳定性回答“误差会不会在递推过程中被放大”。
为什么中心差商是二阶精度
分别把 $f(a+h)$ 与 $f(a-h)$ 在 $a$ 处做 Taylor 展开,再相减,可得
这里奇次项保留、偶次项消失,最终主误差项提升到 $O(h^2)$。这说明“对称”本身就是提高精度的工具。
Euler 法:用当前斜率向前走一步
由差商近似
得到
几何上看,它就是在当前点取切线斜率,然后沿该方向前进一步。
修正 Euler 法:从左矩形走向梯形,再到预测-校正
由积分形式
若用左矩形近似,得到 Euler 法;若用梯形公式,得到
这仍是隐式的。课件进一步用预测值
代替未知的 $y_{n+1}$,构成预估—校正式,从而得到二阶方法。
Runge-Kutta:多次试探斜率,避免直接求高阶导数
经典四阶 RK 的格式为
它的精髓不是记住四个 $k_i$,而是理解:通过一个步长内多次采样斜率,并做加权平均,可以在不显式求高阶导数的情况下实现高阶精度。
收敛与绝对稳定性的区别
若单步法是 $p$ 阶,且函数满足 Lipschitz 条件,则全局误差可写为
这描述的是收敛性。
而稳定性通过实验方程
来检验。若方法对应
并且 $|E(\lambda h)|<1$,则称该步长位于绝对稳定域内。Euler 法的稳定函数是 $E(z)=1+z$,其实轴上的绝对稳定区间为 $(-2,0)$。
课件在 Chap21 的结尾明确提醒:单步法在计算 $y_{n+1}$ 时,只使用当前点的信息。如果想继续提高精度,除了在同一步内反复取样(Runge-Kutta 路线)之外,还有另一条思路:更充分地利用前面已经算出的多个历史点。
线性多步法的一般形式
线性多步法可写成
其中 $f_{n+i}=f(x_{n+i},y_{n+i})$。与单步法不同,这里求新值时会同时使用多个历史点和历史斜率。
Adams 显式格式(课件入门例)
课件给出的二阶 Adams 显式格式可写成
它的思想是:不再只用一个点的斜率,而是用前两个时刻的函数值来构造更高精度的推进公式。
| 对象 | 代表公式/方法 | 核心思想 | 精度特点 | 关键提醒 |
|---|---|---|---|---|
| 数值微分 | 前向/后向差商 | 单边近似斜率 | 通常一阶 | 实现简单,但误差较大 |
| 数值微分 | 中心差商 | 对称抵消误差项 | 通常二阶 | 对称结构提升精度 |
| 数值微分 | 插值求导 + 外推 | 先逼近函数,再消误差 | 可系统提阶 | 思路比公式更重要 |
| ODE 单步法 | Euler 法 | 沿当前斜率走一步 | 一阶 | 结构最简单,但精度和稳定性较弱 |
| ODE 单步法 | 修正 Euler 法 | 预测—校正,平均两端斜率 | 二阶 | 是从积分形式出发得到的自然修正 |
| ODE 单步法 | RK2 / RK4 | 多次试探斜率后加权平均 | 更高阶 | 本质是用多次采样代替高阶导数 |
| ODE 多步法 | Adams 显式格式 | 复用多个历史点与历史斜率 | 可进一步提阶 | 需要先有足够起步点 |
例题 1 · 为什么中心差商比前向差商更准
题目:以 $f(x)=\sin x$ 为例,说明前向差商与中心差商近似 $f'(x)$ 时,为什么后者通常更准确。
- 第一步:写出 $f(x+h)$ 与 $f(x-h)$ 的 Taylor 展开。
- 第二步:构造前向差商与中心差商。
- 第三步:比较主误差项阶数:前向差商为 $O(h)$,中心差商为 $O(h^2)$。
答案:中心差商更准,不是偶然,而是因为对称结构消去了低阶误差项。
例题 2 · 从积分形式看修正 Euler 法
题目:说明修正 Euler 法为什么可以看成 Euler 法的自然升级。
- 第一步:写出积分形式 $y(x_{n+1})-y(x_n)=\int f(x,y(x))dx$。
- 第二步:左矩形近似得到 Euler 法。
- 第三步:梯形近似得到含未知端点值的表达式,再用预测值替代,得到预估—校正格式。
答案:修正 Euler 法本质上是在同一积分公式框架里,用更好的数值积分近似替换了最粗糙的左矩形近似,因此自然获得更高精度。
例题 3 · RK4 为什么通常远优于 Euler
题目:解释为什么在同样步长下,经典四阶 RK 的误差通常显著小于 Euler 法。
- 第一步:Euler 法只使用当前点的单个斜率。
- 第二步:RK4 在一个步长内采样四次斜率,并做加权平均。
- 第三步:这种多次采样近似了更高阶 Taylor 信息,因此方法阶数更高。
答案:RK4 的优势不在“公式更长”,而在它利用同一步长内的多次局部信息,逼近了解函数更高阶的局部结构。
后续用途 / 连接
数值微分会自然通向偏微分方程的有限差分法,因为 PDE 的离散化同样依赖各阶导数的差商逼近;而 Euler、Runge-Kutta、多步法则是更一般时间推进算法的基础。更进一步的自适应步长、刚性方程、稳定域分析,都建立在这里区分清楚“局部截断误差、方法阶数、收敛性、稳定性”之后。
复习速查
- 前向差商:一阶精度;中心差商:二阶精度。
- 插值求导:差分公式也可以通过插值多项式求导得到。
- 外推:本质是用不同步长结果消去主误差项。
- Euler 法:$y_{n+1}=y_n+h f(x_n,y_n)$。
- 修正 Euler 法:预测一次,再用两端斜率平均校正。
- RK 法:通过多次取样斜率来避免显式求高阶导数。
- 线性多步法:利用多个历史点与历史斜率,提高信息复用效率,Adams 格式是入门代表。
- 方法阶数:局部截断误差为 $O(h^{p+1})$ 时称为 $p$ 阶。
- 收敛性 vs 稳定性:前者看能否逼近真解,后者看误差会不会被放大。
参考来源
- 电子科技大学数学科学学院数值分析课程组:《数值分析》Chap20–Chap21 PDF 讲义(主参考来源)
- 本页叙述严格以本地 PDF 为主,Chap20 主要负责数值微分与 ODE 引子,Chap21 承担 ODE 数值解主体内容。