到目前为止,我们都是在反复强调“对于无解的方程组Ax=b而言,如果矩阵A是标准正交矩阵的话,就怎么怎么好了。。。。”。因为,不论是求投影还是计算最小二乘的正规方程,他们都包含了的逆的计算。只有当A为标准正交矩阵Q时,就不再需要计算的逆了,这时,可以直接求出最优解。在实际应用中,为了简化最小二乘的计算,人们会优先把原本不是标准正交矩阵的A,提前变成标准正交矩阵Q。
本文的目的,正是要介绍这种,可以把任意矩阵A变成标准正交矩阵Q的方法。这个方法是由丹麦数学家Jørgen Pedersen Gram和德国数学家Erhard Schmidt共同发明的,被称为Gram-Schmidt正交化过程(Gram–Schmidt process)。是一种,从一组任意向量出发,构造出一组彼此正交的标准正交基的过程。
现有一个无解的方程组Ax=b,矩阵A由三个线性无关的列向量a,b,c组成(如下图所示)。则,Gram-Schmidt正交化过程可以简单的归纳为:
首先,基于列向量a,b,c去构造三个相互正交的列向量A,B,C(这是第一步,这一过程被称为向量的正交化,这是Gram的主要贡献)。构造好以后,我们分别让A,B,C除以他们各自的长度,最终得到我们想要的一组标准正交基,,(这是第二步,这一过程被称为是向量的归一化,这是schmidt的主要贡献)。最后,令,,分别为矩阵的三个列向量,得到标准正交矩阵Q。
第一步:令向量A等于向量a,得到第一个向量A,确定了第一个方向。
第二步:因为我要构造的一组正交基是相互正交的,因此,我们的第二个向量B必须垂直于向量A。我们令b减去b在A上的投影向量,得到b在垂直于A方向上的另一个分量B。事实上,B就是垂直于投影向量的误差向量。
第三步:用向量c减去c在A和B所张成的子空间(平面)上的投影,得到垂直于该子空间的另一个分量C。即,垂直于投影向量的误差向量。新向量C,既垂直于A也垂直于B。
至此,已经完成了向量的正交化。
Part II:归一化
第四步:分别对彼此正交的A,B,C进行归一化,得到向量长度都为1的一组标准正交基,,。
至此,已经完成了所有向量的归一化。
如果还有d向量的话,则需要从d减去d在已经构造好的向量A,B,C三个方向上的投影(或者说是减去d在A,B,C所张成的空间上的投影),得到垂直于向量A,B,C的另一个分量D。
Gram Schmidt正交化过程的核心思想就是:不断的用新的已知向量(例如b),减去这个向量在之前已经构造好的向量(例如A)上的投影分量(例如),得到我们要找的垂直分量/正交向量(例如)。
即: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
3, https://en.wikipedia.org/wiki/J%C3%B8rgen_Pedersen_Gram
4,https://en.wikipedia.org/wiki/Erhard_Schmidt
为了纪念这两个算法的发明者Gram和Schmidt,本文于2023年6月25日,补充了两位杰出数学家的肖像。
(配图与本文无关)
版权声明:文中的部分图片,文字或者其他素材,可能来自很多不同的网站和说明,在此没法一一列出,如有侵权,请告知,立即删除。欢迎大家转载,但是,如果有人引用或者COPY我的文章,必须在你的文章中注明你所使用的图片或者文字来自于我的文章,否则,侵权必究。 ----松下J27