Eigen库-矩阵的伪逆(Matlab-pinv)

4

4
你的问题究竟是什么?请修改你的问题,提供一个最小可复现示例(MCVE)以及一个清晰的问题陈述。 - Baum mit Augen
1个回答

12

这是CompleteOrthogonalDecomposition类的一种方法。因此,在使用它之前,您必须对矩阵执行该分解。例如:

#include <Eigen/QR>    

Eigen::MatrixXd A = ... // fill in A
Eigen::MatrixXd pinv = A.completeOrthogonalDecomposition().pseudoInverse();

虽然在大多数情况下建议使用其他求解器。 - Adi Shavit
是的,绝对可以。 - Sean
2
@AdiShavit 为什么建议使用其他求解器? - Dsel
1
@AdiShavit,你能给出参考资料吗?你推荐哪些求解器? - ignacio
@ignacio:Eigen文档表示不建议使用它(不高效或数值稳定性差:请参见https://eigen.tuxfamily.org/dox/classEigen_1_1CompleteOrthogonalDecomposition.html#a3c89639299720ce089435d26d6822d6f)。请参见https://eigen.tuxfamily.org/dox/group__LeastSquares.html,了解在Eigen中解决线性系统的更好建议。 - Sandy
A.completeOrthogonalDecomposition().pseudoInverse() 的结果和 MATLAB 中的 pinv() 不同。请参考 https://gitlab.com/libeigen/eigen/-/issues/2462 获取更详细的信息。 - 劉大為

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接