科学仿真

常微分方程积分器选型:从 RK4 到刚性问题的隐式方法

导读:解 $y'=f(y)$ 的算法库有几十种,选错积分器是科学计算最常见的性能事故。NR 的选型逻辑值得整章背诵。

非刚性问题:RK 家族

经典四阶 Runge-Kutta 是万能起点,但每步四次函数求值且无误差控制。工程首选是自适应 RK45(Dormand-Prince):内嵌误差估计自动调步。

高精度长积分考虑高阶外推法或多步法(Adams):多步法复用历史点,函数求值更省。

刚性问题:显式方法的死刑

刚性 = 解含多个相差悬殊的时间尺度,且你只关心慢的那个。显式方法被迫用最快尺度的时间步(稳定性约束),即使精度早已足够。判据:雅可比特征值实部比 $\gg 1$。

出路是隐式方法:backward Euler、BDF 系列( Gear 法)或隐式 Runge-Kutta(Radau)。每步要解非线性方程组(Newton 法 + 雅可比),换来对刚性的免疫。

选型决策树

先试自适应显式 → 若步长被稳定性(而非精度)压死,判定刚性 → 换 BDF/Radau 类隐式 → 提供解析雅可比或好的稀疏模式。化学动力学、电力系统、电路仿真几乎总是刚性。

常见误区

  • 用 RK4 解化学反应动力学,跑一夜也算不完一个毫秒。
  • 刚性问题的雅可比用差分近似且步长选错,Newton 法不收敛归咎于初值。

吃透自检

  • 能通过步长行为诊断刚性问题
  • 能解释显式稳定性区域与刚性判据的关系
  • 能为给定 ODE 选出积分器并说明理由

← 科学仿真 书目精读列表 经典研读