在線性最小二乘裏,最後得到的閉式解爲(ATA)x=ATb,對於該等式的求解,其中一種方法是正交變換法求解,而正交變換求解線性最小二乘的實質就是對矩陣A進行QR分解。
QR分解的概念:若實非奇異對稱矩陣A能化爲正交矩陣Q和實非奇異上三角矩陣R的乘積,即A=QR,則稱該式爲A的QR分解。
事實上,任何的實非奇異n階矩陣A都可以分解成正交矩陣Q和上三角矩陣R的乘積,這可以通過施密特正交化來證明。
證明過程如下:
對於實非奇異n階矩陣A的各個列向量依次爲α1,α2,⋯αn,那麼,通過施密特正交化得到的n個標準正交向量如下,
⎩⎪⎪⎪⎨⎪⎪⎪⎧β1=b11α1β2=b12α1+b22α2⋮βn=b1nα1+b2nα2+⋯+bnnαn
則,寫成矩陣形式爲,
(β1,β2,⋯βn)=(α1,α2,⋯αn)B
即,
Q=AB
其中,B=⎣⎢⎢⎢⎡b11b12b22⋯⋯⋱b1nb2n⋮bnn⎦⎥⎥⎥⎤
很顯然,矩陣B就是一個上三角矩陣,而且B可逆,QR分解中的R就是R=B−1,Q=[β1,β2,⋯βn]是正交矩陣(施密特正交化的結果),則有,
A=QB−1=QR
這就說明了QR分解的存在性。
從上述的QR分解存在性的證明過程可以看出,QR分解步驟的關鍵就是找到一個上三角矩陣R和一個正交矩陣Q。那麼,怎麼才能得到一個Q和R,正交變換就能做到這一點。所以,QR分解的方法就有三種,第一種就是上述證明過程所示的,用施密特正交化求解,其他兩種是Givens變換(初等旋轉變換)和Housholder(鏡像變換)。
施密特正交化
設α1,α2,⋯αn爲一組線性無關的向量,施密特正交化後的向量爲β1,β2,⋯βn,則施密特正交化的一般式如下,
⎩⎨⎧βm=αm+km1βm−1+km2βm−2+⋯+km,m−1β1kmi=−(βm−i,βm−i)(xm,βm−i)i=1,2,⋯m−1
舉個例子,對矩陣A=⎣⎡1101−10012⎦⎤進行QR分解。
令A=[α1,α2,α3],則α1=(1,1,0)T,α2=(1,−1,0)T,α1=(0,1,2)T,則根據上述的施密特方法得,
⎩⎪⎪⎪⎪⎪⎪⎪⎨⎪⎪⎪⎪⎪⎪⎪⎧β1′=α1=(1,1,0)Tβ2′=α2−(β1′,β1′)(β1′,α2)β1′=(1,−1,0)Tβ3′=α3−(β1′,β1′)(β1′,α3)β1′−(β2′,β2′)(β2′,α3)β2′=(0,0,2)T
單位化後得,
⎩⎪⎪⎪⎪⎪⎨⎪⎪⎪⎪⎪⎧β1=(21,21,0)T=21α1β2=(21,−21,0)T=21α2β3=(0,0,1)T=−41α1+41α2+21α3
上式寫成矩陣形式,
Q(β1,β2,β3)=A(α1,α2,α3)⎣⎢⎢⎢⎢⎡21000210−414121⎦⎥⎥⎥⎥⎤
A=(β1,β2,β3)⎣⎢⎢⎢⎢⎡21000210−414121⎦⎥⎥⎥⎥⎤−1=⎣⎢⎢⎢⎢⎡2121021−210001⎦⎥⎥⎥⎥⎤⎣⎢⎢⎢⎢⎡20002021−212⎦⎥⎥⎥⎥⎤=QR
從上例可以看出,矩陣的QR實際上就是施密特正交化的特性,施密特正交化可以得到一個上三角矩陣和一個正交矩陣,所以矩陣可以QR分解。
Givens變換法
Givens變換,即初等旋轉變換,正交變換的一種,對應的初等旋轉矩陣形式如下,
Rij=⎣⎢⎢⎢⎢⎢⎢⎢⎢⎢⎢⎢⎢⎢⎢⎢⎢⎢⎡1⋱1cosθ0⋮0−sinθ01⋮00⋯⋯⋯0⋮10sinθ⋮0cosθ1⋱1⎦⎥⎥⎥⎥⎥⎥⎥⎥⎥⎥⎥⎥⎥⎥⎥⎥⎥⎤←i行←j行
初等變換矩陣在矩陣化簡方面有很好的應用,即,若以Rij左乘一個矩陣A,並且其中的s和c按如下方式取值,
s=xi2+xj2xj,c=xi2+xj2xi則就可以把矩陣A的第j個分量化爲0。
舉個例子,把向量x=(1,2,3)T通過Givens變換化成與(1,0,0)T同方向。
第一步,可以選擇把向量x中的第二項化爲0,則,
c=x12+x22x1=51s=x12+x22x2=52
得到初等旋轉矩陣爲,
R12=⎣⎢⎢⎢⎢⎡51−52052510001⎦⎥⎥⎥⎥⎤
從而把x的第二項化爲0,即,
y=R12x=(5,0,3)T
第二步,把y中的第3項化爲0,同樣,取c和s爲,
c=x12+x32x1=145s=x12+x32x3=143
得到初等旋轉矩陣爲,
R13=⎣⎢⎢⎢⎢⎢⎢⎡1450−1430101430145⎦⎥⎥⎥⎥⎥⎥⎤
這裏就把第三項化爲0,即,
z=R13y=R13R12x=(14,0,0)T
對一個向量可以這樣化簡,那麼對於矩陣而言,矩陣可以看作是由n個列向量組成的,所以把矩陣A左乘一系列的初等旋轉矩陣,就可以把A化簡爲結構較爲簡單的上三角矩陣R。而前面已經證明了一個實非奇異的矩陣A可以進行QR分解,那麼這裏的Givens變換就能把一個矩陣A化成上三角矩陣,所以,Givens變換可以用於QR分解。
Rn−1,n⋯R2n⋯R23R1n⋯R12A=RQ=(Rn−1,n⋯R2n⋯R23R1n⋯R12)−1=(Rn−1,n⋯R2n⋯R23R1n⋯R12)H
舉個例子,用Givens方法對矩陣A=⎣⎢⎢⎢⎢⎡12920−20−155041−6335⎦⎥⎥⎥⎥⎤進行QR分解。
第一步,用R12左乘A,消去第1列第2行處的元素,
c=122+9212=1512=54,s=122+929=53故,
R12A=⎣⎢⎢⎢⎢⎡54−53053540001⎦⎥⎥⎥⎥⎤A=⎣⎢⎢⎢⎢⎡15020−25050−5−7535⎦⎥⎥⎥⎥⎤
同理,接着消去A中第1列第3個元素,
c=152+20215=2515=53,s=152+20220=54故
A(1)=R13R12A=⎣⎢⎢⎢⎢⎡530−5401054053⎦⎥⎥⎥⎥⎤R12A=⎣⎢⎢⎢⎢⎡25002505025−7525⎦⎥⎥⎥⎥⎤
這裏就把矩陣A中的第一列的第二個和第三個元素化爲0,即第一列(A(1))化簡完成,下面開始第二列的化簡。
第二步,進行第二列的化簡,即把第二列的第三個元素化爲0,
c=02+5020=0,s=02+50250=1故,
R23=⎣⎡10000−1010⎦⎤
A(2)=R23A(1)=⎣⎢⎢⎢⎢⎡250025500252575⎦⎥⎥⎥⎥⎤
這裏的A(2)就是上三角矩陣,即QR分解裏的R,而Q的求解如下,
Q=(R23R13R12)−1=⎣⎢⎢⎢⎢⎡2512−25162515259−2512−2520252025150⎦⎥⎥⎥⎥⎤−1=⎣⎢⎢⎢⎢⎡2512−25162515259−2512−2520252025150⎦⎥⎥⎥⎥⎤H=⎣⎢⎢⎢⎢⎡25122592520−2516−251225152515−25200⎦⎥⎥⎥⎥⎤
從上例可以看出,Givens方法需要作2n(n−1)個初等旋轉矩陣的乘積,當n比較大時,計算量較大。
Housholder變換法
Housholder變換,即鏡像變換,正交變換的一種,對應的初等反射矩陣形式如下,H=I−2ωωT其中ω表示某單位向量。
其鏡面關係爲:若η=Hξ,則向量η和向量ξ關於某單位向量ω的正交軸l鏡像對稱。
用初等反射矩陣也可以完成對矩陣的簡化,其簡化原理用的是如下定理:
鏡像變換可以使任何非零向量ξ變成與給定單位向量a同方向的向量η。
用這一定理可以構造出H裏單位向量ω如下,
ω=∣ξ−∣ξ∣a∣ξ−∣ξ∣a那麼,可以通過構造ω的方法來簡化矩陣A,使其變爲一個上三角陣。
舉個例子,用鏡像變化把向量ξ=(0,3,0,4)T變爲與向量e1=(1,0,0,0)T同方向的向量。
首先就是構造ω,
ω=∣ξ−∣ξ∣e1∣ξ−∣ξ∣e1=∣∣∣(−5,3,0,4)T∣∣∣(−5,3,0,4)T=(−21,523,0,524)T則初等反射矩陣H爲,
H=I−2ωωT=⎣⎢⎢⎢⎢⎢⎢⎢⎢⎡0530545325160−2512001054−25120259⎦⎥⎥⎥⎥⎥⎥⎥⎥⎤
從而有,
η=Hξ=(5,0,0,0)T
上例,是使用鏡像變換完成了對向量的化簡。那麼,對於矩陣而言,同樣把矩陣看成是一組列向量的組合,那麼每次求解只完成一列列向量的簡化。
而與Given變換不同的是,對於每一列列向量的簡化,其對應的反射矩陣H只要求解一次,所以,經過n−1次左乘初等反射矩陣H就可以化成一個上三角陣,計算量大約是Givens變換的一半,即,
H(n−1)H(n−2)⋯H(1)A=A(n)=RQ=(H(n−1)H(n−2)⋯H(1))−1
舉個例子,用Housholder變換法對矩陣A=⎣⎡212221122⎦⎤進行QR分解。
第一步,完成對第一列的簡化。
因爲α1(1)=(2,1,2)T=0,作單位向量,
ω(1)=∣∣∣α1(1)−∣∣∣α1(1)∣∣∣e1∣∣∣α1(1)−∣∣∣α1(1)∣∣∣e1=∣∣∣(2,1,2)T−3e1∣∣∣(2,1,2)T−3e1=(−61,61,62)T則反射矩陣H爲,
H(1)=I−2ω(1)ω(1)T=⎣⎢⎢⎢⎢⎡3231323132−3232−32−31⎦⎥⎥⎥⎥⎤從而得,
H(1)A=⎣⎢⎢⎢⎢⎡3003834−313831−34⎦⎥⎥⎥⎥⎤=⎣⎢⎢⎢⎢⎡3003838A2⎦⎥⎥⎥⎥⎤
第二步,簡化第二列。此時關注的不是矩陣H(1)A,而是A2。
則,
ω^(2)=∣∣∣(34,−31)T−∣∣∣(34,−31)T∣∣∣e1∣∣∣(34,−31)T−∣∣∣(34,−31)T∣∣∣e1=(34−8174−17,−34−8171)T
那麼有,
H^(2)=I−2ω^(2)ω^(2)T=⎣⎢⎡1−34−8172(4−17)234−8172(4−17)34−8172(4−17)1−34−8172⎦⎥⎤從而對應的反射矩陣爲,
H(2)=⎣⎡100H^(2)⎦⎤=⎣⎢⎢⎢⎢⎢⎡10001−34−8172(4−17)234−8172(4−17)034−8172(4−17)1−34−8172⎦⎥⎥⎥⎥⎥⎤則有,
H(2)H(1)A=⎣⎢⎢⎢⎢⎡300383170385181717517⎦⎥⎥⎥⎥⎤=R
Q的求解如下,
Q=(H(2)H(1))−1=⎣⎢⎢⎢⎢⎢⎡32313251217511017−17717−173171721717217⎦⎥⎥⎥⎥⎥⎤
附:
從實用性角度考慮,一般不用施密特正交化進行QR分解,用Givens變換法和Housholder變換法較多,但Givens變換法需要2n(n−1)次左乘初等旋轉矩陣,計算量大,而Housholder變換法只需n−1次左乘初等反射矩陣,計算量小是Housholder變換法的優勢。但在稀疏矩陣的QR分解上,用Givens方法求解仍有方便之處。