如何进行高维旋转

描述

作者:Eugene Wang  

如果我们想要对二维矢量进行旋转,我们需要知道旋转点和旋转角度。如果要进行三维旋转,我们需要指定旋转轴和旋转角度。那么,我们可以进行四维旋转吗?或者说,我们可以进行更复杂的旋转吗?事实上,我们可以将其简化为,有一个n维向量,然后将这个向量旋转到另一个n维向量,我们将用更系统的方式来表达旋转。

首先,我们先来看看旋转的一些性质。第一个性质是旋转是线性变换,这种线性意味着两个方程:  和  。如果你在二维平面画出这些向量,你就可以验证它们。

由于旋转的线性属性,我们可以把旋转写成矩阵的形式:n维向量的旋转等于旋转矩阵R乘以n维向量。剩下的目标就是找到旋转矩阵R,使得  。

接下来,我们要来讲旋转的第二个性质:如果我们只是单纯旋转,向量的长度和向量之间的角度应该保持不变。这一性质意味着,两个向量的点积在旋转前后保持不变。也就是说,如果原来是v·w,那么两个向量旋转后就变成了Rv·Rw,两个点积是相等的:  。

对于实数向量,我们也可以将点积写为第一个向量的转置乘以第二个向量:  。我们也可以将等式右边进行一下变换,就可以得到  。因为这对于所有的向量v和w都是成立的,所以中间的  就是单位矩阵  。

因此,归结起来第二个性质就是满足  的旋转矩阵,我们把满足该性质的所有矩阵的集合表示为  ,O代表正交,n代表矩阵R的阶。

然而,长度和角度保持不变不仅仅只有旋转能做得到,反射也能做到这一点。因此,与反射对应的矩阵也将是属于O(n)的。所以,我们需要旋转的第三个性质,即它不会改变顺序。我的意思是,假如原本从向量v到向量w是逆时针,那么经过反射后就变成了顺时针,而旋转却不会做出这样的改变。因此,根据线性代数的知识,我们知道旋转矩阵R的行列式应该为正的,所以  。

矩阵

因此,如果一个矩阵已经属于O(n),并且它的行列式为1,那么它就属于SO(n):  。这里的S代表特殊的,对应于行列式为1的附加要求。

以上的讨论都是针对实向量,如果我们要旋转复数向量的话,我们只要稍微进行修改就行。首先,我们把旋转矩阵R替换成矩阵U,它们之间的区别是U是一个复矩阵。其次,从第二个性质我们得到了  ,现在我们要把它改成  ,其中  意味着我们除了转置之外还取复共轭。最后,我们还有:  和  。

这样一来,我们就将旋转推广到了更高的维度和复数。虽然这些旋转矩阵很难直接去求解,但幸运的是,这些矩阵的集合,无论是O(n)、SO(n)、U(n)还是SU(n),都会形成称为李群的东西,这些都可以通过李理论去求解。

编辑:黄飞

打开APP阅读更多精彩内容
声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉

全部0条评论

快来发表一下你的评论吧 !

×
20
完善资料,
赚取积分