點我下載,使用Matlab 2018b打開
QR分解是計算機視覺以及機器學習中重要的矩陣求逆方法。它可以將矩陣分解成一個正交矩陣Q與一個上三角矩陣R的積。一般來說,QR分解有三種方法:1. Householder transformations,2. Givens rotation,3. Gram-Schmidt orthogonalization。其中Matlab的qr()函數使用的是方法1,此處我們應用方法2來分解矩陣,方法3是一般教材中介紹的常規方法。
P.S. 實現8x8實矩陣是因為在我RANSAC的項目中需要固定實現8x8矩陣的求逆,這個基於循環的演算法可以很容易的拓展到其他大小的矩陣上去,但並不適用於未知大小矩陣的分解。
本文對基於Givens旋轉的QR分解原理不做介紹,具體可見一下鏈接:
【1】高等數值演算法與應用(三),清華大學 喻文健
【2】Givens Rotation,WikiPedia
一下貼出用於驗證的matlab代碼
TAG:MATLAB |