seegongsik
工程数学

数值误差 步长

误差按方法的阶随步长缩小,精度、稳定性与成本的拉锯

这一组方法被一个约定捆在一起。误差大约是 C 乘以步长的 p 次方,也就是 error≈C·hᵖ。这里的 p 是方法的阶。欧拉是 1 次,RK2 是 2 次,RK4 和辛普森是 4 次。用对数对对数作轴,把误差和步长 h 点出来,得到一条直线,斜率就是阶 p。阶=斜率。把步长减半,p 阶误差就缩小为 2 的 p 次方倍。4 次方法则是 16 倍。把 h 无休止地缩小并不是尽头。太小,舍入误差会从地板上冒出来。显式方法越过稳定界限就会爆发。步数按 1/h 增加,计算代价变大。精度和代价之间的平衡,才是数值分析真正要选的地方。

横轴是 log h,纵轴是 log(误差)。对 error=C·hᵖ 两边取对数,就得到一条直线,斜率恰好是阶 p。三条直线是蓝色的 1 次、橙色的 2 次、绿色的 4 次。用按钮突出一个阶,用 h 滑块移动直线上的点。同样地缩小 h,4 次线上的点下降得陡得多。阶越高,同样的力气让误差掉得越快。这一张图是整组的地图。

只看阶的话,把 h 送到 0,误差似乎也会变成 0。现实不是这样。总误差是截断误差 C·h² 加上舍入误差 ε/h。缩小 h,第一项下降,第二项上升。于是曲线画出一个 U 形的谷。把 h 滑块拖到谷的最左端,点变成红色,撞上舍入的地板,误差又变大。没有无限精密的计算。谷底是这台机器能给出的最好。

精度不是唯一的墙。衰减式 y'=−ky 取 k=5,用显式欧拉来解。上方的带子是步长的轴。绿色区域又稳定又准确,红色区域不稳定。边界是 h = 2/k = 0.4。把滑块的点放在绿色里面移动,越小越贴住真解。越过 0.4 进入红色,不论精度如何,数值解都会一边翻符号一边爆发。短步不只是精密,也是挡住发散的那条线。

把四种方法放在同一个平面上。Euler(1 次)、RK2(2 次)、RK4(4 次)、辛普森(4 次)的误差直线画在一起。用按钮选定方法,那条直线被突出,h 滑块同时移动所有直线上的点。h 大的时候差别小。h 越小,高阶方法越准确。同样是 4 次,辛普森的直线略低于 RK4,是因为系数 C 更小。阶决定斜率,系数决定高度。

最后是实务里的拉锯。看得见两根条。误差 = C·h² 随 h 缩小而变小,代价也就是步数 ∝ 1/h 随 h 缩小而变大。下方的曲线是两者相加的总损失。把 h 滑块拉到两端,一端误差太大,另一端代价太大。中间某处有一个最好的位置。点在那里变成绿色,那一步同时满足精密和代价。两端的点保持橙色。整组指向的结论就是这个位置。

实际应用这一组方法由 error≈C·hᵖ 捆在一起。p 是阶,在对数对对数的轴上表现为误差对 h 的直线斜率。阶=斜率。p 阶误差在 h 减半时缩小为 2 的 p 次方倍。h 不能无限缩小。太小,舍入误差从地板冒出。显式方法越过稳定界限就会爆发。步数按 1/h 增加,代价变大。实务要找的是误差与代价之和最小的位置。泰勒说明一步的误差,欧拉、RK 和辛普森做出那个阶,这些图展示收敛和它的界限。
← 工程数学
如果有帮助,请支持我们