`eigsh`(Lanczos 算法)会因退化特征值而减慢

计算科学 稀疏矩阵 特征值
2021-12-06 07:15:11

我有一个复杂的 Hermitian 矩阵,大小约为我想要大约 100 个接近 0 的特征值。但是,我知道每个特征值都是两倍退化的。我发现与没有退化的情况相比,运行时间非常慢(超过5倍)。70000×70000eigsh

另外,我从以下链接中发现 使用 ARPACK 计算特征值的时间取决于什么?这种退化对 eigsh 算法不利。

我该怎么做才能让我的代码运行得更快?在链接的答案中建议增加 Krylov 子空间的大小,但什么大小才合适?

1个回答

ARPACK 建议使用ncv > 2 nev. 的默认值ncv将适合该约束。几个建议:

  • 增加到ncv300?
  • 将容差tol增加到1.0e14