【矩阵】RQ/QR 分解

Multiple View Geometry in Computer Vision A.4.1.1 (page 579)

将一个 3x3 矩阵 A进行 RQ 分解是将其分解成为一个上三角阵 R与一个正交阵(orthogonal matrix) Q的乘积。要求矩阵 A的秩为3,即满秩。

所谓矩阵 Q正交是指 QTQ=IQ可以看作是一个旋转矩阵。此旋转矩阵由三个子旋转矩阵点乘而来,即 Q=QxQyQzQx,Qy,Qz如下:

Qx=1000cos(roll)sin(roll)0sin(roll)cos(roll)

Qy=cos(pitch)0sin(pitch)010sin(pitch)0cos(pitch)

Qz=cos(yaw)sin(yaw)0sin(yaw)cos(yaw)0001

将矩阵 A右乘一个矩阵,相当于将 A进行一次初等列变换。

A=RQ=RQTzQTyQTx
AQxQyQz=R

A右乘 Qx是将 A的第一列保持不变,第二列和第三列进行线性组合,解释如下:

A=A11A21A31A12A22A32A13A23A33

AQx=A11A21A31cA12+sA13cA22+sA23cA32+sA33sA12+cA13sA22+cA23sA32+cA33

上式省略了 roll,将 [AQx]32置为0。加上 c2+s2=1的条件,可以算出 c,s,求得 Qx

AQx的结果右乘 Qy是将第二列保持不变,第一列和第三列进行线性组合,将 [AQxQy]31置为0,求得 Qy

AQxQy的结果右乘 Qz是将第三列保持不变,第一列和第二列进行线性组合,将 [AQxQyQz]21置为0,求得 Qx

经过三次右乘(初等列变换)可以得到上三角阵 R

最后由计算得到的 Qx,Qy,Qz通过 Q=QTzQTyQTx,得到 A的 RQ 分解。

对于 QR、LQ、QL 分解使用类似的方式进行计算。QR 与 QL 分解是将矩阵 A进行初等行变换。


版权声明:本文为u011306452原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接和本声明。