矩陣 RQ QR 分解

2022-07-24 04:09:14 字數 1586 閱讀 6117

multiple view geometry in computer vision a.4.1.1 (page 579)

將乙個 3x3 矩陣 $ a $ 進行 rq 分解是將其分解成為乙個上三角陣 $ r $ 與乙個正交陣(orthogonal matrix) $ q $ 的乘積。要求矩陣 $ a $ 的秩為3,即滿秩。

所謂矩陣 $ q $ 正交是指 $ q^tq=i $, $ q $ 可以看作是乙個旋轉矩陣。此旋轉矩陣由三個子旋轉矩陣點乘而來,即 $ q = q_xq_yq_z $ 。$ q_x, q_y, q_z $ 如下:

\[q_x = \begin

1 & 0 & 0 \\

0 & \cos (roll) & -\sin (roll)\\

0 & \sin (roll) & \cos (roll) \\

\end

\]\[q_y = \begin

\cos (pitch) & 0 & \sin (pitch) \\

0 & 1 & 0 \\

-\sin (pitch) & 0 & \cos (pitch) \\

\end

\]\[q_z = \begin

\cos (yaw) & -\sin (yaw) & 0 \\

\sin (yaw) & \cos (yaw) & 0 \\

0 & 0 & 1 \\

\end

\]將矩陣 $ a $ 右乘乙個矩陣,相當於將 $ a $ 進行一次初等列變換。

由 \(a = rq = rq_z^tq_y^tq_x^t\) 得 \(aq_xq_yq_z = r\)。

將 $ a $ 右乘 $ q_x $ 是將 $ a $ 的第一列保持不變,第二列和第三列進行線性組合,解釋如下:

\[ a = \begin

a_ & a_ & a_ \\

a_ & a_ & a_ \\

a_ & a_ & a_

\end \]

\[ aq_x = \begin

a_ & ca_ + sa_ & -sa_ + ca_ \\

a_ & ca_ + sa_ & -sa_ + ca_ \\

a_ & ca_ + sa_ & -sa_ + ca_

\end \]

上式省略了 $ roll $ ,將 $ [aq_x]_ $ 置為0。加上 \(c^2 + s^2 = 1\) 的條件,可以算出 \(c, s\),求得 $ q_x $ 。

$ aq_x $ 的結果右乘 $ q_y $ 是將第二列保持不變,第一列和第三列進行線性組合,將 $ [aq_xq_y]_ $ 置為0,求得 $ q_y $ 。

$ aq_xq_y $ 的結果右乘 $ q_z $ 是將第三列保持不變,第一列和第二列進行線性組合,將 $ [aq_xq_yq_z]_ $ 置為0,求得 $ q_x $ 。

經過三次右乘(初等列變換)可以得到上三角陣 $ r $ 。

最後由計算得到的 $ q_x, q_y, q_z $ 通過 \(q = q_z^tq_y^tq_x^t\) ,得到 \(a\) 的 rq 分解。

對於 qr、lq、ql 分解使用類似的方式進行計算。qr 與 ql 分解是將矩陣 $ a $ 進行初等行變換。

矩陣分解 Cholesky分解

矩陣分解是將矩陣拆解為數個矩陣的乘積,可分為三角分解 滿秩分解 qr分解 jordan分解和svd 奇異值 分解等。cholesky分解法是求解對稱正定線性方程組最常用的方法之一。可採用如下命令 r chol a 產生乙個上三角陣r,使r r a。若a為非對稱正定,則輸出乙個出錯資訊。r,p cho...

非負矩陣分解 低秩矩陣分解

一般的矩陣分解,分解的矩陣有正有負。很多實際應用中,負數沒有意義,如文字等等。nmf中要求原矩陣和分解後矩陣都為非負矩陣,這個分解存在唯一。引入稀疏,區域性計算。以人臉識別為例 v r n m v in r v r n m m張臉,每張圖n個畫素 w r n r w in r w r n r 基矩陣...

矩陣的分解

matlab中有這個恒等式 a triu a,1 tril a,1 diag diag a 將矩陣分解為乙個上三角陣 下三角陣和乙個對角陣。測試如下 format compact a 1 2 3 4 5 6 7 8 9 a 1 2 3 4 5 6 7 8 9 u triu a,1 u 0 2 3 0...