單位四元數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) 也是微分同胚的。

參考

外部連結

Wikiwand in your browser!

Seamless Wikipedia browsing. On steroids.

Every time you click a link to Wikipedia, Wiktionary or Wikiquote in your browser's search results, it will show the modern Wikiwand interface.

Wikiwand extension is a five stars, simple, with minimum permission required to keep your browsing private, safe and transparent.