我想使用 Eigen 来计算 L_1^{-1}L_2,其中 L_1 和 L_2 都是下三角矩阵,并且在 Eigen 中存储为面向列的稀疏矩阵。 我尝试了 Eigen 三角求解器。但是,这需要 L_2 是密集的。
最佳答案
solve
方法实际上并没有为稀疏 rhs 重载,但是您可以像这样使用 solveInPlace
方法(我实际上并没有尝试这个):
Eigen::SparseMatrix<double> foo(Eigen::SparseMatrix<double> const& L1, Eigen::SparseMatrix<double> const& L2)
{
Eigen::SparseMatrix<double> res = L2;
L1.triangularView<Eigen::Lower>().solveInPlace(res);
return res;
}
您仍然应该考虑是否真的需要完整的矩阵。
关于c++ - 稀疏矩阵乘积的特征求解器,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/53290521/