首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >scipy LU分解置换矩阵

scipy LU分解置换矩阵
EN

Stack Overflow用户
提问于 2014-04-22 09:06:57
回答 3查看 3.8K关注 0票数 3

根据我对LU分解的理解,这意味着对于下三角矩阵L和上三角矩阵U,矩阵A可以写为A= LU。

然而,scipy中与LU分解(lulu_factorlu_solve)相关的函数似乎涉及第三个矩阵P,使得A= PLU,P是置换矩阵( L,U与前面一样)。

这个排列矩阵的意义是什么?如果“真正的”LU分解总是可能的,为什么P不是单位矩阵呢?

EN

回答 3

Stack Overflow用户

发布于 2014-04-22 09:31:55

考虑高斯消去过程。如果轴上有一个零,你会怎么做?您必须交换行,这引入了一个P矩阵。

更重要的是,非常小的非零轴值会导致浮点环境中的数值不稳定。基本算法通过在透视表列中搜索具有最大绝对值的条目并将相应的行与透视表行进行切换来避免这种情况。

这种切换可能很昂贵,因此通常情况下,最大的绝对值条目必须比轴心的绝对值大一些,例如10,才会发生切换。这减少了开关的数量,但保留了限制浮点错误所需的开关。

在"LU factorization with partial“中搜索关于这个问题的任何数量的好资源。

注:由于P是置换矩阵,因此P^T = P^(-1)。因此,Ax =b具有与LUx = P^T b相同的解决方案(有些实现返回您所说的P,而另一些实现返回您所说的P^T并称之为P-确保您知道它是哪一个。这是'PA = LU‘和'A = PLU’之间的区别-P在每种情况下都不相同)。

票数 9
EN

Stack Overflow用户

发布于 2014-04-22 09:25:34

不是所有的矩阵都有LU分解。但是每个方阵至少有一个具有LU分解的行排列。

票数 3
EN

Stack Overflow用户

发布于 2014-04-23 07:34:54

添加到@DomJack:更改排列(也称为重新排序)也会影响L和U因子中的非零数。因此,在内存方面,重新排序可以导致更有效的因式分解。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/23208640

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档