“DSYEV(LAPACK SUBROUTINE)”和“Lanczos”有什么区别?

计算科学 正则 拉帕克 带状矩阵
2021-11-29 20:08:29

我正在研究费米子和玻色子哈伯德模型,其中希尔伯特空间的维度非常大(~50k)。因为哈密顿矩阵是 ~50k X ~50k,为了对这些大的稀疏矩阵进行对角化,我使用 DSYEV(LAPACK SUBROUTINE) 这需要相当长的时间(在 Xeon Hp 工作站 Z400 16 GB RAM 上为 8 小时)来计算特征值以及特征函数. 我有兴趣减少仅使用可用处理能力对矩阵进行对角化的时间;所以欢迎任何建议。另外,如果我使用 Lanczos 方法,这会减少计算时间吗?

1个回答

如果您尝试计算这些矩阵的所有 50k 个特征值,那么无论您选择哪种算法,这都会花费您“相当长的时间”。我怀疑你能比 LAPACK 做得更好。

Lanczos(或通常是 Arnoldi)算法特别擅长计算在频谱两端(最低或最高)的充满特征值的手。需要具有复杂移位策略的稳健实现来有效地计算频谱中的大量特征值而不会遗漏任何特征值。

ARPACK 通常被认为是最先进的 Lanczos/Arnoldi eigensolver: http: //www.caam.rice.edu/software/ARPACK/

从 ARPACK 主页:

“ARPACK 软件能够解决来自重要应用领域的大规模对称、非对称和广义特征问题。该软件旨在计算具有用户指定特征的几个 (k) 特征值,例如最大实部或最大幅度的特征值。”