基本上,我正在尝试计算大型 Hermitian 矩阵的 SVD使用 Lanczos 迭代,而包括如果一个 Toeplitz 核,与传统的 Lanczos 算法相比,它应该能够帮助加快矩阵向量计算(使用 FFT)。
总之,我需要最大的几个特征值和特征向量,我想知道哪种 Lanczos 算法完全满足这个需求?我注意到了PROPACK包,但在我看来,它不是为这里的特定情况而设计的,而且它是用 Fortran 编写的......
基本上,我正在尝试计算大型 Hermitian 矩阵的 SVD使用 Lanczos 迭代,而包括如果一个 Toeplitz 核,与传统的 Lanczos 算法相比,它应该能够帮助加快矩阵向量计算(使用 FFT)。
总之,我需要最大的几个特征值和特征向量,我想知道哪种 Lanczos 算法完全满足这个需求?我注意到了PROPACK包,但在我看来,它不是为这里的特定情况而设计的,而且它是用 Fortran 编写的......
在这个问题中,关于结构化矩阵的快速特征值/SVD 求解器, @GoHookies 建议查看该论文:
这也有后续
这些论文描述了加速结构化矩阵的 SVD 计算的技术(或所需算法的一部分)。Hankel 矩阵的应用自然扩展到 Toeplitz 核。一般来说,他们使用基于 FFT 的快速矩阵向量积来处理应用于 Lanczos 迭代的结构化矩阵。
网上还有一个来自同一组作者的Matlab 包(带有一些额外的解释和参考资料),它实现了他们的算法。
我个人在我的应用程序中使用了这个包,但我仍然没有确认它的好处和声称的复杂性节省(正在进行缓慢的工作)。