高斯消元
的有线性方程组An×n * X n*1= Bn*1
当A满秩是方程组有唯一解
高斯消元就是一个简单的解方程组的办法
高斯消元就是简单的通过初等行变换,将A变成一个上三角矩阵
这样就能从下到上一个一个的解出每个x的值,从而获得方程组的解
简单解释:
获取上三角矩阵之后方程变为
a11x1 + a12x2+ ... + a1nxn = b1
a22x2 + ....+a2nxn = b2
.
.
annxn = bn
这样就可以从下往上解出x
时间复杂度
初等行变换做n次,每次把第k列,k+1 - n行全部变为0
每做一次时间复杂度为n2
做n次的时间复杂度为n3
回带反向求解时,时间复杂度n2
总时间复杂度 O(n3)
优缺点
优点:简单实在
缺点:当顺序主子式=0时算法报错(除数为0)
当除数很小时,会增大误差(计算机的储存丢失精度导致的误差)
列主元消去法
这个挺简单的
就是在做高斯消去的时候
每次将这一列的最大值放在对角线上即可
就是比高斯消去多了一个初等行变换而已
他的优点是,避免对角线上出现0导致不能解和对角线上出现非常小的数字,导致计算出来的误差非常大
矩阵三角分解法
LU分解:
由高斯消元的方法可以看到,高斯消元主要就是对A矩阵进行初等行变换使其变成上三角矩阵
那么进行初等行变换的过程可理解为矩阵乘法
设Ln为第n次初等行变换所乘的矩阵
则高斯消元可表示为Ln*Ln-1*.....*L1*A = U
Ln*Ln-1*.....*L1 = L
A = L-1 * U
即为LU分解 L为上三角矩阵, U为下三角矩阵
每个矩阵的LU分解唯一
证明
A = LU = L1U1
因为秩不为0所有两个矩阵均可逆
L-1L1 = UU-1
因为左边均为下三角矩阵, 右边均为上三角矩阵
所以左右两边均为单位阵
所以L = L1 U = U1
直接三角分解法
对与A = LU
求解Ly = b求出y
Ux = y 求出x
得解