谈论矩阵之前我觉得有必要先说下线性变换
空间的线性变换:按我的话来说是,1变换前后原点位置不变;2变换前是直线的变换后仍然是直线。比如,将二维空间逆时针旋转30°,将二维空间放大2倍,将二维空间中的y轴逆时针旋转90°等等,只要满足上述的两个条件,随便你怎么变换,就是把整个二维空间翻个面都可以。
现在我们来思考一个问题:在二维空间中有一个向量v=(3,-2),使二维空间经历整个坐标轴逆时针旋转90°的线性变换,那么变换后的向量该如何得到呢?
想一下,既然要求变换后的向量,那么变换前和变换后的向量应该有相似之处,它们之间应该有某种联系,这种联系是与线性变换接触的最底层。
它是什么呢?没错是基向量,向量都是由基向量组成的,那么无论怎么变换都离不开基向量。
取基向量i(1,0),j(0,1);那么这些基向量变换后的坐标为i(0,1),j(-1,0);即
把这些坐标包装在一个2x2的格子中,就成了一个2x2的矩阵,矩阵的每一列都是一个基向量所拥有的坐标
这就是矩阵
我们由上一节知道,二维向量是两个基向量经过拉伸后的和,那么原先的v=3*i+(-2)*j就会变成
用矩阵来表示的话就是
可能上个例子有点取巧;再举个例子,还是将 v=3*i+(-2)*j求这个向量变换后的表示,不过这次选择将将二维空间逆时针旋转45°,将x轴放大2倍,那么容易得出,变换后的基向量
而变换后的v应该为
用矩阵来表示就是
ok到这我相信应该有人看出一点东西了
没错,矩阵就记录着对空间的线性变换,矩阵与向量的乘法就是将对空间的变换作用于向量
那么矩阵乘矩阵呢?线性变换乘线性变换?复合,没错如果线性变换为整个坐标轴逆时针旋转45°
然后再将整个空间放大三倍,我们可以得到两个矩阵
它们的复合就是
注意 :矩阵的左乘与右乘是不一样的,因为进行了不同的变换,顺序颠倒后的复合变换是不同的,比如上例的是先旋转后放大,如果我们先放大后旋转,就会得到不同的矩阵(我上面的例子有点特殊,可能左乘右乘都一样,我没算);总之先变换的放在右边。