首页
学习
活动
专区
工具
TVP
发布
社区首页 >问答首页 >Eigen:获取稀疏矩阵的核

Eigen:获取稀疏矩阵的核
EN

Stack Overflow用户
提问于 2019-02-19 20:29:18
回答 1查看 511关注 0票数 1

给定一个稀疏矩阵A和一个向量b,我希望获得方程A * x = b的解x以及A的内核。

一种可能是将convert A转换为密集表示。

代码语言:javascript
复制
#include <iostream>
#include <Eigen/Dense>
#include <Eigen/SparseQR>

int main()
{
    // This is a toy problem. My actual matrix
    // is of course bigger and sparser.
    Eigen::SparseMatrix<double> A(2,2);
    A.insert(0,0) = 1;
    A.insert(0,1) = 2;
    A.insert(1,0) = 4;
    A.insert(1,1) = 8;
    A.makeCompressed();

    Eigen::Vector2d b;
    b << 3, 12;

    Eigen::SparseQR<Eigen::SparseMatrix<double>,
                    Eigen::COLAMDOrdering<int> > solver;
    solver.compute(A);
    std::cout << "Solution:\n" << solver.solve(b) << std::endl;

    Eigen::Matrix2d A_dense(A);
    std::cout << "Kernel:\n" << A_dense.fullPivLu().kernel() << std::endl;
    return 0;
}

是否可以直接在稀疏表示中执行相同的操作?除了在FullPivLu中,我在任何地方都找不到函数kernel()

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

https://stackoverflow.com/questions/54766392

复制
相关文章

相似问题

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