高斯消去法
\qquad 高斯消去法实质是产生了一个将 A A A分解为两个三角形矩阵相乘的因式分解,即矩阵的因式 L U LU LU分解,如果矩阵 A A A的顺序主子式 D i ≠ 0 ( i = 1 , 2 , ⋯   , n − 1 ) D_{i}\neq0(i=1,2,\cdots,n-1) Di̸=0(i=1,2,⋯,n−1),则 A A A可以分解为一个单位下三角形矩阵 L L L和一个上三角形矩阵 U U U的乘积,矩阵的分解是唯一的。
误差分析
\qquad
考虑线性方程组
A
x
=
b
Ax=b
Ax=b
\qquad
其中,
A
A
A为非奇异矩阵,
x
x
x为方程组的精确解。由于
A
A
A和
b
b
b中的元素由测量得到的,因此矩阵中会带有观测误差,实际处理的矩阵为
A
+
δ
A
A+\delta A
A+δA或
b
+
δ
b
b+\delta b
b+δb,微小误差对解的影响使用如下方法表示:
\qquad
当矩阵
A
A
A或常数项
b
b
b的微小变化,引起线性方程组
A
x
=
b
Ax=b
Ax=b解的巨大变化,则称此线性方程组为"病态"方程组,矩阵
A
A
A为“病态”方程组,反之为“良态”方程组。
\qquad
假设
A
A
A是精确的,
b
b
b是有误差的
δ
b
\delta b
δb,解为
x
+
δ
x
x+\delta x
x+δx,则
A
(
x
+
δ
x
)
=
b
+
δ
b
,
δ
b
=
A
−
1
δ
b
,
∣
∣
δ
b
∣
∣
≤
∣
∣
A
−
1
∣
∣
∣
∣
δ
b
∣
∣
A(x+\delta x)=b+\delta b,\ \delta b=A^{-1}\delta b,\ ||\delta b||\leq||A^{-1}||\ ||\delta b||
A(x+δx)=b+δb, δb=A−1δb, ∣∣δb∣∣≤∣∣A−1∣∣ ∣∣δb∣∣
\qquad
由线性方程组有
∣
∣
b
∣
∣
≤
∣
∣
A
∣
∣
∣
∣
x
∣
∣
,
1
∣
∣
x
∣
∣
≤
∣
∣
A
∣
∣
∣
∣
b
∣
∣
(
b
≠
0
)
||b||\leq ||A||\ ||x||,\ \frac{1}{||x||}\leq\frac{||A||}{||b||}\ (b\neq 0)
∣∣b∣∣≤∣∣A∣∣ ∣∣x∣∣, ∣∣x∣∣1≤∣∣b∣∣∣∣A∣∣ (b̸=0)
\qquad
则
∣
∣
δ
x
∣
∣
∣
∣
x
∣
∣
≤
∣
∣
A
−
1
∣
∣
∣
∣
A
∣
∣
∣
∣
δ
b
∣
∣
∣
∣
b
∣
∣
\frac{||\delta x||}{||x||}\leq||A^{-1}||\ ||A||\ \frac{||\delta b||}{||b||}
∣∣x∣∣∣∣δx∣∣≤∣∣A−1∣∣ ∣∣A∣∣ ∣∣b∣∣∣∣δb∣∣
\qquad
上式给出解的相对误差的上界,常数项
b
b
b的相对误差在解中可能放大了
∣
∣
A
−
1
∣
∣
∣
∣
A
∣
∣
||A^{-1}||\ ||A||
∣∣A−1∣∣ ∣∣A∣∣倍。
∣
∣
δ
x
∣
∣
∣
∣
x
∣
∣
≤
∣
∣
A
−
1
∣
∣
∣
∣
A
∣
∣
∣
∣
δ
A
∣
∣
∣
∣
A
∣
∣
1
−
∣
∣
A
−
1
∣
∣
∣
∣
A
∣
∣
∣
∣
δ
A
∣
∣
∣
∣
A
∣
∣
\frac{||\delta x||}{||x||}\leq \frac{||A^{-1}||\ ||A^{}||\ \frac{||\delta A||}{||A||}}{1-||A^{-1}||\ ||A^{}||\ \frac{||\delta A||}{||A||}}
∣∣x∣∣∣∣δx∣∣≤1−∣∣A−1∣∣ ∣∣A∣∣ ∣∣A∣∣∣∣δA∣∣∣∣A−1∣∣ ∣∣A∣∣ ∣∣A∣∣∣∣δA∣∣
\qquad
说明矩阵
A
A
A的相对误差在
∣
∣
δ
A
∣
∣
∣
∣
A
∣
∣
\frac{||\delta A||}{||A||}
∣∣A∣∣∣∣δA∣∣在解中可能放大
∣
∣
A
−
1
∣
∣
∣
∣
A
∣
∣
||A^{-1}||\ ||A||
∣∣A−1∣∣ ∣∣A∣∣倍。
∣
∣
A
−
1
∣
∣
∣
∣
A
∣
∣
||A^{-1}||\ ||A||
∣∣A−1∣∣ ∣∣A∣∣实际刻画了解对原始数据变化的灵敏程度。条件数定义为
c
o
n
d
(
A
)
v
=
∣
∣
A
∣
∣
v
∣
∣
A
−
1
∣
∣
v
(
v
=
1
,
2
,
∞
)
cond (A)_{v}=||A||_{v}\ ||A^{-1}||_{v}(v=1,2,\infty)
cond(A)v=∣∣A∣∣v ∣∣A−1∣∣v(v=1,2,∞)。条件数越大,方程组越病态。常见的条件数:
(
1
)
c
o
n
d
(
A
)
∞
=
∣
∣
A
−
1
∣
∣
∞
∣
∣
A
∣
∣
∞
(
2
)
c
o
n
d
(
A
)
2
=
∣
∣
A
∣
∣
2
∣
∣
A
−
1
∣
∣
2
=
λ
m
a
x
(
A
T
A
)
λ
m
i
n
(
A
A
T
)
(1)\ cond(A)_{\infty}=||A^{-1}||_{\infty}||A||_{\infty}\\ (2)\ cond(A)_{2}= ||A||_{2}||A^{-1}||_{2}=\sqrt{\frac{\lambda_{max}(A^{T}A)}{\lambda_{min}(AA^{T})}}
(1) cond(A)∞=∣∣A−1∣∣∞∣∣A∣∣∞(2) cond(A)2=∣∣A∣∣2∣∣A−1∣∣2=λmin(AAT)λmax(ATA)
\qquad
条件数的性质:
(1) 条件数
c
o
n
d
(
A
)
v
≥
1
cond(A)_{v}\ge 1
cond(A)v≥1
(2)
c
o
n
d
(
c
A
)
v
=
c
o
n
d
(
A
)
v
cond(cA)_{v}=cond(A)_{v}
cond(cA)v=cond(A)v
(3)如果
A
A
A是正交矩阵,则
c
o
n
d
(
A
)
2
=
1
cond(A)_{2}=1
cond(A)2=1,如果
R
R
R是正交矩阵则
c
o
n
d
(
R
A
)
2
=
c
o
n
d
(
A
R
)
2
=
c
o
n
d
(
A
)
2
cond(RA)_{2}=cond(AR)_{2}=cond(A)_{2}
cond(RA)2=cond(AR)2=cond(A)2
\qquad
实际计算中发现病态关系:
(1)
A
A
A的三角约化时出现小主元
(2) 行列式值相对很小
(3) 元素件数量级相差很大
\qquad
改善方法可以采用高精度的算术运算或者采用预处理方法。迭代改善法是用
x
1
x_{1}
x1的剩余向量提高
x
1
x_{1}
x1的精度。
A
x
=
b
Ax=b
Ax=b为病态方程组并不过分病态。
1.
选
用
主
元
三
角
分
解
实
行
分
解
计
算
P
A
=
˙
L
U
,
计
算
解
x
1
1. 选用主元三角分解实行分解计算 PA\dot{=}LU,计算解x_{1}
1.选用主元三角分解实行分解计算PA=˙LU,计算解x1
2.
对
于
k
=
1
,
2
,
⋯
 
,
N
0
2. 对于k=1,2,\cdots,N_{0}
2.对于k=1,2,⋯,N0
(
1
)
计
算
r
k
=
b
−
A
x
k
(
使
用
原
始
A
及
双
精
度
计
算
)
(1) 计算r_{k}=b-Ax_{k}(使用原始A及双精度计算)
(1)计算rk=b−Axk(使用原始A及双精度计算)
(
2
)
求
解
L
U
d
k
=
P
r
k
,
即
L
y
=
P
r
k
,
U
d
k
=
y
(2) 求解LUd_{k}=Pr_{k},即Ly=Pr_{k},Ud_{k}=y
(2)求解LUdk=Prk,即Ly=Prk,Udk=y
(
3
)
如
果
∣
∣
d
k
∣
∣
∞
/
∣
∣
x
k
∣
∣
∞
≤
1
0
−
t
,
输
出
k
,
x
k
,
r
k
,
停
机
(3) 如果||d_{k}||_{\infty}/||x_{k}||_{\infty}\leq 10^{-t},输出k,x_{k},r_{k},停机
(3)如果∣∣dk∣∣∞/∣∣xk∣∣∞≤10−t,输出k,xk,rk,停机
(
4
)
改
善
x
k
+
1
=
x
k
+
d
k
(4) 改善x_{k+1}=x_{k}+d_{k}
(4)改善xk+1=xk+dk
\qquad
当系数矩阵不是过分病态时,迭代改善发可以提高近似解精度。当其非常病态时,
x
k
x_{k}
xk可能不收敛。