用多个RHS求解矩阵

时间:2017-08-20 18:07:53

标签: matlab matrix octave

我有一个问题,我需要解决线性方程。矩阵是相同的,但rhs改变(在迭代过程中)。在不重复矩阵分解的情况下,我能看到的唯一方法是:

[L,U] = lu(A);
x = U\(L\b);

这看起来很笨重。有没有更好的办法?我可以使用存储在单个阵列中的LU因子吗? TIA

1 个答案:

答案 0 :(得分:1)

给定一个系统

LU*x = b

其中L是下三角矩阵,U是上三角矩阵。

根据您的问题,我了解向量b正在不断变化,您希望为所有可能的向量LU保持b因式分解常量。

换句话说,如果您有n个不同b,那么您希望n使用相同LU分解A的{​​{1}}个L*m = b }。

我会在你解决系统的地方使用前向替换

U*x = m

然后用

向后替换

b

更多here

这样可以保持每个向量L的分解常数。

关于另一个问题,是的,可以将UL矩阵存储在一个矩阵中。请注意1矩阵的对角线不相关,因为它总是html