正交矩阵的模_正交矩阵的向量组

正交矩阵的模_正交矩阵的向量组本节主要讲解正交(orthogonal)概念对于向量、基和子空间的意义。1.正交向量Orthogonalvectors2.正交子空间Orthogonalsubspaces3.零空间与行空间正交Nullspaceisperpendiculartorowspace4.矩阵A^TA

大家好,又见面了,我是你们的朋友全栈君。如果您正在找激活码,请点击查看最新教程,关注关注公众号 “全栈程序员社区” 获取激活教程,可能之前旧版本教程已经失效.最新Idea2022.1教程亲测有效,一键激活。

Jetbrains全家桶1年46,售后保障稳定

  本节主要讲解正交(orthogonal)概念对于向量、基和子空间的意义。复习本节时,如果能够快速回忆出正交补与 A x = b Ax=b Ax=b之间的关系,那么说明就已经掌握清楚了。


在这里插入图片描述

  需要注意的是行空间与零空间是正交的,而列空间与左零空间是正交的。这张图是 GS 最得意的作品之一, 它反映了四个子空间的关系, 在后面的课程中可以看到其两两形成正交,在
R n R^n Rn 空间中的向量会向两个子空间投影,并向
R m R^m Rm空间形成映射,反之亦然。

1. 正交向量 Orthogonal vectors

在这里插入图片描述
  正交就是垂直(perpendicular)的另一种说法。两向量正交的判据之一是其点积 x T y = y T x = 0 x^Ty=y^Tx=0 xTy=yTx=0。当两个向量的夹角为 90 度时,按照勾股定理(毕达哥拉斯定理Pythagorean theorem)x,y 满足:
∥ x ∥ 2 + ∥ y ∥ 2 = ∥ x + y ∥ 2 , 其 中 ∥ x ∥ 2 = x T x \| x \| ^ { 2 } + \| y \| ^ { 2 }=\| x + y\| ^ { 2 },其中\| x \| ^ { 2 }=x^Tx x2+y2=x+y2x2=xTx

  例如 x = [ 1 2 3 ] x = \left[ \begin{array} { l } { 1 } \\ { 2 } \\ { 3 } \end{array} \right] x=123 y = [ 2 − 1 0 ] y = \left[ \begin{array} { c } { 2 } \\ { – 1 } \\ { 0 } \end{array} \right] y=210,则 x + y = [ 3 1 3 ] x + y = \left[ \begin{array} { l } { 3 } \\ { 1 } \\ { 3 } \end{array} \right] x+y=313 ∥ x ∥ 2 = 14 \| x \| ^ { 2 } = 14 x2=14 ∥ y ∥ 2 = 5 \| y \| ^ { 2 } = 5 y2=5 ∥ x + y ∥ 2 = 19 \| x +y\| ^ { 2 } = 19 x+y2=19

  将勾股定理展开进行计算,则有 x T x + y T y = ( x + y ) T ( x + y ) = x T x + y T y + x T y + y T x x^Tx+y^Ty=(x+y)^T(x+y)=x^Tx+y^Ty+x^Ty+y^Tx xTx+yTy=(x+y)T(x+y)=xTx+yTy+xTy+yTx。得到 2 x T y = 0 2x^Ty=0 2xTy=0

  零向量与所有向量都正交。

2. 正交子空间 Orthogonal subspaces

  子空间 S S S与子空间 T T T正交,则 S S S中的任意一个向量都和 T T T中的任意向量正交。黑板所在的平面和地板所在平面不是正交关系,沿两者的交线方向的向量同时属于两个平面,但并不与自己正交。所以如果两个平面的交点(交线)如果不是零向量,则它们就不是正交的。

  如果在平面内(二维空间)讨论正交子空间,平面的子空间包括只包含零向量的0 空间、过原点的直线以及整个平面。经过原点的直线不会和整个空间正交;0空间和过原点的直线正交(0空间与任意空间正交);经过原点的两条直线若夹角为直角则互相正交。

3. 零空间与行空间正交 Nullspace is perpendicular to row space

  矩阵 A A A的行空间和它的零空间正交。若 x x x在零空间内,则有 A x = 0 Ax=0 Ax=0,将 A A A表示为行向量的格式:

[ r o w 1 r o w 2 ⋮ r o w m ] [ x ] = [ r o w 1 ⋅ x r o w 2 ⋅ x ⋮ r o w m ⋅ x ] = [ 0 0 ⋮ 0 ] \left[ \begin{array} { c } { r o w _ { 1 } } \\ { r o w _ { 2 } } \\ { \vdots } \\ { r o w _ { m } } \end{array} \right] [ x ] = \left[ \begin{array} { c } { { row } _ { 1 } \cdot x } \\ { row _ { 2 } \cdot x } \\ { \vdots } \\ { { row } _ { m } \cdot x } \end{array} \right]=\left[ \begin{array} { l } { 0 } \\ { 0 } \\ { \vdots } \\ { 0 } \end{array} \right] row1row2rowm[x]=row1xrow2xrowmx=000

   x x x与矩阵 A A A的行向量点积都等于 0,则它和矩阵 A A A 行向量的线性组合进行点积也为 0,所以 x x x A A A的行空间正交。 x x x为零空间内的任意向量,所以零空间与行空间正交。(一vs多->多vs多)

  同理可以证明列空间与左零空间正交。

  行空间和零空间实际上把 R n R^n Rn空间分割成了两个正交的子空间。例如对于矩阵:

A = [ 1 2 5 2 4 10 ] A = \left[ \begin{array} { l l l } { 1 } & { 2 } & { 5 } \\ { 2 } & { 4 } & { 10 } \end{array} \right] A=[1224510]

  则其行空间是1维的,向量 [ 1 2 5 ] \left[ \begin{array} { l } { 1 } \\ { 2 } \\ { 5 } \end{array} \right] 125是它的基向量,而其零空间是垂直于 [ 1 2 5 ] \left[ \begin{array} { l } { 1 } \\ { 2 } \\ { 5 } \end{array} \right] 125并穿过原点的 2 维平面。其中零空间的法向量为 [ 1 2 5 ] \left[ \begin{array} { l } { 1 } \\ { 2 } \\ { 5 } \end{array} \right] 125

4. 正交补Orthogonal Complements

  行空间和零空间不仅仅是正交,并且其维数之和等于 n,我们称行空间和零空间为 R n R^n Rn空间内的正交补(orthogonal complements)。
d i m   N ( A ) + d i m   C ( A T ) = n dim\ N(A)+dim \ C(A^T)=n dim N(A)+dim C(AT)=n

  正交补的概念很重要,它表明 R n R^n Rn中的任何一个向量 x x x都可以拆分为互为正交补的子空间的向量之和。以 A x = b Ax=b Ax=b的解 x x x为例, x x x是属于 R n R^n Rn中的向量, x x x可以拆分为在行空间的分量 x r x_r xr和零空间中的分量 x n x_n xn之和,即 x = x r + x n x=x_r+x_n x=xr+xn A x = b Ax=b Ax=b可以进行如下拆解:
零 空 间 分 量 : A x n = 0 零空间分量:Ax_n=0 Axn=0

行 空 间 分 量 : A x r = b 行空间分量:Ax_r=b Axr=b

  这表示零空间包含所有和行空间正交的向量,反之亦然。 想想我们之前提到的黑板和地板平面不是正交子空间的例子,二者都在 3 维空间中,分别为 2 维空间,因此不可能正交。一个空间中正交子空间的维数之和不可能超过原空间的维数。

  我们可以称目前讨论的这部分内容是线性代数基本定理的第二部分。第一部分是给出四个子空间和它们的维数,第二部分说明它们是两两互为正交补,第三部分讨论子空间的正交基。 这些内容都反映在了本讲座开始的那幅图上。

5. 矩阵 A T A A^TA ATA

  下面讨论如何求解一个无解方程组 A x = b Ax=b Ax=b的解(b不在A的列空间中)。如果 A A A是长方形矩阵,m 大于 n(方程数大于未知数)。当左侧方程数特别多的时候,容易混入“坏”数据,方程变得无解。但是对于数据的可信度我们无从判断,线性代数要做的就是在这种条件下求一个方程的“最优解”(把好数据筛选出来)。其中一种求解方法是删掉一些方程,使得矩阵变成可逆的方阵,然后进行求解。但是由于无法判断哪些数据是好数据,哪些是坏数据。希望利用所有测量值求出最优解,从而得到最完整的信息。

  矩阵 A T A A^TA ATA会发挥重要作用,它是一个 n ∗ n n*n nn方阵,并且是对称阵, ( A T A ) T = A T A (A^TA)^T=A^TA (ATA)T=ATA

  本章的核心内容就是 A x = b Ax=b Ax=b无解的时候,求解 A T A x ^ = A T b A^TA\hat { x }=A^Tb ATAx^=ATb得到最优解

   A = [ 1 1 1 2 1 5 ] A=\left[ \begin{array} { l l } { 1 } & { 1 } \\ { 1 } & { 2 } \\ { 1 } & { 5 } \end{array} \right] A=111125,则 A T A = [ 1 1 1 1 2 5 ] [ 1 1 1 2 1 5 ] = [ 3 8 8 30 ] 是 可 逆 矩 阵 A ^ { T } A = \left[ \begin{array} { l l l } { 1 } & { 1 } & { 1 } \\ { 1 } & { 2 } & { 5 } \end{array} \right] \left[ \begin{array} { l l } { 1 } & { 1 } \\ { 1 } & { 2 } \\ { 1 } & { 5 } \end{array} \right]=\left[ \begin{array} { c c } { 3 } & { 8 } \\ { 8 } & { 30 } \end{array} \right]是可逆矩阵 ATA=[111215]111125=[38830]

   A = [ 1 3 1 3 1 3 ] A=\left[ \begin{array} { l l } { 1 } & { 3 } \\ { 1 } & { 3 } \\ { 1 } & { 3 } \end{array} \right] A=111333,则 A T A = [ 1 1 1 3 3 3 ] [ 1 3 1 3 1 3 ] = [ 3 9 9 27 ] 是 不 可 逆 矩 阵 A ^ { T } A = \left[ \begin{array} { l l l } { 1 } & { 1 } & { 1 } \\ { 3 } & { 3 } & { 3 } \end{array} \right] \left[ \begin{array} { l l } { 1 } & { 3 } \\ { 1 } & { 3 } \\ { 1 } & { 3 } \end{array} \right]=\left[ \begin{array} { c c } { 3 } & { 9 } \\ { 9 } & { 27 } \end{array} \right]是不可逆矩阵 ATA=[131313]111333=[39927]

  实际上 N ( A T A ) = N ( A ) N(A^TA)=N(A) N(ATA)=N(A),并且矩阵 A T A A^TA ATA的秩等于 A A A的秩。因此矩阵 A T A A^TA ATA可逆要求 A A A的零空间只有零向量,即 A A A 的列向量线性无关。

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请联系我们举报,一经查实,本站将立刻删除。

发布者:全栈程序员-站长,转载请注明出处:https://javaforall.net/200637.html原文链接:https://javaforall.net

(0)
全栈程序员-站长的头像全栈程序员-站长


相关推荐

  • “DropDownList1“有一个无效 SelectedValue,因为它不在项目列表中。

    “DropDownList1“有一个无效 SelectedValue,因为它不在项目列表中。今天用FormView做一个网页,其中用到了DropDownList控件,代码是这样写的:写好之后怎么弄也不行,后来google了一下,找到了很多答案,看完之后我认为DataValueField的值必须从零开始,于是我就改了改sql语句,但是还是不行。又想了一会,茅塞顿开原来是SelectedValue和DataValueField的类型必须一致,困扰我好长时间的问题终于解决正确代码:

    2022年7月18日
    8
  • CAP以及分区容错性的含义「建议收藏」

    CAP以及分区容错性的含义「建议收藏」一个分布式系统里面,节点组成的网络本来应该是连通的。然而可能因为一些故障,使得有些节点之间不连通了,整个网络就分成了几块区域。数据就散布在了这些不连通的区域中。这就叫分区。当你一个数据项只在一个节点中保存,那么分区出现后,和这个节点不连通的部分就访问不到这个数据了。这时分区就是无法容忍的。提高分区容忍性的办法就是一个数据项复制到多个节点上,那么出现分区之后,这一数据项就可能分布到各个区里。容忍性就提高了。然而,要把数据复制到多个节点,就会带来一致性的问题,就是多个节点上面的数据可能是不一致的。要

    2022年7月25日
    11
  • Visual Studio 2008/2010中Xaml开发格式设置技巧

    Visual Studio 2008/2010中Xaml开发格式设置技巧

    2021年8月6日
    50
  • java修饰符

    java修饰符

    2021年11月12日
    63
  • php sigpipe,遭遇SIGPIPE[转]

    php sigpipe,遭遇SIGPIPE[转]转自:http://www.diybl.com/course/3_program/c++/cppjs/20090831/173152.html我写了一个服务器程序,在Windows下在cygwin环境编译后执行,然后用C#写了多线程客户端进行压力测试.程序一直运行正常.但当在Linux下测试时,总是莫名退出.最后跟踪到是write调用导致退出.用gdb执行程序,退出时提示”Broken…

    2022年5月30日
    33
  • 浏览器清理缓存的几种方法

    浏览器清理缓存的几种方法一.为什么使用缓存简单的说,就是为了让页面加载的更快一点,通过将部分静态资源保存到本地这种方式,从而减少网络请求,提升用户体验的一种手段。二.使用缓存有什么弊端凡事有利必有弊,缓存也是。使用缓存

    2022年7月1日
    24

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

关注全栈程序员社区公众号