一、四元數(shù)概念及運(yùn)算
1.
四元數(shù)引入將實(shí)數(shù)域擴(kuò)充到復(fù)數(shù)域,并用復(fù)數(shù)來(lái)表示平面向量,用復(fù)數(shù)的加、乘運(yùn)算表示平面向量的合成、伸縮和旋轉(zhuǎn)變換,這些觀念已經(jīng)在中學(xué)課程中學(xué)過(guò)了。那么,很自然的問(wèn)題就是,在三維,或更高維空間中是否也有復(fù)數(shù)的類(lèi)似物?也就是說(shuō),像擴(kuò)充實(shí)數(shù)那樣,在復(fù)數(shù)域的基礎(chǔ)上添加一個(gè)或幾個(gè)新的元素,并且讓它們跟原來(lái)的復(fù)數(shù)做加減乘除,是否就可以得到一個(gè)新的數(shù)集,并且其中的元素還可以像復(fù)數(shù)域那樣做加、減、乘、除運(yùn)算,并滿足通常復(fù)數(shù)的那些運(yùn)算律,包括加法和乘法的交換律與結(jié)合律、乘法對(duì)加法的分配律等待?更進(jìn)一步,我們是否可以期望用這樣的數(shù)來(lái)表示三維或更高維空間中的伸縮和旋轉(zhuǎn),就像用復(fù)數(shù)表示平面向量的伸縮旋轉(zhuǎn)那樣方便?
歷史上有很多數(shù)學(xué)家試圖尋找過(guò)三維的復(fù)數(shù),但后來(lái)證明這樣的三維復(fù)數(shù)是不存在的
,即使不考慮空間旋轉(zhuǎn),只從代數(shù)角度來(lái)說(shuō),三維的復(fù)數(shù)域作為普通復(fù)數(shù)域的擴(kuò)張域也是不存在的。知道了復(fù)數(shù)不能推廣到三維,我們把目光移向四維復(fù)數(shù),即四元數(shù)。四元數(shù)是由愛(ài)爾蘭數(shù)學(xué)家威廉·盧云·哈密頓在1843年發(fā)現(xiàn)的。復(fù)數(shù)推廣到四元數(shù),必須犧牲掉數(shù)域的某一條或幾條性質(zhì),哈密爾頓拋棄了乘法交換律。
2.
四元數(shù)定義四元數(shù)都是 1、i、j 和 k 的線性組合,一般可表示為 d + ai
+ bj + ck, a、b、c、d是實(shí)數(shù)。
如把四元數(shù)的集合考慮成多維實(shí)數(shù)空間的話,四元數(shù)就代表著一個(gè)四維空間,相對(duì)于復(fù)數(shù)為二維空間。
3.加乘運(yùn)算
要把兩個(gè)四元數(shù)相加只需將相類(lèi)的系數(shù)加起來(lái)就可以,就像復(fù)數(shù)一樣。至于乘法則可跟隨以下的乘數(shù)表:
以上表格中,最左邊的列表示被乘數(shù),最上面行表示乘數(shù)。
可以立即驗(yàn)證加法交換律、結(jié)合律,以及等式 p+0=0+p=p,方程 p+x=0
恒有解,乘法結(jié)合律,還有乘法對(duì)加法的分配律都是成立的,只不過(guò)沒(méi)有乘法交換律。
例如:
假設(shè):x = 3 + i,
那么:
x + y = 3
+ 6i + j - 2k
xy =( {3 +
i} )( {5i + j - 2k} ) = 15i + 3j - 6k + 5i^2 + ij - 2ik
= 15i + 3j
- 6k - 5 + k + 2j = - 5 + 15i + 5j - 5k
4.模的定義
四元數(shù)也是可以歸一化的,四元數(shù)的單位化與Vector類(lèi)似,首先(a^2+b^2+c^2+d^2)的平方根
稱為四元數(shù)的模,即||q|| = Norm(q)=sqrt(w2 + x2 + y2 + z2),這里2指平方,
如w2指w的平方。
因?yàn)閣2 + x2 + y2 +
z2=1
5.共軛定義
6.逆的定義
二、四元數(shù)與三維空間的旋轉(zhuǎn)
我們要關(guān)心的是三維空間上任意的伸縮旋轉(zhuǎn)變換是否可用四元數(shù)的乘積來(lái)表示,而這一點(diǎn)對(duì)四元數(shù)來(lái)說(shuō)是完全能夠勝任的。
如果已知一個(gè)三維空間的伸縮旋轉(zhuǎn)的轉(zhuǎn)軸方向、旋轉(zhuǎn)角度和伸縮比例,來(lái)求相應(yīng)的四元數(shù),是比較容易的。
特別地,單位化的四元數(shù)用來(lái)描述旋轉(zhuǎn):
以原點(diǎn)為旋轉(zhuǎn)中心,旋轉(zhuǎn)的軸是(α,
四元數(shù)的乘法的意義類(lèi)似于Matrix的乘法-可以將兩個(gè)旋轉(zhuǎn)合并,例如:
Q=Q1*Q2
例子代碼
/// |