0
제 경우에는 Eigen (3.0.12)의 JacobiSVD 솔버를 사용하여 과소 결정 방정식 시스템, A * λ = b를 풀고 싶습니다.Eigen (C++)에서 underdetermined 방정식 시스템을 풀기
선형 방정식 시스템을 가지고 내 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
람다 :
-9.81
3.94467e+19 <---------- error (Where does this come from?)
-19.62
- 행렬 A의 순위는 - 순위 (A) = 2
- 그래서 행렬 없음 전체 순위가 없습니다. 따라서 A는 단수이고 가역이 아닙니다.
- 조건 인 - COND (A) = Inf를
- A * λ = B를 해결하기 위해, I는 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);
을 한거야?