我正在尝试使用 c++ 库armadillo或eigen找到矩阵的逆。但是矩阵的第一行是错误的,请注意其他元素是正确的。我无法理解我犯了什么错误,请帮助我。
我的代码是:
#include <iostream>
#include <armadillo>
#include <cmath>
#include <Eigen/Dense>
using namespace std;
using namespace arma;
using namespace Eigen;
int main()
{
vec a;
int h=5;
MatrixXd b(5,5);
MatrixXd im(5,5);
a <<-2 << -1 << 0 << 1 << 2;
for(int i1=0;i1<h;i1++)
{
b(i1,0)=1;
b(i1,1)=a(i1);
b(i1,2)=a(i1)*a(i1)+1/12;
b(i1,3)=pow(a(i1),3)+a(i1)/4;
b(i1,4)=1/80+pow(a(i1),2)/2+pow(a(i1),4);
}
im=b.inverse();
cout<<im<<endl;
return 0;
}
正确的结果是:
0.00469 -0.06042 1.11146 -0.06042 0.00469
0.10417 -0.70833 0.00000 0.70833 -0.10417
-0.06250 0.75000 -1.37500 0.75000 -0.06250
-0.08333 0.16667 0.00000 -0.16667 0.08333
0.04167 -0.16667 0.25000 -0.16667 0.04167
