1

我有一个下三角矩阵(L)和一个上三角矩阵(U)。我使用 mldivide 来找到L*U*x = b. 我认为 MATLAB 足够聪明,可以发现只需要向后/向前替换。但我觉得如果我能告诉 matlab(以某种方式)只应该执行前向/后向替换,它会更快。

请让我知道如何告诉 MATLAB 只进行向后/向前替换而不需要额外的操作。

谢谢

4

2 回答 2

1

文档很清楚:

三角矩阵的排列

mldivide 通过测试零元素来检查三角形。如果矩阵 A 是三角形的,MATLAB 软件使用代换来计算解向量 x。如果 A 是三角矩阵的置换,MATLAB 软件使用置换替换算法。

所以

x = U \ (L \ b);

是您问题的后向/前向解决方案。

于 2013-01-30T18:39:31.980 回答
0

搜索文档似乎 Matlab 确实使用了向后/向前替换。但是,由于mldivide获取矩阵而L*U不是单独获取,它必须在内部执行分解。LU

如果您已经有 L 和 U 矩阵,您可以保存计算的那部分。

于 2013-01-30T17:33:00.393 回答