【发布时间】:2017-12-23 21:54:12
【问题描述】:
计算对称密集矩阵 (2000 * 2000) 的逆对角线的最佳方法是什么?目前我首先使用solve(x) 计算逆,然后提取对角线(diag(y))。即使它有效,但我想知道是否有更好的方法可以让代码运行得更快。我试过chol2inv(),但它不起作用,因为我的矩阵不是正定的。
更新: 对于任何可能感兴趣的人,我可以通过使用优化的数学库 Intel MKL 来加速矩阵求逆。在我的机器上反转一个 2000 * 2000 矩阵需要 3 秒。 Microsoft R Open 提供英特尔 MKL。
【问题讨论】:
-
在简短的谷歌搜索中,我发现了很多与此问题相关的算法和其他实现的链接。您是否明确需要对角线的每个元素,还是打算在另一个计算中使用它?如果您想在进一步的计算中使用它,那么这些知识对于加快执行速度至关重要。
-
我在其他计算中使用对角线。具体来说,我将另一个向量中的每个元素除以逆矩阵的对角线的每个元素,然后将它们相加。
-
你怎么知道逆对角线的每个元素都不为零?矩阵是否有一些属性可以保证这一点?
标签: r matrix-inverse