矩阵计算误差分析(条件数和范数)
引言
误差问题是不可避免的,在大量的数据样本中,如果能去掉部分可能造成误差很大的样本,那么对于应用矩阵得到的结果的可靠性则大大加强。例如有999个员工的月收入为 1 0 4 10^4 104元,马云的月收入为 1 0 9 {10^9} 109元,现在问这1000个人的平均月收入,显然将马云的这一数据去掉,更能反映出总体的平均月收入水平。研究矩阵计算 A x = b Ax=b Ax=b中的误差问题,研究方法是对b或者A施加微小的扰动,再通过计算x的变化,得出扰动对于x误差的影响。
对b施加扰动
方程 A x = b Ax=b Ax=b变化为:
A ( x + Δ x ) = b + Δ b A(x+\Delta x)=b+\Delta b A(x+Δx)=b+Δb
A Δ x = Δ b A\Delta x=\Delta b AΔx=Δb
Δ x = A − 1 Δ b \Delta x=A^{-1}\Delta b Δx=A−1Δb
如果 A A A接近奇艺矩阵,即 ∣ A ∣ ≈ 0 \left | A \right | \approx 0 ∣A∣≈0,则 ∣ A − 1 ∣ \left | A^{-1} \right | ∣∣A−1∣∣很大,这就说明当 Δ b \Delta b Δb取某些方向时, Δ x \Delta x Δx将会非常大。
为方便研究,假定 A A A是正定矩阵,且含有n个特征值: 0 < λ 1 ⩽ λ 2 ⩽ . . . ⩽ λ n , 0< \lambda_1\leqslant \lambda_2\leqslant...\leqslant\lambda_n, 0<λ1⩽λ2⩽...⩽λn,对应的特征向量为:
x 1 , x 2 , . . . , x n . x_1,x_2,...,x_n. x1,x2,...,xn.则任意向量都是特征向量的线性组合。
A A A是正定矩阵则 A − 1 A^{-1} A−1也是正定矩阵,且含有n个特征值:
0 < 1 λ n ⩽ 1 λ n − 1 ⩽ . . . ⩽ 1 λ 1 0<\frac{1}{\lambda_n} \leqslant \frac{1}{\lambda_{n-1}}\leqslant...\leqslant\frac{1}{\lambda_1} 0<λn1⩽λn−11⩽...⩽λ11
x 1 , x 2 , . . . , x n x_1,x_2,...,x_n x1,x2,...,xn同时也是 A − 1 A^{-1} A−1的特征向量。
现在设 Δ b = ϵ x i \Delta b=\epsilon x_i Δb=ϵxi,则
Δ x = A − 1 ϵ x i = ϵ x i λ i = Δ b λ i \Delta x=A^{-1} \epsilon x_i=\frac{\epsilon x_i}{\lambda_i}=\frac{\Delta b}{\lambda _i} Δx=A−1ϵxi=λiϵxi=λiΔb
这说明当 b b b取 x 1 x_1 x1方向时,为最坏的扰动,当 λ 1 \lambda_1 λ1接近于0时, x x x将异常灵敏。
上述分析过程中存在一个明显的缺陷:如果将 A A A扩大 1000 1000 1000倍,即 1000 A 1000A