Skip to content

前向误差与后向误差

Forward and backward error

分别衡量计算答案离真解多远,以及它能否视为邻近输入问题的精确解。

形式陈述

给定问题 y=F(x) 和计算结果 y^,前向误差直接比较输出:

efwd=dS(y^,F(x)).

相对或逐分量版本按误差度量选定尺度。前向误差正面回答“答案离当前输入的真解多远”,但真解往往不可计算,因此它常用于理论分析或有高精度参考的实验。

后向误差反过来移动输入。绝对后向误差定义为

η(y^;x)=inf{dD(x~,x):F(x~)=y^},

若不存在使 y^ 成为精确解的允许扰动,则取 +。相对、逐分量和结构化后向误差需要相应限制扰动集合。例如对对称正定矩阵问题,结构化分析可能要求扰动后的矩阵仍然对称正定;允许任意矩阵扰动会回答另一个更宽松的问题。

F 局部可逆且扰动足够小时,条件数连接两者:相对前向误差通常在一阶意义下受 κ(F,x) 乘相对后向误差控制。这个乘积关系包含两项独立信息,不能省略条件数后把“小后向误差”直接翻译成“小前向误差”。

直觉

前向分析站在原题旁边量答案的距离;后向分析则问,计算结果究竟精确解了哪一道邻近题。后者往往更容易,因为算法执行留下的残差能直接构造一个输入扰动,也更能解释稳定算法为何可信:它至少没有把原题改成一题很远的新题。

后向误差不是神经网络中的反向传播,也不是把舍入步骤倒序执行。它是关于问题输入的最小扰动定义,允许移动哪些数据必须事先写清。

例子与边界

对线性系统 Ax=b,给定近似解 x^,令残差 r=bAx^。保持 A 不变并把右端改成 b~=br=Ax^,则 x^ 是邻近系统 Ax^=b~ 的精确解。因此 r 直接提供右端绝对后向误差;若允许同时扰动 Ab,最小后向误差会是另一项结构化优化问题。

病态矩阵可能把极小的右端扰动放大成很大的解变化。于是同一个 x^ 可以有漂亮的后向解释,却离 A1b 很远。这不推翻后向分析,而是准确揭示误差来自问题敏感性。

对多项式求值,y^ 可能非常接近 p(x),却未必等于一组略微扰动的系数在同一点的精确值;若要求系数扰动保持稀疏、符号或次数,结论又会改变。所谓“稳定”必须与后向扰动模型配对。

推论与应用

数值稳定性以小后向误差作为主要算法标准,而残差与误差估计研究如何从可计算缺陷得到后向或前向证书。后续矩阵分解会分别说明其因子满足哪个邻近矩阵的精确关系,避免把所有稳定性压成一句“结果很准”。

实验中若真解已知,应同时报告前向误差和可计算的后向量;若真解未知,后向误差与条件估计比单独残差更有解释力。两种视角互补,不是谁替代谁。

参考资料
  • James H. Wilkinson, Rounding Errors in Algebraic Processes, Prentice-Hall, 1963.
  • Nicholas J. Higham, “What Is Backward Error?”, 2020, nhigham.com.
  • Nicholas J. Higham, Accuracy and Stability of Numerical Algorithms, 2nd ed., SIAM, 2002, Ch. 1.