形式陈述
设数值问题 公理库 数值问题与数值算法 Numerical problem and algorithm 区分数学问题、有限数据、求解算法与实际执行,并据此追踪误差和计算成本。 为映射 F : D → S ,输入与输出赋范空间 公理库 赋范向量空间 Normed vector space 带满足正定、齐次与三角不等式范数的向量空间。 配有指定范数。F 在 x 处的绝对局部条件数可定义为
κ abs ( F , x ) = lim ε ↓ 0 sup 0 < ‖ Δ x ‖ ≤ ε ‖ F ( x + Δ x ) − F ( x ) ‖ ‖ Δ x ‖ , 其中扰动必须保持 x + Δ x ∈ D 。当 x ≠ 0 、F ( x ) ≠ 0 时,相对局部条件数相应为
κ rel ( F , x ) = lim ε ↓ 0 sup 0 < ‖ Δ x ‖ ≤ ε ‖ x ‖ ‖ F ( x + Δ x ) − F ( x ) ‖ / ‖ F ( x ) ‖ ‖ Δ x ‖ / ‖ x ‖ . 若 F 在有限维空间中可微 公理库 多元函数导数 Derivative in several variables · Jacobian derivative Fréchet 导数在有限维 Euclidean 坐标中的 Jacobian、梯度与方向导数表示。 ,展开式
F ( x + Δ x ) − F ( x ) = D F ( x ) Δ x + o ( ‖ Δ x ‖ ) 把局部敏感性化为导数的最大放大率,因而
κ abs ( F , x ) = ‖ D F ( x ) ‖ , κ rel ( F , x ) = ‖ x ‖ ‖ F ( x ) ‖ ‖ D F ( x ) ‖ , 其中算子范数由输入、输出范数诱导;标量情形简化为 κ rel ( F , x ) = | x F ′ ( x ) / F ( x ) | 。非光滑点可能只有方向条件数,或条件数为无穷。条件数依赖问题表示、允许的扰动结构、尺度和考察点;脱离这些信息说某个矩阵或数据“条件数大”并不完整。
直觉
条件数问的是:即使有一位理想计算者精确解题,只把输入轻轻移动,正确答案会移动多远?若答案剧烈变化,问题病态;若变化同量级,问题良态。它评价的是问题地图的局部伸缩,而不是某段程序跑得好不好。
输入数据通常已经含有测量或表示误差。若相对输入不确定度约为 ε ,一阶预测的相对输出变化尺度是 κ ε ;当该乘积不再远小于 1 时,线性化本身也需要用有限扰动界复核。稳定算法能避免再制造远大于数据敏感性的误差,却不能从不确定数据中恢复不存在的信息。
例子与边界
对 F ( x ) = 1 / x ,绝对条件数为 1 / | x | 2 ,在零附近迅速增大;相对条件数却恒为 1 ,因为输入和输出都按自身尺度归一化。同一个例子说明“病态”必须连同绝对或相对度量一起说,不能只看导数大小。
相减映射 F ( x , y ) = x − y 在逐分量相对扰动下的一阶相对条件数是
κ sub ( x , y ) = | x | + | y | | x − y | . 例如 x = 1.00000001 、y = 1 时,真差为 10 − 8 ,而条件数约为 2.00000001 × 10 8 :操作数各有 10 − 10 量级的相对不确定度,就足以让差的相对误差达到百分数级。消去误差 公理库 消去误差与稳定重写 Cancellation and stable reformulation · Catastrophic cancellation 解释相近量相减为何会放大已有误差,并用等价公式、缩放和专用函数改造有限精度计算路径。 页面讨论算法如何避免在可重写的问题中额外触发这种放大;这里的条件数只陈述“由这两个近似输入求差”本身的敏感性。
多项式 p ( t ) 的简单根 r 对函数值扰动的一阶敏感性含有 1 / | p ′ ( r ) | 。当两个根合并成重根时 p ′ ( r ) = 0 ,根对系数或函数扰动会异常敏感;这属于求根问题的条件性,不是 Newton 或其他算法单独造成。
参数化也会改变相对条件数。正数可直接用 x 表示,也可写成 x = e z ;在 z 坐标中加性扰动对应 x 上的乘性扰动。两种问题输入空间的度量不同,所得条件数自然不同,不能跨表示直接比较。
推论与应用
若算法产生大小为 η 的相对后向误差,一阶上常得到“相对前向误差约不超过 κ η ”。精确关系见前向误差与后向误差 公理库 前向误差与后向误差 Forward and backward error 分别衡量计算答案离真解多远,以及它能否视为邻近输入问题的精确解。 ;算法稳定性 公理库 数值稳定性 Numerical stability · Backward stability 以允许的小输入扰动刻画算法的有限精度行为,并与问题条件性及其他稳定性概念分开。 控制 η ,问题条件性控制从 η 到前向误差的放大,两项不能互相代替。
线性方程、最小二乘和特征值问题会各自发展结构化条件数。它们都应从本页的通用定义出发,再指定允许扰动哪些数据、使用什么范数;不能把算法的增长因子、迭代次数或残差大小冒充条件数。
参考资料
Nicholas J. Higham, “What Is a Condition Number?”, 2020, nhigham.com .
Nicholas J. Higham, Accuracy and Stability of Numerical Algorithms , 2nd ed., SIAM, 2002, Ch. 1.
Lloyd N. Trefethen and David Bau III, Numerical Linear Algebra , SIAM, 1997, Lectures 12–14.