本笔记主要是从 b 站视频 线性代数的本质 中学习的。用到的 latex 格式,参考在线 LaTeX公式编辑器

01 - 向量究竟是什么?

  • 向量是平面中的箭头,是二维数字列表
  • 向量相加,可以看作从第一个向量的终点,是第二个向量的起点。计算:对应位置数值相加即可。[ \begin{matrix} x1\\ y1\\ \end{matrix} ] + [ \begin{matrix} x2\\ y2\\ \end{matrix} ] = [ \begin{matrix} x1+x2\\ y1+y2\\ \end{matrix} ]
  • 向量数乘,可以看作向量缩放。a * [ \begin{matrix} x1\\ y1\\ \end{matrix} ] = [ \begin{matrix} a * x1\\ a * y1\\ \end{matrix} ]

02 - 线性组合、张成的空间与基

  • 二维向量可以看成是对基的 \hat{i}, \hat{j} 和标量的相乘。
  • 二维向量 a * \vec{v} + b * \vec{w} 是对向量 a * \vec{v}b * \vec{w} 进行了线性组合。
  • 当二维向量中的 a 不变, b 一直变化,变化出的向量组成了一条直线。其实可以这样理解,如果我们不用 x,y 轴作为基,以 \vec{v}\vec{w} 为基,那么相当于 v 坐标轴数值不变, w 坐标轴数值一直在动,所以肯定是一条直线了。
  • 单个向量一般用箭头表示,多个向量,可以只用向量的终点来表示向量。

  • 在三维空间中,两个向量进行缩放所形成的也是一个平面。 这个可以这样想,三维空间中,从零点出发的任意两个线肯定是可以共面的,那么只要把基变换一下就可以了,把基变换成这两个向量,那么问题又回到了 两个二维向量的张成空间了。
  • 正常情况下两个二维向量的张成空间就是整个平面,就算是三维空间,两个向量的张成空间也是他们共面的平面;如何两个向量共线,那么张成的空间就是一条直线。除非这两个二维向量共线,获得是 零向量。

  • 在两个三维向量上再增加一个三维向量,那么对这第三个三维向量缩放的过程,就是前两个三维向量组成的面进行整体平移的过程。除非这第三个三维向量落在前两个三维向量的平面上,那么这三个向量还是共面的关系。这时候我们称这第三个三维向量和前两个向量是线性相关的,它并不能给张成空间增加新的维度。 所以对于基的定义就是 向量空间的一组基是张成该空间的一个线性无关的向量集。
  • 三个向量的张成空间是整个三维空间,除非其中一个向量落在另外两个向量的平面上,这种情况,称为线性相关,也就是说这个向量可以用另外两个向量表示的线性组合。如果,所有的向量都给张成空间增添了维度,那么他们就是线性无关的。
  • 向量空间的一组基就是张成该空间的线性无关的集合。

03 - 矩阵与线性变换

  • 线性变换就是整个平面上的向量进行线性变换成另外的向量。 变换结束以后,只有同时满足原点不变,所有的原来的由向量末端的点组成的直线变换后还是直线,这样才是线性变换。可以简单理解为原点不变,网格线继续保持平行。
  • 线性变换后,首先看下基是怎么变换的,标量 a, b 是不变的,变换后的向量还是原来的标量乘上变换为的基即可。[ \begin{matrix} x\\ y\\ \end{matrix} ] -> x\hat{i} + y\hat{j} = x[ \begin{matrix} ix\\ iy\\ \end{matrix} ] + y[ \begin{matrix} jx\\ jy\\ \end{matrix} ] = [ \begin{matrix} x * ix + y * jx\\ x * iy + y * jy\\ \end{matrix} ]
  • 比如说基变换: \hat{i} -> [ \begin{matrix} 1\\ -2\\ \end{matrix} ] , \hat{j} -> [ \begin{matrix} 3\\ 0\\ \end{matrix} ] . 当原来的 (-1, 2) 这个向量,或者写成 [ \begin{matrix} -1\\ 2\\ \end{matrix} ] ,经过上述的线性变换后,如何计算?
  • 直接从坐标上面硬算,(-1, 2) 这个可以看成是 -1 \hat{i} + 2 \hat{j}, 那么变换后的 x 轴的坐标由 \hat{i} 的x轴分量 和 \hat{j} 的 x轴分量来提供, 也就是 -1 * ix + 2 * jx = -1 * 1 + 2 * 3 = 5, 同理,y轴的坐标就是 -1 * -2 + 2 * 0 = 2, 所以变换后的坐标就是 (5, 2), 或者写成 [ \begin{matrix} 5\\ 2\\ \end{matrix} ]
  • 通过矩阵的方式是另外一种算法。(-1, 2) 这个向量就是 x = -1, y = 2 的向量。变换本质是一种运动的过程,向量本身就包含了运动的信息,含有长度和方向。所以想知道结果,直接和基变换的向量相乘,直接 x 乘以 \hat{i} 变换后的向量,同理 y 也是一样。 x * [ \begin{matrix} 1\\ -2\\ \end{matrix} ] + y * [ \begin{matrix} 3\\ 0\\ \end{matrix} ] = [ \begin{matrix} 1 * x + 3 * y\\ -2 * x + 0 * y\\ \end{matrix} ] = [ \begin{matrix} 1 * -1 + 3 * 2\\ -2 * -1 + 0 * 2\\ \end{matrix} ] = [ \begin{matrix} 5\\ 2\\ \end{matrix} ]

  • 变换的过程可以简化写为二维矩阵,第一列是 \hat{i},第二列是 \hat{j},比如说,\hat{i} = [ \begin{matrix} 3\\ -2\\ \end{matrix} ] , \hat{j} = [ \begin{matrix} 2\\ 1\\ \end{matrix} ] 可以简写为 [ \begin{matrix} 3&2\\ -2&1\\ \end{matrix} ]

  • 从这个计算中我们也可以简化一些写法,比如说我们约定好矩阵第一行是 x,第二行是 y,那么 本身坐标系的变换时 \hat{i} 变换成了 [ \begin{matrix} 1\\ -2\\ \end{matrix} ], \hat{j} 变换成了 [ \begin{matrix} 3\\ 0\\ \end{matrix} ], 那么我们可以合起来,把变换写成 [ \begin{matrix} 1&3\\ -2&0\\ \end{matrix} ]。 原来的坐标 [ \begin{matrix} -1\\ 2\\ \end{matrix} ] 和这个变换相乘,就可以写成矩阵的乘法,即: [ \begin{matrix} 1&3\\ -2&0\\ \end{matrix} ] [ \begin{matrix} -1\\ 2\\ \end{matrix} ] = -1 * [ \begin{matrix} 1\\ -2\\ \end{matrix} ] + 2 * [ \begin{matrix} 3\\ 0\\ \end{matrix} ] = [ \begin{matrix} 1 * -1 + 3 * 2\\ -2 * -1 + 0 * 2\\ \end{matrix} ] = [ \begin{matrix} 5\\ 2\\ \end{matrix} ]

  • 从这个可以看出,矩阵可以认为是变换的过程的描述,矩阵相乘可以写成公式: [ \begin{matrix} ix&jx\\ iy&jy\\ \end{matrix} ] [ \begin{matrix} x\\ y\\ \end{matrix} ] = x * [ \begin{matrix} ix\\ iy\\ \end{matrix} ] + y * [ \begin{matrix} jx\\ jy\\ \end{matrix} ] = [ \begin{matrix} ix * x & jx * y\\ iy * x & iy * y\\ \end{matrix} ]

  • 记住,当你看到一个矩阵的时候,你可以解读为对空间的一种变换。
  • 看到二维矩阵时,也可以看作向量变换,第一列是 \hat{i},第二列是 \hat{j} , 旋转整个坐标系。比如 [ \begin{matrix} 0&-1\\ 1&0\\ \end{matrix} ] 中 \hat{i} 是(0, 1), \hat{j} 是 (-1, 0),那么显然,这个是坐标系旋转了 90 度。那么任何向量想要旋转 90 度,只需要和 [ \begin{matrix} 0&-1\\ 1&0\\ \end{matrix} ] 相乘即可。
  • 数学上的剪切或者错切,像把坐标网格从正方形拉成平行四边形,指的是 \hat{i} 不变即 (1, 0),\hat{j} 变为 (1, 1),那么变换用矩阵表示即为: [ \begin{matrix} 1&1\\ 0&1\\ \end{matrix} ] 相乘即可。

  • 我们可以根据基变换后的坐标,就可以想象出整个张成空间随着基变换所做出的变化。但是注意,如果变换后的 \hat{i}\hat{j} 是线性相关的,即它们在一条线上,那么整个二维空间变换后就都被挤压在一条线上,变成一维空间了。

04 - 矩阵乘法与线性变换复合

  • 当一个向量先进行旋转变换再进行剪切变换,那么按照步骤可以写成 [ \begin{matrix} 1 & 1\\ 0 & 1\\ \end{matrix} ][ \begin{matrix} 0 & -1\\ 1 & 0\\ \end{matrix} ][ \begin{matrix} x\\ y\\ \end{matrix} ] ,我们也可以直接按照旋转剪切最后的结果复合矩阵直接进行变换 [ \begin{matrix} 1 & -1\\ 1 & 0\\ \end{matrix} ][ \begin{matrix} x\\ y\\ \end{matrix} ]。 这两种计算的结果是一样的,我们可以给他们画个等号,如果两边都除去 [ \begin{matrix} x\\ y\\ \end{matrix} ], 那么结果是 [ \begin{matrix} 1 & 1\\ 0 & 1\\ \end{matrix} ][ \begin{matrix} 0 & -1\\ 1 & 0\\ \end{matrix} ] = [ \begin{matrix} 1 & -1\\ 1 & 0\\ \end{matrix} ], 这个也可以认为是矩阵的乘积。

  • 矩阵相乘的几何意义就是变换时相继发生的。需要注意的时这个需要从右向左读,比如 [ \begin{matrix} 1 & 1\\ 0 & 1\\ \end{matrix} ][ \begin{matrix} 0 & -1\\ 1 & 0\\ \end{matrix} ] 这个指的是 先 [ \begin{matrix} 0 & -1\\ 1 & 0\\ \end{matrix} ] 再 [ \begin{matrix} 1 & 1\\ 0 & 1\\ \end{matrix} ]。这个是根据符号来的,比如说 f(g(x)),这个也是先做 g() ,然后在做 f()。

  • 矩阵乘法的计算,就是分别计算 \hat{i}\hat{j} 的变换,记住从右向左。 [ \begin{matrix} a & b\\ c & d\\ \end{matrix} ][ \begin{matrix} e & f\\ g & h\\ \end{matrix} ] 首先要做的变换是 [ \begin{matrix} e & f\\ g & h\\ \end{matrix} ], 其中 \hat{i} 经过第一次变换后 是 (e, g), 再进行第二次变换即 [ \begin{matrix} a & b\\ c & d\\ \end{matrix} ] * [ \begin{matrix} e\\ g\\ \end{matrix} ] = [ \begin{matrix} ae + bg\\ ce + dg\\ \end{matrix} ] 这个几何含义是 \hat{i} 先经过变换变为 [ \begin{matrix} e\\ g\\ \end{matrix} ] 然后再经过 [ \begin{matrix} a & b\\ c & d\\ \end{matrix} ] 变换,得到结果 [ \begin{matrix} ae + bg\\ ce + dg\\ \end{matrix} ] 这个就是两次变换后的 \hat{i}。 同理 [ \begin{matrix} e & f\\ g & h\\ \end{matrix} ] * [ \begin{matrix} f\\ h\\ \end{matrix} ] = [ \begin{matrix} af + bh\\ cf + dh\\ \end{matrix} ] 这个是 \hat{j} 的变换过程。 那么 \hat{i}\hat{j} 最后变换的结果就是 [ \begin{matrix} ae + bg & af + bh\\ ce + dg & cf + dh\\ \end{matrix} ]

  • 矩阵相乘,先后顺序不能变,这个可以先旋转再剪切,先剪切再旋转,看下 \hat{i}\hat{j} 的坐标系变换结果就明白了。M1M2 ≠ M2M1

  • 矩阵结合律 (AB)C = A(BC),只要从右向左的顺序一致即可。

04补充 - 三维空间中的线性变换

三维空间的变换其实也是一样的,只不过矩阵变成了3维而已。

05 - 行列式

  • 因为矩阵是变换,所以原来的 \hat{i},\hat{j} 所形成的四边形的面积经过矩阵变换后,形成的新的四边形面积不一定是一样的,新的面积除以旧的面积,结果就是一个系数,这个系数既标识这个 \hat{i},\hat{j} 的最小面积变换的系数,也是针对这个变换的所有面积的系数。这个系数也就是这个矩阵的行列式。det([ \begin{matrix} 1 & 0\\ 0 & 1\\ \end{matrix} ]) = 1.
  • 注意如果行列式为 0,这是代表被压缩了维度,可能从二维变成了一条线,甚至一个点。
  • 如果行列式为负数,那么这个符号表示整个平面发生了翻转,绝对值还是那个比例系数。 正常 \hat{j} 是在 \hat{i} 的左边,翻转了之后,\hat{j} 就到了 \hat{i} 的右边。保持 \hat{j} 不动, \hat{i} 逆时针旋转,随着越来约靠近 j,面积被压缩的越来越厉害,当 \hat{i}\hat{j} 重合的时候,面积为0,当 \hat{i} 继续旋转 到了 \hat{j} 的左边,这个就变为负数了。

  • 三维空间也一样,\hat{i}, \hat{j}, \hat{k} 这个体积经过矩阵变换,这个 [ \begin{matrix} 1\\ 1\\ 1\\ \end{matrix} ] 的立方体,就变成了一个平行六面体,这个行列式的值也就是这个六面体的体积,同时也是比例系数。当这个值为 0 的时候,就意味着这个三维空间变成了一个二维的面,甚至是线或者点。
  • 在三维空间,使用右手表示方向,食指是\hat{i},中指是 \hat{j},大拇指是 \hat{k}, 这个时候表示正向。如果变换后,不能用右手表示,只能用左手表示,那么体积为负,也就是行列式为负。

  • 行列式的计算,首先看特殊情况, det([ \begin{matrix} a & 0\\ 0 & d\\ \end{matrix} ]), 这种变换就是最简单的 \hat{i} 拉伸了 a,\hat{j} 拉伸了 d,那么面积就是 ad,所以行列式值就是 ad。 det([ \begin{matrix} a & b\\ 0 & d\\ \end{matrix} ]) 这个就是平行四边形,面积还是 ad,也就是 ad - b * 0。对于 det([ \begin{matrix} a & b\\ c & d\\ \end{matrix} ]) 结果就是 ad - bc。 从面积上计算是这样的:
  • 三维行列式的计算公式是 det([ \begin{matrix} a & b & c\\ d & e & f\\ g & h & i\\ \end{matrix} ]) = a det([ \begin{matrix} e & f\\ h & i\\ \end{matrix} ]) - b det([ \begin{matrix} d & f\\ g & i\\ \end{matrix} ]) + c det([ \begin{matrix} d & e\\ g & h\\ \end{matrix} ])
  • det(M1M2) = det(M1)det(M2)

06 - 逆矩阵、列空间与零空间

  • 线性方程组,就是几个线性方程,左边是 x, y, z 之类的简单的形式,不包含平方,三角函数等;右边是常数的方程。这些方程组,可以把左边的系数提取出来作为一个矩阵,未知数一个矩阵,右边常量一个矩阵。

逆变换

  • A\vec{X} = \vec{V} 在几何上面的意思是,有一种变换,可以让 \vec{X} 在变换后,和\vec{V} 重合。

  • 如果 det(A) ≠ 0,那么只有唯一的一个 \vec{X} 在变换后与 \vec{V} 重合。如果我们想要求解 \vec{X},可以找到 A 的逆变换 A^{-1} , 然后让 \vec{V} 逆变换即可获得 \vec{X}. 比如说,旋转90度的 A 是 [ \begin{matrix} 0 & -1\\ 1 & 0\\ \end{matrix} ] 那么逆变换 A^{-1} 是旋转 -90度 [ \begin{matrix} 0 & 1\\ -1 & 0\\ \end{matrix} ]. 向右剪切 [ \begin{matrix} 1 & 1\\ 0 & 1\\ \end{matrix} ] 的逆变换,向左剪切 [ \begin{matrix} 1 & -1\\ 0 & 1\\ \end{matrix} ]
  • 总的来说,A^{-1} 可以让 A 的变换恢复,A^{-1}A 表示啥都不做,也就是恒等变换。
  • 在 A\vec{X} = \vec{V} 的两边都做 A^{-1} 变换,即 A^{-1}A\vec{X} = A^{-1}\vec{V} , 也就是 \vec{X} = A^{-1}\vec{V}

  • 如果 det(A) = 0, 也就是说,维度被压缩了,那么不存在 逆变换 A^{-1} ,因为你不可能从一个平面恢复为一个立体。
  • 当然 det(A) = 0 可能存在唯一解,只有在 \vec{V} 恰好落在压缩之后的维度上才行,如果不在压缩后的维度上,那么也是无解。

列空间

  • det(A) = 0 为0 时,如果被压缩为一条线,那么变换的秩 = 1,如果压缩为一个平面,那么秩 = 2 . 秩 就是变换后的维度数。
  • 对于 3x3 的矩阵,秩 = 2 意味着被压缩为一个平面,秩 = 1 表示压缩为一条线。如果这个矩阵 det(A) ≠ 0,意味着还是一个立体空间。

  • 矩阵的列意味着变换后的基向量在什么位置,这些变换后基向量张成的空间就是所有可能变换的结果。我们将所有可能输出向量 A\vec{X} 的集合称为列空间(colunm space)。换句话而言,列空间就是矩阵的列所张成的空间. 进一步讲,列空间的维数称为秩。
    • 当变换后的结果 \vec{v} 为一条直线时,也就是结果是一维的,我们就称这个变换的秩为1.
    • 当变换后的结果 \vec{v} 为一个平面时,也就是结果是二维的,我们就称这个变换的秩为2.
    • 特别的, 对于 3x3 维矩阵
    • 当秩为3时,意味着列向量仍可以张成整个空间,行列式的值不为0;
    • 秩为2,意味着线性变换对空间进行了压缩(行列式的值为0);
    • 秩为1,意味着空间压缩就比较严重;
  • 由此可得,秩可以用来描述线性变换对空间的压缩程度。 秩 <=> 变换后空间的维数 <=> 列空间的维数。
    • 当秩取到最大值时,意味着秩与矩阵的列数相等,我们称之为“满秩(Full Rank)”.
    • 零向量一定在列空间中,因为线性变换必须保持空间原点位置保持不变;
    • 满秩变换,唯一能在变换后落在原点的向量一定是零向量自身。

零空间/核(Null space/Kernel)

  • 对于非满秩矩阵,意味着该线性变换会对空间进行压缩到一个更低维的空间,通俗来讲,就是会有一系列直线上不同方向的向量压缩为原点。比如 二维压缩为一条线,或者3维压缩为一个平面甚至一条线。
  • 我们将变换后落在原点的向量集合,被称为“零空间”或者“核”。变换后一些向量落在零向量上,换句话而言,零空间是就是这些向量构成的。
  • 对于 A\vec{X} = [ \begin{matrix} 0\\ 0\\ \end{matrix} ] , 零空间给出的就是这个向量方程所有可能的解。

参考

参考:

发表评论