我有一个问题,我需要解决线性方程。矩阵是相同的,但rhs改变(在迭代过程中)。在不重复矩阵分解的情况下,我能看到的唯一方法是:
[L,U] = lu(A);
x = U\(L\b);
这看起来很笨重。有没有更好的办法?我可以使用存储在单个阵列中的LU因子吗? TIA
答案 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
的分解常数。
关于另一个问题,是的,可以将U
和L
矩阵存储在一个矩阵中。请注意1
矩阵的对角线不相关,因为它总是html
。