3. 矩阵条件数的定义与几何解释
在数值线性代数中,我们经常需要判断一个线性方程组 Ax = b 是否“好解”。矩阵的行列式、秩、特征值都能提供一些信息,但它们都不足以刻画“输入的小扰动会引起解的多大变化”。真正承担这一任务的核心指标是条件数。本节从范数定义出发,给出条件数的严格表达式,再从几何角度解释它为什么能度量误差放大,最后说明条件数与奇异值之间的定量关系。
一、基于范数的条件数定义
设 A ∈ ℝn×n 非奇异,‖·‖ 是某种向量范数及其诱导的矩阵范数。考虑右端项 b 受到扰动 δb,解相应变为 x + δx,即
A(x + δx) = b + δb
A·δx = δb ⟹ δx = A⁻¹·δb
对两边取范数并利用矩阵范数的相容性 ‖A⁻¹δb‖ ≤ ‖A⁻¹‖·‖δb‖,同时由 b = Ax 得 ‖b‖ ≤ ‖A‖·‖x‖,即 1/‖x‖ ≤ ‖A‖/‖b‖。两式相乘得到相对误差的放大关系:
‖δx‖ / ‖x‖ ≤ ‖A‖·‖A⁻¹‖ · (‖δb‖ / ‖b‖)
系数 ‖A‖·‖A⁻¹‖ 就是条件数,记作
cond(A) = ‖A‖ · ‖A⁻¹‖
它给出了右端项相对扰动到解相对扰动的最坏放大倍数上界。类似地,若矩阵本身受扰动 δA,可推出
‖δx‖ / ‖x + δx‖ ≤ cond(A) · (‖δA‖ / ‖A‖)
因此条件数同时刻画了 b 扰动与 A 扰动两种情形下的敏感度。注意条件数依赖所选取的范数:常用的是 1-范数、∞-范数和 2-范数,同一矩阵在不同范数下的条件数数值不同,但量级趋势一致。工程上最常用的是 2-范数条件数,因为它有清晰的谱结构解释。
二、几何意义:误差放大与“扁平”的像
把矩阵 A 看作从输入空间到输出空间的线性映射。单位球 ‖x‖₂ = 1 经 A 映射后成为一个椭球,椭球的各半轴长度恰好是 A 的奇异值 σ₁ ≥ σ₂ ≥ … ≥ σₙ > 0。最长半轴为 σ₁,最短半轴为 σₙ。
条件数的几何含义就藏在这个椭球的“扁度”里:cond₂(A) = σ₁/σₙ。当 σ₁ 与 σₙ 相差悬殊时,椭球被压得非常扁——某些方向被拉伸很多,某些方向被压缩到接近零。求解 x = A⁻¹b 相当于把输出椭球“拉回”单位球,那些被压缩得最厉害的方向在求逆时被放大得最剧烈。于是 b 中一个很小的、恰好落在短轴方向上的扰动,会被放大 σ₁/σₙ 倍后进入解 x。
直观地说:条件数衡量的是线性映射把球“压扁”的程度,压得越扁,逆映射越容易把微小误差放大成巨大偏差。条件数接近 1 时,椭球接近球,映射近似保形,问题良态;条件数很大时,矩阵接近奇异,问题病态。
三、条件数与奇异值的关系
对 2-范数,诱导矩阵范数等于最大奇异值:‖A‖₂ = σ₁;而 A⁻¹ 的奇异值是 A 奇异值的倒数,故 ‖A⁻¹‖₂ = 1/σₙ。于是得到本节最重要的定量关系:
cond₂(A) = ‖A‖₂ · ‖A⁻¹‖₂ = σ₁ / σₙ = σ_max / σ_min
这一表达式把条件数完全归结为奇异值的动态范围。它带来几个直接推论:
- 条件数恒 ≥ 1:因为
σ₁ ≥ σₙ,等号当且仅当所有奇异值相等,即A是正交矩阵的常数倍(保形映射)。 - 正交矩阵条件数为 1:正交变换不改变长度,是最“稳定”的映射,这也是 QR 分解、Householder 变换在数值算法中被偏爱的根本原因。
- 接近奇异则条件数爆炸:
σₙ → 0时cond₂ → ∞,此时矩阵接近不可逆,求解对扰动极端敏感。 - 与特征值无关:条件数由奇异值决定,而非特征值。一个特征值全为 1 的非对称矩阵(如
[[1, 1000],[0, 1]])条件数可以很大,说明“特征值看起来很好”并不代表问题良态。
四、一个可手算的示例
取 A = [[1, 2],[2, 4.001]]。计算 AᵀA 的特征值可得到奇异值约为 σ₁ ≈ 5.0002、σₙ ≈ 0.0002,于是 cond₂(A) ≈ 2.5×10⁴。若右端项 b = [3, 6.001]ᵀ,精确解接近 [1, 1]ᵀ;但若 b 的第二分量有 10⁻⁴ 量级的舍入误差,解的分量可能偏移 10⁻¹ 量级——相对误差被放大约一万倍。这正是“病态”二字的实际含义:并非算法写错,而是问题本身把微小输入误差放大成了显著输出偏差。
cond₂(A) ≈ 10ᵏ 时,求解结果大约会损失 k 位有效数字。若 k 接近 16,结果基本不可信,应考虑正则化、预处理或改用更高精度。|det(A)| 小当作病态的判据。行列式会随矩阵整体缩放而变化,0.001·I 的行列式很小但条件数为 1,完全良态。判断病态应看奇异值之比,而不是行列式绝对值。理解条件数的定义与几何含义之后,后续讨论的预处理、正则化、迭代求解精度控制,本质上都是在设法降低有效条件数或规避其放大效应。