对于一个正交基,每个向量和其他所有向量垂直,坐标轴就是互相正交的。我们还可以进一步改善:每个向量除以它的长度得到单位向量,这样的话正交基变成了标准正交基:

16、如果

qTiqj={01i≠j,给出正交性i=j,给出归一性

q_i^Tq_j= \begin{cases} 0&i\neq j,\text{给出正交性}\\ 1&i=j,\text{给出归一性} \end{cases}

那么q1,…,qnq_1,\ldots,q_n就是是标准正交基,由标准正交列组成的矩阵叫做QQ。

最重要的例子是标准基,对于x−yx-y平面,最熟悉的e1=(1,0),e2=(0,1)e_1=(1,0),e_2=(0,1)水平和竖直方向都是垂直的,QQ是2×22\times 2的单位矩阵。在nn为空间里标准基e1,…,ene_1,\ldots,e_n由Q=IQ=I的列组成:

e1=⎡⎣⎢⎢⎢⎢⎢⎢⎢100⋮0⎤⎦⎥⎥⎥⎥⎥⎥⎥,e2=⎡⎣⎢⎢⎢⎢⎢⎢⎢010⋮0⎤⎦⎥⎥⎥⎥⎥⎥⎥,⋯,en=⎡⎣⎢⎢⎢⎢⎢⎢⎢000⋮1⎤⎦⎥⎥⎥⎥⎥⎥⎥.

e_1=\begin{bmatrix} 1\\0\\0\\\vdots\\0 \end{bmatrix}, e_2=\begin{bmatrix} 0\\1\\0\\\vdots\\0 \end{bmatrix} ,\cdots, e_n=\begin{bmatrix} 0\\0\\0\\\vdots\\1 \end{bmatrix}.

这不是唯一的正交基!我们在不改变直角的情况下悬着这些轴,依然是正交基,旋转得到的矩阵我们用QQ来表示。

如果我们有一个RnR^n的子空间,标准向量eie_i可能不在这个子空间,但是子空间肯定有一个正交基,我们可以通过一种简单的方法来构造出来,本质上就是将这些倾斜的轴变成正交的,这就是所谓的格拉姆-施密特正交化(Gram-Schmidt othogonalization)。

接下来,说一些本篇文章的是三个主题:

  1. 正交矩阵QQ的定义和性质。
  2. Qx=bQx=b的解,其中QQ可以是n×nn\times n方阵,也可以是长方形矩阵(最小二乘)。
  3. 格拉姆-施密特方法的具体步骤以及新的矩阵分解A=QRA=QR。

正交矩阵

17、如果QQ(正方行或长方形)的列是正交的,那么QTQ=IQ^TQ=I:

⎡⎣⎢⎢⎢⎢⎢−−−qT1qT2⋮qTn−−−⎤⎦⎥⎥⎥⎥⎥⎡⎣⎢|q1||q2|⋯|qn|⎤⎦⎥=⎡⎣⎢⎢⎢10⋅001⋅0⋅⋅⋅⋅00⋅1⎤⎦⎥⎥⎥(1)

\begin{equation} \begin{bmatrix} -&q_1^T&-\\ -&q_2^T&-\\ &\vdots&\\ -&q_n^T&- \end{bmatrix} \begin{bmatrix} |&|&&|\\ q_1&q_2&\cdots&q_n\\ |&|&&| \end{bmatrix} =\begin{bmatrix} 1&0&\cdot&0\\ 0&1&\cdot&0\\ \cdot&\cdot&\cdot&\cdot\\ 0&0&\cdot&1 \end{bmatrix}\tag1 \end{equation}

正交矩阵就是列是单位正交的方阵,它的转置等于它的逆,即QT=Q−1Q^T=Q^{-1}。

当QTQ^T的ii行乘以QQ的jj列时,结果为零qTiqj=0q_i^Tq_j=0,而对角线上i=ji=j,得到qTiqi=1q_i^Tq_i=1,也就是长度为1的单位矩阵归一化。

注意即便QQ是长方形矩阵,QTQ=IQ^TQ=I依然成立,但是QTQ^T仅仅是左逆。

例1:

Q=[cosθsinθ−sinθcosθ],QT=Q−1=[cosθ−sinθsinθcosθ]

Q=\begin{bmatrix} \cos\theta&-\sin\theta\\ \sin\theta&\cos\theta \end{bmatrix},\quad Q^T=Q^{-1}= \begin{bmatrix} \cos\theta&\sin\theta\\ -\sin\theta&\cos\theta \end{bmatrix}

QQ将每个向量旋转θ\theta度,而QTQ^T旋转−θ-\theta度,相当于有回到原点了。这些列明显都是正交的,因为sin2θ+cos2θ=1\sin^2\theta+\cos^2\theta=1。

例2:置换矩阵PP都是正交矩阵,它的列都是单位向量,而且正交。因为每一列在不同的位置有一个1,它的转置也等于它的逆:

P=⎡⎣⎢001100010⎤⎦⎥那么P−1=PT=⎡⎣⎢001100010⎤⎦⎥

P=\begin{bmatrix} 0&1&0\\0&0&1\\1&0&0 \end{bmatrix}\text{那么} \quad P^{-1}=P^T=\begin{bmatrix} 0&1&0\\0&0&1\\1&0&0 \end{bmatrix}

反对角线PP上的元素P13=P22=P31=IP_{13}=P_{22}=P_{31}=I将x−y−zx-y-z轴变成了z−y−xz-y-x轴——也就是右手系统变成了左手系统,所以如我们说每个正交矩阵QQ表示一个旋转的话就不是很准确,因为反射也能做到:

P=[0110]

P=\begin{bmatrix} 0&1\\1&0 \end{bmatrix}

将点(x,y)(x,y)反射成(y,x)(y,x),它的镜像是45∘45^{\circ}斜线。从几何上来看,正交矩阵QQ是旋转矩阵和反射矩阵的乘积。

有一个性质是旋转矩阵和反射共有的,当然也就意味着每个正交矩阵也具有。但投影矩阵没有这个性质,因为它不正交或者说不可逆,投影会使向量的长度变小,而正交矩阵却保持长度不变,这个性质非常重要也非常具有代表性:

18、QQ乘以任何向量保持向量长度不变:

∥Qx∥=∥x∥(2)

\begin{equation} \Vert Qx\Vert=\Vert x\Vert\tag2 \end{equation}

它也保持内积和夹角不变,因为(Qx)T(Qy)=xTQTQy=xTy(Qx)^T(Qy)=x^TQ^TQy=x^Ty。对于长度而言,直接从QTQ=IQ^TQ=I就能看出来:

∥Qx∥2=∥x∥2即(Qx)T(Qx)=xTQTQx=xTx(3)

\begin{equation} \Vert Qx\Vert^2=\Vert x\Vert^2\text{即}\quad (Qx)^T(Qx)=x^TQ^TQx=x^Tx\tag3 \end{equation}

当空间被旋转或反射时,所有的内积和长度都保持不变。

接下来我们利用性质QT=Q−1Q^T=Q^{-1}进行计算。如果已知一组基,那么任何向量都可以用基向量来表示,对于一组标准正交基来说这是非常简便的,之后我们会看到傅里叶级数背后实际就是这一想法,所以现在问题变成找基向量的系数:

将b写成一个基向量的组合b=x1q1+x2q2+⋯+xnqn

\text{将$b$写成一个基向量的组合}b=x_1q_1+x_2q_2+\cdots+x_nq_n

在计算x1x_1时有一个小技巧,方程两边同时乘以qT1q_1^T,那么左边就变成qT1bq_1^Tb,右边除了第一项外其余项都消失了(因为qT1qj=0q_1^Tq_j=0),最后留下:

qT1b=x1qT1q1

q_1^Tb=x_1q_1^Tq_1

因为qT1q1=1q_1^Tq_1=1,所以x1=qT1bx_1=q_1^Tb,同样的可以得出第二个系数x2=qT2bx_2=q_2^Tb,得出所有系数后代入bb的方程的:

(qT1b)q1+(qT2b)q2+⋯+(qTnb)qn(4)

\begin{equation} (q_1^Tb)q_1+(q_2^Tb)q_2+\cdots+(q_n^Tb)q_n\tag4 \end{equation}

接下来将标准正交基放到方阵QQ中,向量方程x1q1+⋯+xnqn=bx_1q_1+\cdots+x_nq_n=b等价于Qx=bQx=b,(QQ的列乘以xx 中的元素)它的解是x=Q−1bx=Q^{-1}b,但是因为Q−1=QTQ^{-1}=Q^T——正交矩阵的性质——所有解也可以写成x=QTbx=Q^Tb:

x=QTb=⎡⎣⎢⎢−−−qT1⋮qTn−−−⎤⎦⎥⎥⎡⎣⎢b⎤⎦⎥=⎡⎣⎢⎢qT1b⋮qTnb⎤⎦⎥⎥(5)

\begin{equation} x=Q^Tb=\begin{bmatrix} -&q_1^T&-\\ -&\vdots&-\\ -&q_n^T&- \end{bmatrix} \begin{bmatrix} \\b\\ \\ \end{bmatrix} =\begin{bmatrix} q_1^Tb\\\vdots\\q_n^Tb \end{bmatrix}\tag5 \end{equation}

xx的元素就是内积qTibq_i^T b,也就是方程(4)。

矩阵形式也展示了在列向量不是标准正交时发生了什么,我们依然将bb表示为x1a1+⋯+xnanx_1a_1+\cdots+x_n a_n的组合来求解Ax=bAx=b,基向量表示成AA,为了求解,我们需要A−1A^{-1},在标准正交时仅仅需要QTQ^T。

注解1:前面我们将bb投影到直线上时出现了aTb/aTaa^Tb/a^Ta,而这里的aa就是q1q_1,这是一维的,并且投影是(qT1)q1(q_1^T)q_1,所以我们可以重新解释公式(4):每个向量bb是投影到一维直线上的总和。

因为这些投影是正交的,那么可以应用毕达哥拉斯定理,斜边的平方等于各项平方的和:

∥b∥2=(qT1b)2+(qT2b)2+⋯+(qTnb)2也就是∥QTb∥2(6)

\begin{equation} \Vert b\Vert^2=(q_1^Tb)^2+(q_2^Tb)^2+\cdots+(q_n^Tb)^2\text{也就是$\Vert Q^Tb\Vert^2$}\tag6 \end{equation}

注解2:因为QT=Q−1Q^T=Q^{-1},所以QQT=IQQ^T=I。当我们计算QQTQQ^T时,得到的是QQ行的内积结果(QTQQ^TQ是列的内积)。因为这个结果也是单位矩阵,由此我们得出一个结论:方阵的行是正交的。行的方向和列完全不同,从几何上看不出为何正交,但是他们真的就是正交:

Q=⎡⎣⎢1/3√1/3√1/3√1/2√0−1/2√1/6√−2/6√1/6√⎤⎦⎥

Q=\begin{bmatrix} 1/\sqrt{3}&1/\sqrt{2}&1/\sqrt{6}\\ 1/\sqrt{3}&0&-2/\sqrt{6}\\ 1/\sqrt{3}&-1/\sqrt{2}&1/\sqrt{6} \end{bmatrix}

长方形矩阵

这一小节讲一下Ax=bAx=b,其中AA是长方形矩阵。考虑Qx=bQx=b,我们现在允许行数大于列数,也就是说QQ中有nn个正交列qiq_i,而m>nm>n,此时QQ是m×nm\times n矩阵并且不能精确的求解Qx=bQx=b,也就是需要用到最小二乘。

标准正交列一般会让问题简化,在方阵中我们已经看到了效果,现在我们在长方形矩阵使用一下,重点是注意到QQ=IQ^Q=I,所以QTQ^T依然是QQ的左逆。

对于最小二乘,在Ax=bAx=b两边乘以矩阵的转置得到正规方程ATAx^=ATbA^TA\hat{x}=A^Tb,而这里的正规方程就是QTQ=QTbQ^TQ=Q^Tb,但是QTQ=IQ^TQ=I!因此x^=QTb\hat{x}=Q^Tb,当QQ是方阵时x^\hat{x} 就是精确解,或者QQ是长方形矩阵,此时就需要最小二乘了。

19、如果QQ的列是标准正交的,那么最小二乘问题就变得容易了:对于大多数bb,长方形矩阵形式没有解

QxQTQx^x^pp=b=QTb=QTb=Qx^=QQTb对于大多数b没有解正规方程有最佳解x^,其中QTQ=Ix^i就是qTibb的投影是(qT1b)q1+⋯+(qTnb)qn投影矩阵是P=QQT

\begin{array}{rll} Qx&=b&\text{对于大多数$b$没有解}\\ Q^TQ\hat{x}&=Q^Tb&\text{正规方程有最佳解$\hat{x}$,其中$Q^TQ=I$}\\ \hat{x}&=Q^Tb&\text{$\hat{x}_i$就是$q_i^Tb$}\\ p&=Q\hat{x}&\text{$b$的投影是$(q_1^Tb)q_1+\cdots+(q_n^Tb)q_n$}\\ p&=QQ^Tb&\text{投影矩阵是$P=QQ^T$} \end{array}

最后一个方程像p=Ax^,P=A(ATA)−1ATp=A\hat{x},P=A(A^TA)^{-1}A^T,当列是标准正交时,矩阵ATAA^TA变成QTQ=IQ^TQ=I,也就是说当向量标准正交时最小二乘中难计算的部分没有了,在轴上的投影不在耦合了,pp是各项的和p=(qT1b)q1+⋯+(qTnb)qnp=(q_1^Tb)q_1+\cdots+(q_n^Tb)q_n。

我们强调以下,投影不是重新构建bb,只有在m=nm=n的方阵情况下才是这样,而对于m>nm>n的长方形矩阵,他们不是重建,给出的投影pp已经不是原来的向量bb。投影矩阵一般是A(ATA)−1ATA(A^TA)^{-1}A^T,而这里简化为

P=Q(QTQ)−1QT或者P=QQT(7)

\begin{equation} P=Q(Q^TQ)^{-1}Q^T\text{或者}P=QQ^T\tag7 \end{equation}

注意QTQQ^TQ是n×nn\times n的单位矩阵,而QQTQQ^T是m×mm\times m的投影矩阵PP,它是QQ列向量上的单位矩阵,但是QQTQQ^T的正交补是零矩阵(QTQ^T的零空间)。

例3:下面的例子比较简单但是非常典型。假设我们将点b=(x,y,z)b=(x,y,z)投影到x−yx-y平面上,那么它的投影是p=(x,y,0)p=(x,y,0),并且是分别在xx轴和yy轴上投影之和:

q1=⎡⎣⎢100⎤⎦⎥,(qT1b)q1=⎡⎣⎢x00⎤⎦⎥;q2=⎡⎣⎢010⎤⎦⎥,(qT2b)q2=⎡⎣⎢0y0⎤⎦⎥

q_1=\begin{bmatrix} 1\\0\\0 \end{bmatrix}, (q_1^Tb)q_1=\begin{bmatrix} x\\0\\0 \end{bmatrix}; q_2=\begin{bmatrix} 0\\1\\0 \end{bmatrix}, (q_2^Tb)q_2=\begin{bmatrix} 0\\y\\0 \end{bmatrix}

这个投影矩阵是

P=q1qT1+q2qT2=⎡⎣⎢100010000⎤⎦⎥,P⎡⎣⎢xyz⎤⎦⎥=⎡⎣⎢xy0⎤⎦⎥

P=q_1q_1^T+q_2q_2^T= \begin{bmatrix} 1&0&0\\0&1&0\\0&0&0 \end{bmatrix}, P\begin{bmatrix} x\\y\\z \end{bmatrix} =\begin{bmatrix} x\\y\\0 \end{bmatrix}

在平面上的投影=在标准正交向量q1,q2q_1,q_2上投影之和。

例4:当测试时间的平均值是零时,拟合直线得到的是正交列。我们取t1=−3,t2=0,t3=3t_1=-3,t_2=0,t_3=3,然后拟合y=C+Dty=C+Dt得到含有两个未知量的三个方程:

CCC+++Dt1Dt2Dt3===y1y2y3,或者⎡⎣⎢111−303⎤⎦⎥[CD]=⎡⎣⎢y1y2y3⎤⎦⎥

\begin{array}{ccccc} C&+&Dt_1&=&y_1\\ C&+&Dt_2&=&y_2\\ C&+&Dt_3&=&y_3 \end{array},\text{或者} \begin{bmatrix} 1&-3\\1&0\\1&3 \end{bmatrix} \begin{bmatrix} C\\D \end{bmatrix}= \begin{bmatrix} y_1\\y_2\\y_3 \end{bmatrix}

列(1,1,1),(−3,0,−3)(1,1,1),(-3,0,-3)是正交的,我们可以分别计算他们的投影,分别求出最佳系数C^,D^\hat{C},\hat{D}:

C^=[111][y1y2y3]T12+12+12,D^=[−303][y1y2y3]T(−3)2+02+32,

\hat{C}=\frac{\begin{bmatrix}1&1&1\end{bmatrix}\begin{bmatrix}y_1&y_2&y_3\end{bmatrix}^T}{1^2+1^2+1^2}, \hat{D}=\frac{\begin{bmatrix}-3&0&3\end{bmatrix}\begin{bmatrix}y_1&y_2&y_3\end{bmatrix}^T}{(-3)^2+0^2+3^2},

注意C^=(y1+y2+y3)/3\hat{C}=(y_1+y_2+y_3)/3是数据的均值,它给出了水平线的最佳拟合,而D^t\hat{D}t是通过原点直线的最佳拟合。这些列是正交的,所以这两部分的和就是所以直线的最佳拟。因为列不是单位限量,所以C^,D^\hat{C},\hat{D}都需要除以各自的长度。

正交列的确对求解问题带来许多方便。考虑另一种情况,如果测量时间的平均值不是0,t¯=(t1+⋯+tm)/m\bar{t}=(t_1+\cdots+t_m)/m,那么时间原点就变成了t¯\bar{t},我们不再使用y=C+Dty=C+Dt,而是用y=c+d(t−t¯)y=c+d(t-\bar{t}),距离说明:

c^=[1⋯1][y1⋯ym]T12+12+⋯+12=y1+⋯+ymm,d^=[(t1−t¯)⋯(tm−t¯)][y1⋯ym]T(t1−t¯)2+⋯+(tm−t¯)2=Σ(ti−t¯)yiΣ(ti−t¯)2(8)

\begin{align} &\hat{c}=\frac{\begin{bmatrix}1&\cdots&1\end{bmatrix}\begin{bmatrix}y_1&\cdots&y_m\end{bmatrix}^T}{1^2+1^2+\cdots+1^2}=\frac{y_1+\cdots+y_m}{m},\nonumber\\ &\hat{d}=\frac{\begin{bmatrix}(t_1-\bar{t})&\cdots&(t_m-\bar{t})\end{bmatrix}\begin{bmatrix}y_1&\cdots&y_m\end{bmatrix}^T}{(t_1-\bar{t})^2+\cdots+(t_m-\bar{t})^2}=\frac{\Sigma(t_i-\bar{t})y_i}{\Sigma(t_i-\bar{t})^2}\tag8 \end{align}

最佳解c^\hat{c}是均值,同时得到d^\hat{d}的简化形式。之前ATAA^TA的反对角线元素是Σti\Sigma t_i,转变了时间t^\hat{t}后变成零,而这个转变就是格拉姆-施密特过程。

正交矩阵在数值线性代数中非常重要,因为他们引入了不稳定性。当长度保持不变的时候,可以控制住舍入误差。正交向量已经是非常基本的技术,可能出了消元法它就是第二基本的方法了。并且由它得到的分解A=QRA=QR和A=LUA=LU一样出名。

漫步线性代数十七——正交基和格拉姆-施密特正交化(上)相关推荐

  1. 漫步线性代数十八——正交基和格拉姆-施密特正交化(下)

    格拉姆-施密特 声明:以后博主会把文章的pdf版本陆续发布到的网上,免费供大家下载 正交基和格拉姆-施密特正交化 假设我们有是是三个无关向量a,b,ca,b,c,如果他们是正交的,那么会多问题都变得容 ...

  2. 线性代数(三十九) :格拉姆-施密特正交化与标准正交基

    本节介绍正交的概念,以及将基变为正交基的格拉姆-施密特(Gram-Schmidt)方法 1 正交 如果向量x,y满足: 则称x与y正交(orthogonal)或者垂直(perpendicular),记 ...

  3. matlab格拉姆施密特,改进的格拉姆-施密特正交化(modified Gram-Schmidt Process)

    最近在重新学习线性代数,学习的教材是MIT Gilbert Strang 教授的<INTRODUCTION TO LINEAR ALGEBRA>,在第4.4章节格拉姆-施密特正交化时,书中 ...

  4. 施密特正交化_格拉姆-施密特正交化--QR分解法的来源

    人类的数学发展到了今天,已经如浩瀚的宇宙般深不见底,不管时代怎么变迁,数学总是以超前于人类的科技水平而存在,如果说宇宙有尽头的话,那么宇宙的尽头也是数学的尽头,数学的停止就是世界的末日.所以我后悔当初 ...

  5. MIT线性代数笔记十七讲 正交矩阵和施密特正交化

      本节是"正交"部分的最后内容.Gram-Schmidt 过程可以将原空间的一组基转变为标准正交基. 文章目录 1. 标准正交向量 Orthonormal vectors 2. ...

  6. 线性代数 --- Gram-Schmidt, 格拉姆-施密特正交化(下)

    Gram-Schmidt正交化过程 到目前为止,我们都是在反复强调"对于无解的方程组Ax=b而言,如果矩阵A是标准正交矩阵的话,就怎么怎么好了....".因为,不论是求投影还是计算 ...

  7. 线性代数 --- Gram-Schmidt, 格拉姆-施密特正交化(上)

    Gram-Schmidt正交化 在前面的几个最小二乘的文章中,实际上已经看到Gram-Schmidt正交化的影子.在我个人看来,Gram-Schmidt正交化更像是一种最小二乘的简化算法.下面,我会接 ...

  8. 线性代数导论17——正交矩阵和Gram-Schmidt正交化

    本文是Gilbert Strang的线性代数导论课程笔记.课程地址: http://v.163.com/special/opencourse/daishu.html   第十七课时:正交矩阵和Gram ...

  9. 线性代数学习笔记——第七十讲——格拉姆—施密特(Gram-Schmidt)正交化方法

    1. 格拉姆-施密特(Gram-Schmidt)正交化方法详解 2. 格拉姆-施密特(Gram-Schmidt)正交化示例

最新文章

  1. 看漫画还是学数学?小孩子才做选择,大人全都要!
  2. 数据团队「隐形守护者」!从被动应对到资源输出,腾讯安全20年成长记
  3. SQL Date Utility
  4. 网络编程学习笔记(getsockopt和setsockopt函数)
  5. 删除fedora多余内核:解决每次升级后旧内核还会存在的问题
  6. shell 文件路径有空格_Python学习第57课-shell入门之基本简单命令(一)
  7. 怎么生成a类型的对象 java_Java工程师考试题(答案)
  8. DropDownList 实现分页不包含选择值
  9. 无线通信基础(二):高斯噪声中的检测
  10. input datetime-local 时间控件精确到秒
  11. matlab节约里程法_MATLAB语言基础-中国大学mooc-试题题目及答案
  12. 原生Java萝卜影视4.0.5源码/完美修复完整版萝卜影视源码
  13. C语言字符常量与常量定义
  14. linux 查看文件内容的命令
  15. mac已安装flash控件_如何在Mac上安装和更新Flash
  16. 浅谈sketch插件开发(三)
  17. python 为女神编朵玫瑰花的代码,python绘制玫瑰的代码
  18. html向下滚动条,《html》不显示滚动条,鼠标滑轮可以控制向下滚动是怎么回事?...
  19. HTML5+CSS3小实例:3D旋转木马相册
  20. android 百度地图 uisettings,百度地图开发者常用类学习

热门文章

  1. php遍历文件夹及其子文件夹并计算所占的磁盘空间
  2. 容器编排技术 -- Kubernetes Ingress解析
  3. Nginx upstream模块
  4. 容器编排技术 -- Kubernetes Annotations
  5. Spring Security 教程
  6. 缓存数据库面试 - redis 的线程模型是什么?为什么 redis 单线程却能支撑高并发?
  7. BGP——同步功能【Synchronization】【路由黑洞】
  8. 小米无缝切换60hz/90hz/120hz/144hz刷新率!
  9. 内网学习之MySQL服务提权
  10. 国际电汇的清算代码是什么?