文章目录
- 1. 定义
- 2. 为什么要定义条件数?
- 3. 性质及几何意义
- 3.1. 性质
- 3.2. 几何意义
- 4. 计算方法
- 5. 应用与影响
- 6. 常见误区
- 7. 经典例子
- 8. 条件数估计
- 总结
矩阵的条件数(conditional number)是衡量矩阵数值稳定性的关键指标,是判断矩阵是否处于病态 (ill-conditioned) 的一种度量标准,尤其在数值分析和线性代数中至关重要。以下将对矩阵条件数进行总结。
1. 定义
矩阵的条件数衡量矩阵对扰动或误差的敏感性。对于非奇异矩阵 A ∈ R n × n A \in \mathbb{R}^{n \times n} A∈Rn×n,其条件数定义为:
Cond ( A ) = ∥ A ∥ ⋅ ∥ A − 1 ∥ , \ \text{Cond}(A) = \| A \| \cdot \| A^{-1} \|, \ Cond(A)=∥A∥⋅∥A−1∥,
其中 ( ∥ ⋅ ∥ ) (\| \cdot \|) (∥⋅∥) 为矩阵范数。常用范数包括:
- 2-范数(谱条件数): Cond 2 ( A ) = σ max σ min \text{Cond}_2(A)=\frac{\sigma_{\max}}{\sigma_{\min}} Cond2(A)=σminσmax, σ max \sigma_{\max} σmax 和 σ min \sigma_{\min} σmin 分别为最大和最小奇异值。
- 1-范数 和 ∞-范数:通过列或行绝对和的最大值计算。
- Frobenius范数:基于矩阵元素的平方和。
作用:
条件数越大,矩阵越“病态”(ill-conditioned),微小的输入扰动会导致解的显著变化
条件数接近1时,矩阵为“良态”(well-conditioned),数值计算稳定性高
2. 为什么要定义条件数?
2.1 分析线性系统 A ( x + Δ x ) = b + Δ b A(x + \Delta x) = b + \Delta b A(x+Δx)=b+Δb
在线性系统 A x = b Ax = b Ax=b中,假设 A A A 是可逆矩阵。对向量 b 增加扰动得到向量 b + Δ b b + \Delta b b+Δb,分析对应的解 x x x 和 x + Δ x x + \Delta x x+Δx之间的变化:
原始线性系统:
A x = b Ax = b Ax=b
扰动线性系统:
A ( x + Δ x ) = b + Δ b A(x + \Delta x) = b + \Delta b A(x+Δx)=b+Δb
将扰动系统代入原始系统,得到:
b + A Δ x = b + Δ b b + A\Delta x = b + \Delta b b+AΔx=b+Δb
⇒ A Δ x = Δ b \Rightarrow A\Delta x = \Delta b ⇒AΔx=Δb
⇒ Δ x = A − 1 Δ b \Rightarrow \Delta x = A^{-1}\Delta b ⇒Δx=A−1Δb
引入矩阵范数(subordinate matrix norm),根据其性质可得:
∥ Δ x ∥ ≤ ∥ A − 1 ∥ ∥ Δ b ∥ \| \Delta x \| \leq \| A^{-1} \| \| \Delta b \| ∥Δx∥≤∥A−1∥∥Δb∥
结合原始系统 ( b = Ax ) 的范数关系:
∥ b ∥ ≤ ∥ A ∥ ∥ x ∥ ⇒ ∥ x ∥ ≥ ∥ b ∥ ∥ A ∥ \| b \| \leq \| A \| \| x \| \Rightarrow \| x \| \geq \frac{\| b \|}{\| A \|} ∥b∥≤∥A∥∥x∥⇒∥x∥≥∥A∥∥b∥
当 ( b \neq 0 ) 时,解的相对误差满足:
∥ Δ x ∥ ∥ x ∥ ≤ ( ∥ A ∥ ∥ A − 1 ∥ ) ∥ Δ b ∥ ∥ b ∥ \frac{\| \Delta x \|}{\| x \|} \leq \left( \| A \| \| A^{-1} \| \right) \frac{\| \Delta b \|}{\| b \|} ∥x∥∥Δx∥≤(∥A∥∥A−1∥)∥b∥∥Δb∥
2.2 分析线性系统 ( A + Δ A ) ( x + Δ x ) = b (A + \Delta A)(x + \Delta x) = b (A+ΔA)(x+Δx)=b
在线性系统 A x = b Ax = b Ax=b 中,假设 A 是可逆矩阵。对矩阵 A 增加扰动得到 A + Δ A A + \Delta A A+ΔA,分析对应的解 x x x 和 x + Δ x x + \Delta x x+Δx 之间的变化:
原始线性系统:
A x = b Ax = b Ax=b
扰动线性系统:
( A + Δ A ) ( x + Δ x ) = b (A + \Delta A)(x + \Delta x) = b (A+ΔA)(x+Δx)=b
将扰动系统展开并代入原始系统,得到:
A ( x + Δ x ) + Δ A ( x + Δ x ) = b A(x + \Delta x) + \Delta A(x + \Delta x) = b A(x+Δx)+ΔA(x+Δx)=b
⇒ A Δ x + Δ A ( x + Δ x ) = 0 \Rightarrow A\Delta x + \Delta A(x + \Delta x) = 0 ⇒AΔx+ΔA(x+Δx)=0
⇒ Δ x = − A − 1 Δ A ( x + Δ x ) \Rightarrow \Delta x = -A^{-1}\Delta A(x + \Delta x) ⇒Δx=−A−1ΔA(x+Δx)
取范数并利用矩阵范数的相容性,可得:
∥ Δ x ∥ ≤ ∥ A − 1 ∥ ∥ Δ A ∥ ∥ x + Δ x ∥ \| \Delta x \| \leq \| A^{-1} \| \| \Delta A \| \| x + \Delta x \| ∥Δx∥≤∥A−1∥∥ΔA∥∥x+Δx∥
进一步整理相对误差:
∥ Δ x ∥ ∥ x + Δ x ∥ ≤ ∥ A ∥ ∥ A − 1 ∥ ∥ Δ A ∥ ∥ A ∥ \frac{\| \Delta x \|}{\| x + \Delta x \|} \leq \| A \| \| A^{-1} \| \frac{\| \Delta A \|}{\| A \|} ∥x+Δx∥∥Δx∥≤∥A∥∥A−1∥∥A∥∥ΔA∥
结合原始系统的范数关系 ∥ A ∥ ∥ x ∥ ≥ ∥ b ∥ \| A \| \| x \| \geq \| b \| ∥A∥∥x∥≥∥b∥,当 ∥ A − 1 ∥ ∥ Δ A ∥ < 1 \| A^{-1} \| \| \Delta A \| < 1 ∥A−1∥∥ΔA∥<1 时,解的相对误差满足:
∥ Δ x ∥ ∥ x ∥ ≤ ∥ A ∥ ∥ A − 1 ∥ 1 − ∥ A − 1 ∥ ∥ Δ A ∥ ⋅ ∥ Δ A ∥ ∥ A ∥ \frac{\| \Delta x \|}{\| x \|} \leq \frac{\| A \| \| A^{-1} \|}{1 - \| A^{-1} \| \| \Delta A \|} \cdot \frac{\| \Delta A \|}{\| A \|} ∥x∥∥Δx∥≤1−∥A−1∥∥ΔA∥∥A∥∥A−1∥⋅∥A∥∥ΔA∥
2.3 定义矩阵的条件数
从上述两个扰动线性系统的分析中可以看出,解的相对误差均与常数项 ∥ A ∥ ∥ A − 1 ∥ \|A\| \|A^{-1}\| ∥A∥∥A−1∥ 相关。因此,矩阵的条件数可定义为:
对于任意可逆矩阵 A ,其条件数为
cond ( A ) = ∥ A ∥ ∥ A − 1 ∥ \text{cond}(A) = \|A\| \|A^{-1}\| cond(A)=∥A∥∥A−1∥
其中, cond ( ⋅ ) \text{cond}(\cdot) cond(⋅)表示条件数。
应用分析:
-
扰动右端项 ( \Delta b ) 的影响:
对于线性系统 A ( x + Δ x ) = b + Δ b A(x + \Delta x) = b + \Delta b A(x+Δx)=b+Δb,当 b ≠ 0 b \neq 0 b=0时,解的相对误差满足
∥ Δ x ∥ ∥ x ∥ ≤ cond ( A ) ∥ Δ b ∥ ∥ b ∥ \frac{\| \Delta x \|}{\| x \|} \leq \text{cond}(A) \frac{\| \Delta b \|}{\| b \|} ∥x∥∥Δx∥≤cond(A)∥b∥∥Δb∥ -
扰动矩阵 ( \Delta A ) 的影响:
对于线性系统 ( A + Δ A ) ( x + Δ x ) = b (A + \Delta A)(x + \Delta x) = b (A+ΔA)(x+Δx)=b,当 b ≠ 0 b \neq 0 b=0 时,解的相对误差满足
∥ Δ x ∥ ∥ x + Δ x ∥ ≤ cond ( A ) ∥ Δ A ∥ ∥ A ∥ \frac{\| \Delta x \|}{\| x + \Delta x \|} \leq \text{cond}(A) \frac{\| \Delta A \|}{\| A \|} ∥x+Δx∥∥Δx∥≤cond(A)∥A∥∥ΔA∥
进一步约束条件:
若扰动矩阵满足
∥ Δ A ∥ < 1 ∥ A − 1 ∥ \| \Delta A \| < \frac{1}{\| A^{-1} \|} ∥ΔA∥<∥A−1∥1
则解的相对误差可进一步表示为
∥ Δ x ∥ ∥ x ∥ ≤ cond ( A ) ∥ Δ A ∥ ∥ A ∥ ⋅ 1 1 − ∥ A − 1 ∥ ∥ Δ A ∥ \frac{\| \Delta x \|}{\| x \|} \leq \text{cond}(A) \frac{\| \Delta A \|}{\| A \|} \cdot \frac{1}{1 - \| A^{-1} \| \| \Delta A \|} ∥x∥∥Δx∥≤cond(A)∥A∥∥ΔA∥⋅1−∥A−1∥∥ΔA∥1
3. 性质及几何意义
3.1. 性质
- 下界为1: Cond ( A ) ≥ 1 \text{Cond}(A) \geq 1 Cond(A)≥1。正交矩阵的谱条件数为1,是“最良态”的矩阵。
- 缩放不变性: Cond ( k A ) = Cond ( A ) \text{Cond}(kA) = \text{Cond}(A) Cond(kA)=Cond(A), k ≠ 0 k \neq 0 k=0。
- 奇异矩阵:条件数为无穷大(最小奇异值为零)。
- 对称正定矩阵:谱条件数为最大与最小特征值之比。
3.2. 几何意义
条件数反映矩阵变换对单位球的拉伸/压缩程度。谱条件数为变换后椭球最长轴与最短轴之比,比值越大,矩阵越“病态”。
4. 计算方法
- 奇异值分解(SVD):计算最大和最小奇异值的比值(谱条件数)。
- 矩阵逆的范数:如利用1-范数或∞-范数时需显式计算逆矩阵。
- 数值工具:MATLAB中可用
cond(A, p)
计算不同范数下的条件数( p = 1 , 2 , inf , ’fro’ p=1, 2, \text{inf}, \text{'fro'} p=1,2,inf,’fro’)。
5. 应用与影响
- 线性方程组求解:条件数过大时,解的相对误差被显著放大。误差估计式为:
∥ Δ x ∥ ∥ x ∥ ≤ Cond ( A ) ( ∥ Δ A ∥ ∥ A ∥ + ∥ Δ b ∥ ∥ b ∥ ) . \ \frac{\|\Delta x\|}{\|x\|} \leq \text{Cond}(A) \left( \frac{\|\Delta A\|}{\|A\|} + \frac{\|\Delta b\|}{\|b\|} \right). \ ∥x∥∥Δx∥≤Cond(A)(∥A∥∥ΔA∥+∥b∥∥Δb∥). - 病态问题处理:需采用正则化(如岭回归)、高精度计算或预处理技术。
- 特征值与奇异值:对称矩阵的谱条件数由特征值决定,非对称矩阵则由奇异值决定。
- 机器学习:权值矩阵条件数过大可能导致训练不稳定,需归一化或正则化。
6. 常见误区
- 行列式无关性:行列式大小与条件数无直接关系(如对角矩阵可具大行列式但良态)。
- 特征值与条件数:非对称矩阵的特征值可能为复数,条件数仅由奇异值决定。
7. 经典例子
- 希尔伯特矩阵:随阶数增长迅速病态,如5阶条件数已超 1 0 5 10^5 105。
- 对角矩阵: diag ( 1 , ϵ ) \text{diag}(1, \epsilon) diag(1,ϵ) 的条件数为 1 / ϵ 1/\epsilon 1/ϵ, ϵ → 0 \epsilon \to 0 ϵ→0 时病态。
8. 条件数估计
- Hager-Higham算法:估计1-范数条件数。
- 迭代法:近似最大/最小奇异值以评估谱条件数。
总结
矩阵条件数是数值分析中的核心概念,直接影响算法稳定性与精度。理解其定义、计算方法和应用场景,有助于在科学计算与工程问题中避免数值不稳定,提升解的质量。
https://www.phys.uconn.edu/~rozman/Courses/m3511_18s/downloads/condnumber.pdf