使用LU分解求解线性方程组

有如下方程组

,当矩阵 A 各列向量互不相关时, 方程组有位移解,可以使用消元法求解,具体如下:

使用消元矩阵将 A 变成上三角矩阵

使用消元矩阵作用于向量 b,得到向量 c,

Ax=b 消元后变为

,即

, 由于

为上三角矩阵, 使用回带法即可求解方程组。

对矩阵

做如下运算

。在消元过程中,已知

,如何求解

呢?

表示将矩阵A的第二行乘以 1 再加上矩阵A的第三行得到矩阵B的第三行,矩阵B的第一二行于矩阵A的第一二行保持一致。根据语义,

表示将矩阵B的第二行乘以 -1 再加上矩阵B的第三行得到矩阵A的第三行,矩阵A的第一二行于矩阵B的第一二行保持一致。

通过以上观察,

仅需将对角线下元素相加即可得到,

,在矩阵消元过程中,对消元系数取反,然后放在相应的位置即构成了

,也就是 L 。同时,消元法记录下了 U,则有 Ux=c, b=Lc。

由于 L 为下三角矩阵,根据 Lc=b, 可求解 c;U 为上三角矩阵, 根据 Ux=c 可求解 x。

在消元过程中,如果遇到主元位置上为 0 情况时,需要使用行变换矩阵使消元过程得以继续,PAx=Pb,P为行变换矩阵,记录矩阵 L,U,P,可实现LU分解,过程如下:

有方程组

,对矩阵

进行LU分解:

1)

2)

3)由于

为 0,需要交换2,3行,则有:

,交换L矩阵中小于第二列下变换因子位置,即交换

元素位置;

4)由于 Lc=Pb, 可计算出 c:

5)由于 Ux=c,可计算出 x:

相关推荐
YuTaoShao25 分钟前
【LeetCode 每日一题】2221. 数组的三角和
数据结构·算法·leetcode
little~钰38 分钟前
树上倍增和LCA算法---上
算法
力扣蓝精灵41 分钟前
今日分享 整数二分
算法
mc235642 分钟前
5分钟学会微算法——Brian Kernighan 算法
算法
Excuse_lighttime44 分钟前
除自身以外数组的乘积
java·数据结构·算法·leetcode·eclipse·动态规划
万添裁44 分钟前
归并排序的三重境界
数据结构·算法
程序员三明治1 小时前
【重学数据结构】队列 Queue
数据结构·后端·算法
Coision.1 小时前
Linux C: 函数
java·c语言·算法
杜小暑1 小时前
数据结构之双向链表
c语言·数据结构·后端·算法·链表·动态内存管理
AndrewHZ1 小时前
【3D图像技术讨论】3A游戏场景重建实战指南:从数据采集到实时渲染的开源方案
人工智能·算法·游戏·3d·开源·llm·colmap