2015/01/20

四元数と三次元空間における回転

分野: 座標,ベクトル  レベル: 大学数学

三次元空間における回転の記述を理解することを目標に,ハミルトンの四元数(クォータニオン,quaternion)について一から解説します。

四元数(クォータニオン)とは

数IIで実数→複素数と,数を扱う範囲が広がりましたが,さらに複素数をパワーアップしたのが四元数(クォータニオン)です。具体的には

$q=a+bi+cj+dk$($a,\:b.\:c.\:d$ は実数)
という形で表される数を四元数と言います。

ただし,$i^2=j^2=k^2=-1,$ $\:ij=k,\:jk=i,\:ki=j,$ $\:ji=-k,\:kj=-i,\:ik=-j$
です。一般の四元数の積は上式と分配法則を満たすように定義されます(要するに和,積が複素数と同じノリで定義されているということ)。

なぜ四元数を考えるのか?に対する僕なりの答えです。

1:数学的に美しい
2:三次元空間中での回転を簡単に記述できる

この記事では2の理解を目標に解説していきます。そのためにまずは四元数の基本的な性質を見ていきます。

四元数の基本的な性質,定義

定義

・四元数のノルム:$\|q\|=\sqrt{a^2+b^2+c^2+d^2}$

・共役な四元数:$\overline{q}=a-bi-cj-dk$

・逆数(逆元):$q^{-1}q=qq^{-1}=1$ となる元 $q^{-1}$
具体的には $q^{-1}=\dfrac{\overline{q}}{\|q\|^2}$ とすればよい。

~性質~
・四元数は積に関して交換法則が成立しない、
これは例えば $ij=k,\:ji=-k$ となっていることから分かります。

・四元数は結合法則を満たす。
$q_1(q_2q_3)=(q_1q_2)q_3$ は頑張って計算すれば証明できます。

・積の共役は共役の積(ただし順番逆転)
$\overline{q_1\:q_2}=\overline{q_2}\:\overline{q_1}$ これも計算で証明できます。

三次元空間中の回転

ここからいよいよ回転の話です。

四元数と回転

まず,三次元空間中の回転を「回転軸と回転角度」を決めることで指定します。回転軸の方向ベクトルを $\overrightarrow{u}=(u_x,u_y,u_z)$ とおきます(ただし $|\overrightarrow{u}|=1$ となるように正規化したものを使う)。

次に回転角度ですが,$\overrightarrow{u}$ の向きに右ねじが進む向きに $\theta$ だけ回転させる操作を考えます。

そして,この回転に対応する四元数を以下のように定めます:
$q=\cos\dfrac{\theta}{2}+(u_xi+u_yj+u_zk)\sin\dfrac{\theta}{2}$

このとき以下の素晴らしい定理が成立します!

ベクトル $\overrightarrow{a}=(a_x,a_y,a_z)$ と四元数 $a_xi+a_yj+a_zk$ を同一視する。このとき,ベクトル $\overrightarrow{a}$ を,$q$ が定める回転によって回転させると $b=qa\overline{q}$ になる。

計算がめんどくさいので証明は省略します。

回転の例

点 $A:(3,0,0)$ を「 $y=x,z=0$ 」で表される直線の回りに $180^{\circ}$ 回転させた点 $B$ の座標を求めよ。

解答

  • 点 $A$ に対応する四元数は $a=3i$
  • 題意の回転の方向ベクトルは $\overrightarrow{u}=(\dfrac{1}{\sqrt{2}},\dfrac{1}{\sqrt{2}},0)$ なので,対応する四元数は $q=\dfrac{1}{\sqrt{2}}(i+j)$

よって,点 $B$ に対応する四元数が計算できる:
$b=\dfrac{1}{\sqrt{2}}(i+j)(3i)\dfrac{1}{\sqrt{2}}(-i-j)\\
=\cdots =3j$
つまり,$B$ の座標は$(0,3,0)$ である。

回転の合成と四元数の積

四元数を使うと三次元空間内での計算が楽!ということがお分かりいただけたかと思います。

さらに。回転の合成が四元数の積に対応していることを説明します。

証明

$\overrightarrow{a}$ に対して回転 $q$ を作用させてから回転 $p$ を作用させると,
$p(qa\overline{q})\overline{p}$
となる。ここで四元数の共役の性質と結合法則を使うと上式は
$(pq)\:a\:(\overline{pq})$ と等しい。
つまり,$pq$ という四元数で表される回転を一回作用させたものになっている。二回の回転が一回の回転で表現できる!

航空宇宙関連の研究をしていた過去がある某氏によると,衛星の姿勢制御の計算などに実際に四元数が使われているようです。
分野: 座標,ベクトル  レベル: 大学数学