如果,
如果我需要通过 SVD 解决最小二乘问题和, IE
我需要通过 SVD 解决以下线性系统的最小二乘解:
也可以通过householderQr().solve()Eigen 来实现,但不稳定;所以我想通过SVD分解来做到这一点和; 显然,SVD的可以通过转置得到.
我的问题是,我怎样才能在 Eigen 中实现它,以便只有 SVD 可以解决这两种类型的最小二乘问题吗?
int m=100,n=50;
VectorXd b=VectorXd::randome(m),c=VectorXd::randome(n);
MatrixXd A=MatrixXd::random(m,n);
Eigen::JacobiSVD<Eigen::MatrixXd> _svd(A, Eigen::ComputeThinU | Eigen::ComputeThinV);
MatrixXd x = _svd.solve(b);
A.transposeInPlace();
// 如何保存下面这句话,它实现了 SVD
Eigen::JacobiSVD<Eigen::MatrixXd> _svd(A, Eigen::ComputeThinU | Eigen::ComputeThinV);
MatrixXd y = _svd.solve(c);