0%

A=QR_HouseHolder_Defactorization

参考章节目录

  1. Iteriative Methods for Sparse Linear Systems P12
  2. MATH 5330: Computational Methods of Linear Algebra—Lecture Note 10: Householder Transformation—Xianyi Zeng—Department of Mathematical Sciences, UTEP

Abstract

关于A=QR的分解,有三种方法:Gram、Givens、Householder,Givens我不熟悉、但好像和旋转有关、可以保留A’s columns的长度。HouseHolder也有这个优点。

大致了解

Gram-Schmidt的方法是通过一步一步地将新的列Aj,减去其在已正交化的q1,q2,q(j-1)的投影从而得到新的正交项以此构成Q,HouseHolder采取了另外一种完全的方法,其一步一步地将待分解矩阵A,分解成Echelon matrix,当然这个分解过程不是简单的Gaussian Decomposition,而是用了HouseHolder算子,下面翻译一下参考书目1中的分解步骤

什么是Householder算子(Householder矩阵的几何表示)

Householder算子是一个矩阵,其形式是P = I - 2wwT,这里我一般记作Pw,因为P是由w决定的,后续我们也是针对待分解矩阵的每一列来构造对应的w,从而得出针对每一列的P。

易证,P是Ortogonal矩阵、且是Symmetric矩阵PT=P,PTP=I

注意,我们后续在选择w的时候,要让其是2-norm unity的向量。

从几何上来看,Px表示的就是x,关于空间{w}的镜像。画图表示就是
HouseholderMatrix的几何表示

v就是上文中的w、Hv就是上文中的Pw

如何为每一列Xj构造每一个HouseHolder矩阵Pj

  • 针对向量x、构造其Pw

    一直在强调,HouseHolder矩阵Pj的作用就相当于Gaussian Elimination的消除矩阵(应该这么叫吧)。下面以第一列为例,假设第一列是x,那么目的肯定是
    1.15.1
    α是一个张量,后面我们会知道其实就是x的长度。现在将P的表达式代入:
    1.16
    推导1
    推导2

至此、我们就用通过x、求得了一个w,使得x在Pw的作用下可以变换至||x||e1,w的表达式如下
w1_Expression

  • 针对矩阵的每一列,进行构造P

    先看矩阵的第一列x1,我们直接用x1替换掉1.17中的x,即得出w1,从而得出P1。记X1是第一次HouseHolder变换后的矩阵(形如已经完成一次Gaussian Elimination的矩阵)
    X1
    X1的第一个元素为α,其余元素为0。

现在我们看一下第k次HouseHolder变换的情况,操作对象当然是已经完成k-1次的矩阵了鸭。表达式如下:
Xk

矩阵在列k-1前是一个上三角矩阵。进行下一步时,前k-1列保持不变,根据第k列的向量xk,确定一个w,然后生成P。w的形状是1至k-1个元素都是0,这样才保证了前k-1列不变。Pk的推导如下
Pk

当k=0时,即第一次变换的P,此时的β=αe1,符合上文的描述。

构造A=QR

到这里,我们就描述完了整个X的分解过程,使得x可以分解成
1.22
这里仅需要一小步、就可以将上式变成A=QR的美丽式子了鸭。(下面这个过程,即将R那部分中的0,转移到P中去,形成Q).我们将1.22表示成下面的式子1.23,R是mxm的矩阵。
1.23

我们在前面给出了Pi对称、且正交的,所以我们把P放到右边:
1.23.1

我们用Em表示I的前m列,shape=(n,m)。可表示如下
1.23.2

令Q=PTEm,这表示取PT的前m列。我们可以验证:
1.23.3

所以,Q是我们想要的Q(Orthonomal)。分解成功!

Pseudo Code

Householder_pseudoCode