四元數的基礎


William Rowan Hamilton 在 1843 年發明了四元數(quaternions)。他努力推廣四元數來描述三維空間,不過當時有很多數學家反對,認為四元數很邪惡。

不過在一個世紀之后,四元數在計算機工業界起死回生,包括計算機圖形學、機器人等領域應用廣泛。他描述三維旋轉簡潔、計算高效、也能避免數值誤差。

除此之外,四元數在量子力學方面也有應用。

定義

四元數的定義和相關規則如下:

$$q=a+bi+cj+dk$$

其中 $a$、$b$、$c$、$d$ 是標量,而 $i$、$j$、$k$ 是虛數,並遵循以下規則:

$$i^2=-1,j^2=-1,k^2=-1,ijk=-1$$

$$ij=k,jk=i,ki=j$$

$$ji=-k,kj=-i,ik=-j$$

19 世紀末,Josiah Gibbs 提出 3 個虛數可以看做 3 維向量,避免包含那么多的虛數項。於是 $bi+cj+dk$ 變為 $q=a+b\vec{i}+c\vec{j}+d\vec{k}$ 的向量表示,其中 $\vec{i}$、$\vec{j}$、$\vec{k}$ 是單位笛卡爾向量

目前,在計算機圖形學中,一般用兩種方式表達四元數:

$$\vec{q}=s,\vec{v}$$

$$\vec{q}=s+\vec{v}$$

其中 $s$ 是標量,$\vec{v}$ 是 3D 向量。

這里我們把四元數表示為標量和向量的組合,於是:

$$\vec{q}=s+\vec{v}=s+x\vec{i}+y\vec{j}+z\vec{k}$$

其中 $s$、$x$、$y$、$z$ 為標量。

后面我們會知道 $\vec{v}$ 用於表示旋轉軸,而 $s$ 表示旋轉角度。

公理

復數是實數的二維延伸,而四元數是復數的四維延伸。除了乘法以外,四元數與復數有相同的公理。

加法

交換律:$q_1+q_2=q_2+q_1$

結合律:$(q_1+q_2)+q_3=q_1+(q_2+q_3)$

乘法

結合律:$(q_1q_2)q_3=q_1(q_2q_3)$

交換律(不滿足):$q_1q_2\neq q_2q_1$

加減

對於兩個四元數(為了方便,此后向量不再加箭頭號):

$$q_1=s_1+x_1i+y_1j+z_1k$$

$$q_2=s_2+x_2i+y_2j+z_2k$$

其加減法為:

$$q_1\pm q_2=(s_1\pm s_2)+(x_1\pm x_2)i+(y_1\pm y_2)j+(z_1\pm z_2)k$$

四元數相乘

結合一下運算規則:

$$i^2=-1,j^2=-1,k^2=-1,ijk=-1$$

$$ij=k,jk=i,ki=j$$

$$ji=-k,kj=-i,ik=-j$$

對於兩個四元數:

$$q_1=s_1+v_1=s_1+x_1i+y_1j+z_1k$$

$$q_2=s_2+v_2=s_2+x_2i+y_2j+z_2k$$

相乘之后:

\begin{align*}
q_1q_2 &= s_1s_2-(x_1x_2+y_1y_2+z_1z_2)+s_1(x_2i+y_2j+z_2k)+s_2(x_1i+y_1j+z_1k)+(y_1z_2-y_2z_1)i+(z_1x_2-z_2x_1)j+(x_1y_2-x_2y_1)k\\
&= s_1s_2-v_1\cdot v_2+s_1v_2+s_2v_1+v_1\times v_2
\end{align*}

其中 $s_1s_2-v_1\cdot v_2$ 是標量,$s_1v_2+s_2v_1+v_1\times v_2$ 是向量。

由於 $v_1\times v_2$ 的存在,可以證實四元數乘法不滿足交換律。

純四元數

標量項為 0 的四元數稱為純四元數(pure quaternion)

$$q=0+v$$

對於兩個純四元數 $q_1=0+v_1$ 和 $q_2=0+v_2$,其乘積為:

$$q_1q_2=-v_1\cdot v_2+v_1\times v_2$$

進而可以發現,兩個純四元數的平方為:

$$

\begin{align*}
qq &= -v\cdot v+v\times v\\
&= -v\cdot v\\
&= -\left | v \right |^2
\end{align*}

$$

在 Hamilton 的時代,尤其物理學家對於這個負數結果很難接受,因而拒絕使用四元數而接受 Gibbs 等人的向量分析。

四元數的模

四元數的模(modulus)范數(norm)寫作 $\left | q \right |$ ,對於四元數 $q=s+xi+yj+zk$:

$$\left | q \right |=\sqrt{s^2+x^2+y^2+z^2}$$

四元數的模的幾何意義是對空間的放縮系數

單位四元數

單位四元數(unit quaternion)是模為 1 的四元數:

$$\left | q \right |=\sqrt{s^2+x^2+y^2+z^2}=1$$

單位四元數尤為重要,如果把它看作是幾何變換的話,由於模為 1,所以放縮系數為 1,於是單位四元數它相當於一個描述三維空間的純旋轉動作

任何四元數 $q$ 都可以規范為單位四元數 $\hat{q}$:

$$\hat{q}=$\frac{q}{\left | q \right |}$

共軛四元數

共軛四元數和共軛復數類似,對於某一四元數:

$$q=s+v=s+xi+yj+zk$$

其共軛四元數為:

$$q^*=s-v=s-xi-yj-zk$$

於是我們可以發現:

$$

\begin{align*}
qq^*&=(s+v)(s-v)\\
&=s^2+v\cdot v+sv-sv+v\times (-v) \\
&= s^2+x^2+y^2+z^2
\end{align*}

$$

其乘積是一個標量,進而可得:

$$qq^*=\left | q \right |^2\Leftrightarrow \left | q \right |=\sqrt{qq^*}$$

類似地,我們可以證明:$qq^*=q^*q$。

根據共軛四元數定義和乘法,我們還可以證得:$(q_1q_2)^*=q_2^*q_1^*$。

四元數的逆

$q^{-1}$ 是四元數 $q$ 的逆($q\neq 0$),滿足:

$$qq^{-1}=q^{-1}q=1$$

根據定義,兩邊同乘 $q^*$,可得:

$$q^*qq^{-1}=q^*q^{-1}q=q^*$$

$$\Rightarrow q^*qq^{-1}=q^*$$

$$\Rightarrow \left | q \right |^2q^{-1}=q^*$$

$$\Rightarrow q^{-1}=\frac{q^*}{\left | q \right |^2} $$

顯然,如果 $q$ 是單位四元數,即 $\left | q \right |=1$,那么:

$$q^{-1}=q^*$$

由於單位四元數可以表示旋轉作用,那么單位四元數的逆就表示對這個旋轉作用的抵消作用。關於四元數的更多幾何意義推薦觀看四元數的可視化

 

參考

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM