导读:解 $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 选出积分器并说明理由