ESC
输入关键词搜索文章
目录

数值微分与常微分方程数值解

Chap 20–21 · 数值分析
从差分近似到 RK 方法——连续动力系统如何被离散地追踪
9核心主题
5单步/多步方法
12关键公式
4例题方向

模块导航

  • 第一组:数值微分基础与 ODE 背景 —— Part 0–2
  • 第二组:单步法、多步法与稳定性 —— Part 3–6
  • 第三组:课程收束与复习 —— Part 7 + 速查
Part 0 · 学习目标
从差商逼近导数,到沿斜率一步步推进解函数

这一页连接的是两段本质上高度相关的内容: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$ 是后续数值解法的基本对象。
Part 1 · 背景问题
为什么导数和微分方程都需要“在网格上近似”

在实际问题里,我们常常只有离散数据点或函数值表,解析求导不可行;即使函数已知,复杂表达式的导数也可能难算。这迫使我们用邻近点的函数值构造差商,去近似局部斜率。

而常微分方程数值解进一步把这一想法推进一步:既然导数 $y'$ 可以用差商近似,那么关系式 $y'=f(x,y)$ 就能转化为网格点之间的递推关系。于是我们不再追求直接求出整个解函数,而是求出一系列离散点上的近似值。

统一直觉:数值微分是“用差商代替导数”,ODE 数值解是“用差分递推代替连续演化”。后者可以看成前者在动力系统上的展开。
Part 2 · 概念定义
差分近似、外推、单步法、阶数、收敛性与稳定性

差分近似与截断误差

由 Taylor 展开可得:

前向差商

$$f'(a)\approx \frac{f(a+h)-f(a)}{h},\qquad 误差为\ O(h)$$

中心差商

$$f'(a)\approx \frac{f(a+h)-f(a-h)}{2h},\qquad 误差为\ O(h^2)$$

二阶中心差商

$$f''(a)\approx \frac{f(a+h)-2f(a)+f(a-h)}{h^2},\qquad 误差为\ O(h^2)$$

中心差商比单边差商更准,核心原因是对称结构抵消了低阶误差项。

插值型数值求导

另一条构造思路是:先用插值多项式 $p(x)$ 逼近 $f(x)$,再用 $p'(x)$ 去近似 $f'(x)$。这说明差分公式不是凭空记忆的,而是插值思想的直接延伸。

Richardson 外推

若某近似量满足

$$g(h)=A+Ch^2+O(h^4)$$

则可构造

$$g_1(h)=\frac{4g(h/2)-g(h)}{3}$$

消去主误差项,从而提高精度。它的本质是“用不同步长结果线性组合去消误差”。

单步法、阶数、收敛性、稳定性

对初值问题

$$y'=f(x,y),\qquad y(x_0)=y_0$$

若求 $y_{n+1}$ 时只依赖当前步或当前步附近有限信息,则称为单步法。

若局部截断误差为 $O(h^{p+1})$,则称方法是 $p$ 阶的。

收敛性回答“当 $h\to 0$ 时,数值解会不会逼近真解”;稳定性回答“误差会不会在递推过程中被放大”。

Part 3 · 推导
从差商公式到 Euler、修正 Euler、Runge-Kutta 的逻辑链

为什么中心差商是二阶精度

分别把 $f(a+h)$$f(a-h)$$a$ 处做 Taylor 展开,再相减,可得

$$f'(a)\approx \frac{f(a+h)-f(a-h)}{2h}$$

这里奇次项保留、偶次项消失,最终主误差项提升到 $O(h^2)$。这说明“对称”本身就是提高精度的工具。

Euler 法:用当前斜率向前走一步

由差商近似

$$\frac{y_{n+1}-y_n}{h}\approx y'(x_n)=f(x_n,y_n)$$

得到

$$y_{n+1}=y_n+h f(x_n,y_n)$$

几何上看,它就是在当前点取切线斜率,然后沿该方向前进一步。

修正 Euler 法:从左矩形走向梯形,再到预测-校正

由积分形式

$$y(x_{n+1})-y(x_n)=\int_{x_n}^{x_{n+1}}f(x,y(x))\,dx$$

若用左矩形近似,得到 Euler 法;若用梯形公式,得到

$$y_{n+1}=y_n+\frac h2\big[f(x_n,y_n)+f(x_{n+1},y_{n+1})\big]$$

这仍是隐式的。课件进一步用预测值

$$\tilde y_{n+1}=y_n+h f(x_n,y_n)$$

代替未知的 $y_{n+1}$,构成预估—校正式,从而得到二阶方法。

Runge-Kutta:多次试探斜率,避免直接求高阶导数

经典四阶 RK 的格式为

$$k_1=f(x_n,y_n)$$
$$k_2=f\left(x_n+\frac h2,y_n+\frac h2k_1\right)$$
$$k_3=f\left(x_n+\frac h2,y_n+\frac h2k_2\right)$$
$$k_4=f(x_n+h,y_n+hk_3)$$
$$y_{n+1}=y_n+\frac h6(k_1+2k_2+2k_3+k_4)$$

它的精髓不是记住四个 $k_i$,而是理解:通过一个步长内多次采样斜率,并做加权平均,可以在不显式求高阶导数的情况下实现高阶精度。

收敛与绝对稳定性的区别

若单步法是 $p$ 阶,且函数满足 Lipschitz 条件,则全局误差可写为

$$y(x_n)-y_n=O(h^p)$$

这描述的是收敛性

而稳定性通过实验方程

$$y'=\lambda y,\qquad \mathrm{Re}(\lambda)<0$$

来检验。若方法对应

$$y_{n+1}=E(\lambda h)y_n$$

并且 $|E(\lambda h)|<1$,则称该步长位于绝对稳定域内。Euler 法的稳定函数是 $E(z)=1+z$,其实轴上的绝对稳定区间为 $(-2,0)$

Part 4 · 线性多步法简介
为什么只用“前一步”太浪费,已知历史也应该被利用

课件在 Chap21 的结尾明确提醒:单步法在计算 $y_{n+1}$ 时,只使用当前点的信息。如果想继续提高精度,除了在同一步内反复取样(Runge-Kutta 路线)之外,还有另一条思路:更充分地利用前面已经算出的多个历史点

线性多步法的一般形式

线性多步法可写成

$$y_{n+k}=\sum_{i=0}^{k-1}\alpha_i y_{n+i}+h\sum_{i=0}^{k}\beta_i f_{n+i}$$

其中 $f_{n+i}=f(x_{n+i},y_{n+i})$。与单步法不同,这里求新值时会同时使用多个历史点和历史斜率。

Adams 显式格式(课件入门例)

课件给出的二阶 Adams 显式格式可写成

$$y_{n+2}=y_{n+1}+\frac h2(3f_{n+1}-f_n)$$

它的思想是:不再只用一个点的斜率,而是用前两个时刻的函数值来构造更高精度的推进公式。

和单步法的关系:Runge-Kutta 是“在一个步长内部多次取样”,多步法是“跨多个步长复用历史信息”。两者都在追求更高精度,只是信息利用方式不同。
Part 5 · 性质
差分公式与 ODE 单步法/多步法的比较
对象代表公式/方法核心思想精度特点关键提醒
数值微分前向/后向差商单边近似斜率通常一阶实现简单,但误差较大
数值微分中心差商对称抵消误差项通常二阶对称结构提升精度
数值微分插值求导 + 外推先逼近函数,再消误差可系统提阶思路比公式更重要
ODE 单步法Euler 法沿当前斜率走一步一阶结构最简单,但精度和稳定性较弱
ODE 单步法修正 Euler 法预测—校正,平均两端斜率二阶是从积分形式出发得到的自然修正
ODE 单步法RK2 / RK4多次试探斜率后加权平均更高阶本质是用多次采样代替高阶导数
ODE 多步法Adams 显式格式复用多个历史点与历史斜率可进一步提阶需要先有足够起步点
Part 6 · 例题与实验
把“公式堆”还原成可操作的误差与递推逻辑

例题 1 · 为什么中心差商比前向差商更准

题目:$f(x)=\sin x$ 为例,说明前向差商与中心差商近似 $f'(x)$ 时,为什么后者通常更准确。

  1. 第一步:写出 $f(x+h)$$f(x-h)$ 的 Taylor 展开。
  2. 第二步:构造前向差商与中心差商。
  3. 第三步:比较主误差项阶数:前向差商为 $O(h)$,中心差商为 $O(h^2)$

答案:中心差商更准,不是偶然,而是因为对称结构消去了低阶误差项。

易错点:不要只记“中心差商更好”,而忽略它背后的机制——误差项相消。

例题 2 · 从积分形式看修正 Euler 法

题目:说明修正 Euler 法为什么可以看成 Euler 法的自然升级。

  1. 第一步:写出积分形式 $y(x_{n+1})-y(x_n)=\int f(x,y(x))dx$
  2. 第二步:左矩形近似得到 Euler 法。
  3. 第三步:梯形近似得到含未知端点值的表达式,再用预测值替代,得到预估—校正格式。

答案:修正 Euler 法本质上是在同一积分公式框架里,用更好的数值积分近似替换了最粗糙的左矩形近似,因此自然获得更高精度。

易错点:不要把“修正”理解成拍脑袋加一个补丁,它其实来自更精确的积分近似思想。

例题 3 · RK4 为什么通常远优于 Euler

题目:解释为什么在同样步长下,经典四阶 RK 的误差通常显著小于 Euler 法。

  1. 第一步:Euler 法只使用当前点的单个斜率。
  2. 第二步:RK4 在一个步长内采样四次斜率,并做加权平均。
  3. 第三步:这种多次采样近似了更高阶 Taylor 信息,因此方法阶数更高。

答案:RK4 的优势不在“公式更长”,而在它利用同一步长内的多次局部信息,逼近了解函数更高阶的局部结构。

易错点:高阶方法不等于永远更好;步长、稳定性区间和解的光滑性仍然重要。
Part 7 · 后续章节
从 ODE 数值解继续通向差分法、PDE 与步长控制

后续用途 / 连接

数值微分会自然通向偏微分方程的有限差分法,因为 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 数值解主体内容。