语言, 其他语言

C++线性代数库Eigen的下载和代码示例​

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]]
8 次浏览

【说明:本站主要是个人的一些笔记和代码分享,内容可能会不定期修改。为了使全网显示的始终是最新版本,这里的文章未经同意请勿转载。引用请注明出处:https://www.guanjihuan.com

发表评论

您的邮箱地址不会被公开。 必填项已用 * 标注

Captcha Code