格拉姆-施密特
声明:以后博主会把文章的pdf版本陆续发布到的网上,免费供大家下载
正交基和格拉姆-施密特正交化
假设我们有是是三个无关向量
a,b,c
,如果他们是正交的,那么会多问题都变得容易了。例如要计算
v
到第一个向量的投影,只需计算
其实方法很简单,也就是给定
a,b,c
得出我们需要的
q1,q2,q3
。对于
q1
:方向和
a
一致,只需除以它的长度即可,这样的话
B
和
图1
q1,q2
得到后,接下来寻找第三个正交方向,它肯定不在
q1,q2
所在的平面上,也就是
a,b
所在的平面。当然,可能有分量在这个平面上,这时候就必须将它减掉,(如果结果是
C=0
,这就表示
a,b,c
是相关的)留下的部分就是我们要的
C
,这部分所在的方向垂直于
这就是格拉姆-施密特正交化的思想,先定一个向量,然后每增加一个向量,计算它是否有分量位于所定好的方向中,有的话就减去,没有的话直接加进去。对于上面的例子,如果有第四个向量的话,我们需要减去它在 q1,q2,q3 中的分量。
例5:假设
a,b,c
是无关向量:
首先找
q1
,我们直接将第一个向量变成单位向量:
q1=a/2√
,然后找
q2
,第二个向量减去它在第一个方向上的分量:
然后
B
除以它的长度得到归一化的
接下来是
q3
,从
c
中减去在
可以看出它已经是单位向量,所以就是
q3
,至此得出一组正交向量
q1,q2,q3
,我们将它作为正交矩阵
Q
的列:
20、格拉姆-施密特过程是无关向量
a1,…,an
开始,最后得出正交向量
q1,…,qn
。在第
j
步,我们用
计算注解:下面的计算方法会更加容易:计算
a,B,C
的时候先不归一化,等到全部计算出来后统一除以他们的长度。我们还以上面的情况为例,注意我们要用
aTb/aTa
得到的
12
而不是
qTb
得到的
12√
:
QR分解
我们从矩阵
A
开始,它的列分别是
一个想法是将
a
作为
平面中的每个向量都是
q1,q2
分量的和,同样的,
c
是
注意最后那个矩阵中的零!
R
是上三角矩阵,这当然与格拉姆-施密特的过程有关。第一个向量
QR
分解就像
A=LU
,不同的是第一个分解中的
Q
的列是标准正交的,对于第二个因子,因为对角线的右边是非零值所以叫
我们可以看到
a,B,C
的长度位于
R
的对角线上,标准正交向量
可能
我们用
∥Aj∥q
代替(11)中的
Aj
得:
21、每个含有无关列的
m×n
矩阵都能分解成
A=QR
的形式,
Q
的列是标准正交的,
我们不能忘记正交的是用来做什么的,它的目的是为了简化最小二乘问题
基本方程
ATAx^=ATb
简化为:
我们不是求解
QR=b
,况且它也无解,而是求解
Rx^=QTb
,由于
R
是三角矩阵,所以我们直接进行回代即可,实际代价是
我们把同样的想法应用到函数上,正弦和余弦是正交的;幂 1,x,x2 不正交。当 f(x) 写成正弦和余弦的组合式,得到的就是傅里叶级数,每一项都是在直线上的投影——函数空间中直线包含正弦和余弦的倍数 cosnx,sinnx ,这和向量的情况完全是平行的,同样非常重要,最后提一下施密特的一个工作:正交化 x 的幂,产生勒让德多项式。
函数空间和傅里叶级数
这部分主要内容有:
- 介绍最出名的无限维向量空间(希尔伯特空间);
- 将长度和内积的想法从向量
v 扩展到函数 f(x) ;- 认识到傅里叶级数是一维投影(正交列是正弦和余弦)的和;
- 在多项式 1,x,x2,… 上应用格拉姆-施密特正交化;
- 找出能拟合 f(x) 的最好直线。
1.希尔伯特空间:在学习了 Rn 后,很自然会想到 R∞ 空间,它包含的向量 v=(v1,v2,v3,…) 有无限个元素,这个空间实在太大了,我们无法控制元素 vj 大小。一个更好的想法是长度的概念不变,也就是平方和,并且只包含那些长度有限的向量:
∥v∥2=v21+v22+v23+⋯(8)这个无限级数必须收敛到一个有限和,这样的话 (1,12,13,…) 满足,而 (1,1,1,…) 不满足,长度有限的向量满足可加性( ∥v+w∥≤∥v∥+∥w∥ ) 和数乘,所以他们形成一个向量空间,也就是希尔伯特空间。
希尔伯特空间用很自然的方法将维数变成有限的,同时还保持了欧几里得空间的空间几何。椭圆变成无限维的椭球,而垂线和之前的定义一样,当 v,w 的内积为零时他们是正交的:
vTw=v1w1+v2w2+v2w3+⋯=0这个和肯定收敛,并且对于任何两个向量他们依然满足施瓦兹不等式 |vTw|≤∥v∥∥w∥ ,即便是在希尔伯特空间,余弦值也是不可能大于1的。
对于这个空间还有一个非常结论:这里的向量可以变成函数。
2.长度和内积:假设 f(x)=sinx ,定义域为 0≤x≤2π ,函数 f 就像元素是连续的向量,为了找出这种向量的长度,通常那种元素的平方和已经不适用了,此时很自然的想法是用积分替换和:
∥f∥2=∫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)=∥f∥2 有关,施瓦兹不等式依然满足: |(f,g)|≤∥f∥∥g∥ 。当然, sinx,cosx 的内积为零,所以也称他们是正交的,除以他们的长度 π√ 后就是标准正交的。
3.傅里叶级数:函数的傅里叶级数是将其扩展到正弦和余弦形式:
f(x)=a0+a1cosx+b1sinx+a2cos2x+b2sin2x+⋯在计算系数的时候,例如 b1 ,我们在方程两边同时乘以函数 sinx ,然后计算 0 到
2π 的积分。换句话说,就是方程两边分别和 sinx 进行内积操作:
∫2π0f(x)sinxdx=a0∫2π0sinxdx+a1∫2π0cosxsinxdx+b1∫2π0(sinx)2dx+⋯对于方程的右边,除了 sinx 和自身相乘外,其余都是零,这用到了方程(18)中正弦和余弦的正交性,因此 b1 就是方程左边除以右边唯一的那个非零积分项:
b1=∫2π0f(x)sinxdx∫2π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 的矩阵,这个联系由病态的希尔伯特矩阵给出。在区间 0≤x≤1 上
ATA=⎡⎣⎢⎢(1,1)(x,1)(x2,1)(1,x)(x,x)(x2,x)(1,x2)(x,x2)(x2,x2)⎤⎦⎥⎥=⎡⎣⎢⎢⎢⎢⎢⎢⎢⎢∫1∫x∫x2∫x∫x2∫x3∫x2∫x3∫x4⎤⎦⎥⎥⎥⎥⎥⎥⎥⎥=⎡⎣⎢⎢⎢⎢⎢⎢⎢11213121314131415⎤⎦⎥⎥⎥⎥⎥⎥⎥这个矩阵的逆非常大,原因是坐标轴 1,x,x2 离垂直关系差的很远,即便我们增加几个坐标轴就会增大不垂直的可能性,我们几乎不可能用最佳十阶多项式来求解 ATAx^=ATb 。
再准确一点,几乎无法用高斯消元法求解;每个输入误差至少被放大了 1013 倍。但是我们不想放弃用多项式进行逼近,所以正确的思路就是我们将它变成正交的(利用之前提到的格拉姆-施密特正交化),我们寻找使得 1,x,x2 正交的组合。
为了方便,我们将区间取成对称的,像 −1≤x≤1 这样,原因是这样会让 x 的奇数幂和偶数幂正交:
(1,x)=∫1−1xdx=0,(x.x2)=∫1−1x3dx=0 因此,我们从 v1=1,v2=x 作为前两个垂直轴开始格拉姆-施密特过程。接下来是计算第三个轴:
v3=x2−(1,x2)(1,1)1−x,x2x,xx=x2−∫1−1x2dx∫2−11dx=x2−13用这种方式构建的多项式称为勒让德多项式,他们在 −1≤x≤1 区间上是正交的。
检查一下(1,x2−13)=∫1−1(x2−13)dx=[x33−x3]1−1=05.最佳直线:假设我们在区间 [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(x5−C−Dx)2dx=111−26C−27D+C2+CD+13D2,分别对 C,D 求导除以2得:−16+C+12D=0,−17+12C+13D=0,求出解为 C^=16−514,D^=517 。
- 应用格拉姆-施密特方法用
x−(1,x)/(1,1)
替换
x
,也就是
x−12 ,它和1是正交的。然后在加上一维投影:
C+Dx=(x5,1)(1,1)1+(x5,x−12)(x−12,x−12)(x−12)=16+57(x−12)
- 用最小二乘法求解