我正在使用 Eigen 分解稀疏 SPD 矩阵 A。它将是 LLt 或 LDLt 分解(Cholesky),因此我们可以假设矩阵将分解为A = P-1 LDLt P
其中 P 是置换矩阵,L 是下三角形,D 是对角线(可能是单位矩阵)。如果我做
SolverClassName<SparseMatrix<double> > solver;
solver.compute(A);
要解决Lx=b
那么执行以下操作是否有效?
solver.matrixL().TriangularView<Lower>().solve(b)
同样,要解决Px=b
那么执行以下操作是否有效?
solver.permutationPinv()*b
我想这样做是为了bt A-1 b
高效稳定地计算。