1. 课程导入与稳定性问题提出

数值求解偏微分方程时,我们往往把连续的物理问题离散成一组代数方程,再用计算机逐步推进。以最经典的一维热传导方程为例:

∂u/∂t = α ∂²u/∂x²,  0 < x < L, t > 0

其中 u(x,t) 表示温度,α > 0 为热扩散系数。物理上,热传导是耗散过程,初始温度分布会随时间逐渐平滑,任何局部扰动都会被抹平,解本身是有界的、稳定的。然而,数值格式未必继承这一性质——这正是本课程要解决的核心矛盾。

两种最基本的离散思路

对时间导数用前向差分、对空间二阶导数用中心差分,得到显式格式(FTCS):

u_i^{n+1} = u_i^n + r (u_{i+1}^n − 2u_i^n + u_{i−1}^n),  r = αΔt/Δx²

它的优点是每一步都能直接算出新时刻的值,无需解方程组;缺点是 r 必须满足严格限制,否则计算会迅速发散。

若把空间二阶导数取在新时刻 n+1 上,则得到隐式格式(后向欧拉):

−r u_{i−1}^{n+1} + (1+2r) u_i^{n+1} − r u_{i+1}^{n+1} = u_i^n

每一步都要解一个三对角线性方程组,计算量更大,但对任意 r > 0 都稳定。显式与隐式的这种“省算力但不稳”与“费算力但稳健”的张力,贯穿整个数值偏微分方程的学习。

稳定性为什么是核心问题

稳定性分析回答的是一个非常实际的问题:当时间步长和空间步长取定时,舍入误差和初始扰动会不会被放大? 数值计算中不可避免存在截断误差与浮点舍入误差,如果格式把这些微小误差逐层放大,即使理论解光滑有界,计算出的结果也会在若干步后变成无意义的振荡甚至溢出。反之,一个稳定的格式能保证误差被控制在一定范围内,使离散解收敛到真解。

因此,稳定性不是锦上添花的理论装饰,而是决定一次数值实验“能不能用”的前置条件。工程实践中,先判断稳定性、再选步长、最后才谈精度,是更可靠的顺序。

稳定性、相容性、收敛性三者通过 Lax 等价定理联系:对适定的线性初值问题,相容格式收敛的充要条件是稳定。这解释了为什么稳定性分析值得单独成章。

本课程的整体框架

围绕“如何判断并保证稳定性”,课程将依次展开:稳定性问题的数学提法(误差放大与范数有界);显式格式的稳定性条件推导,重点得到 FTCS 的 r ≤ 1/2 限制;隐式格式的无条件稳定性论证;von Neumann(傅里叶)分析方法与放大因子;矩阵特征值视角;以及针对对流—扩散等更复杂方程和二维问题的推广。学习目标是:能独立对一个给定差分格式写出放大因子、判断其稳定区间,并能据此为实际计算选择合适的 Δt 与 Δx。

热传导方程两种离散格式的稳定性对照 显式格式(FTCS) uᵢⁿ⁺¹ = uᵢⁿ + r(uᵢ₊₁ⁿ − 2uᵢⁿ + uᵢ₋₁ⁿ) r = αΔt/Δx² 放大因子 G = 1 − 4r·sin²(θ/2) 要求 |G| ≤ 1 → r ≤ 1/2 每步直接显式计算,无需解方程组 Δt ≤ Δx²/(2α) r > 1/2 时误差被逐层放大 出现高频振荡 → 数值解发散 条件稳定 隐式格式(后向欧拉) −r uᵢ₋₁ⁿ⁺¹ + (1+2r)uᵢⁿ⁺¹ − r uᵢ₊₁ⁿ⁺¹ = uᵢⁿ 三对角方程组 放大因子 G = 1 / (1 + 4r·sin²(θ/2)) 对任意 r > 0 均有 |G| ≤ 1 每步需解三对角方程组(Thomas 算法) 单步计算量更大 Δt 不受 Δx² 限制,可取大步长 误差始终被抑制 无条件稳定 对比

从一个具体算例看“稳不稳”

设 α = 0.01,Δx = 0.1,则 Δx²/α = 1。若取 Δt = 0.6,则 r = 0.6 > 0.5,显式格式已越过稳定边界。此时放大因子在最高频 θ = π 处为 G = 1 − 4r = −1.4,绝对值大于 1,意味着网格尺度上的锯齿扰动每步被放大 1.4 倍,约 10 步后幅值增长到原来的 1.4¹⁰ ≈ 29 倍,很快淹没真实解。若改用隐式格式,同一组参数下 G = 1/(1+4×0.6) ≈ 0.294,扰动被迅速衰减,结果依然可用。这个对比说明:稳定性条件直接约束了可用的时间步长,而格式类型决定了这一约束是否存在。