簡體   English   中英

armadillo庫C ++解決了不一致的線性方程

[英]armadillo library c++ solve the linear equation that is inconsistent

我正在使用armadillo庫,我嘗試使用此代碼來求解線性方程組。我輸入的情況應該不一致,但它會輸出方程的解法!
我嘗試這個

x+y=3,
4 x + 4 y = 10

這是代碼

mat A(2,2);
vec B(2);
A << 1 << 1 << endr
  << 4 << 4 << endr;
B << 3 << endr
  << 10 << endr;
vec Ans;
Ans = solve(A,B);
cout << Ans << endl;

從文檔中說,如果找不到解決方案,它將拋出異常

如果找不到解決方案:
X = solve(A,B)重置X並拋出std :: runtime_error異常solve(X,A,B)重置X並返回設置為false的布爾值(不拋出異常)

所以當我解決不一致問題時應該怎么做,應該拋出異常或返回false或其他正確的方法
提前致謝

默認情況下,犰狳試圖找到奇異矩陣 A近似解:

warning: solve(): system seems singular; attempting approx solution
   1.2647
   1.2647

您應該使用solve_opts::no_approx選項禁用此行為:

Ans = solve(A,B,solve_opts::no_approx);

請參閱文檔以了解solve()

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM