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

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

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

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

q=a+bi+cj+dkq=a+bi+cj+dka,b,c,da,\:b,\:c,\:d は実数)

という形で表される数を四元数と言います。

ただし,i2=j2=k2=1,i^2=j^2=k^2=-1,

ij=k,jk=i,ki=j,\:ij=k,\:jk=i,\:ki=j,

ji=k,kj=i,ik=j\:ji=-k,\:kj=-i,\:ik=-j

です。一般の四元数の積は上式と分配法則を満たすように定義されます(要するに和と積が複素数と同じノリで定義されている)。

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

四元数を考える理由
  1. 数学的に美しい

  2. 三次元空間中での回転を簡単に記述できる

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

四元数に関連する定義

  • 四元数のノルム: q=a2+b2+c2+d2\|q\|=\sqrt{a^2+b^2+c^2+d^2}

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

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

四元数の性質

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

  • 四元数は結合法則を満たす。
    q1(q2q3)=(q1q2)q3q_1(q_2q_3)=(q_1q_2)q_3 は頑張って計算すれば確認できます。

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

三次元空間中の回転

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

四元数と回転

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

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

そして,この回転に対応する四元数を以下のように定めます:

q=cosθ2+(uxi+uyj+uzk)sinθ2q=\cos\dfrac{\theta}{2}+(u_xi+u_yj+u_zk)\sin\dfrac{\theta}{2}

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

定理

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

計算がやや複雑なので証明は省略します。

回転の例

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

解答
  • AA に対応する四元数は a=3ia=3i
  • 回転の方向ベクトルは uundefined=(12,12,0)\overrightarrow{u}=(\dfrac{1}{\sqrt{2}},\dfrac{1}{\sqrt{2}},0) なので,対応する四元数は q=12(i+j)q=\dfrac{1}{\sqrt{2}}(i+j)

よって,点 BB に対応する四元数が計算できる:

b=12(i+j)(3i)12(ij)==3jb=\dfrac{1}{\sqrt{2}}(i+j)(3i)\dfrac{1}{\sqrt{2}}(-i-j)\\ =\cdots =3j

つまり,BB の座標は (0,3,0)(0,3,0) である。

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

回転の合成と四元数の積

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

証明

aundefined\overrightarrow{a} に対して回転 qq を作用させてから回転 pp を作用させると,

p(qaq)pp(qa\overline{q})\overline{p}

となる。ここで四元数の共役の性質と結合法則を使うと上式は

(pq)a(pq)(pq)\:a\:(\overline{pq}) と等しい。

つまり,pqpq という四元数で表される回転を一回作用させたものになっている。二回の回転が一回の回転で表現できる!

航空宇宙関連の研究をしていた過去がある某氏によると,衛星の姿勢制御の計算などに実際に四元数が使われているようです。