以前介紹的矩陣的三角分解系列介紹了利用矩陣初等變換解決了矩陣三角化問題以及具體的三角分解。可是以初等變換工具的三角分解方法並不能消除病態線性方程組不穩定問題,並且有時候對於可逆矩陣有可能也不存在三角分解。因此後面爲了解決這裏問題,發展出來了以正交(酉)變換的矩陣的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源創計劃」,歡迎正在閱讀的你也加入,一塊兒分享。工具