Gram-Schmidt正交化过程
到目前为止,我们都是在反复强调“对于无解的方程组Ax=b而言,如果矩阵A是标准正交矩阵的话,就怎么怎么好了。。。。”。因为,不论是求投影还是计算最小二乘的正规方程,他们都包含了。当A为标准正交矩阵Q时,同时可以直接求出最优解。从现在开始,就会详细介绍如何用Gram Schmidt的方法去构造一组彼此正交的标准正交基。
Gram-Schmidt process:
现有一个方程组Ax=b,矩阵A由三个线性无关的列向量a,b,c组成。首先,我们基于a,b,c去构造三个相互正交的向量A,B,C。构造好以后,我们分别让A,B,C除以他们各自的长度,最终得到我们想要的一组标准正交基,,。令,,分别为矩阵的三个列向量,得到标准正交矩阵Q。
第一步:令向量A等于向量a,得到第一个向量A,确定了第一个方向。
第二步:因为我要构造的一组正交基是相互正交的,因此,我们的第二个向量B必须垂直于向量A。我们令b减去b在A上的投影向量,得到b在垂直于A方向上的另一个分量B。事实上,B就是垂直于投影向量的误差向量。
第三步:用向量c减去c在A和B所张成的子空间(平面)上的投影,得到垂直于该子空间的另一个分量C。即,垂直于投影向量的误差向量。新的向量C即垂直于A也垂直于B。
第四步:分别对彼此正交的A,B,C进行归一化,得到向量长度都为1的一组标准正交基,,。
如果还有d的话,则需要从d减去d在已经构造好的向量A,B,C三个方向上的投影(或者说是减去d在A,B,C所张成的空间上的投影),得到垂直于向量A,B,C的另一个分量D。
Gram Schmidt正交化过程的核心思想就是:不断的用新的已知向量,减去该向量在已经构造好的向量上的投影分量,得到我们要找的垂直分量。
即:old_vector - projection = new_vector
Example:
最后,我们给出一个Gram Schmidt正交化计算过程的例子,一开始有三个彼此不正交的线性无关向量a,b,c,其中a=[1, -1, 0], b=[2, 0, -2], c=[3, -3, 3],如下图所示:
用Gram schmidt正交化的idea去构建一组包含三个列向量的正交基q1,q2,q3:
q1,q2,q3是一组标准正交基,他们彼此正交且他们的长度都是1,如下图所示:
这是包含中间结果A,B,C的图示,可见q1,q2,q3与A,B,C的方向相同,唯一不同的是A,B,C还没有归一下:
Matlab code:
%% Example of CSDN
%Original points
X=[0,0,0];
Y=[0,0,0];
Z=[0,0,0];
U=[1,2,3];
V=[-1,0,-3];
W=[0, -2, 3];
quiver3(X,Y,Z,U,V,W,0,'LineWidth',1)
axis equal
legend('a,b,c','Location','northwest')
hold on
%Orthogonal vectors
U=[1,1,1];
V=[-1,1,1];
W=[0,-2,1];
quiver3(X,Y,Z,U,V,W,0,'LineWidth',1)
axis equal
legend('a,b,c','A,B,C','Location','northwest')
%Orthonormal bases
U=[1/sqrt(2),1/sqrt(6),1/sqrt(3)];
V=[-1/sqrt(2),1/sqrt(6),1/sqrt(3)];
W=[0,-2/sqrt(6), 1/sqrt(3)];
quiver3(X,Y,Z,U,V,W,0,'LineWidth',3)
axis equal
legend('a,b,c','A,B,C','q1,q2,q3','Location','northwest')
(全文完)
作者 --- 松下J27
参考文献(鸣谢):
1,Introduction to Linear Algebra,Fifth Edition - Gilbert Strang
2,线性代数及其应用,候自新,南开大学出版社 1990
(配图与本文无关)
版权声明:文中的部分图片,文字或者其他素材,可能来自很多不同的网站和说明,在此没法一一列出,如有侵权,请告知,立即删除。欢迎大家转载,但是,如果有人引用或者COPY我的文章,必须在你的文章中注明你所使用的图片或者文字来自于我的文章,否则,侵权必究。 ----松下J27