我正在尝试使用 Eigen 库在 C++ 中求解线性方程组。对于简单的方程 Ax=b,我有一个稀疏矩阵 A,它是 nxn,b 的已知值是 nx 1,但我需要找到 x 的值。我尝试使用
x = A.colPivHouseholderQr().solve(b);
但这解决了密集矩阵的问题,并且由于我的“n”值非常大,我需要找到一种方法来使用特定于稀疏矩阵的实现来做到这一点。我研究过使用 SparseLU,但在尝试找出它背后的语法时遇到了麻烦。特征在线说要写这样的东西:
SparseLU<SparseMatrix<scalar>, COLAMDOrdering<Index>> solver;
solver.analyzePattern(A);
solver.factorize(A);
x = solver.solve(b);
但是当我运行它时,我收到错误说他们不知道标量和索引是什么。有没有人使用过 SparseLU 并知道实现它背后的语法?