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

news2025/2/26 3:33:42

        在求解最小二乘的问题时,已经介绍了类似于Gram-Schmidt的一些想法。在这里要继续介绍这些想法,那就是如何“改写”矩阵A中的列向量,使得最小二乘解的计算越来越简单,甚至可以直接写出答案。

标准正交基(Orthonormal Bases)

        上一篇文章中,我们结束在三个观测点分别在t=(1,3,5)这三个时刻所得到的观测值b1,b2,b3的最小二乘直线拟合b=C+Dt。当时,我们为了让正规方程A^{T}A\hat{x}=A^{T}b更好解,通过把t减去他的均值3,得到T=t-3=(-2,0,2),实现了最小二乘解\hat{x}的快速求解(即不是简单的通过套用公式\hat{x}=(A^{T}A)^{-1}A^{T}b来计算,而是直接求解正规方程,这样一来,也避免了求A^{T}A的逆,这种精度误差较大的运算)。

        首先,对于三个数据点(t1=1,b1=1),(t2=3,b2=2),(t3=5,b3=4)而言,因A的两个列向量不是正交的,A^{T}A不是对角阵,所以,\hat{x}最好通过公式\hat{x}=(A^{T}A)^{-1}A^{T}b来计算。

\large A=\begin{bmatrix} 1 &1 \\ 1 &3 \\ 1 &5 \end{bmatrix}        \large col1=\begin{bmatrix} 1 \\ 1 \\ 1 \end{bmatrix}        \large col2=\begin{bmatrix} 1 \\ 3 \\ 5 \end{bmatrix}

\large col1^{T}*col2=9        \large A^{T}A=\begin{bmatrix} 1 &1 &1 \\ 1 &3 & 5 \end{bmatrix} \begin{bmatrix} 1 & 1\\ 1& 3\\ 1& 5 \end{bmatrix} = \begin{bmatrix} 3 & 9\\ 9 & 35 \end{bmatrix}

         矩阵A的两个列向量的内积不为0,不正交。且A^{T}A不是对角阵。后面,我们为了让A^{T}A变成对角阵,把t=(1,3,5)变成了T=(-2,0,2), A^{T}A也变成了对角阵。

\large A=\begin{bmatrix} 1 &-2 \\ 1 &0 \\ 1 &2 \end{bmatrix}        \large col1=\begin{bmatrix} 1 \\ 1 \\ 1 \end{bmatrix}        \large col2=\begin{bmatrix} -2 \\ 0 \\ 2 \end{bmatrix}

\large col1^{T}*col2=0        \large A^{T}A=\begin{bmatrix} 1 &1 &1 \\ -2 &0 & 2 \end{bmatrix} \begin{bmatrix} 1 & -2\\ 1& 0\\ 1& 2\end{bmatrix} = \begin{bmatrix} 3 & 0\\ 0 & 8 \end{bmatrix}

        更进一步,如果我们把A中的两个彼此正交的列向量(orthogonal vectors)都变成单位正交向量(orthogonal unit vectors),则A^{T}A会从对角阵变成单位矩阵I。把一个向量变成单位向量的办法是除以这个向量自身的长度。

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

 \large \large col1=\begin{bmatrix} 1 \\ 1 \\ 1 \end{bmatrix}\Rightarrow \large col1_{unit}=\begin{bmatrix} 1/\sqrt{3} \\ 1/\sqrt{3} \\ 1/\sqrt{3} \end{bmatrix}

\large col2=\begin{bmatrix} -2 \\ 0 \\ 2 \end{bmatrix}\Rightarrow \large col2_{unit}=\begin{bmatrix} -2/\sqrt{8} \\ 0 \\ 2/\sqrt{8} \end{bmatrix}

\large col1_{unit}^{T}*col2_{unit}=0        

得到单位化后的新矩阵A_{new}

\large A_{new}=\begin{bmatrix} 1/\sqrt{3} & -2/\sqrt{8}\\ 1/\sqrt{3} & 0\\ 1/\sqrt{3} & 2/\sqrt{8} \end{bmatrix}

和新的方程(注意为了维持原方程组Ax=b中的A变成A_{new}后,方程左右两边保持不变,原方程中的x也要改变,变成x_{new}=\sqrt{3}C+\sqrt{8}D):

 \large A_{new}x_{new}=\begin{bmatrix} 1/\sqrt{3} &-2/\sqrt{8} \\ 1/\sqrt{3} &0 \\ 1/\sqrt{3}&2/\sqrt{8} \end{bmatrix} \begin{bmatrix} \sqrt{3}C\\ \sqrt{8}D \end{bmatrix}=b

用这个新矩阵A_{new}去计算正规方程中的A_{new}^{T}A_{new}得到单位矩阵I:

\large A_{new}^{T}A_{new}=\begin{bmatrix} 1/\sqrt{3} &1/\sqrt{3} &1/\sqrt{3} \\ -2/\sqrt{8}&0 & 2/\sqrt{8} \end{bmatrix} \begin{bmatrix} 1/\sqrt{3} & -2/\sqrt{8}\\ 1/\sqrt{3}& 0\\ 1/\sqrt{3}& 2/\sqrt{8}\end{bmatrix} = \begin{bmatrix} 1 & 0\\ 0 & 1 \end{bmatrix}

正规方程左边A_{new}^{T}b

\large A_{new}^{T}b=\begin{bmatrix} 1/\sqrt{3} &1/\sqrt{3} &1/\sqrt{3} \\ -2/\sqrt{8}&0 & 2/\sqrt{8} \end{bmatrix} \begin{bmatrix} 1\\ 2\\ 4\end{bmatrix} = \begin{bmatrix} 7/\sqrt{3} \\ 6/\sqrt{8} \end{bmatrix}

最终得到全新的正规方程,这是一个一眼就能得到答案的全新方程组,因为A_{new}^{T}A_{new}为方阵,使得原来的正规方程变成:

\large A^{T}Ax=b\Rightarrow A_{new}^{T}A_{new}x_{new}=A_{new}^{T}b\Rightarrow Ix_{new}=A_{new}^{T}b\Rightarrow x_{new}=A_{new}^{T}b

最终得到了和原来一样的答案:

\large \sqrt{3}\hat{C}=7/\sqrt{3}\Rightarrow \hat{C}=7/3

\large \sqrt{8}\hat{D}=6/\sqrt{8}\Rightarrow \hat{D}=6/8

        在本例中,归一化后的两个相互正交的列向量col1_{new}=(1/\sqrt{3},1/\sqrt{3},1/\sqrt{3})col2_{new}=(-2/\sqrt{8},0,2/\sqrt{8})就是一组标准正交基。现在,我们给出关于标准正交基Orthonormal的正式定义:

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

        对于标准正交基而言,一个最常见的例子就是x-y二维坐标系,q1=(1,0),q2=(0,1)。我们这两个坐标轴不仅垂直,而且,我们还在坐标轴上分别用单位长度标出了每一个刻度。q1和q2共同组成了一个2x2矩阵Q,这是一个2x2的单位矩阵。

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

标准正交矩阵(Orthogonal Matrices)

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

         如果标准正交矩阵Q是一个方阵的话,则这个方阵是满秩的,且秩r=n。则有:

\large Q^{T}Q=QQ^{T}=I\; and\; Q^{T}=Q^{-1}

也就是说,如果Q是一个标准正交矩阵,则Q^{T}也是一个标准正交矩阵。

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

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

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

当A为标准正交矩阵时的投影与最小二乘

        对于一个mxn的矩阵A,如果矩阵A中的列向量都彼此正交,且向量长度都是1。则A是一个标准正交矩阵。若方程组Ax=b,无解则需要根据最小二乘的计算公式分别计算\hat{x}=(A^{T}A)^{-1}A^{T}bp=A\hat{x}=A(A^{T}A)^{-1}A^{T}b。但如果A是标准正交矩阵Q的话,或者说,如果我们先把矩阵A变成标准正交矩阵的话,就能极大的简化最小二乘的计算。

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

\large A^{T}A\hat{x}=A^{T}b\Rightarrow Q^{T}Q\hat{x}=Q^{T}b\Rightarrow \hat{x}=Q^{T}b(正规方程)

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

\large p=A(A^{T}A)^{-1}A^{T}b\Rightarrow p=Q(Q^{T}Q)^{-1}Q^{T}b \Rightarrow p=QQ^{T}b(投影)

 \large P=A(A^{T}A)^{-1}A^{T}\Rightarrow P=Q(Q^{T}Q)^{-1}Q^{T} \Rightarrow P=QQ^{T}(投影矩阵)

        在代数表达式得到改进的同时,几何表示也得到了相应的改进。根据向量的投影p=QQ^{T}b,投影变成了:

 其中:

a_{1}a_{1}^{T}=\begin{bmatrix} 1 & 0 & . &.& 0\\ 0 & 0 & .&. & .\\ . & . & . & .& .\\ .& . & . & . &. \\ 0& .&. & . &0 \end{bmatrix}        a_{2}a_{2}^{T}=\begin{bmatrix} 0 & 0 & . &.& 0\\ 0 & 1 & .&. & .\\ . & . & . & .& .\\ .& . & . & . &. \\ 0& .&. & . &0 \end{bmatrix}   依此类推。。。

 a_{n}a_{n}^{T}=\begin{bmatrix} 0 & 0 & . &.& 0\\ 0 & 0 & .&. & .\\ . & . & . & .& .\\ .& . & . & . &. \\ 0& .&. & . &1 \end{bmatrix}        

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

a_{1}a_{1}^{T}b=\begin{bmatrix} 1 & 0 & . &.& 0\\ 0 & 0 & .&. & .\\ . & . & . & .& .\\ .& . & . & . &. \\ 0& .&. & . &0 \end{bmatrix}\begin{bmatrix} b1\\ b2\\ .\\ .\\ bn\\ \end{bmatrix}=\begin{bmatrix} b1\\ 0\\ .\\ .\\ 0\\ \end{bmatrix}        a_{2}a_{2}^{T}b=\begin{bmatrix} 1 & 0 & . &.& 0\\ 0 & 0 & .&. & .\\ . & . & . & .& .\\ .& . & . & . &. \\ 0& .&. & . &0 \end{bmatrix}\begin{bmatrix} b1\\ b2\\ .\\ .\\ bn\\ \end{bmatrix}=\begin{bmatrix} 0\\ b2\\ .\\ .\\ 0\\ \end{bmatrix} 依此类推。。。

a_{n}a_{n}^{T}b=\begin{bmatrix} 1 & 0 & . &.& 0\\ 0 & 0 & .&. & .\\ . & . & . & .& .\\ .& . & . & . &. \\ 0& .&. & . &0 \end{bmatrix}\begin{bmatrix} b1\\ b2\\ .\\ .\\ bn\\ \end{bmatrix}=\begin{bmatrix} 0\\ 0\\ .\\ .\\ bn\\ \end{bmatrix}

用几何图像来表示就是:

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

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

 

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

例如:

\large Qx\; \begin{bmatrix} 1 &0 &0 \\ 0 & 1 &0 \\ 0 &0 & 1 \end{bmatrix}\begin{bmatrix} x\\ y\\ z \end{bmatrix}=\begin{bmatrix} x\\ y\\ z \end{bmatrix}\; b

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

小结:

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

2,        左右两边同时乘以A^{T},得到正规方程A^{T}A\hat{x}=A^{T}b

3,        求解正规方程,得到\hat{x}=(A^{T}A)^{-1}A^{T}b

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

5,        左右两边同时乘以Q^{T},得到新的正规方程Q^{T}Q\hat{x}=Q^{T}b

6,        因为Q^{T}Q=I,极大了简化正规方程,得到\hat{x}=Q^{T}b

7,        与此同时,也简化了投影p的计算,得到p=QQ^{T}b


 (全文完)

作者 --- 松下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

(配图与本文无关)

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

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/413103.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

3.1 多维度随机变量及其分布

思维导图: 学习目标: 要学习二维随机变量及联合分布,我会按照以下步骤进行: 了解基本概念:首先要了解二维随机变量的概念,即同时包含两个随机变量的变量。还要了解二维随机变量的取值范围以及联合概率密…

【CSS】定位 ④ ( 绝对定位特点 | 相对定位不脱标示例 | 绝对定位脱标示例 )

文章目录一、绝对定位特点二、相对定位不脱标示例三、绝对定位脱标示例一、绝对定位特点 绝对定位 以 带有定位的 父级元素 为基准 , 通过 边偏移 移动位置 ; 如果 绝对定位 的元素 的 父级元素 没有定位 , 那么会 一直向上查找有定位的父级元素 , 直到浏览器 ; 绝对定位 元素…

【Linux】组管理和权限管理

目录1 Linux组的基本介绍2 文件/目录所有者2.1 查看文件的所有者2.2 修改文件所有者3 组的创建3.1 基本指令3.2 应用实例4 文件/目录 所在组4.1 查看文件/目录所在组4.2修改文件/目录所在的组5 其他组6 改变用户所在组6.1 改变用户所在的组6.2 应用实例7 权限介绍8 rwx权限详解…

多线程(八):常见锁策略

目录 前言 1. 乐观锁 VS 悲观锁 乐观锁 悲观锁 2. 轻量级锁 VS 重量级锁 轻量级锁 3. 自旋锁 VS 挂起等待锁 自旋锁 挂起等待锁 4. 读写锁 VS 互斥锁 5. 可重入锁 vs 不可重入锁 死锁 发生死锁的情况 死锁产生的四个必要条件如下: 6. 公平锁和非公平锁…

Hibernate多表关联——(一对多关系)

Hibernate多表关联——(一对多关系) 文章目录Hibernate多表关联——(一对多关系)1.分别在类中添加属性:2.hibernate建表3.使用测试类在表中添加数据hibernate是连接数据库使得更容易操作数据库数据的一个框架&#xff…

ERROR:org.apache.hadoop.hbase.PleaseHoldException: Master is initializing错误

一、问题 重新安装hbase后,在hbase shell中查看所有命名空间时,出现了ERROR:org.apache.hadoop.hbase.PleaseHoldException: Master is initializing错误。 二、方法 1、root用户下,关闭hbase stop-hbase.sh 2、执行以下命令删除HDFS下的hb…

go进阶篇gin框架系列三

一、模板引擎的语法 {{.}} 模板语法都包含在{{和}}中间,其中{{.}}中的点表示当前对象。 当我们传入一个结构体对象时,我们可以根据.来访问结构体的对应字段。 pipeline pipeline是指产生数据的操作。比如{{.}}、{{.Name}}等。Go的模板语法中支持使用管道…

JavaWeb开发 —— Element组件

目录 一、什么是Element? 二、快速入门 三、常见组件 一、什么是Element? ① Element:是饿了么团队研发的,一套为开发者、设计时和产品经理准备的基于Vue 2.0 的桌面端组件库。 ② 组件:组成网页的部件&#xff0…

FIFO的工作原理及其设计

1.简介 FIFO( First Input First Output)简单说就是指先进先出。FIFO存储器是一个先入先出的双口缓冲器,即第一个进入其内的数据第一个被移出,其中一个口是存储器的输入口,另一个口是存储器的输出口。 对于单片FIFO来说,主要有两种…

文字转语音软件的优缺点及如何选择最适合的工具

随着科技的进步,文字转语音技术已经越来越成熟,越来越多的人开始使用文字转语音软件来转换文本为语音。这种技术可以帮助人们在许多方面,例如改善阅读体验、方便学习、提高生产效率等。然而,文字转语音软件有其优缺点,…

一文读懂推荐系统用户画像

1.推荐系统用户画像 用户画像这个词具有广泛性。 它被应用于推荐,广告,搜索,个性化营销等各个领域。任何时候,不管出于什么目的,我们想描述我们的用户是谁的时候,大家都会用到用户画像这个词。 比如&…

VUE_学习笔记

一、 xx 二、模板语法 1.模板语法之差值语法 :{{ }} 主要研究:{{ 这里可以写什么}} 在data中声明的变量、函数等都可以。常量只要是合法的javascript表达式,都可以。模板表达式都被放在沙盒中,只能访问全局变量的一个白名单&a…

精准关键词获取-行业搜索词分析

SEO关键词的收集通常可以通过以下几种方法: 根据市场价值、搜索词竞争性和企业实际产品特征进行筛选:确定您的关键词列表之前,建议先进行市场分析,了解您的竞争对手、行业状况和目标受众等信息,以更好的了解所需的特定…

MySQL日志

MySQL日志 错误日志 错误日志是MySQL中最重要的日志之一,它记录了当mysqld启动和停止时,以及服务器在运行过程中发生任何严重错误时的相关信息。当数据库出现任何故障导致无法正常使用时,建议首先查看此日志。 使用如下命令,可…

ChatGPT宝藏插件丨装上之后,上网、语音聊天、一键分享对话……简直让你爽到起飞!

今天分享4个让你的 ChatGPT 功能更强大的浏览器插件,装上就能用,每一个都是精挑细选。 1. WebChatGPT 很多小伙伴在用 ChatGPT查阅信息时,发现它有一个致命的问题: ChatGPT的知识库全部截止到 2021年9月,正常情况下…

航拍构图方法

目录 简介 对比构图 重复对比 明暗对比 颜色对比 空间错位 点构图 中心点构图 九宫格构图 线构图 二分线(水平、对称)构图 三分线构图 平行线构图 对角线构图 引导线构图 面构图 前景构图 简化构图 总结 简介 最近接触了无人机&#xf…

MySQL数据库备份(导出导入)的命令详解mysqldump

![在这里插入图片描述](https://img-blog.csdnimg.cn/174ee9e5170445b7acab94c5d97684ea.png [options] 参数参数说明-A, --all-databases导出所有数据库-B, --databases导出指定数据库-h, --hostname指定ip,默认本机-P, --port#指定端口,默认3306-u, …

【Java面试八股文宝典之MySQL篇】备战2023 查缺补漏 你越早准备 越早成功!!!——Day21

大家好,我是陶然同学,软件工程大三即将实习。认识我的朋友们知道,我是科班出身,学的还行,但是对面试掌握不够,所以我将用这100多天更新Java面试题🙃🙃。 不敢苟同,相信大…

JavaEE——文件操作与IO操作

目录 文件路径 文件类型 File类 文件的创建 文件流 File类文件读写操作 通过PrintWriter写或Scanner读 PrintWriter写 Scanner读 文件路径 计算机中的文件是以树形结构进行存储的。要找一个文件,需要通过根目录一层一层找,直到找到,…

不敲代码用ChatGPT开发一个App

先说下背景,有一天我在想 ChatGPT 对于成熟的开发者来说已经是一个非常靠谱的助手了,身边也确实有很多同事把它作为一个离不开的助理担当。 但是如果我只是略微懂一点前端知识的新人,了解 HTML、CSS、JS 相关的知识,想开发一个安…