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

本文介绍了格拉姆-施密特正交化过程及其在向量空间和函数空间的应用,包括如何从一组线性无关的向量出发获得一组正交向量,以及如何将该方法应用于函数,生成正交多项式。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

格拉姆-施密特

声明:以后博主会把文章的pdf版本陆续发布到的网上,免费供大家下载
正交基和格拉姆-施密特正交化

假设我们有是是三个无关向量 a,b,c ,如果他们是正交的,那么会多问题都变得容易了。例如要计算 v 到第一个向量的投影,只需计算(aTv)a,投影到前两个向量所在的平面只需相加即可 (aTv)a+(bTv)b ,同样投影到三个向量组成的空间就是三个投影相加,所有这些运算只需要计算内积 aTv,bTv,cTv 。 但是不要忘记有个大前提:向量正交,所以接下来我们就找出令向量正交的方法。

其实方法很简单,也就是给定 a,b,c 得出我们需要的 q1,q2,q3 。对于 q1 :方向和 a 一致,只需除以它的长度即可,这样的话a/a就是单位向量。真正的计算要从 q2 开始,我们需要令它和 q1 正交,如果第二个向量 b 存在q1方向(也就是 a 的方向)的分量,那么我们需要减去这个分量:

B=b(qT1b)q1,q2=B/B(1)

B q1是正交的,它是 b 的一部分,但这部分不在a上。图1中 B q1正交,我们将它的方向设置成 q2 的方向。


这里写图片描述
图1

q1,q2 得到后,接下来寻找第三个正交方向,它肯定不在 q1,q2 所在的平面上,也就是 a,b 所在的平面。当然,可能有分量在这个平面上,这时候就必须将它减掉,(如果结果是 C=0 ,这就表示 a,b,c 是相关的)留下的部分就是我们要的 C ,这部分所在的方向垂直于q1,q2所在的平面:

C=c(qT1c)q1(qT2c)q2,q3=C/C(2)

这就是格拉姆-施密特正交化的思想,先定一个向量,然后每增加一个向量,计算它是否有分量位于所定好的方向中,有的话就减去,没有的话直接加进去。对于上面的例子,如果有第四个向量的话,我们需要减去它在 q1,q2,q3 中的分量。

例5:假设 a,b,c 是无关向量:

a=101,b=100,c=210

首先找 q1 ,我们直接将第一个向量变成单位向量: q1=a/2 ,然后找 q2 ,第二个向量减去它在第一个方向上的分量:

B=b(qT1b)q1=100121/201/2=12101

然后 B 除以它的长度得到归一化的q2

1/201/2

接下来是 q3 ,从 c 中减去在q1,q2上的分量:

C=c(qT1c)q1(qT2c)q2=21021/201/221/201/2=010

可以看出它已经是单位向量,所以就是 q3 ,至此得出一组正交向量 q1,q2,q3 ,我们将它作为正交矩阵 Q 的列:

Q=q1q2q3=1/201/21/201/2010

20、格拉姆-施密特过程是无关向量 a1,,an 开始,最后得出正交向量 q1,,qn 。在第 j 步,我们用aj减去它在 q1,,qj1 方向上的分量:

Aj=aj(qT1aj)q1(qTj1aj)qj1(3)
然后 Aj/Aj 得到单位向量 qj

计算注解:下面的计算方法会更加容易:计算 a,B,C 的时候先不归一化,等到全部计算出来后统一除以他们的长度。我们还以上面的情况为例,注意我们要用 aTb/aTa 得到的 12 而不是 qTb 得到的 12

B=10012101,C=210101212012

QR分解

我们从矩阵 A 开始,它的列分别是a,b,c,最后以矩阵 Q 结束,它的列是q1,q2,q3,这些矩阵之间的关系是什么?当 n 个向量都在m为空间时, A,Q 都是 m×n 矩阵,并且存在第三个矩阵将他们联系起来。

一个想法是将 a 作为q的组合,图1中的向量 b 是正交向量q1,q2的一个组合,并且我们还知道它的组合为:

b=(qT1b)q1+(qT2b)q2

平面中的每个向量都是 q1,q2 分量的和,同样的, c q1,q2,q3分量的和: c=(qT1b)q1+(qT2b)q2+(qT3c)q3 ,如果我们用矩阵的形式来表示就得到 A=QR

A=abc=q1q2q3qT1aqT1bqT2bqT1cqT2cqT3c=QR(4)

注意最后那个矩阵中的零! R 是上三角矩阵,这当然与格拉姆-施密特的过程有关。第一个向量a,q1在同一条线上,然后 q1,q2 a,b 在同一个平面上。

QR 分解就像 A=LU ,不同的是第一个分解中的 Q 的列是标准正交的,对于第二个因子,因为对角线的右边是非零值所以叫R。将上例的具体数值代入的

A=101100210=1/201/21/201/201021/21/2221=QR

我们可以看到 a,B,C 的长度位于 R 的对角线上,标准正交向量q1,q2,q3 都在 Q 中。

可能QR的形式没有 LU 那样好看(由于有平方根),但这两种方法在线性代数的理论中都是非常重要的,绝对处于中心地位。

我们用 Ajq 代替(11)中的 Aj 得:

aj=(qT1aj)q1++(qTj1aj)qj1+Ajqj=QRj(5)

21、每个含有无关列的 m×n 矩阵都能分解成 A=QR 的形式, Q 的列是标准正交的,R是上三角矩阵并且可逆。当 m=n 时,所有的矩阵都是方阵, Q 就变成正交矩阵。

我们不能忘记正交的是用来做什么的,它的目的是为了简化最小二乘问题Ax=b。它对正规方程依然有用,只是 ATA 变得更简单了:

ATA=RTQTQR=RTR(6)

基本方程 ATAx^=ATb 简化为:

RTRx^=RTQTbRx^=QTb(7)

我们不是求解 QR=b ,况且它也无解,而是求解 Rx^=QTb ,由于 R 是三角矩阵,所以我们直接进行回代即可,实际代价是mn2次操作。

我们把同样的想法应用到函数上,正弦和余弦是正交的;幂 1,x,x2 不正交。当 f(x) 写成正弦和余弦的组合式,得到的就是傅里叶级数,每一项都是在直线上的投影——函数空间中直线包含正弦和余弦的倍数 cosnx,sinnx ,这和向量的情况完全是平行的,同样非常重要,最后提一下施密特的一个工作:正交化 x 的幂,产生勒让德多项式。

函数空间和傅里叶级数

这部分主要内容有:

  1. 介绍最出名的无限维向量空间(希尔伯特空间);
  2. 将长度和内积的想法从向量v扩展到函数 f(x)

    • 认识到傅里叶级数是一维投影(正交列是正弦和余弦)的和;
    • 在多项式 1,x,x2, 上应用格拉姆-施密特正交化;
    • 找出能拟合 f(x) 的最好直线。
    • 1.希尔伯特空间:在学习了 Rn 后,很自然会想到 R 空间,它包含的向量 v=(v1,v2,v3,) 有无限个元素,这个空间实在太大了,我们无法控制元素 vj 大小。一个更好的想法是长度的概念不变,也就是平方和,并且只包含那些长度有限的向量:

      v2=v21+v22+v23+(8)

      这个无限级数必须收敛到一个有限和,这样的话 (1,12,13,) 满足,而 (1,1,1,) 不满足,长度有限的向量满足可加性( v+wv+w ) 和数乘,所以他们形成一个向量空间,也就是希尔伯特空间。

      希尔伯特空间用很自然的方法将维数变成有限的,同时还保持了欧几里得空间的空间几何。椭圆变成无限维的椭球,而垂线和之前的定义一样,当 v,w 的内积为零时他们是正交的:

      vTw=v1w1+v2w2+v2w3+=0

      这个和肯定收敛,并且对于任何两个向量他们依然满足施瓦兹不等式 |vTw|vw ,即便是在希尔伯特空间,余弦值也是不可能大于1的。

      对于这个空间还有一个非常结论:这里的向量可以变成函数。

      2.长度和内积:假设 f(x)=sinx ,定义域为 0x2π ,函数 f 就像元素是连续的向量,为了找出这种向量的长度,通常那种元素的平方和已经不适用了,此时很自然的想法是用积分替换和:

      f2=2π0(f(x))dx=2π0(sinx)2dx=π(9)

      希尔伯特空间变成了函数空间,向量就是函数,而且也有度量长度的方法,这个空间包含了所有长度有限的函数——类似于方程(16)。 F(x)=1/x 不属于这个空间,因为 1/x2 的积分是无限的。

      用积分替换和的想法同样可以用于两个函数的内积:如果 f(x)=sinx,g(x)=cosx ,那么他们的内积是

      (f,g)=2π0f(x)g(x)dx=2π0sinxcosxdx=0(10)

      这个结论就像向量内积 fTg 一样,它依然和长度 (f,f)=f2 有关,施瓦兹不等式依然满足: |(f,g)|fg 。当然, sinx,cosx 的内积为零,所以也称他们是正交的,除以他们的长度 π 后就是标准正交的。

      3.傅里叶级数:函数的傅里叶级数是将其扩展到正弦和余弦形式:

      f(x)=a0+a1cosx+b1sinx+a2cos2x+b2sin2x+

      在计算系数的时候,例如 b1 ,我们在方程两边同时乘以函数 sinx ,然后计算 0 2π的积分。换句话说,就是方程两边分别和 sinx 进行内积操作:

      2π0f(x)sinxdx=a02π0sinxdx+a12π0cosxsinxdx+b12π0(sinx)2dx+

      对于方程的右边,除了 sinx 和自身相乘外,其余都是零,这用到了方程(18)中正弦和余弦的正交性,因此 b1 就是方程左边除以右边唯一的那个非零积分项:

      b1=2π0f(x)sinxdx2π0(sinx)2dx=(f,sinx)(sinx,sinx)

      而对于系数 a1 ,只需要用 cosx 代替 sinx 即可,对于 a2 我们使用 cos2x

      这里的重点是看出它和投影的相似性,向量 b 在直线a上的分量是 bTa/aTa ,从上式可以看出傅里叶级数是函数 f(x) sinx 上的投影,它在这个方向上的分量 p b1sinx

      系数 b1 是矛盾方程 b1sinx=f(x) 的最小二乘解,它令 b1sinx 尽可能的靠近 f(x) 。级数中的所有项都是在正弦或余弦上的投影,另外,因为他们是正交的,所以傅里叶级数给出了 f(x) 相对于一组垂直轴的坐标值。

      4.函数的格拉姆—施密特正交化:除了正弦和余弦外,还有许多非常有用的函数,他们不见得是正交的。最简单的例子就是 x 的幂,不幸的是不存在使得他们征垂直的区间,即便是1,x2也不是垂直的(他们的内积始终为正),因此对 f(x) 的最佳拟合抛物线不是在 1,x,x2 上投影之和。实际上有一个类似于 (ATA)1 的矩阵,这个联系由病态的希尔伯特矩阵给出。在区间 0x1

      ATA=(1,1)(x,1)(x2,1)(1,x)(x,x)(x2,x)(1,x2)(x,x2)(x2,x2)=1xx2xx2x3x2x3x4=11213121314131415

      这个矩阵的逆非常大,原因是坐标轴 1,x,x2 离垂直关系差的很远,即便我们增加几个坐标轴就会增大不垂直的可能性,我们几乎不可能用最佳十阶多项式来求解 ATAx^=ATb

      再准确一点,几乎无法用高斯消元法求解;每个输入误差至少被放大了 1013 倍。但是我们不想放弃用多项式进行逼近,所以正确的思路就是我们将它变成正交的(利用之前提到的格拉姆-施密特正交化),我们寻找使得 1,x,x2 正交的组合。

      为了方便,我们将区间取成对称的,像 1x1 这样,原因是这样会让 x 的奇数幂和偶数幂正交:

      (1,x)=11xdx=0,(x.x2)=11x3dx=0

      因此,我们从 v1=1,v2=x 作为前两个垂直轴开始格拉姆-施密特过程。接下来是计算第三个轴:

      v3=x2(1,x2)(1,1)1x,x2x,xx=x211x2dx211dx=x213

      用这种方式构建的多项式称为勒让德多项式,他们在 1x1 区间上是正交的。

      (1,x213)=11(x213)dx=[x33x3]11=0

      5.最佳直线:假设我们在区间 [0,1] 上用直线 C+Dx 拟合 y=x5 ,至少有三种方法可以找出这样的直线:

      • 用最小二乘法求解
        [1x][CD]=x5
        ,那么方程 ATAx^=ATb 就是
        [(1,1)(x,1)(1,x)(x,x)][CD]=[(1,x5)(x,x5)]1121213[CD]=16117
      • 最小化
        E2=10(x5CDx)2dx=11126C27D+C2+CD+13D2
        ,分别对 C,D 求导除以2得:
        16+C+12D=0,17+12C+13D=0
        ,求出解为 C^=16514,D^=517
      • 应用格拉姆-施密特方法用 x(1,x)/(1,1) 替换 x ,也就是x12,它和1是正交的。然后在加上一维投影:
        C+Dx=(x5,1)(1,1)1+(x5,x12)(x12,x12)(x12)=16+57(x12)
评论 12
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值