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

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

16、如果

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

那么q1,…,qn就是是标准正交基,由标准正交列组成的矩阵叫做Q。

最重要的例子是标准基,对于x?y平面,最熟悉的e1=(1,0),e2=(0,1)水平和竖直方向都是垂直的,Q是2×2的单位矩阵。在n为空间里标准基e1,…,en由Q=I的列组成:

e1=?????????100?0?????????,e2=?????????010?0?????????,?,en=?????????000?1?????????.

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

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

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

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

正交矩阵

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

??????????qT1qT2?qTn?????????????|q1||q2|?|qn|???=?????10?001?0????00?1?????(1)

正交矩阵就是列是单位正交的方阵,它的转置等于它的逆,即QT=Q?1。

当QT的i行乘以Q的j列时,结果为零qTiqj=0,而对角线上i=j,得到qTiqi=1,也就是长度为1的单位矩阵归一化。

注意即便Q是长方形矩阵,QTQ=I依然成立,但是QT仅仅是左逆。

例1:

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

Q将每个向量旋转θ度,而QT旋转?θ度,相当于有回到原点了。这些列明显都是正交的,因为sin2θ+cos2θ=1。

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

P=???001100010???那么P?1=PT=???001100010???

反对角线P上的元素P13=P22=P31=I将x?y?z轴变成了z?y?x轴——也就是右手系统变成了左手系统,所以如我们说每个正交矩阵Q表示一个旋转的话就不是很准确,因为反射也能做到:

P=[0110]

将点(x,y)反射成(y,x),它的镜像是45°斜线。从几何上来看,正交矩阵Q是旋转矩阵和反射矩阵的乘积。

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

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

∥Qx∥=∥x∥(2)

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

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

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

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

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

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

qT1b=x1qT1q1

因为qT1q1=1,所以x1=qT1b,同样的可以得出第二个系数x2=qT2b,得出所有系数后代入b的方程的:

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

接下来将标准正交基放到方阵Q中,向量方程x1q1+?+xnqn=b等价于Qx=b,(Q的列乘以x 中的元素)它的解是x=Q?1b,但是因为Q?1=QT——正交矩阵的性质——所有解也可以写成x=QTb:

x=QTb=???????qT1?qTn??????????b???=????qT1b?qTnb????(5)

x的元素就是内积qTib,也就是方程(4)。

矩阵形式也展示了在列向量不是标准正交时发生了什么,我们依然将b表示为x1a1+?+xnan的组合来求解Ax=b,基向量表示成A,为了求解,我们需要A?1,在标准正交时仅仅需要QT。

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

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

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

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

Q=???1/3√1/3√1/3√1/2√0?1/2√1/6√?2/6√1/6√???

长方形矩阵

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

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

对于最小二乘,在Ax=b两边乘以矩阵的转置得到正规方程ATAx^=ATb,而这里的正规方程就是QTQ=QTb,但是QTQ=I!因此x^=QTb,当Q是方阵时x^ 就是精确解,或者Q是长方形矩阵,此时就需要最小二乘了。

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

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

最后一个方程像p=Ax^,P=A(ATA)?1AT,当列是标准正交时,矩阵ATA变成QTQ=I,也就是说当向量标准正交时最小二乘中难计算的部分没有了,在轴上的投影不在耦合了,p是各项的和p=(qT1b)q1+?+(qTnb)qn。

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

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

注意QTQ是n×n的单位矩阵,而QQT是m×m的投影矩阵P,它是Q列向量上的单位矩阵,但是QQT的正交补是零矩阵(QT的零空间)。

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

q1=???100???,(qT1b)q1=???x00???;q2=???010???,(qT2b)q2=???0y0???

这个投影矩阵是

P=q1qT1+q2qT2=???100010000???,P???xyz???=???xy0???

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

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

CCC+++Dt1Dt2Dt3===y1y2y3,或者???111?303???[CD]=???y1y2y3???

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

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

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

正交列的确对求解问题带来许多方便。考虑另一种情况,如果测量时间的平均值不是0,tˉ=(t1+?+tm)/m,那么时间原点就变成了tˉ,我们不再使用y=C+Dt,而是用y=c+d(t?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)

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

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

时间: 2024-11-05 17:30:57

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

《Linear Algebra and Its Applications》-chaper6-正交性和最小二乘法- 格拉姆-施密特方法

构造R^n子空间W一组正交基的算法:格拉姆-施密特方法.

浅谈压缩感知(十九):MP、OMP与施密特正交化

关于MP.OMP的相关算法与收敛证明,可以参考:http://www.cnblogs.com/AndyJee/p/5047174.html,这里仅简单陈述算法流程及二者的不同之处. 主要内容: MP的算法流程及其MATLAB实现 OMP的算法流程以及MATLAB实现 MP与OMP的区别 施密特正交化与OMP的关系 一.MP(匹配追踪)的算法流程: 二.MP的MATLAB实现: % MP:匹配追踪算法 % dictionary: 超完备字典 % x: 待表示信号 % M = 4; N = 10;

MATLAB中施密特正交化的实现

1.施密特正交化的概念 2.MATLAB程序 1 function b=Schmidt_orthogonalization(a) 2 [m,n] = size(a); 3 if(m<n) 4 error('行小于列,无法计算,请转置后重新输入'); 5 return 6 end 7 b=zeros(m,n); 8 %正交化 9 b(:,1)=a(:,1); 10 for i=2:n 11 for j=1:i-1 12 b(:,i)=b(:,i)-dot(a(:,i),b(:,j))/dot(b(

【线性代数】标准正交矩阵与Gram-Schmidt正交化

1.标准正交矩阵 假设矩阵Q有列向量q1,q2,...,qn表示,且其列向量满足下式: 则 若Q为方阵,由上面的式子则有 我们举例说明上述概念: 2.标准正交矩阵的好处 上面我们介绍了标准正交矩阵,那么标准正交矩阵的用处在哪?下面以两方面来说明标准正交矩阵的用处: 求解Ax=b 在前面文章<正交投影>中,有下式: 当矩阵A为标准正交矩阵Q时,由于正交矩阵与其转置的乘积为单位矩阵,则上式可以转化为: 可以发现,求x时不需要矩阵Q的逆,只需要知道转置即可,这样简化了计算. 求解投影矩阵 在前面文章

施密特正交化

对于一组向量,有时候我们需要对其进行正交化处理,也就是说,该组向量中任意两个向量都是互相垂直的.那么,要怎么做呢? 假设只有两个向量,\(\vec v_0\)和\(\vec v_1\),正交化的几何示意图如下所示. 假设正交化之后的向量为\(\vec w_0\)和\(\vec w_1\),那么由图可知,可得\(\vec w_0 = \vec v_0\),且有: \(\vec w_1 = \vec v_1 - \dfrac{\vec v_1 \cdot \vec w_0}{|\vec w_0|}\

漫步线性代数十六——投影和最小二乘

目前为止,我们已经知道Ax=b要么有解要么无解,如果b 不在列空间C(A) 里,那么这个系统就是矛盾的,高斯消元法就会失败.当有几个方程和一个未知量时失败完全可以确定: 2x3x4x===b1b2b3 当b1,b2,b3的比率是2:3:4时,上面的方程组才可解,也就是说只有b 和列a=(2,3,4)在一条直线上时x才会存在. 尽管他们无解,可是他们在实际中经常出现,他们必须有解!一种可能是用系统的一部分来确定x,其余部分忽略:如果所有的m个方程来源一样,这种方法就不合理.我们放弃这种一些方程没误

MIT线性代数:17.正交矩阵和Cram-Schmidt正交化

原文地址:https://www.cnblogs.com/pylblog/p/9159491.html

Android实战简易教程-第二十七枪(Android设置头像上传功能实现)

在一般开发中上传图片作为头像的功能非常常见,下面我们研究下具体实现,代码很简单,大家可以直接拿来使用哦! 1.先看一下布局文件,很是丑陋: <RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android" xmlns:tools="http://schemas.android.com/tools" android:layout_width="match_parent&

Python爬取CSDN博客文章

之前解析出问题,刚刚看到,这次仔细审查了 0 url :http://blog.csdn.net/youyou1543724847/article/details/52818339Redis一点基础的东西目录 1.基础底层数据结构 2.windows下环境搭建 3.java里连接redis数据库 4.关于认证 5.redis高级功能总结1.基础底层数据结构1.1.简单动态字符串SDS定义: ...47分钟前1 url :http://blog.csdn.net/youyou1543724847/