3. 收敛性核心概念与数学基础
在数值求解偏微分方程时,我们真正关心的并不是“程序有没有跑完”,而是“算出来的离散解是否越来越接近真实解”。要回答这个问题,必须建立一套可量化、可验证的理论语言。本节围绕相容性、稳定性、收敛性、阶数、渐近收敛区间这几个核心概念展开,并用 Lax 等价定理与误差估计式把它们串成一条完整的验证逻辑链。
一、四个核心概念的定义与区别
设微分方程记为 Lu = f,其离散格式记为 L_h u_h = f_h,其中 h 为网格步长(时间相关问题还包含 Δt)。四个概念分别刻画不同层面的性质:
- 相容性(Consistency):当
h→0时,离散算子作用于精确解后的截断误差趋于零,即‖L_h u − f_h‖ → 0。它衡量“离散方程是否逼近原方程”,是格式正确性的最低门槛。 - 稳定性(Stability):离散算子(或推进算子)的逆一致有界,即存在与
h无关的常数C,使‖L_h⁻¹‖ ≤ C。它衡量“误差是否会被放大”,是数值解不发散的根本保证。 - 收敛性(Convergence):当
h→0时,离散解趋于精确解,即‖u_h − u‖ → 0。它衡量“算出来的结果是否可信”。 - 阶数(Order):收敛速度的量化指标。若
‖u_h − u‖ ≤ C h^p,则称格式为p阶收敛;截断误差对应的阶称为相容阶。
需要特别强调:相容性只保证“方程写得对”,稳定性只保证“误差不爆炸”,二者单独都不足以推出收敛。这正是 Lax 等价定理要解决的问题。
二、Lax 等价定理:把三者绑在一起
对于适定的线性初值问题,Lax 等价定理指出:相容性 + 稳定性 ⟺ 收敛性。其证明核心来自误差方程。设 e_h = u_h − u,将精确解代入离散格式可得
L_h e_h = L_h u − f_h = τ_h (τ_h 为截断误差)
⇒ e_h = L_h⁻¹ τ_h
⇒ ‖e_h‖ ≤ ‖L_h⁻¹‖ · ‖τ_h‖ ≤ C · ‖τ_h‖
这个不等式是全部验证工作的理论支点:右端的 ‖τ_h‖ 由相容性控制,系数 C 由稳定性控制。只要两者都成立,误差就被一致压住,收敛自然成立。反过来,若数值实验观察到不收敛,就可以沿这条链反向排查——是截断误差没随 h 下降(相容性出问题,多半是边界处理或源项离散写错),还是误差被放大(稳定性出问题,多半是时间步长违反 CFL 条件或系数符号错误)。
三、阶数与渐近收敛区间
阶数 p 是验证中最常用的量化指标。理论上,若截断误差为 O(h^p) 且稳定性常数与 h 无关,则误差也为 O(h^p)。实际验证时,我们通常取一系列网格 h, h/2, h/4, …,计算相邻两级的误差比:
p ≈ log₂( ‖e_h‖ / ‖e_{h/2}‖ )
例如某二阶格式在 h=0.1, 0.05, 0.025 上得到误差 3.2e-3, 8.1e-4, 2.0e-4,则相邻比约为 3.95 和 4.05,log₂ 后约为 1.98 和 2.02,可判定实测阶数接近 2,与理论一致。若实测阶数明显低于理论值(如二阶格式只测出 1.1 阶),往往意味着误差已被边界处理、非光滑解或网格畸变主导。
这里必须引入渐近收敛区间的概念:‖e_h‖ ≤ C h^p 是渐近意义下的估计,只有当 h 足够小、进入渐近区后,误差曲线在双对数坐标下才呈现稳定斜率。在粗网格段,误差可能被低阶项或边界误差主导,斜率偏小甚至杂乱。因此做阶数验证时,不能只取两三个点就下结论,而应观察误差随 h 缩小的整体趋势,确认斜率趋于平台后再拟合。若网格继续加密后斜率反而下降,需警惕舍入误差开始占优——此时误差不再下降,甚至回升。
四、把理论转化为验证指标
基于上述理论,收敛性验证应至少包含三类可执行指标:其一,相容性检查,用制造解(Method of Manufactured Solutions)构造已知精确解,代入离散格式计算截断误差,确认其随 h 按理论阶下降;其二,稳定性检查,对显式格式核对 CFL 条件,对隐式格式检查系数矩阵条件数或谱半径是否一致有界;其三,收敛阶拟合,在渐近区内用多级网格做最小二乘拟合斜率,并与理论阶对比。
最后要建立一种判断习惯:看到“误差在减小”不等于“格式收敛”,必须同时确认减小速率符合理论阶、且处于渐近区间。Lax 等价定理给了我们逻辑上的充分必要条件,误差估计式给了我们可计算的量化路径,而渐近收敛区间的概念则提醒我们——所有阶数结论都有其适用边界,验证工作本质上是在确认这些前提是否真的成立。