0
在我的情况下,我想用Eigen(3.0.12)的求解器求解欠定的方程组A *λ= b。在Eigen(C++)中求解一个欠定的方程系统
的线性方程系统具有以下在我的C++程序结构:
系数矩阵(甲):
0.6 5.68434e-20 -0.2
5.68434e-20 7.06819e-39 -4.26326e-20
-0.2 -4.26326e-20 0.4
RHS(b):
-1.962
2.78817e-19
-5.886
Lambda:
-9.81
3.94467e+19 <---------- error (Where does this come from?)
-19.62
- 矩阵A的秩是 - 秩(A)= 2
- 因此矩阵具有否满秩。因此,A是单数且不可逆的。
- 的条件是 - COND(A)= Inf文件
- 为了解决A *λ= B,I用于从本征(JacobiSVD)的SVD分解方法
我也验证了这MATLAB: http://www.pictureupload.us/image-172220092351c5ae0c1706e.htm
从一开始,第一个模拟步骤是近似正确的。但是有一个非常小的数值误差,在求解A *λ= b期间这个误差正在增加。
然后系统崩溃,我的结果不再正确,我得到NaN结果。
下面的代码:
/******** SVD ********/
JacobiSVD<TMatrixX> svd(A, ComputeThinU | ComputeThinV);
lambda = svd.solve(b);
我做了什么错?