何为线性变换?
“变换”本质上是“函数”的一种花哨的说法,它接收输入内容,并输出对应结果。只不过在线性代数下,我们考虑的是接收一个向量并且输出一个向量的变换。
既然如此,为何还用多余的属数术语“变换”,而不用“函数”呢?
使用“变换”是在暗示以特定方式来可视化这一输入-输出关系。
一种理解“向量的函数”的方式是使用运动,即将输入向量移动到输出向量的位置上。整个平面内所有的向量都按照规则变换,也就完成了整个空间的变换。
这样的变换可以非常复杂,如下:
幸运的是,线性代数限制在一种特殊类型的变换上,我们称为“线性变换”。
那什么是“线性”呢?简单地说,如果一个变换满足下面两条性质,我们就说它是线性变换:
- 直线变换完还是直线,不会弯曲。
原点保持固定。
注意我们说的直线不弯曲不只是横轴和纵轴,而是所有直线,如对角线。
总的来说,线性变换是“保持网格线平行并等距分布”的变换。
如何用数值描述线性变换?
很简单,只需要记录两个基向量,也就是 i^ 和 j^ 变换后的位置。
如下图这个例子
变换 i^ 和 j^ 之后,追踪这三个向量的位置,我们发现变换后的向量与基向量的线性组合是不变的。
这就意味着,我们可以只根据变换后的 i-hat 和 j-hat 推断出别的向量的位置。
变换后的 i^ 是 [1−2] ,变换后的 j^ 是 [30] ,所以我们就可以得到 v^ 的位置是 −1×[1−2]+2×[30]=[−1(1)+2(3)−1(−2)+2(0)]=[52]
这是极其炫酷和重要的,我们只需要四个数字就描述了一个线性变换。
我们把变换后的 i^ 和 j^ 写在一个矩阵里。
第一列是 i-hat 变换后的位置, 第二列是 j-hat 变换后的位置。
当我们把这个变换作用于 [xy] 上时,得到的结果就是下图
当我们把描述变换的矩阵放在左边,向量放在右边,就得到了矩阵乘法的运算。
我们完全可以将矩阵的列看作变换后的基向量,把矩阵向量乘法看作一个线性组合。
如果变换后的两个基向量是线性相关的,那就意味着这个线性变换将整个二维空间挤压到它们所在的一条直线上,也就是两个向量的张成空间。
总之,线性变换是一种操控空间的手段,它保持网格线平行并等距分布,并且保持原点不动。
今后每看见一个矩阵,就把它解读为对空间的一种特定变换。