11.基变换

574 阅读10分钟

如果我们在二维空间中有一个向量,我们就有一种用坐标表示它的标准方法。
在这种情况下,这个坐标为(3,2),也就意味着从它的起点到它的尖端需要向右移动三个单位并向上移动两个单位。

image.png

现在以更加线性代数的方法描述坐,是将这些数看做拉伸或者压缩向量的标量,将第一个坐标看做缩放i帽的标量,i帽就是指向正右方且长度为1的向量,第二个坐标看做缩放j帽的标量,j帽就是指向正上方且长度为1的向量,这两个经过缩放的向量的和就是坐标所要描述的向量。
你可以把这两个特殊的向量看做封装于我们这个坐标系中的隐含假设,第一个数字表示向右的移动,第二个数字表示向上的移动,长度单位的确切大小,上面所有事实都和i帽和j帽的选取有密切关系因为这两个向量正是标量缩放的对象,发生在向量与一组数之间的任意一种转化都被称为一个坐标系,而其中两个特殊向量i帽和j帽被称为我们这个标准坐标系的基向量。
我想讨论的是使用另一组基向量的思想。
比如说你有一个朋友詹妮弗,她使用着一组不同的基向量我将其称之为b1和b2,它的第一个基向量b1指向右上方,带二个基向量b2指向左上方。
现在再看看之前我们所展示的向量,也就是根据i帽和j帽这组基向量,你我会用(3,2)来描述的那个向量。
詹尼佛其实会用坐标(5/3,1/3)来描述它。这意味着根据她的两个基向量获得那个向量的方法是:b1乘以5/3,b2乘以1/3再将两个结果相加,很快就会像你展示如何计算出这两个数3/5和1/3。

image.png

总之无论何时詹妮弗用坐标来描述一个向量,她将第一个坐标乘以b1将第二个坐标乘以b2然后将结果相加,她最终得到的向量会和你我认为相同坐标的向量完全不同,更确切地说一说这里的设定,对于她的第一个基向量b1我们会用坐标(2,1来描述),对于她的第二个基向量b2我们会用(-1,1)来描述,但更重要的一点是,从她的角度看,在她的坐标系中,这两个向量的坐标为(1,0)和(0,1)因为它们是定义(1,0)和(0,1)含义的向量,所以我们实际上说着不同的语言虽然我们都在关注空间中的同一个向量,但是詹妮弗用不同的语言和数字描述它。
我再来讲讲我是如何表示这些东西的。
在制作二维空间动画我通常用这样的方形网格,但是这个网格只是一个框架,提供了一种将坐标可视化的途径,因此它依赖于我们对基的选择。

image.png

空间本身并没有内蕴的网格,詹妮弗可能会画出她自己的网格,他同样是一个人为的框架,也只不是有助于理解她的坐标含义的可视化工具,但是她的原点会和我们的原点重合,因为大家在(0,0)的含以上达成了共识,它就是任何向量乘以0时你所得到的坐标,但是她的坐标轴的方向与网格间距会有所不同,这依赖于她对基的选择。
在这一切构建完毕以后。一个人自然的问题是:我们如何在不同的坐标系之间进行转化?
比如说如果詹妮弗用坐标(-1,2)来描述一个向量那个么这个向量在我们的坐标系中如何进行描述?你如何将他的语言转化成我们的语言?

image.png

她的坐标是说,这个向量是-1乘以b1,加上2乘以b2,从我们的角度来看,b1的坐标是(2,1),b2的坐标是-1,1),所以实际上我们可以直接计算-1乘以b1加上2乘以b2,因为它们都是在我们的坐标系中表示的,计算之后你得到了一个坐标为(-4,1)的向量。我么就是这样来描述她所认为的(-1,2)的,这里发生发过程也就是某个向量的特定坐标与她的基向量数乘,然后将结果相加,着看起来有点眼熟,这就是矩阵向量乘法,这个矩阵的列代表的是我们的语言表达的詹妮弗的基向量。

image.png

实际上一旦你将矩阵向量乘法理解为应用一个特定的线性变换,就会有一种非常直观的方法来考虑这里发生的事。
一个矩阵的列为詹妮弗的基向量,这个矩阵可以看作一个线性变换,它将我们的基向量i帽和j帽也就是我们眼中的(1,0)和(0,1)变换成为詹妮弗的基向量也就是她眼中的(1,0)和(0,1)。
我们来看看对于我们所想的向量(-1,2)应用变换是什么意思?
在线性变换之前,我们所想的向量是我们的基向量的一种特定线性组合,-1乘以i帽加上2乘以j帽,而线性变换的一个重要特性在于变换后的向量仍旧是相同的线性组合,不过使用的是新的基向量,-1乘以变换后的i帽加上2乘以变换后的j帽因此这个矩阵所做是将我们对詹妮弗的向量的误解变换为她提到的真正向量。
当初学习这部分内容时总感觉它是颠倒的,从几何上说,这个矩阵将我们的网格变换为詹妮弗的网格,但是从数值上说,这是用她的语言来描述转化为用我们的语言来描述,最终让我恍然大悟的是,把它看做将我们对詹妮弗的向量的误解,也就是我们的坐标系中具有相同坐标的向量变换为她真正想表示的向量。
那相反方向又如何呢?
还是前期我们所使用的例子,在我们坐标系中有一个坐标为(3,2)的向量,我们如何计算出它在詹妮弗的坐标系中的坐标为(5/3,1/3)?
之前基变换的人矩阵将詹妮弗的语言转化为我们的语言,你就此入手去这个矩阵的逆,记住一点,一个变换的逆是一个新的变换,它将所选的变换逆向进行,实践当中,尤其在超过二维空间中研究时你可以用计算机来计算矩阵中的逆,在这里对于以詹妮弗的基向量作为列的基变换矩阵,通过计算得出其逆矩阵的两列为(1/3,-1/3)和(1/3,2/3)。如果想知道向量(3,2)在詹妮弗的坐标系下如何表示,我们用这个基变换的逆乘以向量(3,2)结果为(5/3)(3/1)。

image.png

image.png

image.png

总而言之,以上就是如何在坐标系之间对单个向量的描述进行互相转化。
一个矩阵的列代表的是詹妮弗的基向量却是用我们的坐标来描述,对于一个向量这个矩阵将她的语言描述转化为我们的语言描述,逆矩阵则与之相反。
不过向量并不是唯一用坐标来表示的东西,重要的是接下来的内容里你需要熟悉矩阵代表线性变换。以及矩阵乘积对应于线性变换复合这两点,如果你觉得并不是那么轻松一定要停下来看看矩阵与线性变换和矩阵乘法与线性变换复合的联系这两章。
考虑某个线性变换比如逆时针旋转90°你我用矩阵代表它的时候我们是在跟踪i帽和j帽的去向,i帽在变换后处于坐标(0,1)j帽在变换后处于坐标(-1,0)这些坐标也就成为了矩阵的列,但是这种表示与我们对基向量的选择密切相关,因为我们跟踪的是i帽和j帽,并且是在我们自己的坐标系中记录它们的去向。
詹妮弗如何描述同样的空间90°旋转呢?
你可能会尝试只讲旋转矩阵的列转化为詹妮弗的语言描述,但是并不尽然。这些列代表的是i帽和j帽的去向。但是詹妮弗想要的矩阵需要代表她的基向量的去向并且是用她的语言来描述。
这个过程通常的想法是这样的,从詹妮弗语言描述的任一向量出发,首先我们不用她的语言描述这一过程,而是用基变换矩阵转化为我们的语言描述,这个矩阵的列代表的是用我们的语言描述她的基向量,此时给出的是同一个向量不过是用我们的语言来描述的。然后将所有结果左乘线性变换矩阵,此时给出的时变换后的向量,但是仍然是我们的语言描述的,所以最后一步,像之前一样将所得结果左乘基变换的逆,从而得到变换后的向量,然而是用詹妮弗的语言来描述的,因为我们能够对詹妮弗语言描述的任一向量做同样的事,首先应用基变换然后应用线性变换最后应用基变换的逆,这三个矩阵的复合给出的就是用詹妮弗语言描述的线性变换矩阵。她接收用詹妮弗语言并输出用詹妮弗语言描述变换后的向量。

image.png

image.png

image.png

对于目前这一特定例子而言,詹妮弗的基向量用我们的语言来描述是(2,1)和(-1,1),线性变换是90°旋转,如果你去计算的话这三个矩阵的乘积为(1/3,5/3)和(-2/3,-1/3)。

image.png

所以如果詹妮弗用这个矩阵与她的坐标系中的一个向量相乘结果就是在它的坐标系中描述该向量旋转90°的结果。

image.png

总的来说:当你看到这样一个表达式A逆乘以M乘以A这就暗示着一种数学上的转移作用,中间的作用代表你所见的变换,而外侧两个矩阵代表着转移作用,也就是视角上的转化,矩阵乘积仍然代表着同一个变换只不过是从其他人角度来看的。