2013-04-25 47 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),看看它是否可行。