前言
前文我们讲解了投影矩阵和最小二乘法,本节我们深化正交基和正交矩阵的概念和性质,讨论QR分解以及将一组向量转化为标准正交向量组的方法:Gram-Schmidt正交化。
矩阵分解 |
QR分解 |
分解形式 |
A=QR (Q代表标准正交矩阵,R代表非奇异上三角矩阵) |
目的 |
(1)求解A的特征值; (2)求解A的逆; (3)求解线性最小二乘问题。 |
标准正交矩阵
标准正交向量(Orthonormal Vector)
我们用q表示单位向量,那么有q1,q2,q3,...,qn,若所有的向量q满足
qiTqj={0i=j1i=j
此时,我们称q为标准正交向量(Orthonormal Vector)。当i=j时,qiTqj=1表示向量长度为单位长度。当i=j时,qiTqj=0表示不同的向量之间是正交的。
标准正交矩阵(Orthonormal Matrix)
将标准正交向量q放入矩阵Q中,得到Q=[q1q2...qn],我们称这样的矩阵Q为标准正交矩阵(Orthonormal Matrices)。标准正交矩阵满足以下性质:
QTQ=⎣⎢⎢⎡q1Tq2T...qnT⎦⎥⎥⎤[q1q2...qn]=⎣⎢⎢⎢⎡10⋮001⋮0⋯⋯⋱⋯0⋯⋮1⎦⎥⎥⎥⎤=I
当矩阵Q恰好为方阵时,由于其正交性,可知矩阵Q是可逆的,而QTQ=I,所以 Q^T = Q^{-1},那么此时我们称Q$为正交矩阵(Orthogonal Matrix)。
示例
(1)Q=⎣⎡010100001⎦⎤
此时QT=Q−1=⎣⎡001100010⎦⎤,易得QTQ=I
(2)Q=[cosθsinθ−sinθcosθ]
此时列向量长度为1,列向量相互正交
(3)Q=21[11−1−1]
此时列向量长度为1,列向量相互正交
(4)Q=21⎣⎢⎢⎡11111−11−111−1−11−1−11⎦⎥⎥⎤
(5)Q=31⎣⎡122−2−122−21⎦⎤
用途
上一篇文章我们知道投影矩阵P=A(ATA)−1AT,当矩阵A为标准正交矩阵Q时,有
P=Q(QTQ)−1QT=QQT
当Q是方阵时,QQT=I,那么其投影矩阵P=I。
验证:
PT=P:(QTQ)T=(QT)TQT=QQT
P2=P:(QQT)2=QQTQQT=Q(QTQ)QT=QQT
将Q带入到最小二乘法公式(ATAx^=ATb)中,得到:
QTQx^=QTb=>x^=QTb
分解开即为
xi^=qiTb
Gram-Schmidt正交化
两个向量的单位正交化
已知两个线性无关的向量a,b无法满足标准的正交(如图1所示),现在我们想通过Gram-Schmidt方法进行单位化和正交化,将其转化为标准的单位正交基q1,q2。
图1:无法满足标准正交的两个向量a,b
- 设正交向量为A,B,接着我们以向量a为其中的正交向量A,则需求出正交向量B。
- 若要求出正交向量B,其实就是将b投影到a上,再求b到a的距离,也就是误差向量e,也就是用向量b去减b在向量a上的分量,如图2所示
图2:向量b与向量a的误差向量e
-
根据上一节关于向量投影的知识可知:
B=e=b−p=b−ATAATbA
-
检验A⊥B:
ATB=ATb−ATATAATbA=ATb−ATAATbAb=0
-
得到两个正交向量q1,q2:
q1=∣∣A∣∣A,q2=∣∣B∣∣B
三个向量的单位正交化
如果有三个向量要做单位正交化,那第三个向量需要垂直于前两个向量,我们设三个向量分别为a,b,c,三个相互正交的向量为A,B,C,三个相互正交的单位向量为q1,q2,q3,并令A=a,那么根据上一小节的内容,可以推出:
B=b−ATAATbAC=c−p=c−pa−pb=c−ATAATcA−BTBBTcB
示例
设有线性无关的非正交向量a,b,其中a=⎣⎡111⎦⎤,b=⎣⎡102⎦⎤,求两向量的标准正交矩阵Q。
- 正交化:我们设两正交向量为A,B,其中
A=a=⎣⎡111⎦⎤B=b−pa=b−ATAATbA=⎣⎡102⎦⎤−[111][111][111][112]⎣⎡111⎦⎤=⎣⎡102⎦⎤−⎣⎡111⎦⎤=⎣⎡0−11⎦⎤
- 单位化:设两单位正交向量为q1,q2,则
q1=31⎣⎡111⎦⎤q2=21⎣⎡0−11⎦⎤
- 得到矩阵Q:
Q=⎣⎢⎡3131310−2121⎦⎥⎤
QR分解
我们继续上文所述的示例,我们设原来的矩阵为A=⎣⎡111102⎦⎤,然后来对比一下矩阵A和Q:
A=⎣⎡111102⎦⎤Q=⎣⎢⎡3131310−2121⎦⎥⎤
会发现,A和Q的列空间是相同的,当然这是因为我们只是将原来的基标准正交化了。那么和LU分解表达了高斯消元法类似,上述示例中使用Gram-Schmidt正交化方法的过程也可以用矩阵的形式来表达,即A=QR,其中Q为标准正交矩阵,R为非奇异上三角矩阵。具体地,设矩阵A有列a,b,即A=[ab],那么我们可以直接写出矩阵Q和矩阵R,即
A=[ab]=QR=[q1q2][aTq1aTq2bTq1bTq2]
由于我们令a为两正交向量中的一个,因此a⊥b,所以aTq2=0,因此矩阵R是一个上三角矩阵,就有
A=[ab]=QR=[q1q2][aTq10bTq1bTq2]