我已经使用 Jacobi 方法在 C 代码中找到所有特征值和特征向量。虽然 Jacobi 方法的复杂度为 O(n^3),但我的矩阵维度很大 (17814 X 17814)。这需要很多时间。我想知道一个更好的算法来解决这个问题。如果需要,我可以附上我的 C 代码。
最佳答案
评论中建议的算法不一定是最好的。
如你所见here , Jacobi 方法在使用特殊技术时可以快得多。
最重要的是,Jacobi 非常容易并行运行,稀疏矩阵比密集矩阵快得多,因此您也可以利用它,具体取决于您的架构和您拥有的矩阵类型。
我想说,最好的办法是测试几种不同的方法,并在实践中看看哪里可以获得最佳结果。
O(n^2.376)
不一定优于 O(n^3)
,具体取决于常数。
关于c - 如何找到更好的算法来计算非常大的矩阵的特征值和特征向量,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29140073/