使用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:

相关推荐
通信小呆呆6 小时前
当算法有了“五感”:多模态数据融合如何向人体感官协同学习?
人工智能·学习·算法·机器学习·机器人
benben0447 小时前
强化学习之DQN算法族(基于gymnasium开发)
算法
何以解忧,唯有..8 小时前
Go语言循环语句详解:for、range与循环控制
开发语言·算法·golang
想吃火锅10058 小时前
【leetcode】88.合并两个有序数组js
算法
生成论实验室9 小时前
机器人:一个自主运动的系统
人工智能·算法·语言模型·机器人·自动驾驶·agi·安全架构
Qres8219 小时前
算法复键——树状数组
数据结构·算法
H178535090969 小时前
SolidWorks第四部分_直接实体建模特征9_替换面原理
线性代数·算法·机器学习·3d建模·solidworks
不会就选b9 小时前
算法日常・每日刷题--<二分查找>3
算法
绿算技术10 小时前
Mooncake 与绿算ForinnBase GroundPool如何联手打破推理僵局?
科技·算法·架构