当前位置:   article > 正文

Eigen中矩阵常见运算示例_eigen::eigensolver

eigen::eigensolver

常见的矩阵运算包括:转置、逆矩阵、行列式、矩阵加减、乘积,示例如下:

  1. #include<iostream>
  2. #include<Eigen\dense>
  3. using namespace std;
  4. using namespace Eigen;
  5. void main()
  6. {
  7. MatrixXd m1(3, 3), m2(3, 3);
  8. m1 << 1, 2, 3, 4, 6, 8, 7, 9, 9;
  9. m2 << 1, 2, 3, 4, 6, 8, 7, 9, 9;
  10. MatrixXd m(3, 3);
  11. //矩阵相加
  12. m = m1 + m2;
  13. cout << "m1矩阵为: "<< endl << m1 << endl;
  14. cout << "m2矩阵为:" << endl << m2 << endl;
  15. cout << "m1+m2=" << endl << m << endl << endl;
  16. //矩阵的转置
  17. cout << "m1的转置为:" << endl << m1.transpose() << endl << endl;
  18. //矩阵的逆
  19. cout << "m1的逆矩阵为" << endl << m1.inverse() << endl << endl;
  20. //矩阵的行列式为
  21. cout << "m1的行列式为:" << endl << m1.determinant() << endl << endl;
  22. //矩阵相乘
  23. cout << "m1*m2为:" << endl << m1*m2 << endl << endl;
  24. //特征值与特征向量
  25. EigenSolver<MatrixXd> eigensolver(m1);
  26. if (eigensolver.info() != Success)
  27. {
  28. abort();
  29. }
  30. cout << "特征值:" << endl << eigensolver.eigenvalues() << endl << endl;
  31. cout << "特征向量" << endl << eigensolver.eigenvectors() << endl << endl;
  32. system("pause");
  33. }

  

右边截图是MATLAB计算结果。

注意:在使用adjointeigensolver解算特征值与特征向量时,与MATLAB解算的结果是不一样的!!

声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/从前慢现在也慢/article/detail/78190
推荐阅读
相关标签
  

闽ICP备14008679号