6.2 数值稳定性
矩阵 A A A 的行向量虽然不相关,但当某个行向量几乎可以被其它行向量线性表示时,矩阵 A A A 接近奇异,如果计算 A R − 1 = A T ( A A T ) − 1 A^{-1}_R=A^T(AA^T)^{-1} AR−1=AT(AAT)−1 采用 ( A A T ) (AA^T) (AAT) 的逆,则会导致数值不稳定。可采用第五章技术,利用 Q R QR QR 分解,提高数值稳定性。
令矩阵
B
=
A
T
B = A^T
B=AT ,则矩阵
B
B
B 是列满秩矩阵,进行
Q
R
QR
QR 分解得
B
=
Q
R
B = QR
B=QR ,代入
A
R
−
1
=
A
T
(
A
A
T
)
−
1
A^{-1}_R=A^T(AA^T)^{-1}
AR−1=AT(AAT)−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}
AR−1=B(BTB)−1=QR(RTQTQR)−1=QR(RTR)−1=QRR−1R−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
AR−1A=QR−TRTQT=QQT ,所以通解为
x
=
Q
R
−
T
b
+
(
E
−
Q
Q
T
)
a
\mathbf{x} = QR^{-T}\mathbf{b} + (E-QQ^T)\mathbf{a}
x=QR−Tb+(E−QQT)a
为了提高数值稳定性,可采用改进的 Gram-Schmidt 方法进行 Q R QR QR 分解,具体计算过程如下:
1、采用改进的 Gram-Schmidt 方法对矩阵
A
T
A^T
AT 进行
Q
R
QR
QR 分解,得
Q
=
(
q
1
,
⋯
,
q
m
)
Q=(\mathbf{q}_1,\cdots,\mathbf{q}_m)
Q=(q1,⋯,qm) 和
R
R
R .
2、解方程
R
T
z
=
b
R^T\mathbf{z}=\mathbf{b}
RTz=b 得
z
=
(
ζ
1
,
⋯
,
ζ
m
)
\mathbf{z}=(\zeta_1,\cdots,\zeta_m)
z=(ζ1,⋯,ζm) .
3、令
b
=
0
\mathbf{b}=\mathbf{0}
b=0 ;for
k
=
m
,
⋯
,
1
k=m,\cdots,1
k=m,⋯,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
ωk:=qkTb;b:=b−(ωk−ζk)qk };
x
p
m
i
n
:
=
b
\mathbf{x}^{min}_p:=\mathbf{b}
xpmin:=b
最终范数最小解为 x p m i n : = b \mathbf{x}^{min}_p:=\mathbf{b} xpmin:=b 。
第 2 2 2 步解方程 R T z = b R^T\mathbf{z}=\mathbf{b} RTz=b ,当矩阵 R R R 的对角元素值趋近 0 0 0 时,此时矩阵 A A A 接近奇异,可采用阻尼倒数法进行稳定计算。
改进的 Gram-Schmidt 方法和阻尼倒数法详细介绍见第五章,本节从略。