在直角坐标系中,任何一个向量(点的坐标)都可以看做是对基向量 i 和j缩放的标量。将这两个经过缩放的基向量相加就是坐标要描述的向量。
这个视角下,任何一个向量的第一个数字可以看成是(从原点)向右的运动,第二个数字是向上的运动,而这个事实取决于与我们选择的基向量 i [1,0] 和j[0,1],因为这两个向量是我们进行缩放的对象。那么如果我们使用不同的基向量会怎么样?
假设现在我们有了另一组基向量 b1 和b2,在我们的原始坐标系中,我们用 [2,1] 来描述 b1,[-1,1] 来描述 b2.
于是,虽然我们关注的是空间中的同一个向量,但在原坐标系中它是[3,2],在新的坐标系中就是另一个表达了(不过记住,无论是什么坐标系,原点是同一个)。这就好比两种语言描述同一个事物。
那么如何在不同的坐标系之间互相转化呢?
先看如何把新坐标系中向量的坐标转换为老坐标系。很简单,用新坐标系中的向量的坐标,数乘用老坐标系表达的新基向量,就得到了在老坐标系中向量的对应表达(黄色向量)。
注意,这就是一个矩阵与向量的乘法。我们之前已经从几何上理解了,矩阵向量乘法相当于对向量做了一个特定的线性变换,这里也可以同样的方法去理解。这个由新坐标系中的基向量构成的矩阵可以看成是一个线性变换,它将老坐标系中的基向量 i 和j转换成新基向量 [2,1] [-1,1].
同理,已知老坐标系中向量的坐标,如何知道它在新坐标系中的坐标呢?很简单,逆向变换一下,用老坐标系中向量的坐标,乘以新的基向量构成的矩阵的逆就行了。
用两张图总结一下不同坐标系之间的相互转化:
上面我们讲了如何在不同坐标系上表达同一个向量,那么如何用类似的道理来描述不同坐标系上的同一个线性变换(矩阵)呢?例如,我们知道在老坐标系中,逆时针90度的旋转可以用矩阵:
来表示。注意,我们的原始基向量 i[1,0] 和j[0,1] 经过90度旋转后变成了 [0,1] 和[-1,0], 组合在一起就变成了我们的变换矩阵。那么如何在新坐标系中描述这个变换呢?
首先从新坐标系的任一向量出发,例如 [-1,2]。
然后,对其施加基变换,即乘以新的基向量构成的矩阵。这时得到了该向量在老坐标系中的表达。
接着,把结果左乘我们老坐标系下的线性变换矩阵,这时就得到了变换后的向量,不过