Chapter 6 解线性方程组的直接法 | Direct Methods for Solving Linear Systems¶
约 2836 个字 15 张图片 预计阅读时间 14 分钟
6.1 回代的Gauss消去法 | Gaussian elimination with backward substitution¶
算法内容¶
解方程组
通过高斯消元我们可以得到新的增广矩阵
第
第
如果
写成伪代码如下:
计算次数¶
由于在计算机上完成乘法或除法所需的时间大致相同,且大于完成加法或减法所需的时间,所以我们分开考虑乘法和除法的计算次数。
对上述算法进行分析,可以得到计算次数如下:
消元过程¶
在每个
Step 5
需要完成 次除法,Step 6
由 代替方程 的过程中,对每个 ,需要完成 次乘法和 次减法。所以共需要完成 次乘法和 次减法。
所以,消元过程共需要完成
即消元过程共需要完成
回代过程¶
Step 8
需要完成
在每个
Step 9
需要完成 次乘法和 次加法(对每个相加项),然后是一次减法和一次除法。
所以,回代过程共需要完成
即回代过程共需要完成
总计算次数¶
乘法/除法:
加法/减法:
从这里我们可以得知,高斯消元法的算法复杂度为
6.2 选主元策略 | Pivoting Strategies¶
在上个算法中,我们观察到,如果与
部分主元选取策略 | Partial Pivoting¶
我们考虑选择一个比较大的元素作为主元,这样就可以减小误差的积累。
所以我们可以在每次迭代时,从第
伪代码如下:
比例因子选取策略 | Scaling Partial Pivoting¶
这个方法通过比较"每一行的元素都除以该行的最大元素的绝对值",然后通过这个结果进行部分主元选取策略,再对原方程组部分进行行交换,从而选取主元。
这里的比例因子就是每一行的最大元素的绝对值,即
比例因子只在初始过程中计算一次,然后在每次迭代过程中,比例因子也需要参与交换。
伪代码与部分主元策略的差别如下:
全主元选取策略 | Complete Pivoting¶
上个算法中,比例因子只在初始过程中计算一次。如果考虑到过程被修改,使得每次作行变换的决定时,要确定新的比例因子,那这种方法就是全主元选取策略(Complete Pivoting)。
6.5 矩阵分解 | Matrix Factorization¶
LU分解 | LU Factorization¶
假设Gauss消去法在此次解方程后没有进行行交换,Gauss消去法的第一步是对
那我们可以把这个过程写成矩阵的形式:
记最左边的矩阵为
这里的
用
一般的,如果
则有
这个过程结束在第
此过程就形成了
因为
所以
由此我们可以得到:
如果Gauss消去法在线性方程组
如果
用反证法。
如果
因为上三角阵的逆依然是上三角阵,下三角阵同理。所以等式左右分别为上三角阵和下三角阵。又因为
即
所以这个分解是唯一的。
伪代码¶
先进行LU分解。
解第一个方程
解第二个方程
6.6 特殊类型的矩阵 | Special Types of Matrices¶
严格对角占优矩阵 | Strictly Diagonally Dominant Matrices¶
如果对矩阵
定理:严格对角占优矩阵是非奇异的。而且,在此情况下,Gauss消去法可用在形如
正定矩阵 | Positive Definite Matrices¶
本书中的正定矩阵是指对称正定矩阵,与其他书中的定义不同。
一个矩阵
定理
如果
a.
b.
c.
d.
重要结论:如果
分解¶
我们可以把
我们知道,
伪代码如下:
Cholesky分解¶
取
伪代码如下:
三对角矩阵 | Tridiagonal Matrices¶
三对角矩阵是指除了对角线和对角线上方和下方的第一条对角线外,其他元素均为0的矩阵,形式如下:
定理:假设
Crout分解¶
Crout分解是LU分解的一种特殊情况,我们可以求出具有形式
的三对角矩阵
通过矩阵乘法,我们可以得到:
在求解部分,我们可以先解