2013-04-25 161 views
1

我有尺寸10800x10800的在Matlab基质和我计算其逆 直接与功能:在Matlab中快速的方法来计算大矩阵的倒数10800x10800?

inv(A) 

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

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

感谢

+2

通常,避免使用显式的'inv()',但是我们需要看到更多的代码来理解它。 – Oleg 2013-04-25 20:46:21

+1

每次迭代会发生什么变化?有各种各样的东西的逆矩阵的增量公式。这真的取决于你在每次迭代中做的特定操作。 – Shai 2013-04-25 20:57:13

+0

我编辑了我的原始文章并提供了更多信息。 – user2225930 2013-04-25 21:02:10

回答

4

如果你的矩阵的确是对角,可以很明显的只是做

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

这应该是非常快的。

+0

非常感谢你! – user2225930 2013-04-25 21:39:11

1

反斜杠操作\据说是faster,也可以更准确。没有MATLAB我真的不知道,但你可以尝试运行A \ eye(10800)而不是inv(A),看看它是否可行。