3.矩阵和线性变换
3.1线性变换是什么意思?
首先,怎么理解线性变换呢?下面从两个方面进行解释:一个是线性,一个是变换。首先说变换。
变换其实可以看作函数的另外一种说法,**它接收输入内容,并输出对应的结果。**只不过我们在线性代数里面考虑的是接收一个向量并且输出一个向量的变换。
所以有个问题:为啥函数和变换意义相同,但是还是使用前者而不是后者呢?**因为使用“变换”是在暗示以特定的方式来可视化这输入-输出的关系。“变换”这个词暗示你用运动去思考。**如果一个变量接受一个向量,并输出一个向量,我们可以理解输入向量移动到了输出向量的位置。
为什么称为线性呢?
1.直线在变换之后依然保持为直线,不能有所弯曲。
2.原点必须保持固定。
比如下面这个就不是线性变换,他的网格线都被弯曲了。(图中灰色的方格是原来的,蓝色的方格是变换之后的,那个白色的交叉线可以理解成平面直角坐标系里面的数轴):
下面这个例子是原点发生改变的:
首先图中红色点表示原点:
经过变换之后:
原点跑到了这里,这种变换,即便是直线保持了平直,但是它也不是一个线性变换。
有个更有趣的例子:
这个变换,在原来的灰色线的基础之上,蓝色线都是横平竖直移动的,原点也还是原点,但是他也不是线性变换,这是为啥呢?其实是因为在这个空间里我们只关注了水平和数值的直线,如果选择原来的一条对角线,那么变换之后对角线就变成扭曲的了,向下面这样:
所以,综上所述应该把线性变换看作是 ‘保持网格线平行且等距分布’的变换。
3.2怎么描述线性变换
怎么描述线性变换其实说的就是输入经过一个什么样的函数变成了输出。
其实最重要的就是这个基向量,在平面直角坐标系中的下图中这俩:
假设现在有下图中这样的一个向量,那这个向量就可以表示成i和j的线性组合,无论经历了怎么样的线性变换。如果这个地方没有明白,请记住一句话:线性变换是保持网格平行且等距分布的,然后看下面的例子。
在经过线性变换之后,图中的i和j向量是变换了的,由于向量v可以用i和j的线性组合表示,所以向量v变化之后也可以直接表示出来。
这个角度的解释我个人理解是这样的:在思考一个向量经过线性变换之后是什么样的,可以等价的去理解用来表示它的基向量都经历了怎样的线性变换。
比如原来的v是-1倍的i,我们之前也学过,这个-1的意思就是把之前的i向量进行缩放,然后对j向量也进行缩放。这个向量[-1,2]的意思就是对这两个基向量缩放的倍数,那么在进行了线性变换之后的空间里,同样一个[-1,2]这个向量,他就是在新的基向量的基础上进行缩放了。
下面这个图里就很直观的可以看出x和y的关系了,x就是对i的缩放,同理去理解y。那么,有个这个关系,我们就可以在i和j的基础上找出[-1,2]这个向量在线性变换之后到底在新的空间里处于什么位置了。
通过下图中红色框的计算,就可以直接计算出来变换之后的向量具体落在哪里了。
上面的例子说明了,一个二维的线性变换仅有四个数字完全确定。
- 变换后的i的两个坐标
- 变换后的j的两个坐标
一般呢,我们都把这两个向量房子一个中括号里,他们就变成了一个2*2的矩阵。比如下面图这个样子:
3.3矩阵
通过上面的引入我们大概知道矩阵的样子了。那么请记住一句话**矩阵在这里只是一个记号。它含有描述一个线性变换的信息。**下面图里的矩阵,就是上面说的变化之后的基向量组成的,只不过为了更通用一些,我们将具体的数字用a,b,c,d进行了表示:
在有了这个含有线性变换信息的矩阵之后,我们让这个矩阵作用于一个向量(x,y)会有什么样的效果呢?
x作用于(a,c),y作用于(b,d)。上图中的计算结果有没有很眼熟?和矩阵向量乘法真的很像。直接写成下图这样就完全是符合矩阵乘法的了。
在这里,矩阵放在向量的左边,类似一个函数:
所以,有意思的是,现在我们可以将矩阵的列看作是空间中的基向量,然后矩阵乘法看成这些基向量的线性组合。
有了上面的基础,通过两个例子再来加深一下理解:加入给你下图中左上角的矩阵,你能想象出来它经历线性变换之后是右下角的空间吗。
还有一个特殊的例子,在下图这个矩阵线性变换中,变换之后两个基向量变成了线性相关的,那么这个线性变换就将整个二维空间挤压到他们所在的一条直线上,也就是一个一维空间。
总结:
线性变换是操纵空间的一种手段,它保持网格线平行且等距分布,并且保持原点不动。令人高兴的是,这种变换用几个数字就能表示清楚。这些数字就是变换之后的基向量的坐标。以这些坐标为列所构成的矩阵为我们提供了一种描述线性变换的语言。而矩阵向量乘法就是计算线性变换作用于定向量的一种途径。
所以当你每看到一个矩阵,都可以把他解读成对空间的一种特定变换。