C 如何找到一个更好的算法来计算一个非常大的矩阵的特征值和特征向量

C 如何找到一个更好的算法来计算一个非常大的矩阵的特征值和特征向量,c,eigenvector,eigenvalue,C,Eigenvector,Eigenvalue,我已经用雅可比方法找到了c代码中的所有特征值和特征向量。虽然雅可比方法的复杂度是O(n^3),但我的矩阵的维数是巨大的(17814x17814)。这需要很多时间。我想知道一个更好的算法来解决这个问题。如果您愿意,我可以附上我的c代码。注释中建议的算法不一定是最好的。 如您所见,使用特殊技术时,雅可比方法可以大大加快速度。 最重要的是,Jacobi非常容易并行运行,而且稀疏矩阵的并行运行速度比密集矩阵快得多,因此您也可以利用这一点,具体取决于您的体系结构和矩阵类型 我想说的是,最好的办法是测试几种

我已经用雅可比方法找到了c代码中的所有特征值和特征向量。虽然雅可比方法的复杂度是O(n^3),但我的矩阵的维数是巨大的(17814x17814)。这需要很多时间。我想知道一个更好的算法来解决这个问题。如果您愿意,我可以附上我的c代码。

注释中建议的算法不一定是最好的。
如您所见,使用特殊技术时,雅可比方法可以大大加快速度。
最重要的是,Jacobi非常容易并行运行,而且稀疏矩阵的并行运行速度比密集矩阵快得多,因此您也可以利用这一点,具体取决于您的体系结构和矩阵类型

我想说的是,最好的办法是测试几种不同的方法,看看在实践中哪里可以得到最好的结果。

O(n^2.376)
并不一定比
O(n^3)
好,这取决于常数。

这个问题有铜匠和Winograd算法可以解决O(n^2.376)中的问题