首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >如何计算特征库中稀疏矩阵的逆

如何计算特征库中稀疏矩阵的逆
EN

Stack Overflow用户
提问于 2014-09-19 08:14:32
回答 5查看 11.2K关注 0票数 10

我有一个关于C++的特征库的问题。实际上,我想要计算稀疏矩阵的逆矩阵。当我在本征中使用稠密矩阵时,可以使用.inverse()运算来计算稠密矩阵的逆。但是在稀疏矩阵中,我在任何地方都找不到逆运算。谁知道如何计算稀疏矩阵的逆?帮帮我。

EN

回答 5

Stack Overflow用户

回答已采纳

发布于 2014-09-19 08:45:31

你不能直接做它,但是你总是可以计算它,使用一个稀疏的求解器。其思想是求解A*X=I,其中我是恒等矩阵。如果有解,X将是你的逆矩阵。The eigen documentation有一个关于稀疏求解器和如何使用它们的页面,但是基本步骤如下:

代码语言:javascript
运行
复制
SolverClassName<SparseMatrix<double> > solver;
solver.compute(A);
SparseMatrix<double> I(n,n);
I.setIdentity();
auto A_inv = solver.solve(I);
票数 10
EN

Stack Overflow用户

发布于 2014-09-19 08:22:32

这在数学上没有意义。

稀疏矩阵不一定具有稀疏逆。

这就是为什么这个方法不可用的原因。

票数 2
EN

Stack Overflow用户

发布于 2016-12-06 17:58:33

关于@Soheib和@MatthiasB的答案的一个小扩展,如果您使用Eigen::SparseMatrix<float>,最好使用SparseLU而不是SimplicialLLT或SimplicialLDLT,它们在浮点矩阵上给出了错误的答案。

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

https://stackoverflow.com/questions/25929311

复制
相关文章

相似问题

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