6.2 数值稳定性

6.2 数值稳定性

矩阵 A A 的行向量虽然不相关,但当某个行向量几乎可以被其它行向量线性表示时,矩阵 A A 接近奇异,如果计算 A R 1 = A T ( A A T ) 1 A^{-1}_R=A^T(AA^T)^{-1} 采用 ( A A T ) (AA^T) 的逆,则会导致数值不稳定。可采用第五章技术,利用 Q R QR 分解,提高数值稳定性。

令矩阵 B = A T B = A^T ,则矩阵 B B 是列满秩矩阵,进行 Q R QR 分解得 B = Q R B = QR ,代入 A R 1 = A T ( A A T ) 1 A^{-1}_R=A^T(AA^T)^{-1} A R 1 = B ( B T B ) 1 = Q R ( R T Q T Q R ) 1 = Q R ( R T R ) 1 = Q R R 1 R T = Q R T A^{-1}_R=B(B^TB)^{-1}=QR(R^TQ^TQR)^{-1}=QR(R^TR)^{-1}=QRR^{-1}R^{-T}=QR^{-T} A R 1 A = Q R T R T Q T = Q Q T A^{-1}_RA = QR^{-T}R^TQ^T=QQ^T ,所以通解为
x = Q R T b + ( E Q Q T ) a \mathbf{x} = QR^{-T}\mathbf{b} + (E-QQ^T)\mathbf{a}

为了提高数值稳定性,可采用改进的 Gram-Schmidt 方法进行 Q R QR 分解,具体计算过程如下:

1、采用改进的 Gram-Schmidt 方法对矩阵 A T A^T 进行 Q R QR 分解,得 Q = ( q 1 , , q m ) Q=(\mathbf{q}_1,\cdots,\mathbf{q}_m) R R .
2、解方程 R T z = b R^T\mathbf{z}=\mathbf{b} z = ( ζ 1 , , ζ m ) \mathbf{z}=(\zeta_1,\cdots,\zeta_m) .
3、令 b = 0 \mathbf{b}=\mathbf{0} ;for k = m , , 1 k=m,\cdots,1 do { ω k : = q k T b ; b : = b ( ω k ζ k ) q k \omega_k:=\mathbf{q}^T_k\mathbf{b};\mathbf{b}:=\mathbf{b}-(\omega_k-\zeta_k)\mathbf{q}_k }; x p m i n : = b \mathbf{x}^{min}_p:=\mathbf{b}

最终范数最小解为 x p m i n : = b \mathbf{x}^{min}_p:=\mathbf{b}

2 2 步解方程 R T z = b R^T\mathbf{z}=\mathbf{b} ,当矩阵 R R 的对角元素值趋近 0 0 时,此时矩阵 A A 接近奇异,可采用阻尼倒数法进行稳定计算。

改进的 Gram-Schmidt 方法和阻尼倒数法详细介绍见第五章,本节从略。

猜你喜欢

转载自blog.csdn.net/jhshanvip/article/details/105930597