线性代数 --- Gram-Schmidt, 格拉姆-施密特正交化(上)

这篇具有很好参考价值的文章主要介绍了线性代数 --- Gram-Schmidt, 格拉姆-施密特正交化(上)。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

Gram-Schmidt正交化

        在前面的几个最小二乘的文章中,实际上已经看到Gram-Schmidt正交化的影子。在我个人看来,Gram-Schmidt正交化更像是专门为了简化最小二乘计算而量身定制的一种算法。下面,我会从最小二乘的经典应用 --- "拟合直线"开始,慢慢引出Gram-Schmidt的核心思想 ——> 那就是,究竟如何“改写”矩阵A中的列向量,才能在最大程度上简化最小二乘的求解过程呢?


Independent vectors(线性无关向量所组成的矩阵)

        很多关于最小二乘法的文章中都绕不开直线拟合问题,在讲Gram-Schmidt之前,让我们先从下面的例子开始:

        已知的三个数据点(当t1=1,b1=1),(当t2=3,b2=2)和(当t3=5,b3=4),现在用这三个点去拟合一条直线b=C+Dt。首先根据这三个已知的数据点,可得到如下线性方程组:

线性代数 --- Gram-Schmidt, 格拉姆-施密特正交化(上)

根据方程组等式的左边部分,得到系数矩阵A(暂时先不考虑三个时间点所对应的值b):

矩阵A的两个列向量的内积不为0,不正交(但,线性无关)

                

如下图所示:

线性代数 --- Gram-Schmidt, 格拉姆-施密特正交化(上)

Matlab code:

close all
clear all

%时间t=[1 3 5]不在0的两侧,A中的两个列向量不正交,生成的A'A不是主对角线左右两边都是0的对角阵
A=[1 1 1;1 3 5]'
b=[1 2 4]'

col1=A(:,1)
col2=A(:,2)

col1'*col2

A'*A

%plot
X=[0,0];
Y=[0,0];
Z=[0,0];
U=[1,1];
V=[1,3];
W=[1,5];

quiver3(X,Y,Z,U,V,W,0,'LineWidth',1)
axis equal
legend('Col1,Col2','Location','northwest')

        且方程组的右端b=[1 2 4]不在A的列空间内,原方程组无解,需要通过最小二乘法来求近似解。套用最小二乘公式得到,其中与的逆分别为:

        

方程的近似解为:

套用公式,得到投影向量p为:

注意:如下图所示,col1和col2可以张成了一个二维平面,且由于方程组无解,所以b不在该平面内。但,b在该平面上的投影p在该平面内。

 ​​​​​

线性代数 --- Gram-Schmidt, 格拉姆-施密特正交化(上)


orthogonal vectors(正交向量组成的矩阵)

        为了让正规方程更好求解,我们把原有的t=(1,3,5)减去均值3,变成T=(-2,0,2),矩阵A也变成了:

新矩阵中的两个列向量的内积为0,矩阵A的两个列向量也从非正交变成了正交

              

如下图所示:  

线性代数 --- Gram-Schmidt, 格拉姆-施密特正交化(上)

Matlab code:

%时间t=[-2 0 2]位于0的两侧对称,A中的两个列向量彼此正交,A'A可以生成主对角线左右两边都是0的对角阵
A=[1 1 1;-2 0 2]'

col1=A(:,1)
col2=A(:,2)

col1'*col2

A'*A

%plot
Q1=[1,-2];
Q2=[1,0];
Q3=[1,2];
hold on
quiver3(X,Y,Z,Q1,Q2,Q3,0,'LineWidth',2)

legend('Col1,Col2','New Col1,New Col2','Location','northwest')

同时,我们还发现,如果矩阵A中的列向量彼此正交,最小二乘公式中的 就变成了对角阵:

   


 补充:

线性代数 --- Gram-Schmidt, 格拉姆-施密特正交化(上)

且对角阵有如下性质:

线性代数 --- Gram-Schmidt, 格拉姆-施密特正交化(上)


        这就是说,通过这一步对矩阵A的改变,达到了简化了求解近似解的目的,同时也简化了投影向量p的计算。因为为对角阵,所以我们可以直接写出的逆,即,直接取所有对角线元素的倒数:

方程的近似解,也变成了(和之前求出的结果不同):

套用公式,投影p仍然是(p的计算也同时被简化了):

        可见,通过对A的修改可实现最小二乘的快速求解。如此一来,就不再需要机械的套用公式,而是直接求解简化后的正规方程,就能得到答案,同时也避免了求的逆,这种精度误差较大的运算。

        注意:矩阵A的改变虽然改变了,但投影p不变。这说明,矩阵A的变化并没有改变A的列空间,即从A=[1 1 1;;1 3 5]'到A=[1 1 1;-2 0 2]',矩阵的A的列空间是一样的。因为,如果对他们进行高斯消元,得到的最简行阶梯矩阵是一样的=[1 0 0,0 1 0]'。


 orthogonal unit vectors(归一化后的正交向量所组成的矩阵)

        更进一步,如果我们把A中的两个已经彼此正交的列向量(orthogonal vectors)都变成单位正交向量(orthogonal unit vectors),则会从对角阵变成单位矩阵I,的逆也变成了单位矩阵

        把矩阵A中已经彼此正交的向量,变成单位正交向量的方法是:把A中的每一个向量进行单位化(也叫归一化),即,该向量除以这个向量自身的长度。

线性代数 --- Gram-Schmidt, 格拉姆-施密特正交化(上)

根据向量长度的计算公式,列向量col1的长度为,col2的长度为,归一化后有:

 

内积为0,彼此正交: 

        

如下图所示:     

线性代数 --- Gram-Schmidt, 格拉姆-施密特正交化(上)

Matlab code:

%把矩阵A中的两个相互正交的列向量变成单位向量,这样一来,A也变成了标准正交矩阵
Length_Col1 = sqrt(sum(col1.^2));
Length_Col2 = sqrt(sum(col2.^2));
col1_unit=col1./Length_Col1
col2_unit=col2./Length_Col2

A_unit=[col1_unit col2_unit]

% check:对于标准正交矩阵而言,有A'A=I
A_unit'*A_unit

%plot
Q1=[1/Length_Col1,-2/Length_Col2];
Q2=[1/Length_Col1,0/Length_Col2];
Q3=[1/Length_Col1,2/Length_Col2];
hold on
quiver3(X,Y,Z,Q1,Q2,Q3,0,'LineWidth',2)

legend('Col1,Col2','NewCol1,NewCol2','Unit NewCol1,Unit NewCol2','Location','northwest')

单位化后,矩阵A又变成了矩阵:

还有新的方程:(注意:为了维持原方程组Ax=b中的A变成后,方程左右两边保持不变,原方程中的x也要改,变成线性代数 --- Gram-Schmidt, 格拉姆-施密特正交化(上))

 

现在,基于这个新矩阵生成正规方程,右边的计算结果就是单位矩阵I:

正规方程左边:

也就是说,当矩阵A中的列向量变成单位正交向量后,极大的简化了近似解的计算。因为为单位矩阵,使得原来的正规方程变成了:

与此同时,近似解的计算公式也被极大地简化了:

最终得到的答案和之前一样:

      在本例中,归一化后的两个相互正交的单位列向量和是一组标准正交基

Matlab code:

%% 用简化后的公式计算正规方程的解
%x=Q'b
x=A_unit'*b

x_new=[x(1)/Length_Col1; x(2)/Length_Col2]

%P=QQ'
P=A_unit*A_unit'

%projection p=QQ'b
p=P*b

标准正交基(Orthonormal Bases)

现在,我们给出关于标准正交基Orthonormal的正式定义:

线性代数 --- Gram-Schmidt, 格拉姆-施密特正交化(上)

        如果一组列向量,他们满足彼此之间的内积为0(正交性),且,他们的长度都为1(归一化)。则,我们把这样的一组列向量称为标准正交基Orthonomal。同时,我们也把由标准正交基组成的矩阵用大写的英文字母Q来表示。

        对于标准正交基而言,一个最常见的例子就是x-y二维坐标系。x轴和y轴不仅相互垂直,坐标轴上的每一个刻度都是该轴所对应的单位向量的长度的倍数(如果用q1=(1,0)表示x轴的单位向量,用q2=(0,1)表示y轴的单位向量的话)。q1和q2共同组成了一个2x2矩阵Q,这是一个2x2的单位矩阵。

        对于n维空间,同样有n个坐标轴e1,e2,....en,他们也是一组标准正交基,且他们所组成的矩阵Q也是一个单位阵。

线性代数 --- Gram-Schmidt, 格拉姆-施密特正交化(上)


标准正交矩阵Q(Orthogonal Matrices)

        我们把用标准正交基q1,q2...qn所组成的矩阵称为标准正交矩阵Q,Q可以是方阵也可以不是方阵。且,。

线性代数 --- Gram-Schmidt, 格拉姆-施密特正交化(上)

如果标准正交矩阵Q是一个方阵的话,则有:

线性代数 --- Gram-Schmidt, 格拉姆-施密特正交化(上)

也就是说,如果方阵Q是一个标准正交矩阵,则方阵Q的转置就是Q的逆矩阵。

线性代数 --- Gram-Schmidt, 格拉姆-施密特正交化(上)

 

例:任何置换矩阵P(permutation matrix)都是一个标准正交矩阵。

线性代数 --- Gram-Schmidt, 格拉姆-施密特正交化(上)

         上图的两个置换矩阵,分别交换了(x,y,z)的位置和交换了(x,y)的位置。由于,这两个置换矩阵P的列向量都是单位向量,且彼此两两正交,所以是标准正交矩阵。

        最后,在这里补充一条标准正交矩阵Q的又一条重要性质,即,用一个标准正交矩阵Q去乘一个任意向量都不会改变这个向量的长度。(书上上,这一性质还挺重要的,只是我暂时没发现)

线性代数 --- Gram-Schmidt, 格拉姆-施密特正交化(上)


标准正交矩阵的投影与最小二乘

        对于一个mxn的矩阵A,如果矩阵A中的列向量都彼此正交,且向量长度都是1。则A是一个标准正交矩阵。若方程组Ax=b无解,则需要根据最小二乘的计算公式分别计算和。但如果A是标准正交矩阵Q的话,或者说,如果我们预先把原本不是标准正交矩阵的矩阵A变成标准正交矩阵Q的话,就能极大的简化最小二乘的计算。如下图所示,下图中横线处都是原来需要计算的部分,因为标准正交矩阵的性质,都变成了单位矩阵I,等同于不再需要计算了。

线性代数 --- Gram-Schmidt, 格拉姆-施密特正交化(上)

也就是说,如果我们能够在计算任意矩阵A的最小二乘解之前,预先把A改造成标准正交矩阵Q,则能够带来以下的一些计算上的简化与便利。:

第一:他极大地简化了正规方程的表达式,同时,直接给出了最小二乘解。

(正规方程)

第二:他简化了所有包含的计算,同时,更重要的是他也避免了求的逆。

(投影)

 (投影矩阵)


标准正交矩阵的几何表示

        标准正交矩阵Q所带来的影响,并不仅仅体现在简化计算公式上,在投影的几何表示上也有相应的体现。当A为正交矩阵Q时,向量的投影()可写成在每一个列向量上的投影的和的形式:

线性代数 --- Gram-Schmidt, 格拉姆-施密特正交化(上)

 其中:

        

依此类推。。。

        

令b=(b1,b2,...,bn),则有:

        

 依此类推。。。

用几何图像来表示就是:

线性代数 --- Gram-Schmidt, 格拉姆-施密特正交化(上)

也就是说,向量b在A所张成的列空间上的投影p等于,b在每个坐标轴上的投影的和。

        此外,当A为标准正交矩阵时(当A为方阵时,m=n),A中的列向量可以张满整个。A中的每个列向量,实际上就是n维正交坐标系中的每个轴所对应的单位向量。对于中的任意一个向量b,b在A的列空间内,所以可以写成Ax=b的形式,x中的每个元素都是A中各列所对应的权重。当A为Q时,我们把Qx=b写成如下形式:

 线性代数 --- Gram-Schmidt, 格拉姆-施密特正交化(上)

q1,q2,...,qn分别表示n维坐标系中的每个坐标轴上的单位向量,这样一来,上式所表示的就是,在n维直角坐标系中,任意一个向量b等于,他在q1轴,q2轴,。。。qn轴上分量的和。

例如:

线性代数 --- Gram-Schmidt, 格拉姆-施密特正交化(上)

当x=1.5,y=1,z=2时有。

线性代数 --- Gram-Schmidt, 格拉姆-施密特正交化(上)

小结:

1,        给定的mxn方程组 Ax=b 无解

2,        左右两边同时乘以,得到正规方程

3,        求解正规方程,得到

4,        若A是一个标准正交矩阵Q,则改Ax=b为Qx=b

5,        左右两边同时乘以,得到新的正规方程

6,        极大的简化了原来计算,得到

7,        与此同时,也简化了投影p的计算,得到


 (全文完)

作者 --- 松下J27

参考文献(鸣谢):

1,Introduction to Linear Algebra,Fifth Edition - Gilbert Strang

2,线性代数及其应用,候自新,南开大学出版社 1990

3,Linear Algebra and Its Applications, Second Edition, Gilbert Strang, 1980

4,Linear Algebra and Its Applications, Fourth Edition, Gilbert Strang, 2005

增加了插图和对应的matlab代码,2023/05/24

对全文进行了大量的修改。2023/06/25

对文章开始处的例子进行了进一步的修改。2023/10/10

古诗词赏析:

《左迁至蓝关示侄孙湘》

唐---韩愈

一封朝奏九重天,夕贬潮州路八千。
欲为圣明除弊事,肯将衰朽惜残年!
云横秦岭家何在?雪拥蓝关马不前。
知汝远来应有意,好收吾骨瘴江边。

线性代数 --- Gram-Schmidt, 格拉姆-施密特正交化(上)

(配图与本文无关)

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

到了这里,关于线性代数 --- Gram-Schmidt, 格拉姆-施密特正交化(上)的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • 17正交矩阵和Gram-Schmidt正交化

    在 R mathbb R R 中,两个向量内积(Inner product)和点积(Dot product)是同一个概念,也就是内积与点积一样。但在 C mathbb C C 中,点积仍然被定义为对应元素相乘,而内积则被附加了共轭以保证物理性质。 对于两个向量 v v v 和 w w w ,如果它们之间的内积为0,那么它们被称为正

    2024年02月05日
    浏览(41)
  • 施密特正交化(Gram-Schmidt Orthogonalization)

    注:本博文为本人阅读论文、文章后的原创笔记,未经授权不允许任何转载或商用行为,否则一经发现本人保留追责权利。有问题可留言联系,欢迎指摘批评,共同进步!!! 问 :以三维情况为例,已知三个 线性无关 的向量 a mathbf{a} a 、 b mathbf{b} b 、 c mathbf{c} c ,如何能

    2024年01月17日
    浏览(71)
  • 线性代数的学习和整理2:什么是线性,线性相关,线性无关 以及什么是线性代数?

    目录 1 写在前面的话 1.1 为什么要先总结一些EXCEL计算矩阵的工具性知识, 而不是一开始就从基础学起呢?  1.2 关于线性代数入门时的各种灵魂发问: 1.3 学习资料 2 什么是线性(关系)? 2.1 线性的到底是一种什么关系: 线性关系=正比例/正相关关系 ≠ 直线型关系 2.2 一次函数

    2024年02月10日
    浏览(56)
  • 线性代数的学习和整理2:什么是线性,线性相关,线性无关 及 什么是线性代数?

    目录 1 写在前面的话 1.1 为什么要先总结一些EXCEL计算矩阵的工具性知识, 而不是一开始就从基础学起呢?  1.2 关于线性代数入门时的各种灵魂发问: 1.3 学习资料 2 什么是线性(关系)? 2.1 线性的到底是一种什么关系: 线性关系=正比例/正相关关系 ≠ 直线型关系 2.2 一次函数

    2024年02月11日
    浏览(139)
  • 线性代数思维导图--线性代数中的线性方程组(1)

    1.解线性方程组 2.线性方程组解的情况 3.线性方程组的两个基本问题 1.阶梯型矩阵性质 2.简化阶梯型矩阵(具有唯一性) 3.行化简算法 4.线性方程组的解 1.R^2中的向量 2.R^2中的几何表示 3.R^n中的向量 4.线性组合与向量方程 5.span{v},span{u,v}的几何解释 1.定义 2.定理 3.解的存在性

    2024年02月02日
    浏览(90)
  • 【线性代数及其应用 —— 第一章 线性代数中的线性方程组】-1.线性方程组

    所有笔记请看: 博客学习目录_Howe_xixi的博客-CSDN博客 https://blog.csdn.net/weixin_44362628/article/details/126020573?spm=1001.2014.3001.5502 思维导图如下:  内容笔记如下:

    2024年02月06日
    浏览(67)
  • 线性代数的学习和整理15:线性代数的快速方法

       5  空间的同构 下面再谈谈同构。线性空间千千万,应如何研究呢?同构就是这样一个强大的概念,任何维数相同的线性空间之间是同构的,空间的维数是简单而深刻的,简单的自然数居然能够刻画空间最本质的性质。借助于同构,要研究任意一个n维线性空间,只要研究

    2024年02月11日
    浏览(60)
  • 线性代数的学习和整理9:线性代数的本质(未完成)

    目录 1 相关英语词汇 1.1 元素 1.2 计算 1.3 特征 1.4 线性相关 1.5 各种矩阵 1.6 相关概念 2 可参考经典线性代数文档 2.1 学习资料 2.2 各种文章和视频 2.3 各种书 2.4 下图是网上找的思维导图 3 线性代数的本质 3.1 线性代数是第2代数学模型 一般的看法 大牛总结说法: 3.2   线性代

    2024年02月09日
    浏览(59)
  • 线性代数 4 every one(线性代数学习资源分享)

            版权说明,以下我分享的都是一个名叫Kenji Hiranabe的日本学者,在github上分享的,关于Gilbert Strang教授所撰写的《Linear Algebra for Everyone》一书的总结,更像是一个非常精美的线性代数手册,欢迎大家下载收藏。如果我的的这篇分享文章中涉嫌侵犯版权,我会立即删

    2024年02月15日
    浏览(51)
  • 线性代数·关于线性相关和线性组合

    我本来对线性相关和线性组合的理解是,如果几个向量线性相关,那么等价于他们可以互相线性表示。但其实这是一个误区。 线性相关是对一组向量之间的关系而言的,这里面会存在极大线性无关组。极大线性无关组确定了一个空间,线性相关表示向量都落在这个空间里,会

    2024年02月12日
    浏览(52)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包