Eigen 的下载:
- Eigen 官网:https://eigen.tuxfamily.org(可能打不开)
- GitLab 仓库:https://gitlab.com/libeigen/eigen
- GitHub 仓库:https://github.com/PX4/eigen
Eigen 的安装:复制 /eigen/Eigen/ 文件夹到项目目录中。
C++ 代码示例(使用 Eigen 库求矩阵的逆):
#include <iostream>
#include "Eigen/Dense" // #include <Eigen/Dense>
int main() {
// 定义矩阵
Eigen::MatrixXd A(4, 4);
A << 2, 1, 1, 0,
1, 3, 1, 1,
1, 1, 4, 1,
0, 1, 1, 5;
// 求逆矩阵
Eigen::MatrixXd A_inv = A.inverse();
std::cout << "A:\n" << A << std::endl;
std::cout << "\nA_inv:\n" << A_inv << std::endl;
std::cout << "\nA*A_inv:\n" << A * A_inv << std::endl;
return 0;
}
运行结果:
A:
2 1 1 0
1 3 1 1
1 1 4 1
0 1 1 5
A_inv:
0.666667 -0.2 -0.133333 0.0666667
-0.2 0.44 -0.04 -0.08
-0.133333 -0.04 0.306667 -0.0533333
0.0666667 -0.08 -0.0533333 0.226667
A*A_inv:
1 -2.08167e-17 0 6.93889e-18
-1.38778e-16 1 0 -2.77556e-17
-1.38778e-16 0 1 0
0 0 -5.55112e-17 1
Python 代码检验:
import numpy as np
A = np.array([
[2, 1, 1, 0],
[1, 3, 1, 1],
[1, 1, 4, 1],
[0, 1, 1, 5]
])
A_inv = np.linalg.inv(A)
print("A_inv:\n", A_inv)
运行结果:
A_inv:
[[ 0.66666667 -0.2 -0.13333333 0.06666667]
[-0.2 0.44 -0.04 -0.08 ]
[-0.13333333 -0.04 0.30666667 -0.05333333]
[ 0.06666667 -0.08 -0.05333333 0.22666667]]
【说明:本站主要是个人的一些笔记和代码分享,内容可能会不定期修改。为了使全网显示的始终是最新版本,这里的文章未经同意请勿转载。引用请注明出处:https://www.guanjihuan.com】