首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >对于一个巨大的稀疏对称矩阵,在Spectra库中,哪个是最快的特征值求解器?

对于一个巨大的稀疏对称矩阵,在Spectra库中,哪个是最快的特征值求解器?
EN

Stack Overflow用户
提问于 2017-02-09 13:50:21
回答 1查看 985关注 0票数 2

我希望求解大型稀疏对称矩阵(通常为20,000 -60,000量级)的特征值。我已经尝试利用SymEigsShiftSolver/SymEigsSolver,但它需要相当多的时间来产生我的特征值。有没有加速的方法??我已经附上了我的目标是做的演示代码。我是不是遗漏了什么??

int main() {

代码语言:javascript
复制
Eigen::MatrixXd A = Eigen::MatrixXd::Random(10000, 10000);
Eigen::MatrixXd M = A.transpose() * A;

// Matrix operation objects
DenseGenMatProd<double> op_largest(M);
DenseSymShiftSolve<double> op_smallest(M);

// Construct solver object, requesting the smallest 10 eigenvalues
SymEigsShiftSolver< double, LARGEST_MAGN, DenseSymShiftSolve<double> >
    eigs_smallest(&op_smallest, 10, 30, 0.0);

eigs_smallest.init();
eigs_smallest.compute();
std::cout << "Smallest 10 Eigenvalues :\n" <<
    eigs_smallest.eigenvalues() << std::endl;

return 0;

}

EN

回答 1

Stack Overflow用户

发布于 2017-02-09 15:24:19

您的代码示例是融合稠密矩阵。第一件事是正确地将Eigen::SparseMatrix<double>组装成详细的there。然后,在光谱端,使用相应的SparseSymShiftSolve辅助对象。

此外,不要忘记在编译时打开编译器优化。这对于这样的只有头的库很重要。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/42129192

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档