0
  • 聊天消息
  • 系统消息
  • 评论与回复
登录后你可以
  • 下载海量资料
  • 学习在线课程
  • 观看技术视频
  • 写文章/发帖/加入社区
会员中心
创作中心

完善资料让更多小伙伴认识你,还能领取20积分哦,立即完善>

3天内不再提示

如何进行高维旋转

中科院半导体所 来源:万象经验 2023-08-29 11:39 次阅读

作者:Eugene Wang

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

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

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

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

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

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

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

2d0e46d6-458b-11ee-a2ef-92fbcf53809c.png

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

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

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

编辑:黄飞

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

    关注

    0

    文章

    422

    浏览量

    34490
  • 线性代数
    +关注

    关注

    5

    文章

    50

    浏览量

    11052

原文标题:如何进行高维旋转

文章出处:【微信号:bdtdsj,微信公众号:中科院半导体所】欢迎添加关注!文章转载请注明出处。

收藏 人收藏

    评论

    相关推荐

    如何导入机械臂的三模型

    目的   本文手把手教你如何在 Mathematica 软件中搭建机械臂的三仿真环境,包括以下几部分:   1. 如何导入机械臂的三模型;   2. 如何进行(正/逆)运动学仿真;   3.
    发表于 09-07 09:25

    何进行Bootloader烧录?

    何进行Bootloader烧录?
    发表于 10-28 07:25

    旋转编码器如何进行编程?

    旋转编码器如何进行编程?
    发表于 01-21 06:56

    java教程之如何进行Java异常处理?

    本文档的主要内容详细介绍的是java教程之如何进行Java异常处理?
    发表于 09-28 17:16 0次下载

    何进行程序的扩展

    本文档的主要内容详细介绍的是程序的扩展性如何进行程序的扩展。
    发表于 04-26 18:26 0次下载
    如<b class='flag-5'>何进行</b>程序的扩展

    何进行无线通信的调制与编码

    本文档的主要内容详细介绍的是如何进行无线通信的调制与编码。
    发表于 03-03 08:00 7次下载
    如<b class='flag-5'>何进行</b>无线通信的调制与编码

    可对海量数据进行有效的聚类分析算法

    随着大数据时代的来临,如何对海量数据进行有效的聚类分析并充分利用,已成为当下的热门研究课题。传统的聚类算法在处理数据时,聚类结果的精
    发表于 05-28 16:26 0次下载

    可对海量数据进行有效的聚类分析算法

    随着大数据时代的来临,如何对海量数据进行有效的聚类分析并充分利用,已成为当下的热门研究课题。传统的聚类算法在处理数据时,聚类结果的精
    发表于 05-28 16:26 3次下载

    何进行OPCDCOM配置

    何进行OPCDCOM配置(四会理士电源技术有限公司招聘)-如何进行OPCDCOM配置                      
    发表于 09-18 14:23 11次下载
    如<b class='flag-5'>何进行</b>OPCDCOM配置

    何进行FFT IP配置和设计

    以Xilinx Vivado设计套件中提供的FFT IP为例,简要说明如何进行FFT IP配置和设计。
    的头像 发表于 07-22 10:21 2361次阅读

    何进行血氧和体温测量

    电子发烧友网站提供《如何进行血氧和体温测量.zip》资料免费下载
    发表于 10-24 10:27 2次下载
    如<b class='flag-5'>何进行</b>血氧和体温测量

    PowerLab 笔记:如何进行分立式设计

    PowerLab 笔记:如何进行分立式设计
    发表于 11-07 08:07 0次下载
    PowerLab 笔记:如<b class='flag-5'>何进行</b>分立式设计

    直线模组如何进行精度校准?

    直线模组如何进行精度校准?
    的头像 发表于 08-01 17:44 1041次阅读
    直线模组如<b class='flag-5'>何进行</b>精度校准?

    cad如何进行建模

    建模是计算机辅助设计(CAD)中的一项重要技术,它可以帮助设计师在计算机上创建和编辑三模型。本文将介绍如何使用CAD软件进行建模,包括建模的基本步骤、建模技巧和注意事项等。
    的头像 发表于 07-09 10:23 718次阅读

    何进行电源供应设计

    电子发烧友网站提供《如何进行电源供应设计.pdf》资料免费下载
    发表于 09-09 10:33 0次下载
    如<b class='flag-5'>何进行</b>电源供应设计