之前介绍的矩阵的三角分解系列介绍了利用矩阵初等变换解决了矩阵三角化问题以及具体的三角分解。但是以初等变换工具的三角分解方法并不能消除病态线性方程组不稳定问题,而且有时候对于可逆矩阵有可能也不存在三角分解。所以后面为了解决这里问题,发展出来了以正交(酉)变换的矩阵的QR(正交三角)分解,矩阵的正交三角分解是一种对任何可逆矩阵均存在理想分解。进行QR分解需要用到施密特(Schmidt)正交规范化,吉文斯(Givens)变换和豪斯霍尔德(Householder)变换等。这里矩阵的QR分解系列教程主要是针对在学习QR分解时候的涉及到的一些细节,包括很多方法的来源和证明等,以及其中用到的一些矩阵操作的基础知识,主要包括:

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

简介

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

QR分解函数

Eigen库中主要包含下面这些QR函数

分解方法

Eigen函数

适用矩阵

分解公式

Eigen::HouseholderQR

任意矩阵

A = Q R A=QRA=QR

Eigen::ColPivHouseholderQR

任意矩阵

A = Q R A=QRA=QR

Eigen::FullPivHouseholderQR

任意矩阵

A = Q R A=QRA=QR

使用范例

待续~~~

本文同步分享在 博客“无比机智的永哥”(CSDN)。

如有侵权,请联系 support@oschina.cn 删除。

本文参与“OSC源创计划”,欢迎正在阅读的你也加入,一起分享。

矩阵的QR分解c语言编程,[矩阵的QR分解系列五] Eigen中的QR分解相关推荐

  1. [矩阵的三角分解系列六] Eigen中的三角分解

    Eigen中的三角分解 简介 安装命令 三角分解函数 使用范例 矩阵的三角分解是求解线性方程组常用的方法,包括LU分解,LDU分解,杜利特(Doolittle)分解,克劳特(Crout)分解,LLT( ...

  2. C语言编程>第二十三周 ③ 下列给定程序中,函数fun的功能是:利用插入排序法对字符串中的字符按从小到大的顺序进行排序。插入法的基本算法是:先对字符串中的头两个元素进行排序;然后把第三字符插入

    例题:下列给定程序中,函数fun的功能是:利用插入排序法对字符串中的字符按从小到大的顺序进行排序.插入法的基本算法是:先对字符串中的头两个元素进行排序:然后把第三字符插入到前两个字符中,插入后前三个字 ...

  3. C语言编程>第二十周 ② 下列给定程序中,函数fun的功能是:求出数组中最大数和次最大数,并把最大数和b[0]中的数对调、次最大数和b[1]中的数对调。

    例题:下列给定程序中,函数fun的功能是:求出数组中最大数和次最大数,并把最大数和b[0]中的数对调.次最大数和b[1]中的数对调. 注意:不要改动main函数,不能增行或删行,也不能更改程序的结构. ...

  4. C语言编程>第十八周 ⑧ 给定程序中,函数fun的功能是:将形参指针所指结构体数组中的三个元素按num成员进行升序排列。

    例题:给定程序中,函数fun的功能是:将形参指针所指结构体数组中的三个元素按num成员进行升序排列. 注意:请勿改动主函数main与其他函数中的任何内容,仅在横线上填写所需的若干表达式或语句. 代码如 ...

  5. plcst语言编程教程_PLC ST语言编程之我的心得-专业自动化论坛-中国工控网论坛...

    以前编程都是习惯用梯形图,每次编运算程序,都得写很多条运算程序.调试且不说,就光重复使用就得复制好几遍,还要一遍一遍的改寄存器地址,很是麻烦.一次偶然的机会,我用到了一款PLC可以使用ST 语言编程的 ...

  6. c语言编程矩阵主对角线相同,急求!c语言 求N*N矩阵中主对角线和次对角线的元素之和...

    急求!c语言 求N*N矩阵中主对角线和次对角线的元素之和 來源:互聯網  2010-02-24 23:29:06  評論 分類: 電腦/網絡 >> 程序設計 >> 其他編程語言 ...

  7. 用c语言编程矩阵乘法,c语言矩阵相乘

    该楼层疑似违规已被系统折叠 隐藏此楼查看此楼 程序清单 #include&nbsp int&nbspmain(void) { &nbsp&nbsp&nbsp&a ...

  8. c语言编程矩阵乘积的程序,c语言矩阵相乘

    该楼层疑似违规已被系统折叠 隐藏此楼查看此楼 程序清单 #include&nbsp int&nbspmain(void) { &nbsp&nbsp&nbsp&a ...

  9. c语言编程矩阵鞍点函数,c语言 任意输入一个3×3的矩阵,用函数实现求上三角矩阵并输出。...

    满意答案 第一题#include void shangsan(int (*p)[3]) { for(int i=0;i<3;i++) { for(int j=0;j<3;j++) { if ...

最新文章

  1. python学习第一天 -----2019年4月15日
  2. python 网盘上传_python学习笔记 day32 实现网盘上传下载功能
  3. MyEclipse2015修改项目部署名称(WebContextRoot)
  4. 数据模型和数据库系统的模型结构
  5. python pip install pillow_Windows下Python中pip安装Pillow报错总结(转载)
  6. java 获取类的注解_Java 自定义注解通过反射获取类、方法、属性上的注解
  7. 重写FileUpload控件让它可以显示上传后的文件名
  8. 解决Windows10无法卸载Edge浏览器,亲测有效
  9. Chrome浏览器语音自动播放功能
  10. 抽35块树莓派新品单片机送给可爱的你们
  11. ubuntu中安装oracle sun java.
  12. Redis 部署方式(单点、master/slaver、sentinel、cluster) 概念与区别
  13. Windows获取模块基地址
  14. 射频百科:双工器是什么?双工器工作原理
  15. linux系统旋转屏幕命令,Archlinux 实现屏幕旋转
  16. 玩转儿童语音数据,打造儿童专属AI
  17. html中列表前面的序号带圆圈,js动态添加带圆圈序号列表方法
  18. 破解创维酷开电视安装第三方应用限制以及替换默认桌面应用突破笔记
  19. JavaScript风格指南
  20. 外媒:英特尔计划拍卖8500项专利 包括部分5G蜂窝标准专利

热门文章

  1. 程序员这样做不会瘫痪
  2. 作业:学生成绩管理系统
  3. JS leetcode求二叉树的最大深度
  4. beautifulsoup网页爬虫解析_Python3 网络爬虫快速入门实战解析
  5. 南京理工大学紫金学院计算机网络试卷,0信息技术试题a卷答案
  6. 代码随想录刷题|LeetCode 332.重新安排行程 51. N皇后 37. 解数独
  7. [bzoj3047] Freda的传呼机
  8. org.apache.ibatis.binding.BindingException: Invalid bound statement (not found):
  9. 吴军博士----《见识》
  10. web安全之弱口令漏洞学习总结