之前介绍的矩阵的三角分解系列介绍了利用矩阵初等变换解决了矩阵三角化问题以及具体的三角分解。但是以初等变换工具的三角分解方法并不能消除病态线性方程组不稳定问题,而且有时候对于可逆矩阵有可能也不存在三角分解。所以后面为了解决这里问题,发展出来了以正交(酉)变换的矩阵的QR(正交三角)分解,矩阵的正交三角分解是一种对任何可逆矩阵均存在理想分解。进行QR分解需要用到施密特(Schmidt)正交规范化,吉文斯(Givens)变换和豪斯霍尔德(Householder)变换等。这里矩阵的QR分解系列教程主要是针对在学习QR分解时候的涉及到的一些细节,包括很多方法的来源和证明等,以及其中用到的一些矩阵操作的基础知识,主要包括:
这个系列后面文章会用到前面文章的理论和技术,所以建议按照顺序查看。
初等旋转变换或者说是吉文斯(Givens)变换是一种正交变换,经过多次吉文斯(Givens)变换可以把矩阵转换成上三角形式,是一种常用的 Q R \boldsymbol{Q R} QR分解方式。
在平面 R 2 \boldsymbol{R^2} R2中旋转变换对应的矩阵为
A = [ c o s θ s i n θ − s i n θ c o s θ ] . \boldsymbol{A} = \left[\begin{matrix} cos \theta & sin \theta \\ -sin \theta & cos \theta \end{matrix}\right]. A=[cosθ−sinθsinθcosθ].
一般在 n n n维欧式空间 V \boldsymbol{V} V中取一组标准正交基 e 1 , e 2 , ⋯ , e n e_1,e_2,\cdots,e_n e1,e2,⋯,en,沿平面 [ e i , e j ] [e_i,e_j] [ei,ej]旋转,它的旋转矩阵为
R i j = [ 1 ⋱ 1 c o s θ 0 ⋯ 0 s i n θ 0 1 ⋯ 0 0 ⋮ ⋮ ⋮ ⋮ 0 0 ⋯ 1 0 − s i n θ 0 ⋯ 0 c o s θ 1 ⋱ 1 ] . \boldsymbol{R}_{i j} = \left[\begin{matrix} 1 \\ & \ddots \\ & & 1 \\ & & & cos \theta & 0 & \cdots & 0 & sin \theta \\ & & & 0 & 1 & \cdots & 0 & 0 \\ & & & \vdots & \vdots & & \vdots & \vdots \\ & & & 0 & 0 & \cdots & 1 & 0 \\ & & & -sin \theta & 0 & \cdots & 0 & cos \theta \\ & & & & & & & & 1 \\ & & & & & & & & & \ddots \\ & & & & & & & & & & 1 \end{matrix}\right]. Rij=⎣⎢⎢⎢⎢⎢⎢⎢⎢⎢⎢⎢⎢⎢⎢⎢⎢⎢⎡1⋱1cosθ0⋮0−sinθ01⋮00⋯⋯⋯⋯00⋮10sinθ0⋮0cosθ1⋱1⎦⎥⎥⎥⎥⎥⎥⎥⎥⎥⎥⎥⎥⎥⎥⎥⎥⎥⎤.
这里矩阵 R i j \boldsymbol{R}_{i j} Rij里面元素满足: r i i = c o s θ , r i j = s i n θ , r j i = − s i n θ , r j j = c o s θ ( i < j ) , r p p = 1 ( p ≠ i , j ) r_{i i} = cos \theta,r_{i j} = sin \theta,r_{j i} = -sin \theta,r_{jj}=cos \theta (i < j),r_{p p} = 1(p \neq i,j) rii=cosθ,rij=sinθ,rji=−sinθ,rjj=cosθ(i<j),rpp=1(p=i,j),除此之外其余元素 r p q = 0 r_{pq} = 0 rpq=0。可以看成是 n n n阶单位矩阵 I \boldsymbol{I} I修改而成:将 I \boldsymbol{I} I位于 ( i , i ) , ( i , j ) , ( j , i ) , ( j , j ) (i,i),(i,j),(j,i),(j,j) (i,i),(i,j),(j,i),(j,j)上的元素分别替换成 c o s θ , s i n θ , − s i n θ , c o s θ cos \theta,sin \theta, -sin \theta, cos \theta cosθ,sinθ,−sinθ,cosθ,其余元素保持不变。式中的 θ \theta θ通常称为旋转角,而 c o s θ , s i n θ cos \theta, sin \theta cosθ,sinθ常分别记为 c , s c,s c,s,所以满足 c 2 + s 2 = 1 c^2 + s^2 = 1 c2+s2=1,所以矩阵 R i j \boldsymbol{R}_{i j} Rij可以简记为
R i j = [ 1 ⋱ 1 c 0 ⋯ 0 s 0 1 ⋯ 0 0 ⋮ ⋮ ⋮ ⋮ 0 0 ⋯ 1 0 − s 0 ⋯ 0 c 1 ⋱ 1 ] . (1) \boldsymbol{R}_{i j} = \left[\begin{matrix} 1 \\ & \ddots \\ & & 1 \\ & & & c & 0 & \cdots & 0 & s \\ & & & 0 & 1 & \cdots & 0 & 0 \\ & & & \vdots & \vdots & & \vdots & \vdots \\ & & & 0 & 0 & \cdots & 1 & 0 \\ & & & -s & 0 & \cdots & 0 & c \\ & & & & & & & & 1 \\ & & & & & & & & & \ddots \\ & & & & & & & & & & 1 \end{matrix}\right]. \tag{1} Rij=⎣⎢⎢⎢⎢⎢⎢⎢⎢⎢⎢⎢⎢⎢⎢⎢⎢⎢⎡1⋱1c0⋮0−s01⋮00⋯⋯⋯⋯00⋮10s0⋮0c1⋱1⎦⎥⎥⎥⎥⎥⎥⎥⎥⎥⎥⎥⎥⎥⎥⎥⎥⎥⎤.(1)
上面的 R i j \boldsymbol{R}_{i j} Rij一般叫做初等旋转矩阵,它所确定的线性变换叫做初等旋转变换,也可以叫做吉文斯(Givens)变换。
而且它具有以下性质:
正交变换 x , y \mathbf{x},\mathbf{y} x,y为 n n n维欧式空间 V \boldsymbol{V} V上的任意两个向量,如果 f f f是 V \boldsymbol{V} V的一个线性变换,且满足
( f ( x ) , f ( y ) ) = ( x , y ) (f(\mathbf{x}),f(\mathbf{y})) = (\mathbf{x},\mathbf{y}) (f(x),f(y))=(x,y)
那么 f f f就是 V \boldsymbol{V} V上的正交变换。(其中 ( x , y ) (\mathbf{x},\mathbf{y}) (x,y)表示内积操作)
证明
初等旋转变换证明完成!!!
初等旋转变换在简化矩阵方面很有用。
对于非零 n n n维列向量 x \mathbf{x} x,如果以 R i j \boldsymbol{R}_{i j} Rij左乘,即令 y = R i j x \mathbf{y} = \boldsymbol{R}_{i j}\mathbf{x} y=Rijx,如果要把 x \mathbf{x} x的第 j j j个分量简化为零,根据上面公式 ( 2 ) (2) (2)可知需要令
s = x j x i 2 + x j 2 , c = x i x i 2 + x j 2 s=\frac{x_{j}}{\sqrt{x_{i}^{2}+x_{j}^{2}}}, \quad c=\frac{x_{i}}{\sqrt{x_{i}^{2}+x_{j}^{2}}} s=xi2+xj2xj,c=xi2+xj2xi
其中 x i , x j x_i,x_j xi,xj不能同时为零。左乘 R i j \boldsymbol{R}_{i j} Rij可得
y i = x i 2 + x j 2 > 0 y j = 0 \begin{aligned} y_i &= \sqrt{x_{i}^{2}+x_{j}^{2}} > 0 \\ y_j &= 0 \end{aligned} yiyj=xi2+xj2>0=0
同理,对于非零 n n n维行向量 x \mathbf{x} x,如果以 R i j \boldsymbol{R}_{i j} Rij右乘,即令 y = R i j x \mathbf{y} = \boldsymbol{R}_{i j}\mathbf{x} y=Rijx,此时公式 ( 2 ) (2) (2)变为
{ y i = c x i − s x j y j = s x i + c x j y k = x k , k ≠ i , j , (3) \begin{cases} y_i = cx_i - sx_j \\ y_j = sx_i + cx_j \\ y_k = x_k, \quad k \neq i,j \end{cases}, \tag{3} ⎩⎪⎨⎪⎧yi=cxi−sxjyj=sxi+cxjyk=xk,k=i,j,(3)
如果要把 x \mathbf{x} x的第 j j j个分量简化为零,根据上面公式 ( 3 ) (3) (3)可知需要令
s = − x j x i 2 + x j 2 , c = x i x i 2 + x j 2 s=\frac{-x_{j}}{\sqrt{x_{i}^{2}+x_{j}^{2}}}, \quad c=\frac{x_{i}}{\sqrt{x_{i}^{2}+x_{j}^{2}}} s=xi2+xj2−xj,c=xi2+xj2xi
其中 x i , x j x_i,x_j xi,xj不能同时为零。右乘 R i j \boldsymbol{R}_{i j} Rij可得
y i = x i 2 + x j 2 > 0 y j = 0 \begin{aligned} y_i &= \sqrt{x_{i}^{2}+x_{j}^{2}} > 0 \\ y_j &= 0 \end{aligned} yiyj=xi2+xj2>0=0
根据以上的这一性质,进而可以推出:
对非零 n n n维列(行)向量 x \mathbf{x} x连续左(右)乘以 R r , r + 1 , R r , r + 2 , ⋯ , R r n \boldsymbol{R}_{r,r+1},\boldsymbol{R}_{r,r+2},\cdots,\boldsymbol{R}_{rn} Rr,r+1,Rr,r+2,⋯,Rrn,可使 x \mathbf{x} x的第 r r r个分量变为一新的正数,而第 r + 1 r+1 r+1个到第 n n n个分量全部化为0,即分别有
y = R r n ⋯ R r , r + 2 R r , r + 1 x = [ x 1 ⋮ x r − 1 y r 0 ⋮ 0 ] , (4) \mathbf{y} = \boldsymbol{R}_{rn}\cdots\boldsymbol{R}_{r,r+2}\boldsymbol{R}_{r,r+1} \mathbf{x} = \left[\begin{matrix} x_1 \\ \vdots \\ x_{r-1} \\ y_r \\ 0 \\ \vdots \\ 0 \end{matrix}\right], \tag{4} y=Rrn⋯Rr,r+2Rr,r+1x=⎣⎢⎢⎢⎢⎢⎢⎢⎢⎢⎢⎡x1⋮xr−1yr0⋮0⎦⎥⎥⎥⎥⎥⎥⎥⎥⎥⎥⎤,(4)
或
y = x R r , r + 1 R r , r + 2 ⋯ R r n = ( x 1 , ⋯ , x r − 1 , y r , 0 , ⋯ , 0 ) , (5) \mathbf{y} = \mathbf{x}\boldsymbol{R}_{r,r+1}\boldsymbol{R}_{r,r+2}\cdots\boldsymbol{R}_{rn} = (x_1, \cdots,x_{r-1},y_r,0,\cdots,0), \tag{5} y=xRr,r+1Rr,r+2⋯Rrn=(x1,⋯,xr−1,yr,0,⋯,0),(5)
其中 y r = x r 2 + ⋯ + x n 2 > 0 y_r=\sqrt{x_r^2+\cdots+x_n^2} > 0 yr=xr2+⋯+xn2>0,而 R r , r + 1 , R r , r + 2 , ⋯ , R r n \boldsymbol{R}_{r,r+1},\boldsymbol{R}_{r,r+2},\cdots,\boldsymbol{R}_{rn} Rr,r+1,Rr,r+2,⋯,Rrn中的 c , s c,s c,s按照上面公式 ( 2 ) (2) (2)和公式 ( 3 ) (3) (3)求得。
已知 x = ( 1 , 2 , 3 ) T \mathbf{x} =(1,2,3)^{\mathrm{T}} x=(1,2,3)T,用初等旋转变换转换 x \mathbf{x} x使 x \mathbf{x} x与 e 1 = ( 1 , 0 , 0 ) T e_1=(1,0,0)^{\mathrm{T}} e1=(1,0,0)T同方向。
解:
利用公式 ( 2 ) (2) (2)可知
s = s i n θ = x 2 x 1 2 + x 2 2 = 2 5 c = c o s θ = x 1 x 1 2 + x 2 2 = 1 5 s = sin \theta = \frac{x_{2}}{\sqrt{x_{1}^{2}+x_{2}^{2}}} = \frac{2}{\sqrt{5}} \\ c = cos \theta = \frac{x_{1}}{\sqrt{x_{1}^{2}+x_{2}^{2}}} = \frac{1}{\sqrt{5}} s=sinθ=x12+x22x2=52c=cosθ=x12+x22x1=51
所以初等旋转变换矩阵为
R 12 = [ 1 5 2 5 0 − 2 5 1 5 0 0 0 1 ] . \boldsymbol{R}_{1 2} = \left[\begin{matrix} \frac{1}{\sqrt{5}} & \frac{2}{\sqrt{5}} & 0 \\ -\frac{2}{\sqrt{5}} & \frac{1}{\sqrt{5}} & 0 \\ 0 & 0 & 1 \end{matrix}\right]. R12=⎣⎡51−52052510001⎦⎤.
所以可得
y ′ = R 12 x = ( 5 , 0 , 3 ) T \mathbf{y}^{\prime} = \boldsymbol{R}_{1 2}\mathbf{x} = (\sqrt{5},0,3)^{\mathrm{T}} y′=R12x=(5,0,3)T
再次利用公式 ( 2 ) (2) (2)可知
s = s i n θ = x 3 y 1 ′ 2 + x 3 2 = 3 14 c = c o s θ = y 1 ′ 2 y 1 ′ 2 + x 3 2 = 5 14 s = sin \theta = \frac{x_{3}}{\sqrt{y_1^{\prime 2}+x_{3}^{2}}} = \frac{3}{\sqrt{14}} \\ c = cos \theta = \frac{y_1^{\prime 2}}{\sqrt{y_1^{\prime 2}+x_{3}^{2}}} = \sqrt{\frac{5}{14}} s=sinθ=y1′2+x32x3=143c=cosθ=y1′2+x32y1′2=145
所以初等旋转变换矩阵为
R 13 = [ 5 14 0 3 14 0 1 0 − 3 14 0 5 14 ] . \boldsymbol{R}_{1 3} = \left[\begin{matrix} \sqrt{\frac{5}{14}} & 0 & \frac{3}{\sqrt{14}} \\ 0 & 1 & 0 \\ -\frac{3}{\sqrt{14}} & 0 & \sqrt{\frac{5}{14}} \end{matrix}\right]. R13=⎣⎢⎢⎡1450−1430101430145⎦⎥⎥⎤.
由公式 ( 4 ) (4) (4)有
y = R 13 R 12 x = R 13 y ′ = [ 5 14 0 3 14 0 1 0 − 3 14 0 5 14 ] = [ 5 0 3 ] = ( 14 , 0 , 0 ) T = 14 e 1 . \mathbf{y} = \boldsymbol{R}_{13}\boldsymbol{R}_{12}\mathbf{x} = \boldsymbol{R}_{13}\mathbf{y}^{\prime} = \left[\begin{matrix} \sqrt{\frac{5}{14}} & 0 & \frac{3}{\sqrt{14}} \\ 0 & 1 & 0 \\ -\frac{3}{\sqrt{14}} & 0 & \sqrt{\frac{5}{14}} \end{matrix}\right] = \left[\begin{matrix} \sqrt{5} \\ 0 \\ 3 \end{matrix}\right] = (\sqrt{14},0,0)^{\mathrm{T}} = \sqrt{14}e_1. y=R13R12x=R13y′=⎣⎢⎢⎡1450−1430101430145⎦⎥⎥⎤=⎣⎡503⎦⎤=(14,0,0)T=14e1.
【1】 矩阵论(第二版)