矩阵的条件数¶
参考:王金戈《矩阵的条件数》。本文沿用其“矩阵会拉伸、也会压缩向量”的直觉,并补充范数、非方阵和数值计算中的限定。
条件数(condition number)刻画一个线性问题对输入扰动的敏感程度。对矩阵而言,它关注的是:矩阵对不同方向的向量施加的缩放有多么不均匀。条件数大通常意味着问题可能对噪声、测量误差和浮点舍入误差很敏感。
1. 从诱导矩阵范数开始¶
向量范数衡量向量的长度。若矩阵 \(A\) 被看作线性变换 \(x\mapsto Ax\),由向量范数诱导出的矩阵范数定义为
它表示 \(A\) 对向量长度的最大放大倍数。
若 \(A\) 可逆,则
因此,\(\lVert A^{-1}\rVert\) 的倒数对应 \(A\) 的最小缩放倍数;它很大意味着存在某个方向被 \(A\) 压得非常短。
1.1 补充:奇异值对应的缩放方向¶
在 SVD 分解 \(A=U\Sigma V^\mathsf T\) 中,\(V\) 的列向量 \(v_i\) 是输入空间的一组标准正交方向,\(U\) 的列向量 \(u_i\) 是输出空间的一组标准正交方向。相应的奇异值满足
其中 \(\sigma_i\ge0\),通常按 \(\sigma_1\ge\sigma_2\ge\cdots\) 排序。也就是说,\(A\) 在输入方向 \(v_i\) 上的作用非常简单:它不混合不同的奇异方向,只把 \(v_i\) 缩放 \(\sigma_i\) 倍,再转到方向 \(u_i\) 上。
奇异值也可以由
得到:\(\sigma_i^2\) 是半正定矩阵 \(A^\mathsf T A\) 的特征值。于是,奇异值总是实数且非负。
从长度的角度看,最大的奇异值给出 \(A\) 能实现的最大放大倍数;最小的奇异值给出最小缩放倍数。若某个奇异值为 \(0\),对应方向会被直接压到零向量;若它很小,该方向的信息就几乎被丢失。这正是奇异值会出现在条件数中的原因。
在 2-范数下,\(\lVert A\rVert_2\) 等于 \(A\) 的最大奇异值 \(\sigma_{\max}(A)\) , \(\|A^{-1}\|_2\) 等于 \(A\) 的最小奇异值的倒数 \(\sigma^{-1}_{\min}(A)\) .
2. 条件数的定义¶
2.1 可逆方阵¶
对可逆方阵 \(A\),在指定的诱导范数下定义
它同时比较最大放大倍数与最小缩放倍数。可逆时总有 \(\kappa(A)\ge 1\),且对任意非零标量 \(c\),
所以条件数不受整体单位或尺度变化影响。
2.2 2-范数与奇异值¶
设 \(A=U\Sigma V^\mathsf T\) 为奇异值分解。\(U,V\) 只做旋转(或反射),\(\Sigma\) 沿正交方向以奇异值 \(\sigma_i\) 缩放。因此,对可逆方阵
若 \(A\) 奇异,则 \(\sigma_{\min}=0\),定义 \(\kappa_2(A)=\infty\)。
奇异矩阵(singular matrix):对方阵 \(A\),若它不可逆,就称 \(A\) 为奇异矩阵。以下说法彼此等价:\(\det(A)=0\);\(A\) 的行(或列)向量线性相关;存在非零向量 \(x\) 使得 \(Ax=0\);\(A\) 的最小奇异值为 \(0\)。反之,可逆的方阵称为非奇异矩阵。
2.3 非方阵也有条件数¶
条件数并不限于方阵。设 \(A\in\mathbb R^{m\times n}\),\(r=\min(m,n)\)。若 \(A\) 满秩,即 \(\operatorname{rank}(A)=r\),常定义
其中 \(A^\dagger\) 是 Moore--Penrose 伪逆。
- \(m>n\) 且满列秩时,它对应最小二乘问题中从 \(b\) 到解的敏感性;
- \(m<n\) 且满行秩时,\(Ax=b\) 通常有无穷多个解,\(A^\dagger b\) 选取其中的最小范数解;
- 若不满秩,最小奇异值为零,标准的 2-范数条件数记为 \(\infty\)。
因此,讨论非方阵时还应说明:到底研究的是最小二乘解、最小范数解,还是定义在值域上的逆映射。
3. 几何意义:单位球变成扁椭球¶
把单位球中的所有向量经过 \(A\) 变换:
- 最长半轴长度为 \(\sigma_{\max}\);
- 最短半轴长度为 \(\sigma_{\min}\);
- 长短轴之比就是 \(\kappa_2(A)\)。
当 \(\kappa_2(A)\approx 1\) 时,变换近似“等比例缩放加旋转”,各方向待遇相近;当 \(\kappa_2(A)\gg1\) 时,球被压成很扁的椭球,某些方向的信息几乎被丢失。数值上恢复这些方向就会很困难。
一个典型例子是
此时 \(\kappa_2(A)=1/\varepsilon\)。第二个坐标方向被压缩为原来的 \(\varepsilon\) 倍;反过来求解时,该方向的误差会被放大约 \(1/\varepsilon\) 倍。
4. 为什么它决定线性方程对噪声的敏感性¶
考虑可逆方阵的线性方程
保持 \(A\) 不变,只让观测值 \(b\) 发生扰动 \(\delta b\):
由此 \(A\delta x=\delta b\)。两边同时取范数,有 \(\|A\delta x\| = \|\delta b\|\) 。根据诱导矩阵范数定义, \(\|A\| \ge \dfrac{\|A\delta x\|}{\|\delta x\|}=\dfrac{\|\delta b\|}{\|\delta x\|}\) ,所以有
同理,\(\|A^{-1}\| \ge \dfrac{\|x\|}{\|Ax\|}\) , \(\|Ax\|=\|b\|\) ,于是有
综合 (4-1) 和 (4-2) 式,有
接下来,我们用类似的方法:
- 把 \(\|A\delta x\| = \|\delta b\|\) 与 \(\|A^{-1}\| \ge \dfrac{\|\delta x\|}{\|A\delta x\|}\) 组合得到 \(\|A^{-1}\|\|\delta b\|\ge \|\delta x\|\);
- 把 \(\|Ax\|=\|b\|\) 与 \(\|A\| \ge \dfrac{\|Ax\|}{\| x\|}\) 组合得到 \(\|A\|\|x\|\ge\|b\|\) 。
综合即得
综上,对同一诱导范数,可得相对误差界
这说明:输入 \(b\) 的相对误差与解 \(x\) 的相对误差之比,最多可相差一个条件数的因子。若 \(\kappa(A)=10^6\),则极小的输入误差在最坏方向上也可能被放大百万倍。
条件数描述的是允许出现的最坏情况,不是对每个扰动的预测。即使矩阵条件数很大,某个特定方向的扰动也可能几乎不被放大;反之,最坏方向上的扰动可以逼近上界。
上式只处理 \(b\) 的扰动。实际计算中 \(A\) 本身也可能含有测量或舍入误差;这时需要分析 \((A+\delta A)(x+\delta x)=b+\delta b\),结论会额外依赖 \(\lVert\delta A\rVert/\lVert A\rVert\),而不只是上面的简单界。
6. 常见结论与注意点¶
- 条件数必须说明所用范数;不带下标时常默认 2-范数。
- 对实对称正定矩阵,奇异值就是特征值,故
$\(\kappa_2(A)=\lambda_{\max}(A)/\lambda_{\min}(A).\)$
对一般非正规矩阵,不能随意用特征值之比替代奇异值之比。 3. \(\sigma_{\min}\) 很小比 \(\sigma_{\max}\) 很大更值得警惕:它表示某些输入方向几乎不可恢复。 4. 条件数大不等于“矩阵元素很大”;整体乘以常数并不会改变条件数。 5. 计算条件数时通常基于 SVD 或专门估计器;避免为了求条件数而直接构造逆矩阵。
7. 一句话总结¶
在 2-范数下,条件数就是矩阵最大、最小奇异值之比。它衡量线性变换对不同方向缩放得有多不均匀,也衡量求解相关线性问题时输入相对误差可能被放大到什么程度。