1

我在 Matlab 中有一个大小为 10800x10800 的矩阵,我直接用函数计算它的逆矩阵:

inv(A)

一次这样的计算需要 3 到 4 分钟。这是需要超过 20 次迭代的迭代算法的一部分,所以总体上会很慢。有一个更好的方法吗?也许是一些数学公式或更好的 Matlab 函数?

编辑:矩阵是对角的。每次迭代,对角线元素都会根据拟合因子分析器的公式进行更新。但这无关紧要,重要的是它是一个对角矩阵,并且每次迭代都会改变。

谢谢

4

2 回答 2

5

如果您的矩阵确实是对角线,那么您显然可以这样做

Ainv = diag(1./diag(A));

这应该非常快。

于 2013-04-25T21:08:00.717 回答
1

\据说反斜杠运算符更快,也可能更准确。如果没有 MATLAB,我真的无法判断,但您可以尝试运行A \ eye(10800)而不是inv(A),看看它是否有效。

于 2013-04-25T20:46:59.800 回答