在Matlab中多次有效求解相同矩阵?

时间:2018-09-09 20:47:32

标签: matlab matrix

我有一个程序,涉及到在每个时间步多次求解一个相当大的矩阵〜3000 ^ 2。矩阵保持不变,但右侧的边变化,例如我求解Ax = b,Ax = c等。目前,我只是天真地使用反斜杠,因为很多时候我都需要求解矩阵方程,即使矩阵在任何给定的时间步都是相同的。有没有办法利用矩阵保持不变来加快处理速度?

2 个答案:

答案 0 :(得分:0)

A\b

相同
inv(A)*b

尽管通常建议使用前者,因为它可以提供更精确的结果,并且对于某些类型的A来说麻烦较少。但是,如果后者对您的应用程序足够好,则一定要预先计算inv(A)。在这种情况下,求解许多方程式将节省大量时间。

答案 1 :(得分:0)

如果R2017b之后具有MATLAB,请签出decomposition object。它将创建矩阵的可重用分解,这将使后续的线性求解更加有效。特别是,请在doc页面上查看第一个示例,该示例将使用分解对象与执行一系列线性求解进行比较。