你的解释不够清楚,我无法弄清楚你做错了什么,所以我只告诉你如何从头开始。按照这些指示,您应该能够弄清楚如何解决您的问题。
弄清楚矩阵坐标变换的关键是非常非常清楚什么是线性变换,什么是矩阵,什么是关系。我将从基础开始。我将从重复你知道的东西开始,所以请耐心等待。我只需要确保我们在术语上是一致的。
线性变换是一个函数F,它将一个向量空间映射到另一个向量空间(通常是同一个)。
给定一个有限维向量空间和一个基,您可以在该向量空间中以独特的方式写下任何向量作为一组关联坐标。你得到的代表很大程度上取决于基础。我们通常把它写成竖列。
给定两个有限维向量空间,以及一对关联的基a和b,以及它们之间的线性变换F,我们可以写出如下矩阵。
- 对于
a 中的每个a_i,在基础b 中写下F(a_i) 作为一列。
- 连接这些列以获得矩阵。
这个操作很关键!
因此,矩阵取决于线性变换和一对基选择。我将其表示为M = F<sub>a</sub><sup>b</sup>。
函数组合用矩阵乘法表示。那是F<sub>a</sub><sup>b</sup> * G<sub>b</sub><sup>c</sup> = (F o G)<sub>a</sub><sup>c</sup>。 (矩阵乘法定义的全部意义在于使这一点成为现实。)
现在,在您的情况下,您有一个从 R<sup>3</sup> 到 R<sup>3</sup> 的线性变换“F”。您将它表示在基础“b”中,并且您希望它表示在基础“a”中。那就是您拥有F<sub>b</sub><sup>b</sup> 并希望拥有F<sub>a</sub><sup>a</sup>。让I 成为恒等线性变换,它只是将它发送给它自己。然后F<sub>a</sub><sup>a</sup> = I<sub>a</sub><sup>b</sup> * F<sub>b</sub><sup>b</sup> * I<sub>b</sub><sup>a</sup>,您需要做的就是找出矩阵I<sub>a</sub><sup>b</sup> 和I<sub>b</sub><sup>a</sup> 是什么。
现在您有了坐标系a(通常坐标)和b。你知道b 在坐标系a 中写的是什么。按照上面的说明用矩阵表示线性算子(我说的那个很关键),你可以立即写下I<sub>b</sub><sup>a</sup>。矩阵I<sub>a</sub><sup>b</sup> 是这个矩阵的逆矩阵。
请注意,许多人对I<sub>a</sub><sup>b</sup> 与他们猜想的相反这一事实感到困惑。但这是很容易体验的东西。我强烈建议您实际尝试一下。起床。转 90 度。请注意,当你转向一个方向时,看起来世界会转向另一个方向。您正在经历这样一个事实,即当您的坐标系以一种方式旋转时,事物的表示会相反(即以另一种方式旋转)。
编辑:线性运算符的解释是正确的,但是所述问题涉及围绕不是原点的点的旋转。所有线性算子都将原点发送到原点。这种操作可以将origin发送到其他地方。因此,我们需要从线性函数转向仿射函数。但幸运的是,仿射函数并不是什么大问题。它们实际上是一个常数点加上一个线性部分。这不是由Mx 和M 矩阵表示的函数,而是以p + Mx 形式的函数,p 一个点和M 一个矩阵。
首先,引入一个重要但看似武断的区别非常有帮助。一个点就是一个点。向量是点之间的偏移量,可以表示为一个点减去另一个点。点和向量确实是不同种类的东西,我们应该以不同的方式看待它们。
这就是我们做出区分的原因。如果F 是一个点上的仿射函数,那么F 是一个线性 函数,将向量映射到向量。 (常数位同时移动向量的起点和终点,但不会改变它们彼此之间的偏移量。)这让我们可以轻松地将仿射函数的常数部分和线性部分分开。
在处理仿射函数时,没有特别的理由只处理以原点为中心的坐标系,而且通常有充分的理由不这样做。因此,坐标系由向量空间的点p 和基a 确定。 (稍微复杂一点,但不多。)在该坐标系中,任意点q 可以映射到矢量q - p,然后该矢量在基础a 中表示。同样,习惯上将这些坐标写成一列。
现在如果F 是一个仿射函数,那么您需要做的就是找出F 的线性部分,并添加F 发送坐标系原点的位置。
如果您要在一个坐标系(p, a) 中获取仿射函数并将其转换为另一个(q, b),您只需将线性位从基础a 转换为基础b,然后找出 F(p) 的结果。
所以仿射函数基本上是线性函数,其中包含有关原点所在位置的信息。大部分工作都花在线性函数的矩阵表示上,但你不能忘记弄清楚原点会发生什么。