翻译 Linear transformations and matrices
变化是函数
首先,让我们来解析一下这个术语: "线性变换"。 变换本质上是函数的一种花哨说法;它是一种接收输入,并为每个输入输出一些结果的东西。 具体来说,在线性代数中,我们所考虑的变换是输入某个向量,然后输出另一个向量。
既然 “函数 ”和 “变换 ”的意思是一样的,为什么要用 “变换 ”而不用 “函数 ”呢?这是为了暗示一种将这种输入输出关系可视化的方法。与其尝试使用图形之类的东西,因为它实际上只适用于输入一个或两个数字并输出一个数字的函数,不如使用转移来理解向量的函数,这是一种很好的方法。
如果变换将某个输入向量转换为某个输出向量,我们就可以想象输入向量移动到了输出向量。
为了从整体上理解这种转换,我们可以想象将每一个可能的矢量移动到其相应的输出矢量上。
如果把所有的矢量同时看作一个箭头,就会显得非常拥挤。 因此,我们不要把每个矢量看成一个箭头,而是看成一个点:它的尖端所在的点。 这样,在思考将所有可能的输入向量转换为相应的输出向量时,我们就能看到空间中的每一点都在向另一点移动。
在二维变换的情况下,为了更好地了解变换的形状,我们可以在无限网格上对所有点进行变换。 在后台保留一份网格的静态副本也很有帮助,这样可以帮助我们追踪所有点的最终位置与开始位置的相对位置。
是什么让变换变得 "线性"?
可以想象,任意变换看起来相当复杂,但幸运的是,线性代数只局限于一种特殊的变换类型,这种变换更容易理解,叫做线性变换。
从外观上看,如果一种变换具有以下两个特性,那么它就是 "线性 "变换:
- 所有的线都必须保持直线,而不会弯曲;
- 原点必须固定在原处。
例如,这里的这个就不是线性变换,因为线条都是弯曲的。
这一条固定了原点,看起来可能会让线条保持直线,但这只是因为我们只显示水平和垂直网格线。
当你看到它对一条对角线的作用时,就会明白这根本不是线性变换,因为它把那条线变成了曲线。
一般来说,线性变换可以使网格线保持平行且间距均匀,但可能会改变垂直网格线之间的角度。 有些线性变换很容易理解,比如围绕原点的旋转。
矩阵
你认为如何用数字来完成这些变换? 比方说,如果你要编写一些动画来制作一个教学视频,你要给计算机一个什么样的公式,这样如果你给它一个矢量的坐标,它就能告诉你这个矢量落在哪里的坐标?
你只需要记住两个基向量 \hat{i} 和 \hat{j},例如向量\vec{v} 坐标是 \left[ \begin{array}{cc} -1 \\ 2 \end{array} \right] ,等价于 -1\hat{i} + 2\hat{j}
如果我们进行一些变换(如下图),跟踪这三个矢量的走向,那么网格线保持平行且间距均匀的特性就会产生一个非常重要的结果:向量\vec{v}的落点是(-1)倍的\hat{i}变换后的落点,同时是2倍的\hat{j}变换后的落点。
换句话说,\vec{v}一开始是\hat{i}和\hat{j}的一种线性组合,变换后的\vec{v}与变换后的\hat{i}和\hat{j}线性组合的方式与一开始没变。
完整的转换如下图
因此,只要我们知道\hat{i}和\hat{j}变换后的位置,我们就能知道每一个通过变换方程后的向量位置。
若使用 x 和 y 表示通用向量 \vec{v}:
执行上面的加和后,任意给定的向量\vec{v}我们都能用下面的公式得到其坐标。
这一切都说明,二维线性变换完全可以用四个数字来描述:两个是 \hat{i} 的变换后的坐标,两个是 \hat{j} 变换后的坐标。这是不是很酷?
通常将这四个数字组合成一个 2x2 的数字网格,称为 "2x2 矩阵",两列分别是 \hat{i}和\hat{j}变换后的位置。
如果给你一个描述线性变换的 2x2 矩阵和一个特定的矢量,你想知道线性变换后矢量的坐标,你就用该矢量的坐标,乘以矩阵的相应列,然后将得到的结果相加。 这与我们将新基向量的坐标缩放后再加和的方法是一致的。
其通式如下
你甚至可以把它定义为 "矩阵向量乘法",把矩阵放在向量的左边,就像函数一样。
示例
旋转
例如将基向量 \hat{i}和\hat{j} 旋转90°,我们可以得到旋转后的坐标是 \left[ \begin{array}{cc} 0 \\ 1 \end{array} \right] 和 \left[ \begin{array}{cc} 1 \\ 0 \end{array} \right]。
要想知道任何向量逆时针旋转 90 度后的情况,可以将其坐标乘以这个矩阵。
剪切
“剪切”是一个有趣的变换。在变换中,\hat{i} 保持固定,因此矩阵的第一列是 \left[ \begin{array}{cc} 1 \\ 0 \end{array} \right] ,但是 \hat{j} 移动到坐标系的 \left[ \begin{array}{cc} 1 \\ 1 \end{array} \right] 点,并成为矩阵的第二列。
属性
可能存在的变换数量之大难以想象,其中许多变换的思考过程相当复杂。 正如我们讨论过的,线性代数只限于一种特殊类型的变换,即线性变换,我们将其定义为网格线保持平行且间距均匀的变换。 除了 "线性 "这一几何概念外,我们还可以表示,如果一个函数满足以下两个性质,那么它就是线性的:
为了帮助理解这两个特性的限制作用,并推理这意味着线性变换必须是什么样子,请考虑上一章中的一个重要事实:当你写下一个带坐标的矢量时, \vec{v} = \left[ \begin{array}{cc} -1 \\ 2 \end{array} \right] 实际上就是把它写成两个基向量的线性组合。
如果你考虑一下变换是如何分别作用于构成线性组合的两个向量的,分别是 -1\hat{i} 和 2\hat{j} ,那么保留变换过程再加和的结果是 L(\vec{v}) = L(-1\hat{i}) + L(2\hat{j})。
由于变换保留了缩放比例,我们可以将线性组合重写为变换后的基向量乘以输入向量的坐标。
这就是为什么你知道了 \hat{i} 和 \hat{j} 变换后的位置,就能知道其他向量变换后的坐标。因为使用的\hat{i} 和 \hat{j} 作为基础标准,所以使用它们变换后的坐标作为矩阵。