矩阵的LU分解法——Python实现

理论参考:

LU分解、LDLT分解和Cholesky分解          https://blog.csdn.net/zhouliyang1990/article/details/21952485

Doolittle分解法(LU分解)详细分析以及matlab的实现    https://blog.csdn.net/lol_IP/article/details/78491457

 

       在线性代数中,LU分解(LU Decomposition)是矩阵分解的一种,可以将一个矩阵分解为一个单位下三角矩阵和一个上三角矩阵的乘积(有时是它们和一个置换矩阵的乘积)。LU分解主要应用在数值分析中,用来解线性方程、求反矩阵或计算行列式。

        LU分解在本质上是高斯消元法的一种表达形式。实质上是将A通过初等行变换变成一个上三角矩阵,其变换矩阵就是一个单位下三角矩阵。这正是所谓的杜尔里特算法(Doolittle algorithm):从下至上地对矩阵A做初等行变换,将对角线左下方的元素变成零,然后再证明这些行变换的效果等同于左乘一系列单位下三角矩阵,这一系列单位下三角矩阵的乘积的逆就是L矩阵,它也是一个单位下三角矩阵。这类算法的复杂度一般在(三分之二的n三次方) 左右。

伪代码:

算法 LU Decomposition 
//输入矩阵A[1…n,1…n],并且A的所有顺序主子式都不为0
//输出下三角矩阵L和上三角矩阵U
L←n阶zero矩阵  //初始化一个n阶zero矩阵
U←n阶zero矩阵 
for i ← 1 to n do
	L[i][i] ← 1 //L的主对角线元素全为1
        if i==0 do  //分别利用A的第一行元素第一列元素,确定L的第一列元素和U的第一行元素
        U[0][0] ← A[0][0] 			      
		for j ← 1 to n do
			U[0][j] ←A[0][j]
			L[j][0] ←A[j][0]/U[0][0]
	else
		for j ← i to n do  //计算矩阵U
			for k ← 1 to i-1 do
				temp ←
评论 6
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值