线性代数方程组的直接解法
1. Gauss消去法
本质:对增广矩阵做行变换,将系数矩阵变为上三角阵,然后从最后一行开始往前迭代求解
1.1 顺序消去与回代过程
令:
其中:
那么:
因此
A
(
n
)
A^{(n)}
A(n)会是一个上三角阵,不妨记为
U
U
U
故这里得到矩阵的第一个分解方式—— Doolittle分解
,即:
A = L U A=LU A=LU
其中 L L L是单位下三角阵, U U U是上三角阵。
改变
L
L
L或
U
U
U的对角线元素,让其等于或不等于1,即可得到另外两种分解方式:LDU分解
和crout分解
顺序消去能实现的充分条件:
矩阵的各阶顺序主子式均不为0.
1.2 列主元素消去法
在做Gauss消去时,为了保证求解的精度,通常需要选取列中绝对值最大的元素为“主元”,然后消去下面同列的所有元素。
2. 直接三角分解法
本节讨论Gauss消去法的一些变形,这是利用系数矩阵A的LU分解的方法.我们讨论一般情形以及两种特殊情形.
2.1 Doolittle分解
只要矩阵A的各阶顺序主子式均不为0,那么就可以作如下分解:
接着
A
x
=
b
Ax=b
Ax=b就变成了
L
U
x
=
b
LUx=b
LUx=b,显然可以将其拆为两个等式:
L
y
=
b
,
U
x
=
y
Ly=b, Ux=y
Ly=b,Ux=y
由于上三角和下三角是比较好求解的,所以只要将矩阵A分解为LU的形式,接下来求解过程就变得简单很多。
LU分解的过程,通常是使用待定系数法,首先根据矩阵A的第一行值求解相应参数,然后根据第一列值求解相应系数,再根据第二行求解相应系数,再根据第二列,
…
\dots
…如此下去,用图表示即为:
2.2 三对角方程组的追赶法
特别地,如果矩阵 A A A满足如下形式:
那么矩阵L和U将有更加简洁的形式,即:
可以看到矩阵U的次对角线元素就是矩阵A的次对角线元素,根本不需要求解。而元素
u
i
u_i
ui和元素
l
i
l_i
li需要依次求解,先求解元素
u
i
u_i
ui再求解
l
i
+
1
l_{i+1}
li+1,用图表示即为:
此分解方法又称为追赶法
,或称Thomas方法
。
追赶法能实现的充分条件是:
如果一个矩阵满足上述条件,那么不仅计算量小,而且数值稳定。
对三对角矩阵分解后求解方程的思路与Doolittle求解思路一致。
2.3 对称正定矩阵的cholesky分解、平方根法
如果一个矩阵对称,且各阶顺序主子式都不为0,那么有以下定理:
如果一个矩阵对称正定(即各阶顺序主子式都大于0),那么有以下cholesky分解定理
:
因此对于一个对称正定矩阵,可以作cholesky分解,用此方法解方程组称为Cholesky 方法(又称为平方根法)
,即矩阵A分解为:
本质上,上述矩阵L的参数求解也是待定系数法,但是需要注意的是,对角线元素是要通过开方得到,而开方的时候,我们总是取正数。
cholesky分解时,由于A是对称矩阵,所以我们只需要按A的列逐次求解L的待定系数
对对称正定矩阵进行cholesky分解后求解方程的思路与Doolittle求解思路一致。
3. 矩阵的条件数和病态方程组
3.1 扰动方程组
我们有如下问题,如果系数矩阵
A
A
A和右端向量
b
b
b都有较小的扰动,得到的解
x
x
x的扰动是否很大?
实际上,可能对解
x
x
x产生很大的扰动,这样方程称为病态方程组
(或者说矩阵
A
A
A为病态矩阵
),病态与否取决于A
3.2 矩阵的条件数
为了分析矩阵的病态与否,需要定义条件数,如下:
条件数的性质:
有了条件数后,可以得到 当系数矩阵
A
A
A无扰动,而右端向量有扰动 时,解的相对误差上界:
有了条件数后,可以得到 当系数矩阵 A A A有扰动,而右端向量无扰动 时,解的相对误差上界:
也可以得到当 系数矩阵
A
A
A有扰动,且右端向量有扰动 时,解的相对误差上界:
3.3 处理病态问题
实际上,行平衡就是把系数矩阵中每一行的最大元素都化为1,这样每行行向量的无穷范数都会大致相等,减小A的条件数。
举例:
参考文献:
关治,陆金甫《数值方法》