zoukankan      html  css  js  c++  java
  • 对于线性代数的形象化理解(3)

    这位外国博主的个人空间:3Blue1Brown

    视频地址:线性代数的本质 - 系列合集
    (若上述url失效,请点击上方该博主个人空间,搜索“线性代数的本质”视频)


    矩阵的秩

    三维空间中,如果经过一个变换之后,原本的立方体变成了一条线,那么我们称这个变换的秩为1,如果它被压成了一个平面,那么称这个变换的秩为2,也就是说,“秩”代表着变换之后空间的维数。对于2×2的矩阵,这个变换的秩最多为2。当它的秩为2的时候,表示经过这个变换之后,基向量张开的矩形仍然可以是一个平面,也就是说经过该变换之后并没有降维,即该矩阵的行列式不为0,如果是3×3的矩阵秩为2的话,就表示它在原有空间中的立方体被压成了平面的矩形。


    列空间

    所有可能变换的结果的集合,称为该矩阵的 ”列空间“ 为什么这么叫呢?

    因为矩阵的列告诉我们的就是基向量变换后的位置,这些变换后的基向量张成的空间就是所有的可能的变换结果(毕竟结果取决于(Avec{x}=vec{v}) 中的 (vec{x})​​ 嘛),所以列空间就是矩阵的列(也就是基向量)张成的空间。

    所以秩的更精准的定义是,变换后空间的维数,也就是变换后基向量所张成的空间的维数,即列空间的维数。

    当秩到达最大值时,也就是与矩阵的列数相等时,我们称之为满秩

    “零空间”与“核”的概念:这里没有太理解,先放着,后面再说。


    关于方阵

    方阵,即行数和列数不相等的矩阵。

    一个向量在不同维度空间中的变换其实是合理的,比如向量(1,0)变成(2,-1,-2),这个变换表示的就是原来只在平面上的向量(1,0)被扩展到了立体空间上,并且可以很容易想象出一个平面上的箭头原点不动,另一端被拉上来,斜着在空间中的场景。

    那么,一个两列,三行的方阵也可以视为一种变换,只不过变换前后的基向量所处的空间的维度是发生了变化的。

    例如:方阵 (left[egin{array}{l} 2 & 0 \ -1 & 1 \ -2 & 1 \end{array} ight])​ ,它只有两列,说明在变换前只有两个基向量(也就是说原来的空间是一个二维的空间,既然是二维空间了,原来的基向量的长度肯定为2啦),然后变换之后,两个基向量的长度变成了3,也就是说经过这个变换之后,这两个基向量被映射到了一个高维空间(在此例子中就是三维的立体空间中)。

    当然,行数小于列数的方阵,也就反过来地表示将原本高维空间以某种变换方式投影到低维空间中,那么原本的高位空间中的基向量,会被相应地投影到低维空间中,它们的长度会减少,但是基向量的个数还是那么多,

    比如 (left[egin{array}{l} 2 & 0 \ -1 & 1 \ end{array} ight])​​ → (left[egin{array}{l} 1 & 2 \ end{array} ight])​​​ ,理解为将原本处在于一个平面上的面积等东西压缩到一条直线上。原本的两个基向量的长度都减少为了1,因为被压到了一条直线上,这两个基向量就只需要一个数字来表示它们在这条直线上的位置就行了。


    点积与对偶性(视频p10)

    之前我们学过的线性代数的点积,是两个长度相等的向量,它们相同位置的分量相乘并相加,最终点积的结果是一个数。

    也就是 (left[egin{array}{l} 2 \ -1 \ -2 \end{array} ight] cdot left[egin{array}{l} 2 \ 1 \ 3 \end{array} ight] = 2 imes2+(-1) imes1+(-2) imes3 = -2) .​​​

    从另外一个计算角度来说,我们高中的时候就说过,两个向量的点积,就是一个向量在另一个向量方向上的投影长度与另一个向量的模长的乘积。

    为什么同一个位置的分量相乘并且相加得到的点积,和投影有关呢?我们尝试从另外一个角度来解释点积。

    上文中我们提到了,如果有这样一个方阵 (left[egin{array}{l} 1 & 2 \ end{array} ight])​​​​​ ,它去乘以一个向量 (left[egin{array}{l} 3 \ 4 \end{array} ight])​​​​​ ,本质上代表的其实是一种变换,而且是一种降维的变换,将二维空间压到了一维空间中,在矩阵中,两列一行就表示,将原本长度为2的两个基向量压到了长度为1 的一维空间中,也就是一条线上。这个运算的结果是 (left[egin{array}{l} 1 & 2 \ end{array} ight] cdot left[egin{array}{l} 3 \ 4 \end{array} ight] = 1 imes2+ 3 imes4 = 14)​ ,如果有动画效果的话,这条式子就表示平面上的一个向量被压到了一条线上,它现在只在一个一维空间中,只有一个数字14来表示它在这个一维空间距离远点的位置​​​​ 。

    我们可以看到上面的式子, (left[egin{array}{l} 1 & 2 end{array} ight] imes left[egin{array}{l} 3 \ 4 \end{array} ight])​​​​​​ 和 (left[egin{array}{l} 1 \ 2 end{array} ight] cdot left[egin{array}{l} 3 \ 4 \end{array} ight])​​​ 从运算过程上来说,是一样的,我们说的 (left[egin{array}{l} 1 & 2 \ end{array} ight])​ 所代表的空间上的这样一种变换,就是直接将 (left[egin{array}{l} 3 \ 4 \end{array} ight])​ 这样一个二维空间上的向量压到了一维空间中。那也就是说将 (left[egin{array}{l} 3 \ 4 \end{array} ight])​ 这个向量投影到了某一个方向上,哪个方向上呢?(left[egin{array}{l} 1 \ 2 end{array} ight])​​ 表示的向量的这个方向上。也就是说这个二维向量恰好所在的这条线上。

    这边关于叉积的一个介绍,因为线性代数里面课本里面好像没有叉积,所以我就略过这部分的笔记了。


    基变换(视频p13)

    假设我们的平面坐标系就是正常的二维笛卡尔坐标系,即 (vec{i}=left[egin{array}{l} 1 \ 0 end{array} ight], vec{j}=left[egin{array}{l} 0 \ 1 end{array} ight])​ ​​,然后另外一个人(视频中叫 Jennifer)也有一个坐标系,她的坐标系是一个奇怪的坐标系,

    假设有这样一个矩阵,(left[egin{array}{l} 2 & -1 \ 1 & 1 \ end{array} ight])​​ 它就是将我们的正常笛卡尔坐标系空间变成 Jennifer 的坐标系的一种变换。

    从几何上看,这个矩阵是将我们的坐标系空间变成 Jennifer 所说的坐标空间,但是从数字上看,这个矩阵是将 Jennifer 的空间中的基向量从 ”Jennifer的描述向量的语言“ 转换到了 ” 我们用来描述向量的语言 “,因为转化了之后,Jennifer 的空间的基向量就是 (left[egin{array}{l} 2 & -1 \ 1 & 1 \ end{array} ight]) 这个矩阵里面的两列,但是它是以我们这个笛卡尔坐标系空间的 ”语言“ 来描述的,也就是说,在 Jennifer 的空间里面,她的基向量就应该是 (left[egin{array}{l} 1 & 0 \ 0 & 1 \ end{array} ight])​ ,这是以 ” Jennifer的语言来形容的 “,因为是她自己定的坐标系,她可以规定任何一个向量为(1,0)。

    所以,在我们的空间中的一个向量(自然是以我们空间中的来描述的咯),我们要怎么用 ”Jennifer的语言“ 来描述它呢?既然前面的矩阵 (left[egin{array}{l} 2 & -1 \ 1 & 1 \ end{array} ight])​ 是将向量从 ”Jennifer的描述向量的语言“ 转换到了 ” 我们用来描述向量的语言 “。那么我们就左乘一个该矩阵的逆矩阵就好咯,也就相当于是做了一个反变换了。

    上面的 (left[egin{array}{l} 2 & -1 \ 1 & 1 \ end{array} ight])​​​以及其逆矩阵,都称之为,基变换矩阵,作用就是从 ”一种语言“ 转换到 ”另一种语言“。


    对于(A^{-1}MA)

    现在如果在 ”Jennifer的空间中“有一个向量 (vec{v}) ,它要经过一个变换M,并且这个变换M是以我们的笛卡尔坐标系的基向量发生改变来描述的,问我们如何得到 ” 用 Jennifer的语言描述的,经过M变换后的向量 (vec{v}) “ ?因为变换矩阵是用我们的语言来描述的,所以我们可以先用A矩阵将这个向量(vec{v}) 转到 ”用我们的语言来描述“ ,也就是变成 (Acdotvec{v}) ,然后再左乘M矩阵,变成 (Mcdot Acdotvec{v}) ,现在该向量就是 ”在我们的空间下,变换过的向量了 “,最后一步就是左乘 (A^{-1}) ,把它变成 ” 用 Jennifer的语言描述的向量“ 。最终的式子就是 (A^{-1}cdot Mcdot Acdotvec{v})​ .

    所以当我们看到表达式 (A^{-1}cdot Mcdot A)​​ 时,可以联想到,它可能暗示着一种数学上的转移作用。


    特征向量与特征值(视频p14)

    我们说到一个矩阵代表着一种变换,在变换过后,可能有某些向量恰好仍留在自己原本的空间中(视觉上看,就是所处的方向仍然和原来的方向相同或者是完全反向了,但是自身的模长有可能被放大或者缩小了)。我们称变换过后仍然留在自己原本的空间之中的向量为特征向量。它的模长被放大或者缩小的倍数就是特征值。

    如何求特征值呢?假设有一个矩阵A满足 (Acdotvec{v}=lambdacdotvec{v}),那么该特征向量就为 (vec{v})​,并且其特征值为λ。

    式子左边是矩阵×向量,右边是常数乘向量,直接约掉(vec{v}) 似乎并不可取。

    我们可以将向量的数乘也看作是一种仅仅是将空间中每一个向量都拉长的变换,那么也就是说,这种变换用矩阵表示出来,就是一个对角矩阵,只不过对角矩阵的每一个元素都是λ。(因为根据前文,每个矩阵表示一个变换,并且矩阵的每一列都是变换过后的基向量,既然方向啥的都没变,那这个矩阵其实就是原来的单位矩阵再去乘以λ啦)

    将该矩阵记为B,则原式可以写为 (Acdotvec{v}=Bcdotvec{v})​ ,这样两边都是矩阵×向量,就可以移项了,变成 (Acdotvec{v}-Bcdotvec{v} = vec{0})​ . 进而可以提出向量v,式子进一步化成 ((A-B)cdotvec{v} = vec{0})​ . (A-B)​​,其实就是A的对角线上的每一个元素都减去λ,记为一个新的矩阵C的话,那就是 (Ccdotvec{v}=vec{0})​​​ ,之前讲行列式的时候说到,一个变换如果将一个非零矩阵压成了0矩阵,那必定是降维了,也就是说它的行列式为0,即det(C)= 0. 回想一下我们的C是啥,是在A的基础之上,主对角线上的元素都减去λ的一个矩阵,它的每个元素都知道,当它的行列式为0的时候,未知数λ也就能求出来了。

    不过,有一些变换它并不具有特征向量和特征值,设想一个变换,将原来的二维坐标系逆时针旋转了九十度,在坐标系里面的所有向量的方向都会改变,所以它不具有特征向量和特征值,自然,求解的时候得到的方程没有实数根。

  • 相关阅读:
    抽象工厂模式
    观察者模式
    建造者模式
    外观模式
    drf 之路由
    drf之视图
    drf--请求和响应
    def--序列化
    drf之restful规范
    Tepora使用
  • 原文地址:https://www.cnblogs.com/kevin-matrix/p/15099465.html
Copyright © 2011-2022 走看看