LU分解和转置

EA=U#

我们通过消元法解出Ax=b,在消元过程中,我们要把A化成上三角形式,我们称之为U。而E就是描述AU关系的矩阵,我们有EA=U

这是之前学过的内容,再熟悉不过了,但是我们的行交换矩阵E并不是一个漂亮的形式,为啥这么说呢!?看个例几~

A=[2424105029]

E21[100210001]×A[2424105029]=U1[242021029]

这里我们对A第二行进行消元,我们使用矩阵E21来表示上面左乘矩阵A的矩阵,这个矩阵反应了我们对A的消元操作,这就不用我说了。

我们把这一步得出的矩阵暂且命名为U1

E32[100010011]×U1[242021029]=U[242021008]

继续消元,这回就得到最后的U了。

E=[100010011]×[100210001]=[100210211]

得出了E,E反应了我们对A所进行的消元操作,E(2,1)说明该行从原矩阵取了-2倍行一,E(2,2)说明该行从原矩阵取了1倍行二,这也就是我们对第二行进行的消元操作——减去2倍行一。

但是第三行就有问题了,我们对第三行进行消元时,并没有从第三行中减去任何倍的行一,我们直接减去了1倍的行2,但是这个位置却有个2,这是因为上一步消元中我们对行2减去了2倍行一,而这次消元我们直接用行3减去了已经处理完的行2,所以之前的操作就体现在这里了。

但是,这个数据是多余的,因为矩阵E中的第二行已经足够说明这个操作了,我们不想要它。这就有了A=LU这一形式。

A=LU#

我们先看看L是啥,因为之前我们知道的式子是EA=U,两边分别左乘E1,则得到A=E1U,所以LE的逆。

然后再看看E的逆是啥:

E1=L=[100210011]

对于E这种消元矩阵,逆的本质其实是把消元所做的操作复原,所以那些关键的部分的负号都变成了正号。所以它的你很容易得到。

不过随便你用什么求逆,高斯若尔当法、matlab??反正你会得到这个,令人惊奇的是这个矩阵个没用的数字没了只剩下这些我们关注的,对消元有用的信息。

A=PLU#

呦呦呦,不知道你发没发现,上面我们举得例子都是没有行互换的,而现实场景恰恰都要行互换,所以我们要得到下一个形式。

我们先来定义一些置换矩阵,它是单位矩阵的行互换形式,对于这种矩阵,它的逆等于它本身,它们相乘,结果也依然在这些矩阵中。

我们看看2×2形式下的所有置换矩阵:

[1001],[0110]

第一个就是单位阵,它啥都不做,第二个把第一行和第二行互换。

对于3×3我就不说了,它有6个,对于n×nn!个置换矩阵。

所以完整的形式应该是A=PLU,P代表所作的行互换。

转置#

转置放在这里实在有点不搭,但是Gilbert Strang老爷子就是这么讲的哈哈哈,我好喜欢这老爷子~~

转置即把矩阵放倒或立起来:

A=[132341],AT=[124331]

对称矩阵的转置等于本身:

A=AT[135327574]

对于转置有如下运算性质:

(AB)T=BTAT

一个矩阵乘它的转置必定得到一个对称矩阵:

(AAT)T=ATTAT=AAT

参考资料#

posted @   yudoge  阅读(664)  评论(0编辑  收藏  举报
编辑推荐:
· AI与.NET技术实操系列:向量存储与相似性搜索在 .NET 中的实现
· 基于Microsoft.Extensions.AI核心库实现RAG应用
· Linux系列:如何用heaptrack跟踪.NET程序的非托管内存泄露
· 开发者必知的日志记录最佳实践
· SQL Server 2025 AI相关能力初探
阅读排行:
· 震惊!C++程序真的从main开始吗?99%的程序员都答错了
· 【硬核科普】Trae如何「偷看」你的代码?零基础破解AI编程运行原理
· 单元测试从入门到精通
· winform 绘制太阳,地球,月球 运作规律
· 上周热点回顾(3.3-3.9)
点击右上角即可分享
微信分享提示
主题色彩