“定理也没有分析浮点舍入。它把每个 $C k$ 当作精确应用,并研究网格扰动在选定范数中的传播。实际实现每步产生的舍入误差可以作为附加源项放进稳定估计,但要证明 backward stabil…”
形式陈述 ​
设数值问题为
且
前向稳定直接控制
相对于问题条件数和舍入尺度的大小。混合稳定允许部分输入扰动与部分输出误差同时存在;弱稳定常只保证某些性质或较松的误差界。这些术语在不同文献中并非完全统一,使用时应给出实际不等式,而不是只贴标签。
后向稳定与良态问题结合,才通常推出小前向误差:
在
直觉
后向稳定算法给计算结果一份可追溯说明:它也许没有精确解原题,却精确解了一道只被机器精度轻轻移动过的题。若附近问题的答案彼此接近,结果便可信;若原问题病态,邻近题的真解也可能相距很远,稳定算法仍无法创造输入中没有的有效数字。
这种解释比逐步追踪每个舍入误差更有整体感。局部误差可以在中间量上抵消或放大,后向分析则直接问最终结果能否回收到一个小的数据扰动。不过,小扰动必须属于问题认可的集合,否则“邻近问题”可能已经改变了物理或代数结构。
例子与边界
本页稳定性衡量计算过程面对舍入和输入微扰时是否给出邻近问题的可靠答案;平衡点稳定性衡量连续动力系统受状态扰动后是否留在或回到平衡点附近。名称相同,受扰对象与时间语义完全不同。
计算
避免巨大中间量。在 binary64 中取 hypot 还要处理无穷、NaN、次正规数和极端比例,不能只复制这条公式便宣称语义等价。
最小二乘中形成正规方程会把
反过来,后向稳定也不保证所有输出分量都有小相对误差。病态问题会放大输入扰动,极小或精确为零的分量还需要逐分量或绝对尺度。某个特殊输入上得到很小前向误差,也不足以证明算法后向稳定:偶然准确没有提供对邻近输入和全部执行路径的统一保证。
“稳定”在其他领域还有不同对象。动力系统的平衡稳定研究连续轨道,ODE 绝对稳定研究离散测试方程的放大因子,多步法零稳定研究扰动模式,PDE 格式稳定研究离散演化算子;它们都不能与本页的有限精度算法稳定性互换。
推论与应用
前向与后向误差给出稳定性的度量语言,消去误差与稳定重写展示局部公式怎样破坏或恢复稳定路径,矩阵分解页面则会陈述其计算因子究竟对应哪个邻近矩阵。算法稳定性结论应落到可检查的不等式,而不是停在“行业通常认为稳定”的经验判断。
实践中,可靠性报告至少要同时给出问题条件估计、可计算残差或后向误差,以及实现采用的精度和异常处理。主元与增长因子展示这一链条在线性消元中的具体形态:增长控制后向误差,矩阵条件数再决定前向精度。只有前向结果、问题敏感性和算法误差放在一起,才能判断丢失的数字来自数据、方法还是执行环境。
参考资料
- Nicholas J. Higham, “What Is Numerical Stability?”, 2020, nhigham.com.
- Nicholas J. Higham, Accuracy and Stability of Numerical Algorithms, 2nd ed., SIAM, 2002, Chs. 1–3.
- Lloyd N. Trefethen, “The Definition of Numerical Analysis,” in The Princeton Companion to Mathematics, 2008.