單位四元數(Unit quaternion)可以用於表示三維空間裏的旋轉[1]。它與常用的另外兩種表示方式(三維正交矩陣和歐拉角)是等價的,但是避免了歐拉角表示法中的萬向鎖問題。比起三維正交矩陣表示,四元數表示能夠更方便地給出旋轉的轉軸與旋轉角。
用四元數來表示旋轉要解決兩個問題,一是如何用四元數表示三維空間裏的點,二是如何用四元數表示三維空間的旋轉。
若三維空間裏的一個點的笛卡爾坐標為 (x,y,z),則它用純四元數(類似於純虛數,即實部為0的四元數)xi+yj+zk 表示。
設 q 為一個單位四元數,而 p 是一個純四元數,定義
則 Rq(p) 也是一個純四元數,可以證明 Rq 確實表示一個旋轉,這個旋轉將空間的點 p 旋轉為空間的另一個點 Rq(p)[1]。
四元數的表示與正交矩陣表示是等價的,這可以通過直接的代數計算得到。
仿照關於單位複數的歐拉公式的證明方法,可以得到單位四元數的歐拉公式:
顯然,當 x=1, y=z=0 的時候就回到一般的歐拉公式。
設
(通過下面的計算可以知道,w=0,即計算結果是純四元數)
則
為簡便起見,令
省略號表示由第一項通過簡單的輪換可以得到的項。最後得到四元數的矩陣表示為
設
運用簡單的三角恆等變形可以得到,
容易驗證,M(q)是正交矩陣,且行列式為+1,於是我們得到了四元數對應於正交矩陣的關係。即我們證明了Rq的確表示三維空間中的一個旋轉。進一步由旋轉的正交矩陣表示的相關知識知,上式中的 θ 就是旋轉角。
由四元數的結合律馬上可以得到,若r為單位純四元數,則[1]
這表明kr在旋轉操作下不變,也就是kr給出旋轉的旋轉軸(當然r也給出旋轉的旋轉軸),不妨取k=s,由四元數的歐拉公式我們馬上知道,任給一個單位四元數q,計算它的虛部,我們就馬上可以知道轉軸是什麼。
同時,根據四元數的正交矩陣表示,我們又可以馬上得到,計算一個單位四元數的實部,它的反餘弦值給出旋轉角的一半。於是我們馬上可以看到用四元數相對於正交矩陣表示的優勢:在四元數表示下,計算轉軸和旋轉角變得異常簡單。
進一步地,這表明了三維空間中的每一個旋轉都可以用單位四元數表出。若進一步要求 ux 非負,則這種表出是唯一的。
顯然有[1]:
於是兩個旋轉操作的複合,只需要將對應的單位四元數相乘,這一點比歐拉角表示要簡單。
首先很容易看到,單位四元數與3-球面S3(或三維實射影空間,RP3)同構。
其次,根據單位四元數的矩陣表示,我們又知道,存在一個單位四元數到特殊正交群 SO(3) 的同態,但這不是同構。給定一個角 θ, 2π+θ 與 θ 對應的正交矩陣相同,但是由歐拉公式給出的單位四元數不同(恰好相反)。實際上,這反映了在三維空間中旋轉 2π 弧度和旋轉 4π 弧度是不等價的,參見旋量。
事實上,單位四元數群與自旋群 Spin(3) 同構。這也表明,S3與自旋群 Spin(3) 同構。進一步地,它們微分同胚。
另一方面,單位四元數群與複數域上的2-球面同構,於是與特殊正交群 SO(2,C) 同構,而後者實際上就是特殊么正群 SU(2)。S3 與 SU(2) 也是微分同胚的。