回顾:
严格意义上来说,线性变换是将向量作为输入和输出的一类函数,可以将线性变换看做是对空间的挤压和伸缩,网格等距分布且保持原点不变。
关键一点在于:线性变换由它对空间的基向量作用完全决定。
在二维空间中基向量就是i^和j^,这是因为其它任何向量都能表示为基向量的线性组合。
坐标为x,y的向量就是x乘以i^加上y乘以j^,在线性变换之后,网格线保持平行且等距分布这一性质有一个绝妙的推论,向量x,y变换后的结果将是x乘以变换后的i^加上y乘以变换后的j^,这意味着只要记录下i^和j^变换后的位置就能计算出一个坐标为(x,y)的向量变换后的坐标,就是x乘以变换后的i^加上y乘以变换后的j^得坐标。
习惯上我们将变换后的i^和j^作为矩阵的列,并且将两列分别于x和y相乘后加和的结果定义为矩阵向量的乘积。
这样矩阵代表一个特定的线性变换。
而矩阵与向量相乘就是将线性变换用于那个向量。
很多时候我们想描述这样一个内容:
一个变换之后在进行另一个变换,比如说将整个矩阵逆时针旋转90°在进行剪切变换会发生什么?
从头到位的总体作用是另一个线性变换,它与旋转和剪切明显不同,这个新的线性变换通常被成为前两个独立变换的的复合变换,和其它线性变换一样,我们也能通过追踪i^和j^并用矩阵完全描述这个复合变换。
在这个例子中,i^在两个线性变换之后的最终落点是(1,1)我们将它作为矩阵的第一列,同样的,j^在两个线性变换之后的最终落点是(-1,0),我们将它作为矩阵的第二列。
这个新一矩阵捕捉到了旋转后然后剪切的总体效应,但是它是一个单独的作用而不是两个相继作用的合成。
这里有种方法来考虑这个新的矩阵,如果你有一个向量将它进行旋转然后进行剪切,一个麻烦的计算方法是:“首先将它左乘旋转矩阵,然后将它得到的结果在左乘剪切矩阵”。从数值角度来看,这意味着对给定一个向量进行旋转然后剪切,但是无论所选向量是什么,结果都应该与复合变换的结果完全形同,因为新矩阵应当捕捉到了旋转然后剪切的总体效应。
根据上图内容,我认为将这个新矩阵成为最初两个矩阵的积是合理的。
两个矩阵相乘有着几何意义,也就是两个线性变换相继作用。
复合变换计算方式
矩阵变换相乘时他们的先后顺序影响结果吗?
假设一个是剪切他保持i^不变(0,1)将j^挤到右边(1,1),一个是90°旋转i^(0,1)(0,-1),如果先剪切后旋转,会发现i^落在(0,1)j^落在(-1,1)计算公式为它们彼此靠得很近。
如果你首先旋转然后剪切,i^落在(1,1)而j^落在不同的方向(-1,0)它们的指向分隔很远。
二者总体效应不同,所以乘积顺序明显会有影响。
我们用变换来思考,这一过程可以在大脑中形象的进行,完全不需要进行矩阵乘法。
学习线性代数有一道作业题,证明矩阵乘法具有结合性:
矩阵乘法具有结合性。