4. 时间推进格式与非线性稳定性
空间离散把非线性偏微分方程转化为一个常微分方程组 U'(t) = F(U),其中 U 是网格节点上的解向量,F 包含扩散项与非线性反应项。时间推进格式的选择直接决定稳定性、精度与每步计算成本。本节围绕显式与隐式 Runge-Kutta、线性多步法、IMEX 分裂以及非线性稳定性分析展开,并以反应扩散方程为对象比较不同格式的实际表现。
显式与隐式 Runge-Kutta 方法
显式 RK 方法每级只依赖前面已算出的级值,无需解线性或非线性方程组。经典四阶 RK(RK4)的 Butcher 表为:c = [0, 1/2, 1/2, 1],b = [1/6, 1/3, 1/3, 1/6],A 为严格下三角。对扩散主导问题,显式格式的稳定域有限:一维二阶中心差分扩散算子特征值落在负实轴 [-4/h², 0],RK4 要求 Δt ≤ 2.785 h²/(4D),即时间步长随 h² 收缩,网格加密时成本急剧上升。
隐式 RK(如二级 L 稳定的 SDIRK2、三级 Radau IIA)稳定域覆盖整个左半平面,对刚性扩散项可取远大于显式限制的步长。代价是每级需解一个形如 (I - Δt a_ii J) ΔU = r 的线性系统,其中 J = ∂F/∂U 为 Jacobian。对一维问题可用 Thomas 算法,二维问题需稀疏直接法或 Krylov 迭代(GMRES + 预处理)。
线性多步法
线性多步法利用前若干步的历史值构造高阶格式。二阶 BDF2 是刚性问题的常用选择:
(3U^{n+1} - 4U^n + U^{n-1}) / (2Δt) = F(U^{n+1})
BDF2 是 A 稳定且 L 稳定的,适合长时间积分;但变步长时需用插值重构历史项,否则会降阶。显式多步法如 Adams-Bashforth 每步只需一次 F 求值,但稳定域同样受 h² 限制,且启动步需要单步法提供初值。
IMEX 策略
反应扩散方程 u_t = D u_xx + f(u) 中,扩散项线性且刚性,反应项非线性但通常非刚性。IMEX 思路是对扩散项隐式、对反应项显式,兼顾稳定性与实现简便。以 IMEX-Euler 为例:
(U^{n+1} - U^n) / Δt = D · L_h U^{n+1} + f(U^n)
整理得 (I - Δt D L_h) U^{n+1} = U^n + Δt f(U^n),每步只解一个常系数线性系统,矩阵可预先分解复用。高阶版本如 IMEX-BDF2、ARK2 将隐式部分换成 BDF2 或 SDIRK,显式部分用 AB2,整体达到二阶精度。
非线性稳定性分析
线性 von Neumann 分析假设扰动为 Fourier 模态 e^{ikx},代入线性化方程得到放大因子 G(k),要求 |G| ≤ 1。对非线性问题,该方法只在局部线性化意义下有效,不能保证全局有界。
能量法是更严格的工具:对 u_t = D u_xx + f(u) 两边乘 u 并在区域上积分,利用分部积分得
(1/2) d/dt ‖u‖² = -D ‖u_x‖² + ∫ f(u) u dx
若 f(u)u ≤ C(1 + ‖u‖²),则可用 Grönwall 不等式得到 ‖u‖² 的有界性。离散情形下,需验证离散能量 E_h = (1/2)‖U‖² 在时间推进下不增或受控增长。对显式格式,能量法给出的步长限制往往比 von Neumann 更保守但更可靠;对隐式格式,L 稳定性保证高频模态被强阻尼,能量估计通常更宽松。
实战:比较显式与隐式格式求解反应扩散方程
取一维反应扩散方程 u_t = 0.1 u_xx + u(1-u),x ∈ [0,1],初值 u(x,0) = 0.5 + 0.3 sin(2πx),边界为零通量。空间用二阶中心差分,h = 0.01(100 个内点),积分到 T = 1。以下参数与结果均为教学示例设定,用于说明格式差异,非实测数据。
显式 RK4 的稳定步长上限约 7.0e-4,取 Δt = 5e-4 需 2000 步,每步 4 次 F 求值,共 8000 次。IMEX-Euler 取 Δt = 0.01 需 100 步,每步一次三对角求解加一次 f 求值。全隐式 BDF2 取 Δt = 0.02 需 50 步,每步 Newton 迭代 2~3 次,每次解三对角系统。
判断结果时关注三点:其一,解在 t = 1 时是否收敛到 u ≈ 1 的稳态平台(反应项驱动);其二,显式格式若步长超过上限,会出现高频振荡并迅速发散,这是 von Neumann 分析预测的失稳;其三,IMEX 与 BDF2 在相同 Δt 下解的形状应一致,差异体现在时间离散误差上。若 IMEX 的 Δt 取得过大,反应项显式处理仍可能失稳,此时需按 f'(u) 的最大值估计反应 CFL 条件。
f(u)u 的符号与增长阶;若 f 使能量增长,任何格式都无法保证全局有界,此时应改用保正限制器或自适应步长。