我的目标是计算大型对称稀疏矩阵的 k 个最小特征值。为此,我在使用 ARPACK 的移位反转模式下使用 python scipy 的 eigsh 方法。矩阵通常有大约 900,000-1,000,000 行。现在,我系统上这些矩阵的计算时间通常在 30 分钟左右。矩阵越大,花费的时间就越长——这对我来说很有意义。然后有一个矩阵只有大约 780,000 行,其计算时间会爆炸式增长。大约需要 10 个小时才能完成。在机器上运行的其他任何重要的东西都不会占用显着的资源。我运行了 3 次,它总是需要这么长时间,并且我仔细检查了我是否正确计算了矩阵。我唯一注意到的是这个矩阵比其他矩阵更稀疏。
所以我的问题是,这里会发生什么?除了矩阵的大小,还有什么能以这种方式影响计算时间?不幸的是,我对线性代数并不了解,我真正了解 ARPACK 究竟是做什么的(意思是,Lanczos 算法的工作原理)。这里有高手吗?