据我的经验,如果丢掉矩阵的话,那些涉及矩阵的证明可以缩短一半。—— 埃米尔.阿廷
复合变换

很多时候你发现你想描述这样一种作用:一个变换之后再进行另一个变换,比如说将整个平面逆时针旋转90度后,再进行一次剪切。从头到尾的总体作用是另一个线性变换,它与旋转和剪切明显不同,这个新的线性变换通常被称为前两个独立变换的“复合变换”;

和其他线性变换一样,我们也能通过追踪i帽和j帽,并用矩阵完全描述这个复合变换,在这个例子中,i帽在两个线性变换之后的最终落点是 (1, 1) ,j帽最终落点是 (-1, 0),这一新的矩阵 [[1, -1], [1, 0]] 捕捉到了旋转然后剪切的总体效应;但它是一个单独的作用,而不是两个相继作用的合成;
矩阵乘法

这里有种方法来考虑这个新矩阵,如果你有一个向量,将它进行旋转然后剪切,计算结果就是:首先将它左乘旋转矩阵,然后将得到的结果再左乘剪切矩阵,从数值角度看,这意味着对一个给定向量进行旋转然后剪切;但是无论所选向量是什么,结果都应该与复合变换作用的结果完全相同,因为新矩阵应当捕捉到了旋转然后剪切的相同总体效应;

这里,新矩阵就称为最初两个矩阵的乘积,时刻记住,两个矩阵相乘有着几何意义,也就是两个线性变换相继作用;这里乘积需要从右向左读,首先应用右侧矩阵所描述的变换,然后再应用左侧矩阵所描述的变换,它起源于函数的记号,因为我们将函数写在变量左侧,所以每次将两个函数复合时,你总是要从右向左读;

矩阵乘法和矩阵向量乘法本质是一样的,比如两个矩阵相乘,就相当于左边的矩阵对右边矩阵的每个向量(列)进行矩阵向量乘法,即应用线性变换。
矩阵相乘顺序
矩阵相乘时,它们的先后顺序影响结果吗?我们来看一个简单的例子,比如之前提到的两个变换:
- 一个是剪切,它保持i帽不变,将j帽挤到右边;
- 一个是90度旋转;

第一种顺序:先剪切,再旋转,你会发现i帽落在 (0, 1) ,j帽落在 (-1, 1) ,它们靠的很近;

第二种顺序:先旋转,再剪切,i帽落在 (1, 1) ,j帽落在 (-1, 0) ,它们的指向分隔很远;
二者总体效果明显不同,所以乘积顺序显然会有影响,这里我们在用变换来思考,这一过程可以在脑中形象地进行,完全不需要做矩阵乘法;
矩阵乘法结合律

如果要证明这个公式,你可以尝试用数值的方式证明,但这个过程太过糟糕,而且对你毫无启发,就是一堆数字而已;但是如果你用变换相继作用的思想去考虑矩阵乘积,这一性质就变得很平凡了,因为公式左右的本质都是按同样的顺序对空间进行C变换->B变换->A变换,完全没有需要证明的东西;
网友评论