r中大块对角稀疏矩阵的逆

时间:2014-04-04 17:59:12

标签: r block sparse-matrix inverse diagonal

我想计算一些大块对角稀疏矩阵的逆。 行数和列数略多于50,000。 这些块是12乘12并且是稀疏的(27个非零元素)。

我试图计算整个矩阵的逆(使用求解)​​。这是不可能的,整个矩阵太大了。

之后,我使用for循环。在每次迭代中,我取出一个块,计算其反转并将其放回。

该方法有效,但我需要大约5分钟。 我想知道是否有更快的方法。

非常感谢提前。

2 个答案:

答案 0 :(得分:0)

你如何以50k x 50k矩阵结束?

反转12 x 12简单快捷。它是导致缓慢或访问矩阵对象的反转吗?

你打算怎么处理大逆转?

答案 1 :(得分:0)

我通过代码更快地完成了代码:

1)将块对角矩阵的逆存储在列表中,而不是“将它们放回大矩阵中”。最后,我使用bdiag()命令从列表中构建了整个矩阵。 2)通过考虑块对角矩阵不是一个接一个,而是以大约10个为一组 因此,我重复计算由10个块对角矩阵组成的子矩阵的逆矩阵。

在最初的问题中,我没有说我不仅仅采用每个块的逆,而是我还对每个块应用了一些转换。现在,对整个块对角矩阵进行转换,这也节省了时间。