矩阵分析:QR分解

Householder变换

矩阵分析:QR分解_第1张图片
Householder变换是一种简洁而有意思的线性变换,也可称为镜面反射变换,Householder变换矩阵为 H = I − w T w H=I-w^Tw H=IwTw
考虑向量 α \alpha α和一个单位向量 w : w T w = 1 w:w^{T}w=1 w:wTw=1
α \alpha α w w w 方向上的分量是
α w / / = ( w T α ) w = w w T α \alpha _{w_{//}}=\left( w^{T}\alpha \right) w=ww^{T}\alpha αw//=(wTα)w=wwTα
α \alpha α关于以 w w w为法向量的平面的镜面反射为
α − 2 α w / / = α − 2 w w T α = ( I − 2 w w T ) α = H α \alpha -2\alpha _{w_{//}}=\alpha -2ww^{T}\alpha =\left( I-2ww^{T}\right) \alpha =H\alpha α2αw//=α2wwTα=(I2wwT)α=Hα
考虑以下两个特殊向量
H w = ( I − 2 w w T ) w = w − 2 w ( w T w ) = − w v : w T v = 0 , H v = ( I − 2 w w T ) v = v − 2 w ( w T v ) = v \begin{aligned} &Hw=\left( I-2ww^{T}\right) w=w-2w\left( w^{T}w\right) =-w\\ &v:w^{T}v=0,Hv=( I -2ww^{T}) v=v-2w\left( w^{T}v\right) =v \end{aligned} Hw=(I2wwT)w=w2w(wTw)=wv:wTv=0,Hv=(I2wwT)v=v2w(wTv)=v
对于向量 w w w,Householder矩阵的作用是将其反向,对于垂直于向量 w w w的向量 v v v ,Householder矩阵对其不产生改变。那么对于一般的向量 α \alpha α,经过Householder矩阵作用后,平行于 w w w的分量反向,垂直于 w w w的分量保持不变。其整体作用是将向量关于法向量为 w w w的平面做镜面对称。

于是也可以得到,Householder变换不改变向量模长,是一种正交变换。两次镜面变换后将反射为自身,同时也是一种对合变换。即
H H T = I , H 2 = I HH^{T}=I,H^{2}=I HHT=I,H2=I
下面从代数层面考虑,上式表明 -1,1为Householder矩阵的特征值。对于向量 w w w,可以找到n-1个向量构成n维欧式空间的一组标准正交基。记 Q = [ w , v 1 , v 2 , … , v n − 1 ] Q=\left[ w,v_{1},v_{2},\ldots ,v_{n-1}\right] Q=[w,v1,v2,,vn1] ,有:
I = Q Q T = w w T + ∑ i = 1 n − 1 v i v i T H = I − 2 w w T = − w w T + ∑ i = 1 n − 1 v i v i T = Q ( − 1 1 ⋱ 1 ) Q T \begin{aligned} I&=QQ^{T}=ww^{T}+\sum ^{n-1}_{i=1}v_{i}v_{i}^{T}\\ H&=I-2ww^{T}=-ww^{T}+\sum ^{n-1}_{i=1}v_{i}v_i^{T}=Q\begin{pmatrix} -1 & & & \\ & 1 & & \\ & & \ddots & \\ & & & 1 \end{pmatrix}Q^{T} \end{aligned} IH=QQT=wwT+i=1n1viviT=I2wwT=wwT+i=1n1viviT=Q 111 QT
上式给出了Householder的对角化过程,可以看出其更本质的特征。通过秩为1的矩阵 w w T ww^T wwT改变了单位矩阵的一个特征值,进而改变其一个特征向量上的缩放变换。

Householder变换用于QR分解

可以通过Householder变换可以将向量 x x x变换为任意相同模长的向量 y y y
H x = y H x = y Hx=y
其中 H = I − w T w H=I-w^Tw H=IwTw,由Householder变换的本质是法向量为 w w w的平面的镜像对称可知
x − y = ∥ x − y ∥ w    ⟹    w = x − y ∥ x − y ∥ x-y=\lVert x-y \rVert w\\ \implies w=\dfrac{x-y}{\lVert x-y \rVert} xy=xyww=xyxy

而利用Householder变换的上述性质可以进行QR分解:
对于任意非奇异矩阵 A = [ a 1 a 2 ⋯ a n ] A=\begin{bmatrix}a_1&a_2&\cdots & a_n\end{bmatrix} A=[a1a2an],首先利用Householder变换将 A A A矩阵的第一列除第一个元素外全部变成0
H 1 a 1 = β e 1 H_1 a_1 = \beta e_1 H1a1=βe1
e i e_i ei是第i个元素为1的单位向量。
H 1 A = [ H 1 a 1 H 1 A ′ ] = [ ∗ ∗ 0 A ^ 1 ] H_1 A = \begin{bmatrix}H_1 a_1& H_1A'\end{bmatrix}=\begin{bmatrix}*&*\\0&\hat{A}_1\end{bmatrix} H1A=[H1a1H1A]=[0A^1]
从而我们可以迭代地对维度减一的矩阵 A ^ 1 \hat{A}_1 A^1进行上述求解,得到 H ^ 2 \hat H_2 H^2 ,则令 H 2 = ( 1 0 0 H ^ 2 ) H_2=\left(\begin{matrix}1 &0 \\0 &\hat H_2\end{matrix}\right) H2=(100H^2) ,则:
H ^ 2 A ^ 1 = [ ∗ ∗ 0 A ^ 2 ] \hat{H}_2 \hat{A}_1=\begin{bmatrix}*&*\\0&\hat{A}_2\end{bmatrix} H^2A^1=[0A^2]
以此类推接着对 A ^ 2 \hat{A}_2 A^2 做Householder变换将其第一列除第一元素外变为0。
最终迭代可以得到
H n − 1 ⋯ H 2 H 1 A = R H_{n-1}\cdots H_2H_1 A=R Hn1H2H1A=R

Q T = H n − 1 ⋯ H 2 H 1 Q^T=H_{n-1}\cdots H_2H_1 QT=Hn1H2H1

Givens变换

参考链接

你可能感兴趣的:(SLAM,矩阵,线性代数,算法)