基变换
如果我在二维空间中有一个向量,我们就有一种用坐标表示它的标准方法,在这种情况下,这个向量的坐标为(3,2),也就意味着从它的起点到它的尖端,需要向右移动3个单位,并向上移动2个单位。现在以更加线性代数的
方法来描述坐标,是将这些数看作拉伸或者压缩向量的标量。你将第一个坐标看作缩放i冒的标量,第二坐标看作缩放j冒的标量。i冒就是指向右方且长度为1的向量,j冒就是指向正上方且长度为1的向量。
这两个经过缩放的向量的和就是坐标所要描述的向量。你可以把这两个特殊的向量看作封装于我们这个坐标系中的隐含假设。第一个数字表示向右的运动,第二个数字表示向上的运动。长度单位的确切大小,
上面所有的事实都和i冒与j冒的选取有密切联系。因为这两个向量整数标量缩放的对象。发生在向量与一组数之间的任意一种转化,都被称为一个坐标系。而其中两个特殊的向量,i冒和j冒被称为我们这个标准坐标系的基向量。
我想在此讨论的是使用另一组基向量的思想,比如说你有一个朋友,Tom,他使用着一组不同的基向量,我们称其为b1和b2,它的第一个基向量b1指向右上方,它的第二个基向量b2指向左上方。现在再看看之前我所展示的向量,
也就是根据i冒和j冒这组基向量,你我会用坐标(3,2)来描述的那个向量,Tom其实会用坐标(5/3,1/3)来描述他。这意味着,根据他的两个基向量,获得那个向量的方法b1乘以5/3,b2乘以1/3,再将两个结果相加。
很快我就会像你展示如何计算出这两个数,5/3和1/3,总之,无论何时Tom用坐标来描述一个向量,他将第一个坐标乘以b1,第二坐标乘以b2,然后将结果相加。他最终得到的向量,会和你我认为的相同坐标的向量
完全不同。更确切的说一说这里的设定,对于他的第一个基向量b1,我们会用坐标(2,1)来描述,对于他的第二个基向量b2,我们用(-1,1)来描述,但是更重要的一点是,从他的角度来看,在他的坐标系中,这两个
向量的坐标为(1,0),(0,1),(因为)他们就是定义坐标系(1,0)和(0,1)含义的向量,所以我们实际上说着不同的语言。
虽然我们都在关注空间中的同一个向量,但是tom用不同的语言和数字来描述它。我再快速讲讲我是如何表示这些东西的,在制作二维空间的动画时,我通常使用这样的方形网格,但是这个网格只是一个框架,
提供了一种将坐标可视化的途径。因此,他依赖于我们对基的选择。空间本身并没有内蕴的网格,Tom可能会画出他自己的网格,他同样是一个人为的框架,也只不过是有助于理解他的坐标含义的可视化工具。
但是他的原点会和我们的原点重合,因为大家在坐标(0,0)的含义上达成了共识了,他就是任何向量乘以0时你所得到的坐标,但是他的坐标轴的方向与网格间距会有所不同,这依赖于他对基的选择,在这一切构建完毕之后,
一个很自然的问题是:我们如何在不同坐标系之间进行转化?比如说,如果Tom用坐标(-1,2)描述一个向量,那么这个向量在外面的坐标系中如何描述?你如何从他的语言转化到我们的语言?
他的坐标是说,这个向量是-1乘以b1加速2乘以b2,从我们的角度来看,b1的坐标是(2,1),b2的坐标为(-1,1),所以实际上,我们可以直接计算-1乘以b1加上2乘以b2,因为他们都是在外面的坐标系中表示的。
计算之后你得到了一个坐标为(-4,1)的向量,我们就是这样来描述他所认为的向量(-1,2)的,这里发生的过程,也就是用某个向量的特定坐标与他的基向量数乘,然后将结果相加,看起来有些眼熟。这就是矩阵
向量乘法,这个矩阵的列代表的是用我们的语言表达的tom的基向量。实际上,一旦你将矩阵向量乘法理解为应用一个特定的线性变换,也就是我曾提到这个系列中最重要的第三章视频内容。一个矩阵的列为
Tom的基向量,这个矩阵可以看作一个线性变换,它将我们的基向量i冒和j冒,也就是我们眼中的(1,0)和(0,1),变换为了Tom的基向量,也就是他眼中的(1,0)和(0,1),为了演示操作方法,我们来看看对我们所想
的向量(-1,2)应用变换是什么意思?在线性变换之前,我们所想的向量是我们的基向量的一种特定线性组合。-1乘以i冒,加上2乘以j冒,而线性变换的一个重要特性在于变换后的向量仍旧是相同的线性组合,不过使用的是
新的基向量。
-1乘以变换后的i冒,加上2乘以变换后的j冒,因此这个矩阵所做的是将我们对Tom的向量的误解,变换为他提到的真正向量。我还记得当初学习这部分内容时,我总是感觉它是颠倒的,从几何上说,这个矩阵将我们的网格变换为Tom
的网格。但是从数值上说,这是用他的语言来描述转化为用我们的语言来描述。最终让我恍然大悟的是,把它看作将我们对Tom向量的误解,也就是在我们的坐标系中具有相同坐标的向量,变换为她真正想表示的向量。那相反方向又如何呢?
还是这期视频前期我所使用的例子,在我们的坐标系中,有一个坐标为(3,2)的向量,我如何计算出它在Tom的坐标系中的坐标(5/3,1/3),之前的基变换矩阵从Tom的语言转化到我们的语言,你就此入手,取这个矩阵的
逆,记住一点,一个变换的逆是一个新的变换,它将所选的变换逆向进行。实践当中,尤其是在超过二维的空间中研究时,你可以用计算机来计算矩阵的逆,在这里,对于以Tom的基向量作为列的基变换矩阵。
通过计算得出,其逆矩阵的两列为(1/3,-1/3)和(1/3,2/3),如果想知道向量(3,2)在Tom的坐标系下如何表示,我们用这个基变换矩阵的逆乘以向量(3,2),结果为(5/3,1/3).
总而言之,以上就是如何在坐标系之间对单个向量的描述进行相互转化,一个矩阵的列代表的是Tom的基向量,却是用我们的坐标来描述。对于一个向量,这个矩阵将他的语言描述转化为我们的语言描述。
逆矩阵则与之相反,不过,向量并不是唯一用坐标表示的东西,重要的是,接下来的内容里,你需要熟悉矩阵代表线性变换,以及矩阵乘积对应于线性变换复合这两点。如果你觉得并不是那么轻松,一定要停下来,去看看第三章和第四章的内容。
考虑某个线性变换,譬如逆时针旋转90度,你我用矩阵代表它的时候,我们是在跟踪i冒和j冒的去向。i冒在变换后处于坐标(0,1),而j冒在变换后处于坐标(-1,0),这些坐标也就成为了矩阵的列。但是这种表示与
我们对基向量的选择密切相关,因为我们跟踪的是i冒和j冒,并且是在我们自己的坐标系中记录他们的去向。Tom如何描述同样的空间90度旋转呢?你可能尝试只将旋转矩阵的列转化为用Tom的语言描述,但是并不
尽然,这些列代表的是i冒和j冒的去向,但是Tom想要的是矩阵需要代表他的基向量的去向,并且是用她的语言来描述。这个过程通常是这样的,从Tom的语言描述的任一向量出发,首先我们不用他的语言描述这
一过程,而是用基变换矩阵转化为用我们的语言描述,这个矩阵的列代表的是用我们的语言描述的他的基向量。此时给出的是同样一个向量,不过是用我们的语言来描述的,然后将所得结果左乘线性变换矩阵。
此时给出的是变换后的向量,但仍然是用我们的语言来描述的,所以最后一步,像之前一样将所得结果左乘基变换矩阵的逆,从而得到变换后的向量,然而是用Tom的语言来描述的。因为我们能够对Tom语言描述的任一向量
做同样的事。首先应用基变换,然后应用线性变换,最后应用基变换的逆。这三个矩阵的复合给出的就是用Tom语言描述的线性变换矩阵。它接收用Tom语言描述的向量,并输出用Tom语言描述的变换后的向量。
总的来说,每当逆看到这样一个表达式:A逆乘以M乘以A,这就暗示着一种数学上的转移作用。中间的矩阵代表一种你所见的变换,而外侧两个矩阵代表着转移作用,也就是视角上的转化。矩阵乘积仍然代表着同一个变换,
只不过是从其他人的角度来看的。对那些想知道为什么关注坐标系变换的人来说,下期关于特征值和特征向量的视频会给出一个非常重要的实例。