以前介绍的矩阵的三角分解系列介绍了利用矩阵初等变换解决了矩阵三角化问题以及具体的三角分解。可是以初等变换工具的三角分解方法并不能消除病态线性方程组不稳定问题,并且有时候对于可逆矩阵有可能也不存在三角分解。因此后面为了解决这里问题,发展出来了以正交(酉)变换的矩阵的QR(正交三角)分解,矩阵的正交三角分解是一种对任何可逆矩阵均存在理想分解。进行QR分解须要用到施密特(Schmidt)正交规范化,吉文斯(Givens)变换和豪斯霍尔德(Householder)变换等。这里矩阵的QR分解系列教程主要是针对在学习QR分解时候的涉及到的一些细节,包括不少方法的来源和证实等,以及其中用到的一些矩阵操做的基础知识,主要包括:html
- [矩阵的QR分解系列一] 施密特(Schmidt)正交规范化
- [矩阵的QR分解系列二] 吉文斯(Givens)变换
- [矩阵的QR分解系列三] 豪斯霍尔德(Householder)变换
- [矩阵的QR分解系列四] QR(正交三角)分解
- [矩阵的QR分解系列五] Eigen中的QR分解
这个系列后面文章会用到前面文章的理论和技术,因此建议按照顺序查看。web
简介
上面介绍的都是QR分解的基础知识,能够了解每种QR分解方法具体含义,推导的过程以及适用的范围,有了前面的介绍其实本身去实现相应的QR分解方法也变得很是的简单。但在实际使用过程当中,不多本身去实现这种复杂的矩阵QR分解,大部分状况下都是调用现成的矩阵运算的算法库。这里介绍比较经常使用的矩阵运算库Eigen的QR分解的一些使用方法。算法
QR分解函数
Eigen库中主要包含下面这些QR函数svg
分解方法 | Eigen函数 | 适用矩阵 | 分解公式 |
---|---|---|---|
HouseholderQR | Eigen::HouseholderQR | 任意矩阵 | A = Q R A=QR A=QR |
ColPivHouseholderQR | Eigen::ColPivHouseholderQR | 任意矩阵 | A = Q R A=QR A=QR |
FullPivHouseholderQR | Eigen::FullPivHouseholderQR | 任意矩阵 | A = Q R A=QR A=QR |
使用范例
待续~~~函数
本文同步分享在 博客“无比机智的永哥”(CSDN)。
若有侵权,请联系 support@oschina.cn 删除。
本文参与“OSC源创计划”,欢迎正在阅读的你也加入,一块儿分享。工具