Matlab中计算大矩阵10800x10800的逆的快速方法?

use*_*930 1 matlab linear-algebra matrix-inverse

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

inv(A)
Run Code Online (Sandbox Code Playgroud)

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

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

谢谢

3le*_*gos 5

如果你的矩阵确实是对角的,你显然可以这样做

Ainv = diag(1./diag(A));
Run Code Online (Sandbox Code Playgroud)

这应该非常快。