当前位置:   article > 正文

线性代数 --- Gram-Schmidt, 格拉姆-施密特正交化(下)_施密特正交化的施密特是谁

施密特正交化的施密特是谁

Gram-Schmidt正交化过程

        到目前为止,我们都是在反复强调“对于无解的方程组Ax=b而言,如果矩阵A是标准正交矩阵的话,就怎么怎么好了。。。。”。因为,不论是求投影还是计算最小二乘的正规方程,他们都包含了A^{T}A的逆的计算。只有当A为标准正交矩阵Q时,就不再需要计算A^{T}A的逆了,这时Q^{T}Q=I,可以直接求出最优解\hat{x}=Q^{T}b。在实际应用中,为了简化最小二乘的计算,人们会优先把原本不是标准正交矩阵的A,提前变成标准正交矩阵Q。

        本文的目的,正是要介绍这种,可以把任意矩阵A变成标准正交矩阵Q的方法。这个方法是由丹麦数学家Jørgen Pedersen Gram和德国数学家Erhard Schmidt共同发明的,被称为Gram-Schmidt正交化过程(Gram–Schmidt process)。是一种,从一组任意向量出发,构造出一组彼此正交的标准正交基的过程。

Jørgen Pedersen Gram

Erhard Schmidt

Gram-Schmidt process:

        现有一个无解的方程组Ax=b,矩阵A由三个线性无关的列向量a,b,c组成(如下图所示)。则,Gram-Schmidt正交化过程可以简单的归纳为:

        首先,基于列向量a,b,c去构造三个相互正交的列向量A,B,C(这是第一步,这一过程被称为向量的正交化,这是Gram的主要贡献)。构造好以后,我们分别让A,B,C除以他们各自的长度,最终得到我们想要的一组标准正交基q_{1},q_{2},q_{3}(这是第二步,这一过程被称为是向量的归一化,这是schmidt的主要贡献)。最后,令q_{1},q_{2},q_{3}分别为矩阵的三个列向量,得到标准正交矩阵Q。

Part I:正交化

第一步:令向量A等于向量a,得到第一个向量A,确定了第一个方向。

A=a

第二步:因为我要构造的一组正交基是相互正交的,因此,我们的第二个向量B必须垂直于向量A。我们令b减去b在A上的投影向量p_{b},得到b在垂直于A方向上的另一个分量B。事实上,B就是垂直于投影向量p_{b}的误差向量e_{b}

B=b-p_{b}=b-\frac{A^{T}b}{A^{T}A}A

 第三步:用向量c减去c在A和B所张成的子空间(平面)上的投影p_{c},得到垂直于该子空间的另一个分量C。即,垂直于投影向量p_{c}的误差向量e_{c}。新向量C,既垂直于A也垂直于B。

C=c-p_{c}=c-\frac{A^{T}c}{A^{T}A}A-\frac{B^{T}c}{B^{T}B}B

至此,已经完成了向量的正交化。

Part II:归一化

第四步:分别对彼此正交的A,B,C进行归一化,得到向量长度都为1的一组标准正交基q_{1},q_{2},q_{3}

q_{1}=\frac{A}{\left \| A \right \|},\; q_{2}=\frac{B}{\left \| B \right \|},\; q_{3}=\frac{C}{\left \| C \right \|}

至此,已经完成了所有向量的归一化。 

        如果还有d向量的话,则需要从d减去d在已经构造好的向量A,B,C三个方向上的投影(或者说是减去d在A,B,C所张成的空间上的投影),得到垂直于向量A,B,C的另一个分量D。 

        Gram Schmidt正交化过程的核心思想就是:不断的用新的已知向量(例如b),减去这个向量在之前已经构造好的向量(例如A)上的投影分量(例如p_{b}),得到我们要找的垂直分量/正交向量(例如e_{b})。

即: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:

  1. %% Example of CSDN
  2. %Original points
  3. X=[0,0,0];
  4. Y=[0,0,0];
  5. Z=[0,0,0];
  6. U=[1,2,3];
  7. V=[-1,0,-3];
  8. W=[0, -2, 3];
  9. quiver3(X,Y,Z,U,V,W,0,'LineWidth',1)
  10. axis equal
  11. legend('a,b,c','Location','northwest')
  12. hold on
  13. %Orthogonal vectors
  14. U=[1,1,1];
  15. V=[-1,1,1];
  16. W=[0,-2,1];
  17. quiver3(X,Y,Z,U,V,W,0,'LineWidth',1)
  18. axis equal
  19. legend('a,b,c','A,B,C','Location','northwest')
  20. %Orthonormal bases
  21. U=[1/sqrt(2),1/sqrt(6),1/sqrt(3)];
  22. V=[-1/sqrt(2),1/sqrt(6),1/sqrt(3)];
  23. W=[0,-2/sqrt(6), 1/sqrt(3)];
  24. quiver3(X,Y,Z,U,V,W,0,'LineWidth',3)
  25. axis equal
  26. 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/06/25

格言摘抄:

        慢慢来才是最快的。--- 无名氏

(配图与本文无关)

版权声明:文中的部分图片,文字或者其他素材,可能来自很多不同的网站和说明,在此没法一一列出,如有侵权,请告知,立即删除。欢迎大家转载,但是,如果有人引用或者COPY我的文章,必须在你的文章中注明你所使用的图片或者文字来自于我的文章,否则,侵权必究。 ----松下J27

声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/知新_RL/article/detail/142884
推荐阅读
相关标签
  

闽ICP备14008679号