我可以使用 Eigen 求解形式为 xA=b 的线性方程组,其中 A 是稀疏的吗?

Posted

技术标签:

【中文标题】我可以使用 Eigen 求解形式为 xA=b 的线性方程组,其中 A 是稀疏的吗?【英文标题】:Can I solve a system of linear equations in the form xA=b using Eigen, with A being sparse? 【发布时间】:2013-10-07 22:07:01 【问题描述】:

我需要将我的 MATLAB 代码转换为 C++,其中包括 xA=0 形式的线性方程。

我知道 Eigen 可以处理线性方程 Ax=b。我在问:有没有办法使用 Eigen for C++(Visual Studio 2010)来求解线性方程组 xA=b,A 是稀疏矩阵?如果没有,我可以使用什么库?

感谢您的帮助。

【问题讨论】:

@Judy 是的,Eigen 支持多种稀疏求解器。详情请见eigen.tuxfamily.org/dox-devel/group__TopicSparseSystems.html @us2012,非常感谢您提供的有用链接! @us2012 道歉,已删除。 【参考方案1】:

x*A = b 相当于 A.transpose() * z = b.transpose(); x = z.transpose() 这可以解决 x。

请注意,与求解线性系统相比,存储操作成本较低。 A 是稀疏的,并且对于转置操作,稀疏度保持不变。 通常,转置只是一个标志和元素寻址的变化。从我对文档的第一眼看,这不适用于 Eigen。但是,从我之前告诉过你的情况来看,这并不重要。

【讨论】:

以上是关于我可以使用 Eigen 求解形式为 xA=b 的线性方程组,其中 A 是稀疏的吗?的主要内容,如果未能解决你的问题,请参考以下文章

使用 Eigen 求解线性方程组

在MATLAB中,方程Ax=B的解可以用哪个命令求得?

EIgen基本运算学习

EIgen基本运算学习

在 AB = C 中求解矩形 A

[Matlab]求解线性方程组