四元数与空间旋转

来自testwiki
跳转到导航 跳转到搜索

Template:NoteTA 单位四元数Unit quaternion)可以用于表示三维空间裡的旋转[1]。它与常用的另外两种表示方式(三维正交矩阵欧拉角)是等价的,但是避免了欧拉角表示法中的万向锁问题。比起三维正交矩阵表示,四元数表示能够更方便地给出旋转的转轴与旋转角。

基本方法

用四元数来表示旋转要解决两个问题,一是如何用四元数表示三维空间裡的点,二是如何用四元数表示三维空间的旋转。

四元数表示空间中的点

若三维空间裡的一个点的笛卡尔坐标为 (Template:Mvar,Template:Mvar,Template:Mvar),则它用纯四元数(类似于纯虚数,即实部为0的四元数)Template:Mvar+Template:Mvar+Template:Mvar 表示。

单位四元数表示一个三维空间旋转

Template:Mvar 为一个单位四元数,而 Template:Mvar 是一个纯四元数,定义

Rq(p)=qpq1

Template:MvarTemplate:Mvar(Template:Mvar) 也是一个纯四元数,可以证明 Template:MvarTemplate:Mvar 确实表示一个旋转,这个旋转将空间的点 Template:Mvar 旋转为空间的另一个点 Template:MvarTemplate:Mvar(Template:Mvar)[1]

与正交矩阵表示的关系

四元数的表示与正交矩阵表示是等价的,这可以通过直接的代数计算得到。

仿照关于单位复数欧拉公式的证明方法,可以得到单位四元数的欧拉公式:

eθ2(xi+yj+zk)=cosθ2+(xi+yj+zk)sinθ2,for x,y,z s.t. x2+y2+z2=1

显然,当 Template:Mvar=1, Template:Mvar=Template:Mvar=0 的时候就回到一般的欧拉公式。

q=eθ2(uxi+uyj+uzk)=cosθ2+(uxi+uyj+uzk)sinθ2
p=xi+yj+zk
p=q1pq=w+xi+yj+zk

(通过下面的计算可以知道,Template:Mvar=0,即计算结果是纯四元数)

q1=eθ2(uxi+uyj+uzk)=cosθ2(uxi+uyj+uzk)sinθ2

为简便起见,令

c=cosθ2,s=sinθ2

q1pq=[c(uxi+uyj+uzk)s](xi+yj+zk)[c+(uxi+uyj+uzk)s]=[c(uxi+uyj+uzk)s]{(uxx+uyy+uzz)s+i[xc+(uzyuyz)s]+j[yc+(uxzuzx)s]+k[zc+(uyxuxy)s]}=i{xc2+2(uzyuyz)sc+[ux(uxx+uyy+uzz)uy(uyxuxy)+uz(uxzuzx)]s2}+

省略号表示由第一项通过简单的轮换可以得到的项。最后得到四元数的矩阵表示为

[xyz]=M(q)[xyz]=[c2(12ux2)s22uxuys2+2uzsc2uxuzs22uysc2uxuys22uzscc2(12uy2)s22uyuzs2+2uxsc2uxuzs2+2uysc2uyuzs22uxscc2(12uz2)s2][xyz]

C=cosθ,S=sinθ

运用简单的三角恒等变形可以得到,

M(q)=[C+ux2(1C)uxuy(1C)+uzSuxuz(1C)uySuxuy(1C)uzSC+uy2(1C)uyuz(1C)+uxSuxuz(1C)+uySuyuz(1C)uxSC+uz2(1C)]

容易验证,Template:Mvar(Template:Mvar)是正交矩阵,且行列式为+1,于是我们得到了四元数对应于正交矩阵的关系。即我们证明了Template:MvarTemplate:Mvar的确表示三维空间中的一个旋转。进一步由旋转的正交矩阵表示的相关知识知,上式中的 Template:Mvar 就是旋转角。

旋转轴与旋转角

由四元数的结合律马上可以得到,若Template:Mvar为单位纯四元数,则[1]

Reiλr(kr)=eiλrkreiλr=kr, λ,k

这表明Template:Mvar在旋转操作下不变,也就是Template:Mvar给出旋转的旋转轴(当然Template:Mvar也给出旋转的旋转轴),不妨取Template:Mvar=Template:Mvar,由四元数的欧拉公式我们马上知道,任给一个单位四元数Template:Mvar,计算它的虚部,我们就马上可以知道转轴是什么。

同时,根据四元数的正交矩阵表示,我们又可以马上得到,计算一个单位四元数的实部,它的反余弦值给出旋转角的一半。于是我们马上可以看到用四元数相对于正交矩阵表示的优势:在四元数表示下,计算转轴和旋转角变得异常简单。

进一步地,这表明了三维空间中的每一个旋转都可以用单位四元数表出。若进一步要求 Template:MvarTemplate:Mvar 非负,则这种表出是唯一的。

旋转操作的复合

显然有[1]

Rq1q2(p)=(q1q2)p(q1q2)1=q1q2pq21q11=Rq1[Rq2(p)]

于是两个旋转操作的复合,只需要将对应的单位四元数相乘,这一点比欧拉角表示要简单。

与超球面、典型群、自旋群的关系

首先很容易看到,单位四元数与3-球面Template:Mvar3(或三维实射影空间RP3)同构。

其次,根据单位四元数的矩阵表示,我们又知道,存在一个单位四元数到特殊正交群 SO(3) 的同态,但这不是同构。给定一个角 Template:Mvar, 2π+Template:MvarTemplate:Mvar 对应的正交矩阵相同,但是由欧拉公式给出的单位四元数不同(恰好相反)。实际上,这反映了在三维空间中旋转 2π 弧度和旋转 4π 弧度是不等价的,参见旋量

事实上,单位四元数群与自旋群 Spin(3) 同构。这也表明,Template:Mvar3与自旋群 Spin(3) 同构。进一步地,它们微分同胚

另一方面,单位四元数群与复数域上的2-球面同构,于是与特殊正交群 SO(2,C) 同构,而后者实际上就是特殊酉群 SU(2)。Template:Mvar3 与 SU(2) 也是微分同胚的。

参考

  • Simon L. Altman (1986) Rotations, Quaternions, and Double Groups, Dover Publications.
  • Du Val, Patrick (1964), "Homographies, quaternions, and rotations". Oxford, Clarendon Press (Oxford mathematical monographs). LCCN 64056979

外部連結