Skip to content

定义Definition

前向误差与后向误差

Forward and backward error

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

形式陈述 ​

给定数值问题 y=F(x) 和计算结果 y^,前向误差直接比较输出。记 dD 为输入空间的距离、dS 为输出空间的距离;它们可以由事先选定的范数给出:

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

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

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

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

若不存在使 y^ 成为精确解的允许扰动,则取 +∞。相对、逐分量和结构化后向误差需要相应限制扰动集合。例如对对称正定矩阵问题,结构化分析可能要求扰动后的矩阵仍然对称正定;允许任意矩阵扰动会回答另一个更宽松的问题。后向误差是这些允许扰动距离的下确界,不要求由某个扰动达到;算法证明里构造出的一个允许扰动只能给它一个上界。

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

直觉

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

后向误差不是把舍入步骤倒序执行。它考察问题输入的允许扰动距离:一份好的解释既要说扰动有多小,也要说移动了哪些数据、保留了哪些结构。

例子与边界

对线性系统 Ax=b,给定近似解 x^,令残差 r=b−Ax^。保持 A 不变并把右端改成 b~=b−r=Ax^,则 x^ 是邻近系统 Ax^=b~ 的精确解。因此当 b≠0 时,右端相对后向误差为 ‖r‖/‖b‖。若允许矩阵和右端都按同一相对预算 η 扰动,即

‖ΔA‖≤η‖A‖,‖Δb‖≤η‖b‖,

则对向量 2-范数及其诱导的矩阵 2-范数,在分母非零时,范数型后向误差恰为

η(x^)=‖r‖‖A‖‖x^‖+‖b‖.

这个分母可以从扰动方程看出来:(A+ΔA)x^=b+Δb 等价于 r=ΔAx^−Δb,所以三角不等式给出 ‖r‖≤η(‖A‖‖x^‖+‖b‖)。在上述无结构 2-范数模型中,可沿残差方向分配两种扰动以达到此界;若要求扰动保留对称性或零元素,就不能直接沿用这个等式。

病态矩阵可能把极小的右端扰动放大成很大的解变化。以 A=diag(1,10−8)、b=(1,10−8)T 和 x^=(1,0)T 为例,精确解为 x=(1,1)T,残差为 r=(0,10−8)T。因此右端相对后向误差为 10−8/1+10−16≈10−8,相对前向误差却是 ‖(0,−1)‖2/‖(1,1)‖2=1/2。矩阵的 2-范数条件数为 108,正好指出第二方向上的扰动会被强烈放大。这不推翻后向分析,反而准确揭示了误差由问题敏感性放大。

允许扰动什么,甚至会决定后向误差是否有限。例如把 F(t)=t2 看作实数输入问题,在 t=0 处得到 y^=−10−16:绝对前向误差很小,但没有任何实数 t~ 满足 t~2=y^,所以后向误差为 +∞。若改成允许扰动函数的常数项,那已是另一种输入模型。所谓“稳定”必须与扰动模型配对。

推论与应用

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

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

对时间积分,邻近问题可以是一条修正微分方程。修正方程与后向误差分析逐阶改变向量场来解释离散轨迹,并明确形式级数、截断误差界与特殊精确嵌入之间的区别。

参考资料
  • 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.
关系图谱14 个相邻概念 · 2 类关系

拖动节点调整位置。

显示关系

显示:依赖

  1. 前置三跳
  2. 前置二跳
  3. 前置一跳
  4. 当前条目
  5. 后续一跳
  6. 后续二跳
  7. 后续三跳
文字版关系按与当前条目的最短距离分组
类型化关系