线性代数——03 矩阵与线性变换
很遗憾,矩阵是什么是说不清的。你必须得自己亲眼看看。—— 墨菲斯
矩阵如同线性变换

“变换”本质上是“函数”的一种花哨的说法,它接收输入内容,并输出对应结果;特别地,在线性代数的情况下,我们考虑的是接收一个向量并且输出一个向量的变换,既然“变换”和“函数”意义相同,为什么还要使用前者而不是后者?使用“变换”是在暗示以特定方式(运动)来可视化这一输入-输出关系,一种理解“向量的函数”的方法是使用运动,

如果一个变换接收一个向量并输出一个向量,我们想象这个输入向量移动到输出向量的位置;接下来,要理解整个变换,我们可以想象每一个输入向量都移动到对应输出向量的位置,因为将向量看做箭头时,同事考虑所有的二维向量会变得非常拥挤,所以将每一个向量看作它的终点,而不是一个箭头,用这种方法考虑所有输入向量都移动到对应输出向量的位置时,我们只用看空间中的所有点移动到其他点的位置;

二维空间变换这种情况下,为了更好地体现整个空间形状上的改变,可以对无限网格上的所有点同时做变换,在背景中保留原始网格的副本,以便追踪终点和和起点的相对关系。
线性变换

各种各样对空间的变换所产生的效果是很美妙的,有挤压的、有变形的,任意一个变换可以非常复杂;但幸运的是,线性代数限制在一种特殊类型的变换上,这种变换更容易理解,成为“线性变换”,直观地说,如果一个变换具有以下性质,我们就称它是线性的:
- 直线在变换后仍然保持为直线,不能有所弯曲;
- 原点必须保持固定;
总的来说,你应该把线性变换看做是“保持网格线平行并等距分布”的变换;
如何用数值描述线性变换
事实上,你只需要记录两个基向量,也就是i帽和j帽落脚(变换后)的位置,其他向量都会随之而动,

比如在空间变换前,有这么个向量

在经历线性变换后,由于线性变换是保持网格线平行并等距分布的变换,所以变换后 依然成立,换句话说,向量
是i帽和j帽的一个特定线性组合,那么变换后的向量
也是变换后i帽和j帽的同样的线性组合;这意味着,你可以只根据i帽和j帽的落脚点,就能推断出向量
的落脚点;

所以更一般的来说,只要我们记录了i帽和j帽的落脚点,我们就可以推断出任意向量的落脚点,完全不必观察变换本身是什么样;一般情况下,一个向量的坐标是 (x, y) ,它的落脚点就是x乘以i帽的落脚点 (1, -2) 加上y乘以j帽的落脚点 (3, 0) ,这与“缩放基向量再相加”的思想一致;
矩阵

以上这些内容是在说,一个二维线性变换仅由四个数字完全确定,变换后i帽的两个坐标与变换后j帽的两个坐标,通常我们将这些坐标包装在一个 2 × 2的格子中,称它为 2 × 2 矩阵;

更一般的情况下,我们来看看矩阵是 [[a, b], [c, d]] 时会发生什么?记住,矩阵在这里只是一个记号,它含有描述一个线性变换的信息,把第一列 (a, c) 看作是第一个基向量的落脚点,第二列 (b, d) 看作是第二个基向量的落脚点,我们把这个变换作用于向量 (x, y) ,结果是什么?那就应该是x乘以 (a, c) 加上y乘以 (b, d) ,合并之后得到向量 ( ax + by, cx + dy) ,你甚至可以把它定义为矩阵向量乘法,这里矩阵放在向量左边,类似一个函数;
这里我们完全把矩阵的列看作变换后的基向量,把矩阵向量乘法看做一个线性组合!
总结
总之,线性变换是操纵空间的一种手段,它保持网格线平行并等距分布,并且保持原点不动,这种变换只需要几个数字就能描述清楚,这些数字就是基向量变换后的坐标,以这些坐标为列所构成的矩阵为我们提供了一种描述线性变换语言,而矩阵向量乘法就是计算线性变换作用于给定向量的一种途径;这里重要的一点是,每当你看到一个矩阵时,你都把它解读为对空间的一种特定变换;一旦真正消化了这些内容,你就在深刻理解线性代数上占据了极佳的位置,当你将矩阵看作空间的变换之后,此后几乎所有的主题:矩阵乘法、行列式、基变换、特征值等都会更加容易理解。