对 A x = b Ax=b Ax=b,如果A或者b有轻微的变动,会使得求解出的 x x x发生巨变,这种矩阵就是病态的
A x = b Ax=b Ax=b 真实情况
A ( Δ x + x ) = Δ b + b A(\Delta x+x)=\Delta b+b A(Δx+x)=Δb+b 代入误差的扰动情况
Δ x = A − 1 Δ b \Delta x=A^{-1}\Delta b Δx=A−1Δb
取范数后有
∣ ∣ Δ x ∣ ∣ ≤ ∣ ∣ A − 1 ∣ ∣ ∣ ∣ Δ b ∣ ∣ ||\Delta x|| \le ||A^{-1}||||\Delta b|| ∣∣Δx∣∣≤∣∣A−1∣∣∣∣Δb∣∣
∣ ∣ Δ b ∣ ∣ ≤ ∣ ∣ A ∣ ∣ ∣ ∣ x ∣ ∣ ||\Delta b|| \le ||A||||x|| ∣∣Δb∣∣≤∣∣A∣∣∣∣x∣∣
所以
c o n d ( A ) = ∣ ∣ A ∣ ∣ ∗ ∣ ∣ A − 1 ∣ ∣ cond(A)=||A|| *||A^{-1}|| cond(A)=∣∣A∣∣∗∣∣A−1∣∣记为A的条件数
它越小越好,||A||是A的范数
条件数过大,矩阵就是病态是
逆的求解比较复杂,也有一些经验性公式判断病态矩阵
迭代改善求解
Ax=b
先求一个 x 1 x_1 x1,然后代入 x 1 x_1 x1求b计算和真实b误差 r r r,再求解Ax=r,方法迭代更新 x x x