【Eigen】从入门到放弃(一):安装和使用

什么是Eigen

Eigen 是C++语言里的一个开源模版库,支持线性代数运算,矩阵和矢量运算,数值分析及其相关的算法。
Eigen适用范围广,支持包括固定大小、任意大小的所有矩阵操作,甚至是稀疏矩阵;支持所有标准的数值类型,并且可以扩展为自定义的数值类型;支持多种矩阵分解及其几何特征的求解;它不支持的模块生态系统提供了许多专门的功能,如非线性优化,矩阵功能,多项式解算器,快速傅立叶变换等。

怎么安装Eigen(Windows+Visual Studio)

  1. 下载Eigen
  2. 解压,放到合适的目录下
  3. 项目中添加该目录

(占坑,后面会补齐Liunx环境下的安装方法)

Eigen库的模块及其头文件

为了应对不同的需求,Eigen库被分为多个功能模块,每个模块都有自己相对应的头文件,以供调用。 其中,Dense模块整合了绝大部分的模块,而Eigen模块更是整合了所有模块(也就是整个Eigen库)。

模板头文件功能
Core#include <Eigen/Core>Matrix和Array类,基础的线性代数运算和数组操作
Geometry#include<Eigen/Geometry>旋转﹑平移、缩放、2D和3D的各种变换
LU#include<Eigen/LU>求逆,行列式,LU分解
Cholesky#include<Eigen/Cholesky>LLT和LDLTCholesky分解
Householder#include<Eigen/Householder>豪斯霍尔德变换,用于线性代数运算
SVD#include<Eigen/SVD>SVD分解
QR#include<Eigen/QR>QR分解
Eigenvalues#include<Eigen/Eigenvalues>特征值,特征向量分解
Sparse#include<Eigen/Sparse>稀疏矩阵的存储和一些基本的线性运算
Dense#include<Eigen/Dense>包含了Core / Geometrg/ LU / Cholesky / SVD/QR/ Eigenoalues模块
Eigen#include<Eigen/Eigen>包括Dense和Sparse(整个Eigen库)

Eigen的使用

此处列举几种构建2*2矩阵的方法

#include <iostream>
#include <Eigen/Dense>
using namespace std;
using namespace Eigen;
int main()
{
	MatrixXd m1(2, 2);//MatrixXd表示是任意尺寸的矩阵i*j, m(2,2)代表一个2x2的方块矩阵
	m1 << 5, 7, 2, 13;
	cout << m1 << endl;//输出矩阵m1

	MatrixXd m2 = MatrixXd::Random(2, 2); //定义2*2的随机矩阵m,各元素取值范围是[-1,1]
	cout << m2 << endl;//输出矩阵m2

	Matrix2d m3; //"Matrix2d"直接定义了一个2-by-2的方块矩阵
	m3(0, 0) = 1;
	m3(1, 0) = 2;
	m3(0, 1) = 3;
	m3(1, 1) = 4;
	cout << m3 << endl;//输出矩阵m3
}
}
  • 1
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值