繁体   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