【问题标题】:How to find a better algorithm to compute eigenvalue and eigenvector of a very large matrix如何找到更好的算法来计算非常大矩阵的特征值和特征向量
【发布时间】:2023-03-12 17:53:01
【问题描述】:

我使用 Jacobi 方法在 c 代码中查找所有特征值和特征向量。尽管 Jacobi 方法的复杂度为 O(n^3),但我的矩阵的维数很大(17814 X 17814)。这需要很多时间。我想知道一个更好的算法来解决这个问题。如果你愿意,我可以附上我的 c 代码。

【问题讨论】:

标签: c eigenvector eigenvalue


【解决方案1】:

cmets 中建议的算法不一定是最好的。
如您所见here,Jacobi 方法在使用特殊技术时可以大大加快。
最重要的是,Jacobi 很容易并行运行,而且稀疏矩阵比密集矩阵要快得多,因此您也可以利用它,具体取决于您的架构和您拥有的矩阵类型。

我想说,最好的办法是测试几种不同的方法,并在实践中看看在哪里可以获得最佳结果。
O(n^2.376) 不一定比O(n^3) 好,具体取决于常数。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2014-02-28
    • 2020-07-29
    • 1970-01-01
    • 2012-08-08
    • 2015-11-18
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多