数值分析·学习 | 解线性方程组的直接方法(高斯消去法以及LU求解)matlab实现
目录
一、前言:
个人学习内容分享
二、算法描述:
1、高斯消去法:
设有线性方程组
或写为矩阵形式
如果
,则可通过高斯消去法将Ax=b约化为等价的三角形线性方程组,形式如下:计算公式如下:
消元计算(k=1,2,···,n-1)
回代计算
2、高斯消去法-列主元消去法:
1.det←1
2.对于k=1,2,···,n-1
(1)按列选主元
(2)如果
,则停止计算(det(A)=0)(3)如果
则转(4)换行:
(4)消元计算
对于i=k+1,···,n
对于j=k+1,···,n
(5)
3.如果
,则计算停止(det(A)=0)4.回代求解
(1)
(2)对于i=n-1,···,2,1
5.
3、LU分解:
计算U的第r行,L的第r列元素(r=2,3,...,n):
求解Ly=b,Ux=y的计算公式:
三、实现代码:
1、高斯消去法:
2、高斯消去法-列主元消去法:
3、LU分解:
4、求逆矩阵:
四、总结:
高斯消去的原理:矩阵化三角形阵,
选主元的目的是为了降低大数除小数造成的误差放大。
LU分解的原理:将矩阵划分为一个上三角矩阵U和下三角矩阵L,需要注意的是下三角矩阵L的对角线元素为1。