“初始可行基不一定显然存在,需两阶段法或人工变量;无界方向、不可行和退化要分别诊断。退化枢轴可能目标不变并造成循环,Bland 规则等可保证终止。修正单纯形实现会反复求解以基矩阵 $B$ 为系…”
形式陈述 ​
设数值问题为映射
其中扰动必须保持
若
其中算子范数由输入、输出范数诱导。非光滑点可能只有方向条件数,或条件数为无穷。条件数依赖问题表示、允许的扰动结构、尺度和考察点;脱离这些信息说某个矩阵或数据“条件数大”并不完整。
直觉 ​
条件数问的是:即使有一位理想计算者精确解题,只把输入轻轻移动,正确答案会移动多远?若答案剧烈变化,问题病态;若变化同量级,问题良态。它评价的是问题地图的局部伸缩,而不是某段程序跑得好不好。
输入数据通常已经含有测量或表示误差。条件数给出这些误差能被真解放大的尺度,因此是任何算法都绕不过去的精度上限。稳定算法能避免再制造远大于这一上限的误差,却不能从不确定数据中恢复不存在的信息。
例子与边界 ​
对
多项式
参数化也会改变相对条件数。正数可直接用
推论与应用 ​
若算法产生大小为
线性方程、最小二乘和特征值问题会各自发展结构化条件数。它们都应从本页的通用定义出发,再指定允许扰动哪些数据、使用什么范数;不能把算法的增长因子、迭代次数或残差大小冒充条件数。
参考资料
- 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.