Eigen中的三角分解

  • 简介
  • 安装命令
  • 三角分解函数
  • 使用范例

矩阵的三角分解是求解线性方程组常用的方法,包括LU分解,LDU分解,杜利特(Doolittle)分解,克劳特(Crout)分解,LLT(乔累斯基Cholesky)分解,LDLT(不带平方根乔累斯基)分解等,以及为了满足分解条件又加入行列变换的LPU分解,PLU分解,LUP分解,LDPU分解等。这里矩阵的三角分解系列教程主要是针对在学习三角分解时候的涉及到的一些细节,包括很多方法的来源和证明等,以及其中用到的一些矩阵操作的基础知识,主要包括:

  • [矩阵的三角分解系列一] 高斯消元法
  • [矩阵的三角分解系列二] LDU基本定理
  • [矩阵的三角分解系列三] 杜利特/克劳特分解公式
  • [矩阵的三角分解系列四] 乔累斯基(Cholesky)分解公式
  • [矩阵的三角分解系列五] 三角分解中的行列变换
  • [矩阵的三角分解系列六] Eigen中的三角分解

这个系列后面文章会用到前面文章的理论和技术,所以建议按照顺序查看。

简介

上面介绍的都是三角分解的基础知识,可以了解每种三角分解具体含义,推导的过程以及适用的范围,有了前面的介绍其实自己去实现相应的三角分解方法也变得非常的简单。但在实际使用过程中,很少自己去实现这种复杂的矩阵三角分解,大部分情况下都是调用现成的矩阵运算的算法库。这里介绍比较常用的矩阵运算库Eigen的三角分解的一些使用方法。

安装命令

Eigen库的安装很简单,只有头文件,不包含lib文件。以ubuntu系统apt-get方式安装为例

sudo apt-get install libeigen3-dev

这里安装后会安装在/usr/include/eigen3/目录下,但是在写程序的时候进行#include时候一般都不会加eigen3这个子目录路径,导致经常会找不到头头文件,所以通常安装完还需要执行

sudo ln -s /usr/include/eigen3/Eigen /usr/include/Eigen

这样就可以按照习惯正常使用啦。
如果想使用最新版本一些新功能的话可以采用源码安装,请自行百度安装方式,这里就不做介绍了。

三角分解函数

Eigen库中主要包含下面这些三角分解函数

分解方法 Eigen函数 适用矩阵 分解公式
PartialPivLU Eigen::PartialPivLU 可逆方阵 A = P L U A=PLU A=PLU
FullPivLU Eigen::FullPivLU 任意矩阵 A = P − 1 L U Q − 1 A=P^{-1}LUQ^{-1} A=P−1LUQ−1
LLT Eigen::LLT 对称正定方阵 A = L L T A=LL^T A=LLT
LDLT Eigen::LDLT 半正定或者半负定矩阵 A = P T L D L T P A=P^TLDL^TP A=PTLDLTP

使用范例

待续~~~

[矩阵的三角分解系列六] Eigen中的三角分解相关推荐

  1. 矩阵的QR分解c语言编程,[矩阵的QR分解系列五] Eigen中的QR分解

    之前介绍的矩阵的三角分解系列介绍了利用矩阵初等变换解决了矩阵三角化问题以及具体的三角分解.但是以初等变换工具的三角分解方法并不能消除病态线性方程组不稳定问题,而且有时候对于可逆矩阵有可能也不存在三角分 ...

  2. [矩阵的三角分解系列二] LDU基本定理

    LDU基本定理 简介 三角分解的存在和唯一性? LDU基本定理 充分性证明 存在性证明 唯一性证明 必要性证明 推论 稳定性 例子 引用 矩阵的三角分解是求解线性方程组常用的方法,包括LU分解,LDU ...

  3. [矩阵的三角分解系列四] 乔累斯基(Cholesky)分解公式

    乔累斯基分解公式 简介 LLT分解 证明 具体解法 稳定性 LDLT分解 证明 具体解法 例子 LLT分解 LDLT分解 引用 矩阵的三角分解是求解线性方程组常用的方法,包括LU分解,LDU分解,杜利 ...

  4. ONNX系列六 --- 在Java中使用可移植的ONNX AI模型

    目录 安装和导入ONNX运行时 载入ONNX模型 使用ONNX运行时进行预测 摘要和后续步骤 参考文献 下载源547.1 KB 系列文章列表如下: ONNX系列一 --- 带有ONNX的便携式神经网络 ...

  5. StarRocks从入门到精通系列六:使用EXPORT、Spark、Flink从StarRocks中导出数据

    StarRocks从入门到精通系列六:使用EXPORT.Spark.Flink从StarRocks中导出数据 一.使用EXPORT导出数据 1.背景信息 2.导出流程 3.基本原理 4.相关配置 5. ...

  6. [Eigen中文文档] 矩阵与向量运算

    专栏总目录 本文目录 介绍 加法与减法 标量的标量乘法与除法 表达式模板 转置与共轭 (矩阵与矩阵)和(矩阵与向量)的乘积 点积和叉积 基本算术的简化运算 操作的有效性 英文原文(Matrix and ...

  7. 普冉PY32系列(六) 通过I2C接口驱动PCF8574扩展的1602LCD

    目录 普冉PY32系列(一) PY32F0系列32位Cortex M0+ MCU简介 普冉PY32系列(二) Ubuntu GCC Toolchain和VSCode开发环境 普冉PY32系列(三) P ...

  8. Silverlight Blend动画设计系列六:动画技巧(Animation Techniques)之对象与路径转化、波感特效...

    原文:Silverlight & Blend动画设计系列六:动画技巧(Animation Techniques)之对象与路径转化.波感特效 当我们在进行Silverlight & Bl ...

  9. 数学之美系列六 -- 图论和网络爬虫 (Web Crawlers)

    数学之美系列六 -- 图论和网络爬虫 (Web Crawlers) [离散数学是当代数学的一个重要分支,也是计算机科学的数学基础.它包括数理逻辑.集合论.图论和近世代数四个分支.数理逻辑基于布尔运算, ...

最新文章

  1. 吴恩达新书《Machine Learning Yearning》完整中文版 PDF 下载!
  2. python处理视频动漫化_用Python实现抖音上的“人像动漫化”特效,原来这么简单...
  3. oracle 查看表属主和表空间sql
  4. [机器学习] 模型稳定度指标PSI
  5. C语言 | 变量的存储方式
  6. 一个java类可以有_一个.java文件中可以有几个同级类?
  7. python关闭exe程序_Win 10 中使用 Python 碰到的奇怪现象
  8. Android单元测试 - Sqlite、SharedPreference、Assets、文件操作 怎么测?
  9. [Android系列—] 1. Android 开发环境搭建与Hello World
  10. 吴恩达课程及视频笔记汇总
  11. 【单机实现系列】SharePoint2010与Exchange Server2010 结合
  12. 用Python来玩微信跳一跳
  13. (五)Thymeleaf标准表达式之——[7-8]条件表达式 默认表达式
  14. Java学习博客第一篇
  15. 微信聊天内容制作生成器微信小程序源码_支持多种制作生成
  16. python 爬取订单_【python实战】【持续更新】爬取某发卡网订单
  17. NAS与SAN的区别
  18. 存储、冯诺伊曼和哈佛结构之间的关系
  19. java达内小发猫课程,详细说明
  20. linux文件分隔符

热门文章

  1. 深入理解JVM虚拟机14:JVM性能调优的6大步骤,及关键调优参数详解
  2. 艾美捷Cas9 ELISA检测试剂盒的制备和文献参考
  3. vue路由跳转回退后页面不刷新处理
  4. 华硕 TUF GAMING FX504GE_FX80GE电脑 Hackintosh 黑苹果efi引导文件
  5. Unity 镜头拉近拉远 和旋转视角
  6. POJ2676数独游戏题解
  7. windows10 64位 OpenVINO安装教程
  8. 【解决方案】rtsp/gb28181/ehome协议视频融合共享平台EasyCVR基于社区的人脸识别系统
  9. Python字典与集合练习题
  10. matlab 比较两个集合是否相等 儿子的papa,papa的儿子