矩阵的玩法,就是这样,如何安装
大神的博客
https://blog.csdn.net/hanss2/article/details/78827057
https://www.jianshu.com/p/931dff3b1b21
eigen3的官方使用网站http://eigen.tuxfamily.org/dox/classEigen_1_1HouseholderQR.html
解个方程玩玩
x1 + 2x2 + 3x3 = 3
4x1 + 5x2 + 6x3 = 3
7x1 + 8x2 + 10x3 = 4
解出结果x1 = -2 ;x2 = 1 ;x3 =1 ;
#include <iostream>
#include <eigen3/Eigen/Core>
#include "eigen3/Eigen/Dense"
using namespace Eigen;
using namespace std;
int main(int argc, char **argv) {
std::cout << "Hello, world!" << std::endl;
Matrix3f A;
Vector3f b;
A << 1,2,3, 4,5,6, 7,8,10;
b << 3, 3, 4;
cout << "Here is the matrix A:\n" << A << endl;
cout << "Here is the vector b:\n" << b << endl;
ColPivHouseholderQR<Matrix3f> qr(A.rows(), A.cols());
Vector3f x = qr.compute(A).solve<Vector3f>(b);
//Vector3f x = A.colPivHouseholderQr().solve(b);
cout << "The solution is:\n" << x << endl;
return 0;
}
注意其中的QR分解分方法,很多教程都是Vector3f x = A.colPivHouseholderQr().solve(b); ,但是我试了,好像行不通,就改成了上面带类名的操作,希望你能跑得通;