zl程序教程

您现在的位置是:首页 >  其它

当前栏目

QR分解(正交三角分解)

分解 三角 正交 QR
2023-09-14 09:06:48 时间

QR分解

定义

如果实(复)非奇异矩阵 A A A能化成正交(酉)矩阵 Q Q Q与实(复)非奇异上三角矩阵的乘积,即
A = Q R A=QR A=QR
则称是 A A A Q R QR QR分解

定理1

任何实的非奇异 n n n阶矩阵 A A A可以分解成正交矩阵 Q Q Q和上三角矩阵 R R R的乘积,且除去相差一个对角线元素之绝对值全等于1的对角矩阵因子 D D D外,唯一分解

证明:
A A A的列向量分别为 α 1 , α 2 , ⋯   , α n \alpha_1,\alpha_2,\cdots,\alpha_n α1,α2,,αn,由于 A A A非奇异,所以他们线性无关,经过施密特正交化和单位化后,得到 n n n个标准正交的向量 β 1 , β 2 , ⋯   , β n \beta_1,\beta_2,\cdots,\beta_n β1,β2,,βn,且
{ β 1 = b 11 α 1 , β 2 = b 12 α 1 + b 22 α 2 ⋮ β n = b 1 n α 1 + b 2 n α 2 + ⋯ + b n n α n \begin{cases} \beta_1 &=b_{11}\alpha_1,\\ \beta_2 &=b_{12}\alpha_1+b_{22}\alpha_{2}\\ &\vdots\\ \beta_n&=b_{1n}\alpha_1+b_{2n}\alpha_{2}+\cdots+b_{nn}\alpha_{n} \end{cases} β1β2βn=b11α1,=b12α1+b22α2=b1nα1+b2nα2++bnnαn
这里 b i j b_{ij} bij都是常数,且由正交化过程可知 b i i ≠ 0 ( i = 1 , 2 , ⋯   , n ) b_{ii}\neq 0(i=1,2,\cdots,n) bii=0(i=1,2,,n),于是
( β 1 , β 2 , ⋯   , β n ) = ( α 1 , α 2 , ⋯   , α n ) B (\beta_1,\beta_2,\cdots,\beta_n)=(\alpha_1,\alpha_2,\cdots,\alpha_n)B (β1,β2,,βn)=(α1,α2,,αn)B

Q = A B Q=AB Q=AB
其中
B = ( b 11 b 12 ⋯ b 1 n b 22 ⋯ b 2 n ⋱ ⋮ b n n ) B= \begin{pmatrix} b_{11}&b_{12}&\cdots &b_{1n}\\ &b_{22}&\cdots&b_{2n}\\ &&\ddots&\vdots\\ &&&b_{nn}\\ \end{pmatrix} B=b11b12b22b1nb2nbnn
是上三角矩阵 ( b i i ≠ 0 ( i = 1 , 2 , ⋯   , n ) ) (b_{ii}\neq 0(i=1,2,\cdots,n)) (bii=0(i=1,2,,n))
显然 B B B可逆, R = B − 1 R=B^{-1} R=B1也是上三角矩阵
因为 Q Q Q的各列标准正交,所以 Q Q Q为正交矩阵,有 A = Q R A=QR A=QR

唯一性:
不妨设
A = Q R = Q 1 R 1 A=QR=Q_1 R_1 A=QR=Q1R1
其中 Q , Q 1 Q,Q_1 Q,Q1都是正交矩阵, R , R 1 R,R_1 R,R1都是上三角矩阵,
Q = Q 1 R 1 R − 1 = Q 1 D Q=Q_1R_1 R^{-1}=Q_1 D Q=Q1R1R1=Q1D
D = R 1 R − 1 D=R_1 R^{-1} D=R1R1也是非奇异上三角矩阵,于是
I = Q T Q = ( Q 1 D ) T ( Q 1 D ) = D T D I=Q^T Q=(Q_1 D)^T (Q_1 D)=D^T D I=QTQ=(Q1D)T(Q1D)=DTD
D = ( d 11 d 12 ⋯ d 1 n d 22 ⋯ d 2 n ⋱ ⋮ d n n ) D= \begin{pmatrix} d_{11}&d_{12}&\cdots &d_{1n}\\ &d_{22}&\cdots&d_{2n}\\ &&\ddots&\vdots\\ &&&d_{nn}\\ \end{pmatrix} D=d11d12d22d1nd2ndnn
代入比较,得
d 11 2 = 1 , d 12 = ⋯ = d 1 n = 0 d 22 2 = 1 , d 23 = ⋯ = d 2 n = 0 ⋮ d n n 2 = 1 d_{11}^2=1,d_{12}=\cdots =d_{1n}=0\\ d_{22}^2=1,d_{23}=\cdots =d_{2n}=0\\ \vdots\\ d_{nn}^2=1 d112=1,d12==d1n=0d222=1,d23==d2n=0dnn2=1
从而
∣ d i i ∣ = 1 \left| d_{ii} \right|=1 dii=1

D = d i a g ( ± 1 , ± 1 , ⋯   , ± 1 ) D=diag(\pm 1,\pm 1,\cdots,\pm 1) D=diag(±1,±1,,±1)
所以 D D D不仅是正交矩阵,而且还是对角线元素的绝对值全为1的对角矩阵
R 1 = D R 1 , Q 1 = Q D − 1 R_1=DR_1,Q_1=QD^{-1} R1=DR1,Q1=QD1

当然,如果规定 R , R 1 R,R_1 R,R1对角线上的元素为正实数,则 D = I D=I D=I,从而唯一分解

定理2

A A A m × n m\times n m×n的复矩阵 ( m ≥ n ) (m\ge n) (mn),且 n n n个列向量线性无关,则 A A A有分解式
A = U R A=UR A=UR
其中 U U U m × n m\times n m×n的复矩阵,且 U H U = I U^H U=I UHU=I, R R R n n n阶复非奇异上三角矩阵,且除去相差一个对角元素的模全为1的对角矩阵因子外,唯一分解

QR分解求法

吉文斯(Givens)方法

定理

任何非奇异矩阵可以通过左连乘初等旋转矩阵化为上三角矩阵

证明:
(1)
对实可逆矩阵 A = ( a i j ) A=(a_{ij}) A=(aij)左乘初等旋转矩阵 R i j R_{ij} Rij以后,只改变 A A A的第 i i i行和第 j j j行元素

A ′ = R i j A A'=R_{ij}A A=RijA

a i g ′ = c a i g + s a j g , a j g ′ = − s a i g + c a j g , a p g ′ = a p g ( p ≠ i , j ; g = 1 , 2 , ⋯   , n ) a'_{ig}=ca_{ig}+sa_{jg},a'_{jg}=-sa_{ig}+ca_{jg},a'_{pg}=a_{pg}(p\neq i,j;g=1,2,\cdots,n) aig=caig+sajg,ajg=saig+cajg,apg=apg(p=i,j;g=1,2,,n)
如果要使得 A ′ A' A中的第 g 0 g_0 g0列的第 j j j元素 a j g 0 ′ = 0 a'_{jg_0}=0 ajg0=0,那么只要 a i g 0 a_{ig_0} aig0 a j g 0 a_{jg_0} ajg0之一不为0,且取
s = a j g 0 a i g 0 2 + a j g 0 2 , c = a i g 0 a i g 0 2 + a j g 0 2 s=\frac{a_{jg_0}}{\sqrt{a_{ig_0}^2+a_{jg_0}^2}},c=\frac{a_{ig_0}}{\sqrt{a_{ig_0}^2+a_{jg_0}^2}} s=aig02+ajg02 ajg0,c=aig02+ajg02 aig0
此时
a i g 0 ′ = a i g 0 2 + a j g 0 2 > 0 a'_{ig_0}=\sqrt{a_{ig_0}^2+a_{jg_0}^2} >0 aig0=aig02+ajg02 >0
也就是 A A A的第 g 0 g_0 g0列的第 j j j个元素化为0,第 g 0 g_0 g0列的第 i i i个元素的变为正数,其余元素不变
(2)
假设 a 11 ≠ 0 a_{11}\neq 0 a11=0,取 g 0 = 1 g_0=1 g0=1,连续左乘 R 12 , R 13 , ⋯   , R 1 n R_{12},R_{13},\cdots,R_{1n} R12,R13,,R1n,使得第1列的第1个元素为正外,其余元素都被逐个化为0,即
A ( 1 ) = R 1 n R 1 , n − 1 ⋯ R 12 A = ( a 11 ( 1 ) a 12 ( 1 ) ⋯ a 1 n ( 1 ) 0 a 22 ( 1 ) ⋯ a 2 n ( 1 ) ⋮ ⋮ ⋮ 0 a n 2 ( 1 ) ⋯ a n n ( 1 ) ) \begin{aligned} A^{(1)}&=R_{1n}R_{1,n-1}\cdots R_{12}A\\ &= \begin{pmatrix} a_{11}^{(1)}&a_{12}^{(1)}&\cdots&a_{1n}^{(1)}\\ 0&a_{22}^{(1)}&\cdots&a_{2n}^{(1)}\\ \vdots&\vdots&&\vdots\\ 0&a_{n2}^{(1)}&\cdots&a_{nn}^{(1)}\\ \end{pmatrix} \end{aligned} A(1)=R1nR1,n1R12A=a11(1)00a12(1)a22(1)an2(1)a1n(1)a2n(1)ann(1)
a 11 ( 1 ) > 0 a_{11}^{(1)}>0 a11(1)>0

如果 a 1 1 = 0 a_11=0 a11=0,则 A A A从 左乘 R 1 i 0 R_{1i_0} R1i0开始,其中 i 0 i_0 i0 a i 1 ≠ 0 a_{i1}\neq 0 ai1=0的最小下标,因为 A A A是可逆的,所以列向量不能为0,也就是说一定可以找到,此时 R 1 i 0 A R_{1i_0}A R1i0A的第1列第1个元素为正
因为 A A A是可逆的,所以右下角的子式非零,所以在 a 22 ( 1 ) , a 32 ( 1 ) , ⋯   , a n 2 ( 1 ) a_{22}^{(1)},a_{32}^{(1)},\cdots,a_{n2}^{(1)} a22(1),a32(1),,an2(1)中至少有一个不为0,此时同样可以认为 a 22 ( 1 ) ≠ 0 a_{22}^{(1)}\neq 0 a22(1)=0,取 g 0 = 2 g_0=2 g0=2,连续左乘 R 23 , R 24 , ⋯   , R 2 n R_{23},R_{24},\cdots,R_{2n} R23,R24,,R2n使 A ( 1 ) A^{(1)} A(1)化为
A ( 2 ) = R 2 n R 2 , n − 1 ⋯ R 23 A ( 1 ) = ( a 11 ( 1 ) a 12 ( 1 ) a 13 ( 1 ) ⋯ a 1 n ( 1 ) 0 a 22 ( 1 ) a 23 ( 2 ) ⋯ a 2 n ( 2 ) 0 0 a 33 ( 2 ) ⋯ a 3 n ( 2 ) ⋮ ⋮ ⋮ ⋮ 0 0 a n 3 ( 2 ) ⋯ a n n ( 2 ) ) \begin{aligned} A^{(2)}&=R_{2n}R_{2,n-1}\cdots R_{23}A^{(1)}\\ &= \begin{pmatrix} a_{11}^{(1)}&a_{12}^{(1)}&a_{13}^{(1)}&\cdots&a_{1n}^{(1)}\\ 0&a_{22}^{(1)}&a_{23}^{(2)}&\cdots&a_{2n}^{(2)}\\ 0&0&a_{33}^{(2)}&\cdots&a_{3n}^{(2)}\\ \vdots&\vdots&\vdots&&\vdots\\ 0&0&a_{n3}^{(2)}&\cdots&a_{nn}^{(2)}\\ \end{pmatrix} \end{aligned} A(2)=R2nR2,n1R23A(1)=a11(1)000a12(1)a22(1)00a13(1)a23(2)a33(2)an3(2)a1n(1)a2n(2)a3n(2)ann(2)
且第一行元素不变, a 22 ( 2 ) > 0 a_{22}^{(2)}>0 a22(2)>0
继续进行下去
A ( n − 1 ) = R n − 1 , n ⋯ R 12 A = ( a 11 ( 1 ) a 12 ( 1 ) ⋯ a 1 n ( 1 ) 0 a 22 ( 2 ) ⋯ a 2 n ( 2 ) ⋮ ⋮ ⋱ ⋮ 0 0 ⋯ a n n ( n − 1 ) ) \begin{aligned} A^{(n-1)}&=R_{n-1,n}\cdots R_{12}A\\ &= \begin{pmatrix} a_{11}^{(1)}&a_{12}^{(1)}&\cdots&a_{1n}^{(1)}\\ 0&a_{22}^{(2)}&\cdots&a_{2n}^{(2)}\\ \vdots&\vdots&\ddots&\vdots\\ 0&0&\cdots&a_{nn}^{(n-1)}\\ \end{pmatrix} \end{aligned} A(n1)=Rn1,nR12A=a11(1)00a12(1)a22(2)0a1n(1)a2n(2)ann(n1)
其中除了最后一个 a n n ( n − 1 ) a_{nn}^{(n-1)} ann(n1)外,所有的对角线元素都是正的,显然 a n n ( n − 1 ) a_{nn}^{(n-1)} ann(n1)的符号与 A A A的行列式的符号一致

求法

由上面的定理,我们可以看出,利用初等旋转矩阵讲 A A A化为上三角矩阵的过程实际上存在 A A A的一个 Q R QR QR分解
R = A ( n − 1 ) R=A^{(n-1)} R=A(n1)
Q = ( R n − 1 ⋯ R 12 ) − 1 = ( R n − 1 ⋯ R 12 ) T Q=(R_{n-1}\cdots R_{12})^{-1}=(R_{n-1}\cdots R_{12})^T Q=(Rn1R12)1=(Rn1R12)T
每个 R i j R_{ij} Rij都是正交矩阵,所以他们的乘积的逆矩阵 Q Q Q也是正交矩阵,从而
A = Q R A=QR A=QR

显然吉文斯方法需要 n ( n − 1 ) 2 \frac{n(n-1)}{2} 2n(n1)个初等矩阵连乘,当 n n n比较大的时候,工作量比较大,适合稀疏矩阵

豪斯霍尔德(Housholder)方法

定理

任何实的 n n n阶矩阵 A A A可用初等反射矩阵 H = I − 2 ω ω T H=I-2\omega \omega^T H=I2ωωT化为上三角矩阵

证明:
A = ( α 1 ( 1 ) , α 2 ( 1 ) , ⋯   , α n ( 1 ) A=(\alpha_1^{(1)},\alpha_2^{(1)},\cdots,\alpha_n^{(1)} A=(α1(1),α2(1),,αn(1)
其中 α i ( 1 ) \alpha_i^{(1)} αi(1) A A A的第 i i i个列向量,因为 α 1 ( 1 ) ≠ 0 \alpha_1^{(1)}\neq 0 α1(1)=0

根据
ω = ξ − ∣ ξ ∣ ζ ∣ ξ − ∣ ξ ∣ ζ ∣ \omega=\frac{\xi-\left|\xi\right|\zeta}{\left|\xi-\left|\xi\right|\zeta\right|} ω=ξξζξξζ
构造一个单位向量 ω ( 1 ) \omega^{(1)} ω(1),使得 α 1 ( 1 ) \alpha_{1}^{(1)} α1(1)与单位向量 e 1 = ( 1 , 0 , ⋯   , 0 ) T e_1=(1,0,\cdots,0)^T e1=(1,0,,0)T同向.从而必然存在初等反射矩阵 H ( 1 ) H^{(1)} H(1),使得
H ( 1 ) A = ( ∣ a 11 ( 1 ) ∣ ∗ 0 A n − 1 ) H^{(1)}A= \begin{pmatrix} \left|a_{11}^{(1)}\right|& *\\ 0&A_{n-1}\\ \end{pmatrix} H(1)A=(a11(1)0An1)
然后对矩阵 A n − 1 A_{n-1} An1再用 n − 1 n-1 n1阶的初等反射矩阵 H ^ ( 2 ) \hat{H}^{(2)} H^(2),使得
H ^ ( 2 ) A n − 1 = ( ∣ a 22 ( 2 ) ∣ ∗ 0 A n − 2 ) \hat{H}^{(2)}A_{n-1}=\begin{pmatrix} \left|a_{22}^{(2)}\right|& *\\ 0&A_{n-2}\\ \end{pmatrix} H^(2)An1=(a22(2)0An2)
因此有
H ( 2 ) = ( 1 0 T 0 H ^ ( 2 ) ) H^{(2)}=\begin{pmatrix} 1&0^T\\ 0&\hat{H}^{(2)}\\ \end{pmatrix} H(2)=(100TH^(2))
使得
H ( 2 ) H ( 1 ) A = ( ∣ a 11 ( 1 ) ∣ ∗ 0 ∣ a 22 ( 2 ) ∣ ∗ 0 0 ⋮ ⋮ A n − 2 0 0 ) H^{(2)}H^{(1)}A= \begin{pmatrix} \left|a_{11}^{(1)}\right|&&*\\ 0&\left|a_{22}^{(2)}\right|&*\\ 0&0&\\ \vdots&\vdots&A_{n-2}\\ 0&0&\\ \end{pmatrix} H(2)H(1)A=a11(1)000a22(2)00An2
下面我们证明 H ( 2 ) H^{(2)} H(2)是初等反射矩阵
H ^ ( 2 ) = I n − 1 − 2 ω ^ ω ^ T \hat{H}^{(2)}=I_{n-1}-2\hat{\omega}\hat{\omega}^T H^(2)=In12ω^ω^T,其中 ω ^ \hat{\omega} ω^ n − 1 n-1 n1维的单位向量

ω = ( 0 ω ^ ) \omega=\begin{pmatrix} 0\\ \hat{\omega} \end{pmatrix} ω=(0ω^)
显然 ω \omega ω n n n维的单位向量
H ( 2 ) = I − 2 ω ω T H^{(2)}=I-2\omega \omega^T H(2)=I2ωωT
因此 H ( 2 ) H^{(2)} H(2)也是初等反射矩阵

继续进行下去,便能化为上三角矩阵
H ( n − 1 ) ⋯ H ( 1 ) A = A ( n ) H^{(n-1)}\cdots H^{(1)}A=A^{(n)} H(n1)H(1)A=A(n)
因为 A n − 1 , ⋯   , A 2 A_{n-1},\cdots,A_2 An1,,A2的第1列均不为零向量(否则与非奇异矛盾),所以这个过程可以执行到底

求法

由上述定理
A = ( H ( n − 1 ) ⋯ H ( 1 ) ) − 1 A ( n ) A=(H^{(n-1)}\cdots H^{(1)})^{-1}A^{(n)} A=(H(n1)H(1))1A(n),令
R = A ( n ) R=A^{(n)} R=A(n)
Q = ( H ( n − 1 ) ⋯ H ( 1 ) ) − 1 = ( H ( n − 1 ) ⋯ H ( 1 ) ) T Q=(H^{(n-1)}\cdots H^{(1)})^{-1}=(H^{(n-1)}\cdots H^{(1)})^T Q=(H(n1)H(1))1=(H(n1)H(1))T
因为 H ( i ) ( i = 1 , 2 , ⋯   , n − 1 ) H^{(i)}(i=1,2,\cdots,n-1) H(i)(i=1,2,,n1)是正交矩阵,所以他们的乘积的逆矩阵 Q Q Q也是正交矩阵,于是
A = Q R A=QR A=QR

可以看出,豪斯霍尔德方法只要左乘 n − 1 n-1 n1个初等矩阵,计算量大约是吉文斯方法的一半

吉文斯方法和豪斯霍尔德方法都可以推广到复矩阵
证明:(不会)