[矩阵的QR分解系列一] 施密特(Schmidt)正交规范化

施密特正交规范化

之前介绍的矩阵的三角分解系列介绍了利用矩阵初等变换解决了矩阵三角化问题以及具体的三角分解。但是以初等变换工具的三角分解方法并不能消除病态线性方程组不稳定问题,而且有时候对于可逆矩阵有可能也不存在三角分解。所以后面为了解决这里问题,发展出来了以正交(酉)变换的矩阵的QR(正交三角)分解,矩阵的正交三角分解是一种对任何可逆矩阵均存在理想分解。进行QR分解需要用到施密特(Schmidt)正交规范化,吉文斯(Givens)变换和豪斯霍尔德(Householder)变换等。这里矩阵的QR分解系列教程主要是针对在学习QR分解时候的涉及到的一些细节,包括很多方法的来源和证明等,以及其中用到的一些矩阵操作的基础知识,主要包括:

这个系列后面文章会用到前面文章的理论和技术,所以建议按照顺序查看。

简介

在矩阵操作中,经常需要从一组线性无关的向量构造出一组同等个数等价的两两正交的向量,并且需要使每个向量的模等于1,也就是每个新向量都是单位向量,这种做法叫做线性无关向量组的正交规范化。本文主要介绍的施密特(Schmidt)正交化方法就是比较常用的正交规范化方法。
上面有几个概念解释一下:
线性无关
对于一组向量 x 1 , x 2 , . . . , x n ( n ≥ 1 ) \mathbf{x_1,x_2,...,x_n}(n\geq1) x1,x2,...,xn(n1)来说,只有 k 1 , k 2 , . . . , k n ( n ≥ 1 ) k_1,k_2,...,k_n(n\geq1) k1,k2,...,kn(n1)全为0时才满足
k 1 x 1 + k 2 x 2 + … + k n x n = 0 , k i ∈ R k_1\mathbf{x_1}+k_2\mathbf{x_2}+\ldots+k_n\mathbf{x_n}=\mathbf{0}, \qquad k_i \in R k1x1+k2x2+knxn=0,kiR
则称向量组 x 1 , x 2 , . . . , x n \mathbf{x_1,x_2,...,x_n} x1,x2,...,xn线性无关,否则就称其线性相关。
向量正交
在解析几何概念中,两个非零向量正交的充要条件是它们夹角的余弦值为零,也就是他们的内积(也就是常说的点积)为零。
x = ( x 1 , x 2 , … , x n ) , y = ( y 1 , y 2 , … , y n ) \mathbf{x}=(x_1,x_2,\dots,x_n),\mathbf{y}=(y_1,y_2,\dots,y_n) x=(x1,x2,,xn),y=(y1,y2,,yn)为欧式空间的两个向量,如果 ( x , y ) = 0 (\mathbf{x,y})=0 (x,y)=0,则 x \mathbf{x} x y \mathbf{y} y正交。其中
( x , y ) = x 1 y 2 + x 2 y 2 + ⋯ + x n y n (1) (\mathbf{x,y})=x_1y_2+x_2y_2+\dots+x_ny_n \tag{1} (x,y)=x1y2+x2y2++xnyn(1)
表示内积运算。
同时内积具有下面的性质:

  1. 对称性   ( x , y ) = ( y , x ) (\mathbf{x,y})=(\mathbf{y,x}) (x,y)=(y,x)
  2. 可加性   ( x + z , y ) = ( x , y ) + ( z , y ) (\mathbf{x+z,y})=(\mathbf{x,y})+(\mathbf{z,y}) (x+z,y)=(x,y)+(z,y)
  3. 齐次性   ( k z , y ) = k ( x , y ) (k\mathbf{z,y})=k(\mathbf{x,y}) (kz,y)=k(x,y) k k k为任何实数;
  4. 非负性   ( x , x ) ≥ 0 (\mathbf{x,x})\geq0 (x,x)0;当且仅当 x = 0 \mathbf{x}=0 x=0时, ( x , x ) = 0 (\mathbf{x,x})=0 (x,x)0

规范化步骤

假设 x 1 , x 2 , . . . , x n ( n ≥ 1 ) \mathbf{x_1,x_2,...,x_n}(n\geq1) x1,x2,...,xn(n1)为一组线性无关的向量, z 1 , z 2 , . . . , z n ( n ≥ 1 ) \mathbf{z_1,z_2,...,z_n}(n\geq1) z1,z2,...,zn(n1)为施密特正交规范后两两正交的一组,具体步骤为:

  1. y 1 = x 1 \mathbf{y_1=x_1} y1=x1当做正交向量组的第一个向量,为了满足正交的条件,后面的生成的向量都要和 y 1 \mathbf{y_1} y1正交,也就是满足 ( y i , y 1 ) = 0 ,   i = 2 , 3 , … , n (\mathbf{y_i,y_1})=0, \ i=2,3,\dots,n (yi,y1)=0, i=2,3,,n。更一般话来说后面生成的向量都需要保证和前面已经生成的向量正交,同时这也是一步步求解后面正交向量的约束和条件。
  2. y 2 = x 2 + k 21 y 1 \mathbf{y_2=x_2}+k_{21}\mathbf{y_1} y2=x2+k21y1,由正交条件 ( y 2 , y 1 ) = 0 (\mathbf{y_2,y_1})=0 (y2,y1)=0得到
    ( y 2 , y 1 ) = ( x 2 + k 21 y 1 , y 1 ) = ( x 2 , y 1 ) + k 21 ( y 1 , y 1 ) = 0 (\mathbf{y_2,y_1})=(\mathbf{x_2}+k_{21}\mathbf{y_1,y_1})=(\mathbf{x_2,y_1})+k_{21}(\mathbf{y_1,y_1})=0 (y2,y1)=(x2+k21y1,y1)=(x2,y1)+k21(y1,y1)=0
    所以
    k 21 = − ( x 2 , y 1 ) ( y 1 , y 1 ) k_{21}=-\frac{(\mathbf{x_2,y_1})}{(\mathbf{y_1,y_1})} k21=(y1,y1)(x2,y1)
  3. y 3 = x 3 + k 32 y 2 + k 31 y 1 \mathbf{y_3=x_3}+k_{32}\mathbf{y_2}+k_{31}\mathbf{y_1} y3=x3+k32y2+k31y1,由正交条件 ( y 3 , y 2 ) = 0 (\mathbf{y_3,y_2})=0 (y3,y2)=0 ( y 3 , y 1 ) = 0 (\mathbf{y_3,y_1})=0 (y3,y1)=0得到
    ( y 3 , y 2 ) = ( x 3 + k 32 y 2 + k 31 y 1 , y 2 ) = ( x 3 , y 2 ) + k 32 ( y 2 , y 2 ) + k 31 ( y 1 , y 2 ) = ( x 3 , y 2 ) + k 32 ( y 2 , y 2 ) = 0 \begin{aligned} (\mathbf{y_3,y_2}) & = (\mathbf{x_3}+k_{32}\mathbf{y_2}+k_{31}\mathbf{y_1,y_2}) \\ & = (\mathbf{x_3,y_2})+k_{32}(\mathbf{y_2,y_2})+k_{31}(\mathbf{y_1,y_2}) \\ & = (\mathbf{x_3,y_2})+k_{32}(\mathbf{y_2,y_2})=0 \end{aligned} (y3,y2)=(x3+k32y2+k31y1,y2)=(x3,y2)+k32(y2,y2)+k31(y1,y2)=(x3,y2)+k32(y2,y2)=0
    所以
    k 32 = − ( x 3 , y 2 ) ( y 2 , y 2 ) k_{32} = -\frac{(\mathbf{x_3,y_2})}{(\mathbf{y_2,y_2})} k32=(y2,y2)(x3,y2)
    同理
    k 31 = − ( x 3 , y 1 ) ( y 1 , y 1 ) k_{31} = -\frac{(\mathbf{x_3,y_1})}{(\mathbf{y_1,y_1})} k31=(y1,y1)(x3,y1)
  4. 按照上面的流程一直向下求 y i \mathbf{y_i} yi,一般公式为
    { y i = x i + k i , i − 1 y i − 1 + k i , i − 2 y i − 2 + ⋯ + k i , 1 y 1 , k i , k = − ( x i , y k ) ( y k , y k ) (2) \begin{cases} \mathbf{y_i=x_i}+k_{i,i-1}\mathbf{y_{i-1}}+k_{i,i-2}\mathbf{y_{i-2}}+\dots+k_{i,1}\mathbf{y_1}, \\ k_{i,k}= -\frac{(\mathbf{x_i,y_k})}{(\mathbf{y_k,y_k})} \end{cases} \tag{2} {yi=xi+ki,i1yi1+ki,i2yi2++ki,1y1,ki,k=(yk,yk)(xi,yk)(2)
    直到 i = n i=n i=n,所以就得到了一组向量 y 1 , y 2 , . . . , y n \mathbf{y_1,y_2,...,y_n} y1,y2,...,yn,里面的向量显然是两两正交的。
  5. 上面得到一组两两正交的向量 y 1 , y 2 , . . . , y n \mathbf{y_1,y_2,...,y_n} y1,y2,...,yn后,进行单位化,也就是
    z i = y i ∣ y i ∣ , i = 1 , 2 , … , n . \mathbf{z_i} = \frac{\mathbf{y_i}}{|\mathbf{y_i}|},\qquad i=1,2,\dots,n. zi=yiyi,i=1,2,,n.
    这样就得到了正交规范化的向量组了。

例子

利用施密特正交化方法把下面线性无关的向量组转化为正交规范化向量组。
{ x 1 = ( 1 , 1 , 0 , 0 ) , x 2 = ( 1 , 0 , 1 , 0 ) , x 3 = ( − 1 , 0 , 0 , 1 ) , x 4 = ( 1 , − 1 , − 1 , 1 ) . \begin{cases} \mathbf{x_1} = (1,1,0,0), \\ \mathbf{x_2} = (1,0,1,0), \\ \mathbf{x_3} = (-1,0,0,1), \\ \mathbf{x_4} = (1,-1,-1,1). \end{cases} x1=(1,1,0,0),x2=(1,0,1,0),x3=(1,0,0,1),x4=(1,1,1,1).
利用公式 ( 2 ) (2) (2)可得
{ y 1 = x 1 = ( 1 , 1 , 0 , 0 ) , y 2 = x 2 − ( x 2 , y 1 ) ( y 1 , y 1 ) y 1 = ( 1 2 , − 1 2 , 1 , 0 ) , x 3 = x 3 − ( x 3 , y 2 ) ( y 2 , y 2 ) y 2 − ( x 3 , y 1 ) ( y 1 , y 1 ) y 1 = ( − 1 3 , 1 3 , 1 3 , 1 ) , x 4 = x 4 − ( x 4 , y 3 ) ( y 3 , y 3 ) y 3 − ( x 4 , y 2 ) ( y 2 , y 2 ) y 2 − ( x 4 , y 1 ) ( y 1 , y 1 ) y 1 = ( 1 , − 1 , − 1 , 1 ) . \begin{cases} \mathbf{y_1} = \mathbf{x_1} = (1,1,0,0), \\ \mathbf{y_2} = \mathbf{x_2} - \frac{(\mathbf{x_2,y_1})}{(\mathbf{y_1,y_1})}\mathbf{y_1} = (\frac{1}{2},-\frac{1}{2},1,0), \\ \mathbf{x_3} = \mathbf{x_3} - \frac{(\mathbf{x_3,y_2})}{(\mathbf{y_2,y_2})}\mathbf{y_2} - \frac{(\mathbf{x_3,y_1})}{(\mathbf{y_1,y_1})}\mathbf{y_1} = (-\frac{1}{3},\frac{1}{3},\frac{1}{3},1), \\ \mathbf{x_4} = \mathbf{x_4} - \frac{(\mathbf{x_4,y_3})}{(\mathbf{y_3,y_3})}\mathbf{y_3} - \frac{(\mathbf{x_4,y_2})}{(\mathbf{y_2,y_2})}\mathbf{y_2} - \frac{(\mathbf{x_4,y_1})}{(\mathbf{y_1,y_1})}\mathbf{y_1} = (1,-1,-1,1). \end{cases} y1=x1=(1,1,0,0),y2=x2(y1,y1)(x2,y1)y1=(21,21,1,0),x3=x3(y2,y2)(x3,y2)y2(y1,y1)(x3,y1)y1=(31,31,31,1),x4=x4(y3,y3)(x4,y3)y3(y2,y2)(x4,y2)y2(y1,y1)(x4,y1)y1=(1,1,1,1).
单位化得到
{ z 1 = y 1 ∣ y 1 ∣ = ( 1 2 , 1 2 , 0 , 0 ) , z 2 = y 2 ∣ y 2 ∣ = ( 1 6 , − 1 6 , 2 6 , 0 ) , z 3 = y 3 ∣ y 3 ∣ = ( − 1 12 , 1 12 , 1 12 , 3 12 ) , z 4 = y 4 ∣ y 4 ∣ = ( 1 2 , − 1 2 , − 1 2 , 1 2 ) \begin{cases} \mathbf{z_1} = \frac{\mathbf{y_1}}{|\mathbf{y_1}|} = (\frac{1}{\sqrt{2}},\frac{1}{\sqrt{2}},0,0), \\ \mathbf{z_2} = \frac{\mathbf{y_2}}{|\mathbf{y_2}|} = (\frac{1}{\sqrt{6}},-\frac{1}{\sqrt{6}},\frac{2}{\sqrt{6}},0), \\ \mathbf{z_3} = \frac{\mathbf{y_3}}{|\mathbf{y_3}|} = (-\frac{1}{\sqrt{12}},\frac{1}{\sqrt{12}},\frac{1}{\sqrt{12}},\frac{3}{\sqrt{12}}), \\ \mathbf{z_4} = \frac{\mathbf{y_4}}{|\mathbf{y_4}|} = (\frac{1}{2},-\frac{1}{2},-\frac{1}{2},\frac{1}{2}) \end{cases} z1=y1y1=(2 1,2 1,0,0),z2=y2y2=(6 1,6 1,6 2,0),z3=y3y3=(12 1,12 1,12 1,12 3),z4=y4y4=(21,21,21,21)

引用

【1】 矩阵论(第二版)

  • 26
    点赞
  • 61
    收藏
    觉得还不错? 一键收藏
  • 3
    评论
QR分解是一种将一个矩阵分解为一个矩阵和一个上三角矩阵的方法。其中,矩阵Q的列向量是互相的,而且模长为1,上三角矩阵R是一个非奇异的三角矩阵施密化变换是一种将线性无关向量组变为向量组的方法。对于一个n维向量空间中的线性无关向量组$a_1,a_2,...,a_n$,我们可以通过以下方式得到一个向量组$q_1,q_2,...,q_n$: 1. $q_1=\frac{a_1}{\left\|a_1\right\|}$ 2. $q_2=\frac{a_2-(a_2 \cdot q_1)q_1}{\left\|a_2-(a_2 \cdot q_1)q_1\right\|}$ 3. $q_3=\frac{a_3-(a_3 \cdot q_1)q_1-(a_3 \cdot q_2)q_2}{\left\|a_3-(a_3 \cdot q_1)q_1-(a_3 \cdot q_2)q_2\right\|}$ ... $n. q_n=\frac{a_n-(a_n \cdot q_1)q_1-(a_n \cdot q_2)q_2-...-(a_n \cdot q_{n-1})q_{n-1}}{\left\|a_n-(a_n \cdot q_1)q_1-(a_n \cdot q_2)q_2-...-(a_n \cdot q_{n-1})q_{n-1}\right\|}$ 将上述得到的向量组$q_1,q_2,...,q_n$组成一个矩阵Q,即$Q=[q_1,q_2,...,q_n]$。那么,对于任意一个m行n列的矩阵A,我们可以通过QR分解得到$A=QR$,其中Q是一个m行n列的矩阵,R是一个n行n列的上三角矩阵。 具体来说,我们可以通过施密化变换将矩阵A的列向量变为一个向量组$q_1,q_2,...,q_n$,并将其组成一个矩阵Q。然后,我们可以将$A$表示为$A=Q \cdot R$的形式,其中$R$是一个n行n列的上三角矩阵。这个过程可以通过Gram-Schmidt算法实现。 需要注意的是,当矩阵A不满秩时,QR分解可能存在多种形式。在实际应用中,我们可以采用不同的QR分解算法来处理不同类型的矩阵,并选择最适合问题的QR分解形式。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值