單位四元數(Unit quaternion)可以用於表示三維空間裡的旋轉[1]。它與常用的另外兩種表示方式(三維正交矩陣和歐拉角)是等價的,但是避免了歐拉角表示法中的萬向鎖問題。比起三維正交矩陣表示,四元數表示能夠更方便地給出旋轉的轉軸與旋轉角。
基本方法[編輯]
用四元數來表示旋轉要解決兩個問題,一是如何用四元數表示三維空間裡的點,二是如何用四元數表示三維空間的旋轉。
四元數表示空間中的點[編輯]
若三維空間裡的一個點的笛卡兒坐標為 (x,y,z),則它用純四元數(類似於純虛數,即實部為0的四元數)xi+yj+zk 表示。
單位四元數表示一個三維空間旋轉[編輯]
設 q 為一個單位四元數,而 p 是一個純四元數,定義
![{\displaystyle R_{q}(p)=qpq^{-1}}](https://wikimedia.org/api/rest_v1/media/math/render/svg/947c1e303c9440b12dd4f01bf6eafe3172997b7f)
則 Rq(p) 也是一個純四元數,可以證明 Rq 確實表示一個旋轉,這個旋轉將空間的點 p 旋轉為空間的另一個點 Rq(p)[1]。
與正交矩陣表示的關係[編輯]
四元數的表示與正交矩陣表示是等價的,這可以通過直接的代數計算得到。
仿照關於單位複數的歐拉公式的證明方法,可以得到單位四元數的歐拉公式:
![{\displaystyle e^{{\frac {\theta }{2}}(xi+yj+zk)}=\cos {\frac {\theta }{2}}+(xi+yj+zk)\sin {\frac {\theta }{2}},\quad {\text{for }}x,y,z\in \mathbb {R} {\text{ s.t. }}x^{2}+y^{2}+z^{2}=1}](https://wikimedia.org/api/rest_v1/media/math/render/svg/7618b8bf692e3e2cb3a1db68f136914cc643edc6)
顯然,當 x=1, y=z=0 的時候就回到一般的歐拉公式。
設
![{\displaystyle q=e^{{\frac {\theta }{2}}(u_{x}i+u_{y}j+u_{z}k)}=\cos {\frac {\theta }{2}}+(u_{x}i+u_{y}j+u_{z}k)\sin {\frac {\theta }{2}}}](https://wikimedia.org/api/rest_v1/media/math/render/svg/0961a0167e856695e9b7e87433687fb5bf4267f3)
![{\displaystyle p=xi+yj+zk}](https://wikimedia.org/api/rest_v1/media/math/render/svg/e823c5005fd95945eaa1d1da79e68304a0b754a0)
![{\displaystyle p'=q^{-1}pq=w+x'i+y'j+z'k}](https://wikimedia.org/api/rest_v1/media/math/render/svg/1187dcfdf6d0e4f54dd372746034fec572a49e19)
(通過下面的計算可以知道,w=0,即計算結果是純四元數)
則
![{\displaystyle q^{-1}=e^{-{\frac {\theta }{2}}(u_{x}i+u_{y}j+u_{z}k)}=\cos {\frac {\theta }{2}}-(u_{x}i+u_{y}j+u_{z}k)\sin {\frac {\theta }{2}}}](https://wikimedia.org/api/rest_v1/media/math/render/svg/89a356f0c8e51fc66668bb81aaf976656d4edd39)
為簡便起見,令
![{\displaystyle c=\cos {\frac {\theta }{2}},s=\sin {\frac {\theta }{2}}}](https://wikimedia.org/api/rest_v1/media/math/render/svg/3d68b58d5a1a2241e6d260f27f0dc62b2826310d)
省略號表示由第一項通過簡單的輪換可以得到的項。最後得到四元數的矩陣表示為
設
![{\displaystyle C=\cos \theta ,S=\sin \theta }](https://wikimedia.org/api/rest_v1/media/math/render/svg/e5c8afdea48aa2b97b388799b934ce817de4ce81)
運用簡單的三角恆等變形可以得到,
![{\displaystyle M(q)={\begin{bmatrix}C+u_{x}^{2}(1-C)&u_{x}u_{y}(1-C)+u_{z}S&u_{x}u_{z}(1-C)-u_{y}S\\u_{x}u_{y}(1-C)-u_{z}S&C+u_{y}^{2}(1-C)&u_{y}u_{z}(1-C)+u_{x}S\\u_{x}u_{z}(1-C)+u_{y}S&u_{y}u_{z}(1-C)-u_{x}S&C+u_{z}^{2}(1-C)\\\end{bmatrix}}}](https://wikimedia.org/api/rest_v1/media/math/render/svg/535c7fea23d236943e9f9c17cd6ba1c55d8937f9)
容易驗證,M(q)是正交矩陣,且行列式為+1,於是我們得到了四元數對應於正交矩陣的關係。即我們證明了Rq的確表示三維空間中的一個旋轉。進一步由旋轉的正交矩陣表示的相關知識知,上式中的 θ 就是旋轉角。
旋轉軸與旋轉角[編輯]
由四元數的結合律馬上可以得到,若r為單位純四元數,則[1]
![{\displaystyle R_{e^{i\lambda r}}(kr)=e^{-i\lambda r}kre^{i\lambda r}=kr,\ \forall \lambda ,k\in \mathbb {R} }](https://wikimedia.org/api/rest_v1/media/math/render/svg/1ddf84a7254e98b05adfb2dc162a45af5f1ac828)
這表明kr在旋轉操作下不變,也就是kr給出旋轉的旋轉軸(當然r也給出旋轉的旋轉軸),不妨取k=s,由四元數的歐拉公式我們馬上知道,任給一個單位四元數q,計算它的虛部,我們就馬上可以知道轉軸是什麼。
同時,根據四元數的正交矩陣表示,我們又可以馬上得到,計算一個單位四元數的實部,它的反餘弦值給出旋轉角的一半。於是我們馬上可以看到用四元數相對於正交矩陣表示的優勢:在四元數表示下,計算轉軸和旋轉角變得異常簡單。
進一步地,這表明了三維空間中的每一個旋轉都可以用單位四元數表出。若進一步要求 ux 非負,則這種表出是唯一的。
旋轉操作的複合[編輯]
顯然有[1]:
![{\displaystyle R_{q_{1}q_{2}}(p)=(q_{1}q_{2})p(q_{1}q_{2})^{-1}=q_{1}q_{2}pq_{2}^{-1}q_{1}^{-1}=R_{q_{1}}[R_{q_{2}}(p)]}](https://wikimedia.org/api/rest_v1/media/math/render/svg/7a919190bca6aa1ebe7683d7d9e6171097948bcb)
於是兩個旋轉操作的複合,只需要將對應的單位四元數相乘,這一點比歐拉角表示要簡單。
與超球面、古典群、自旋群的關係[編輯]
首先很容易看到,單位四元數與3-球面S3(或三維實射影空間,RP3)同構。
其次,根據單位四元數的矩陣表示,我們又知道,存在一個單位四元數到特殊正交群 SO(3) 的同態,但這不是同構。給定一個角 θ, 2π+θ 與 θ 對應的正交矩陣相同,但是由歐拉公式給出的單位四元數不同(恰好相反)。實際上,這反映了在三維空間中旋轉 2π 弧度和旋轉 4π 弧度是不等價的,參見旋量。
事實上,單位四元數群與自旋群 Spin(3) 同構。這也表明,S3與自旋群 Spin(3) 同構。進一步地,它們微分同胚。
另一方面,單位四元數群與複數域上的2-球面同構,於是與特殊正交群 SO(2,C) 同構,而後者實際上就是特殊么正群 SU(2)。S3 與 SU(2) 也是微分同胚的。
- ^ 1.0 1.1 1.2 1.3 Treisman, Zachary. A young person's guide to the Hopf fibration. arXiv:0908.1205
.
- 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
外部連結[編輯]