Eigen基础
Eigen是一个关于线性代数的C++模板库。包括了向量,矩阵,求解线性方程组和相关算法等。可以在所有支持C++的平台上使用,非常方便。
xuezhisdc
......
展开
-
Eigen教程1 - 基础
Eigen官网入门教程固定大小的矩阵和向量动态大小的矩阵和向量矩阵和向量类型访问元素创建和初始化矩阵和向量通过预定义矩阵初始化创建固定大小的矩阵和向量创建动态大小的矩阵创建动态大小的向量创建固定大小的基向量创建动态大小的基向量例子通过Cast的方式初始化相同尺寸的矩阵兼容相同类型的矩阵兼容通过Map方式初始化通过逗号初始化算术操作传统的数学运算逐元素的操作R原创 2017-01-19 22:13:09 · 23899 阅读 · 3 评论 -
Eigen教程2 - 入门
入门安装Eigen无需安装。只需将Eigen位置添加到include路径中。Demo 1MatrixXd,X表示动态大小,d表示双精度。Eigen/Dense定义了MatrixXd类型的所有成员函数等。该头文件定义的类和函数都位于Eigen名字空间中。* // 参考链接:http://eigen.tuxfamily.org/dox/GettingStarted.html#include原创 2017-01-19 22:41:52 · 3587 阅读 · 0 评论 -
Eigen教程3 - 稀疏矩阵操作
稀疏矩阵操作操作和求解稀疏问题需要的模块: * SparseCore * SparseMatrix 和 SparseVector 类,基本线性代数(包括三角求解器) * SparseCholesky * 稀疏LLT和LDLTCholesky分解,解决稀疏正定问题。 * SparseLU * 稀疏LU分解 * SparseQR * 稀疏QR分解 *原创 2017-01-20 15:11:12 · 36496 阅读 · 3 评论 -
Eigen教程4 - 稀疏矩阵快速参考指南
本文对稀疏矩阵SparseMatrix的主要操作进行了总结。首先,建议先阅读《Eigen教程2 - 稀疏矩阵操作》。关于稀疏矩阵,最重要的一点是:稀疏矩阵的存储方式,是按列优先储存,还是按行优先存储。绝大多数的稀疏矩阵的算术操作都会断言(判断)操作数的存储方式是否相同。稀疏矩阵初始化构造函数默认列优先。SparseMatrix<double> sm1(1000,1000); //创建一个原创 2017-01-20 19:24:11 · 13844 阅读 · 4 评论 -
Eigen教程5 - 求解稀疏线性方程组
Eigen中有一些求解稀疏系数矩阵的线性方程组。由于稀疏矩阵的特殊的表示方式,因此获得较好的性能需要格外注意。查看《Eigen教程3 - 稀疏矩阵操作》,了解更多有关稀疏矩阵的内容。本文列出了Eigen中的稀疏求解器。同时也介绍了所有线性求解器的共同步骤。用户可以根据矩阵的性质,准确度的要求,来调整求解步骤,以提升代码的性能。注意:没有必要深入了解这些步骤后面隐藏的内容。本文最后一部分列出了原创 2017-01-20 22:16:13 · 20670 阅读 · 2 评论 -
Eigen教程6 - Matrix-free solvers
Matrix-free solvers像ConjugateGradient 和 BiCGSTAB这样的迭代求解器可以用在 matrix free context。为此,用户必须提供一个继承EigenBase<>的封装类,并实现下面的方法:Index rows() 和 Index cols():分别返回行数和列数。operator* :操作数分别是你自己的类型和一个Eigen密集列向量。Eige原创 2017-01-20 23:12:53 · 3106 阅读 · 1 评论 -
Eigen教程7 - Eigen和Matlab的比较
Eigen和Matlab比较// 参考 - http://eigen.tuxfamily.org/dox/AsciiQuickReference.txt# // 一个关于Eigen的快速参考// Matlab和Eigen的对应用法// Main author: Keir Mierle// 注释:张学志#include <Eigen/Dense>Matrix<double, 3, 3> A;原创 2017-01-21 11:31:54 · 19850 阅读 · 1 评论