我在Matlab中有一个大小为10800x10800的矩阵,我计算它的逆 直接用函数:
inv(A)
一次这样的计算需要3到4分钟。这是一个部分 需要超过20次迭代的迭代算法,所以整体情况会如此 很慢。有一个更好的方法吗?也许是一些数学公式 或者更好的Matlab函数?
编辑:矩阵是对角线的。每次迭代都会更新对角线元素 基于拟合因子分析器的公式。但那是无关紧要的 重要的是它是一个对角矩阵,它会改变每次迭代。
感谢
答案 0 :(得分:4)
如果你的矩阵确实是对角线,你显然可以做到
Ainv = diag(1./diag(A));
应该非常快。
答案 1 :(得分:1)
反斜杠运算符\
被称为faster,也可能更准确。没有MATLAB我真的不知道,但你可以尝试运行A \ eye(10800)
而不是inv(A)
,看看它是否有用。