章节摘要:本章跟着一条主线走——模拟一个振荡弹簧,看着显式欧拉法在几万步内把振幅慢慢吹大、能量凭空增长,然后逐一请出更精密的积分器修补时间线。数值积分、Runge-Kutta、刚性问题的隐式方法,构成误差随时间演化的完整病理学。
ODE 数值解与前面所有章节有一个本质区别:它是百万步的连续作案。解非线性方程迭代 20 步,一步的 eps 误差无关大局;积分到 t=1000 要走十万步,每步的截断误差和舍入误差都在时间轴上留下案底,互相叠加、有时互相抵消、偶尔共振放大。
主线案例选最朴素的谐振子 y'' = -y(初值 y=1,速度为 0),真解是永不停歇的余弦振荡,能量守恒。用它做试金石是因为它毫不留情:数值方法任何系统性的能量注入或泄漏,都会在振幅上直接显形——振幅涨了,方法在凭空造能;振幅跌了,方法在给物理系统装阻尼。
本章的认知转折是从"每步误差"切换到"误差的长期行为"。局部截断误差小(精度阶高)不等于长期行为正确——RK4 的局部误差远小于欧拉,但在纯振荡系统里同样缓慢地累积相位误差。另一重转折是刚性的发现:有些系统的步长限制根本不是精度问题而是稳定性问题,把步长压到精度所需的百分之一只是浪费算力,隐式方法才是正解。会判断"我面对的是精度受限还是稳定受限",是 ODE 数值求解者与调参工的分水岭。
三节实验共享同一个谐振子测试台,这是刻意安排的:同一块试金石上,欧拉、RK4、隐式方法的差异被公平地暴露出来。建议把三节的代码合并成一个对比脚本,一次运行输出三种方法的能量漂移曲线——这张图本身就是本章最好的复习笔记。
步长的数量级感也在这里建立:精度主导时步长常取系统最短周期的百分之一量级;刚性主导时显式步长被压到快尺度倒数的量级——两个尺度差几个数量级,就是该换隐式方法的信号灯。
时间轴上的确定性演化到此可控。第五章转向另一个维度:当积分维数从一维涨到一百维、当输入本身带不确定性,确定性网格失效,随机方法登场——误差的语言也要从"每步多少"换成"方差多大"。