Je veux résoudre un système linéaire clairsemés comme celui-ci:eigen erreur: SelfAdjointView est que pour les matrices carrées
SparseMatrix<double> A(m, n);
VectorXd b(m);
ConjugateGradient<SparseMatrix<double>, Upper> solver;
solver.compute(A);
VectorXd X = solver.solve(b);
mais j'eu cette erreur pour exécuter ce code:
Assertion failed: (rows()==cols() && "SelfAdjointView is only for squared matrices"), function SparseSelfAdjointView
pourquoi je suis ce problème et comment le résoudre?
J'écris un petit exemple pour reproduire cette erreur:
#include "lib/Eigen/Sparse"
using namespace Eigen;
int main()
{
SparseMatrix<double> A(2, 3);
A.coeffRef(0, 0) = 1;
A.coeffRef(0, 1) = 1;
A.coeffRef(0, 2) = 1;
A.coeffRef(1, 0) = 1;
A.coeffRef(1, 1) = 1;
A.coeffRef(1, 2) = 1;
VectorXd b(2);
b << 3, 3;
ConjugateGradient<SparseMatrix<double>, Upper> solver;
solver.compute(A);
VectorXd X = solver.solve(b);
return 0;
}