首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >谱不计算大型稀疏矩阵的任何值?

谱不计算大型稀疏矩阵的任何值?
EN

Stack Overflow用户
提问于 2022-10-01 09:45:39
回答 1查看 45关注 0票数 0

在一个C++程序中,我计算了一个大的稀疏矩阵energy_mat,我知道它是系统的。

我试图通过得到最大和最小的特征值来计算它的条件数,比如:

代码语言:javascript
复制
    Spectra::SparseGenMatProd<double> op(energy_mat);
    Spectra::GenEigsSolver<Spectra::SparseGenMatProd<double>> eigs(op, 3, 6);
    // Initialize and compute
    eigs.init();
    int nconv = eigs.compute(Spectra::SortRule::LargestMagn);
    // Retrieve results
    Eigen::VectorXcd evalues;
    if (eigs.info() == Spectra::CompInfo::Successful)
        evalues = eigs.eigenvalues();

    std::cout << "Eigenvalues found:\n"
              << evalues << std::endl;

我看到:

代码语言:javascript
复制
Eigenvalues found:

也就是说,数组是空的。但是我知道energy mat是对称的(我检查过了),后来我用它来求解线性方程组,所以它是数字声音(它没有nans或infs)。

为什么光谱没有本征值?

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2022-10-22 01:42:46

将迭代次数从6次增加到40次似乎解决了这个问题。

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

https://stackoverflow.com/questions/73917303

复制
相关文章

相似问题

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