回転とクォータニオン(2)

3次元回転と生成子

 同じことを3次元でやってみましょう。 3次元では回転方向が3通りあります。 x,y,z軸それぞれを中心とした回転の3通りです。

 3次元の回転を表す方法には色々な手法がありますが、簡単な方法の一つはx,y,z軸それぞれを中心とした回転を何らか決まった順番で、順に掛け合わせるものです。 この表し方をオイラー角(Euler angles)と呼びます。

 今までと同じように、x,y,z軸をそれぞれ1,2,3軸と数字で表します。 2次元の場合は回転変換は $R(\theta)$ の1種類のみですが、3次元の場合は3つの軸どれを中心に回転させるかで3種類の回転変換が必要になります。 ここでは $i$ 軸周りの角度 $\theta_i$ の回転変換を $R_i(\theta_i)$ と書くこととしましょう。

 まず3軸周りの回転から考えます。 3軸周りの回転とは、ベクトルの第3成分はそのままで、第1,2成分だけが、2次元回転と同じように回転すれば良いはずです。

(図を書く予定)

 ということは、行列で書くと1,2成分は2次元の回転行列と同じで、第3成分はそのままとなるようにすれば良いわけですので、以下のようになります。

$$ R_3(\theta_3)= \left( \begin{array}{ccc} \mathrm{cos}\theta_3 & -\mathrm{sin}\theta_3 & 0\\ \mathrm{sin}\theta_3 & \mathrm{cos}\theta_3 & 0\\ 0 & 0 & 1\\ \end{array} \right) $$

 2次元と同じように、生成子も考えましょう。 ベクトル

$$ \boldsymbol{v} =\left( \begin{array}{ccc} v_1\\ v_2\\ v_3\\ \end{array} \right) $$

$i$ 軸周りに無限小 $d\theta_i$ だけ回転させます。 問題は、元のベクトルを $90^\circ$ 回転させたのでは、生成子が得られないということです。 3軸周りの $90^\circ$ 回転行列は

$$ R_3(90^\circ)= \left( \begin{array}{ccc} 0 & -1 & 0\\ 1 & 0 & 0\\ 0 & 0 & 1\\ \end{array} \right) $$

のようになります。 次は無限小回転させたときに $\boldsymbol{v}$ が動く方向と長さ、つまり

$$ d\boldsymbol{v} $$

を考えましょう。 回転により第3成分は変わらず、回転は1,2成分が2次元回転と同じように動くので、 $d\boldsymbol{v}$ の第3成分は0であり、1,2成分は2次元回転と同じ。 つまり、

$$ d\boldsymbol{v} = \left( \begin{array}{ccc} -v_2\\ v_1\\ 0\\ \end{array} \right) $$

となります。 生成子とは

$$ d\boldsymbol{v}=d\theta_3J_3\boldsymbol{v} $$

を満たすような行列 $J_3$ のことでした。 この条件を満たす行列を考えると、

$$ J_3 =\left( \begin{array}{ccc} 0 & -1 & 0\\ 1 & 0 & 0\\ 0 & 0 & 0\\ \end{array} \right) $$

のようになります。 回転行列と3,3成分が異なりますね。

 同じように、1,2軸周りの回転の生成子も以下のように求まります。

$$ J_1= \left( \begin{array}{ccc} 0 & 0 & 0\\ 0 & 0 & -1\\ 0 & 1 & 0\\ \end{array} \right),\\ J_2= \left( \begin{array}{ccc} 0 & 0 & 1\\ 0 & 0 & 0\\ -1 & 0 & 0\\ \end{array} \right) $$

つまり、2次元と違い、

$$ R_i(90^\circ)\ne J_i $$

なのです。 面倒な話になってきました。

3次元回転行列を面倒だけど生成子から求めてみよう

 2次元と同じように微分方程式を解くと、3次元回転行列が生成子から求まります。 ただ面倒な計算なので斜め読みで問題ありません。 面倒だなとだけ思ってもらえればOKです。

 まず微分方程式です。1軸周りの回転の場合です。

$$ \boldsymbol{v}(\theta_1+d\theta_1,\theta_2,\theta_3) =\boldsymbol{v}(\theta_1,\theta_2,\theta_3)+d\boldsymbol{x}(d\theta_1,0,0) =\boldsymbol{v}+J_1\boldsymbol{x}d\theta_1 $$

 1軸周り回転の生成子が満たす微分方程式は

$$ d\boldsymbol{v}_1 =J_1\boldsymbol{v}d\theta_1 $$

です。

 2,3軸についても同じなので

$$ d\boldsymbol{v}_i =J_i\boldsymbol{v}d\theta_i $$

 両辺を $d\theta_i$ で割ると

$$ \frac{d\boldsymbol{v}_i}{d\theta_i} =J_i\boldsymbol{v} $$

となります。

 これを解くと

$$ \boldsymbol{v}(\theta_1+\Delta\theta_1,\theta_2,\theta_3) =e^{J_1\Delta\theta_1}\boldsymbol{v}(\theta_1,\theta_2,\theta_3) $$

 つまり3次元回転行列は

$$ R_i(\Delta\theta_i) = e^{J_i\Delta\theta_i} $$

のようになります。

 ここまでは2次元の場合と同じです。

 続いて、 $J_i$ の性質を見てみましょう。 3軸周りの回転を例にとります。

\begin{eqnarray} J_3^2&=& \left( \begin{array}{ccc} 0 & -1 & 0\\ 1 & 0 & 0\\ 0 & 0 & 0\\ \end{array} \right) \left( \begin{array}{ccc} 0 & -1 & 0\\ 1 & 0 & 0\\ 0 & 0 & 0\\ \end{array} \right)\\ &=& \left( \begin{array}{ccc} -1 & 0 & 0\\ 0 & -1 & 0\\ 0 & 0 & 0\\ \end{array} \right)\\ &=& \left( \begin{array}{ccc} -1 & 0 & 0\\ 0 & -1 & 0\\ 0 & 0 & -1\\ \end{array} \right) + \left( \begin{array}{ccc} 0 & 0 & 0\\ 0 & 0 & 0\\ 0 & 0 & 1\\ \end{array} \right)\\ &=& -I + \left( \begin{array}{ccc} 0 & 0 & 0\\ 0 & 0 & 0\\ 0 & 0 & 1\\ \end{array} \right)\\ &=& -I + D_3 \end{eqnarray}

ただし、

$$ D_3= \left( \begin{array}{ccc} 0 & 0 & 0\\ 0 & 0 & 0\\ 0 & 0 & 1\\ \end{array} \right) $$

と定義しました。 変な行列が出てきましたね。 この $D_3$ はどのような性質を持っているのでしょうか。

\begin{eqnarray} D_3^2&=& \left( \begin{array}{ccc} 0 & 0 & 0\\ 0 & 0 & 0\\ 0 & 0 & 1\\ \end{array} \right) \left( \begin{array}{ccc} 0 & 0 & 0\\ 0 & 0 & 0\\ 0 & 0 & 1\\ \end{array} \right)\\ &=& \left( \begin{array}{ccc} 0 & 0 & 0\\ 0 & 0 & 0\\ 0 & 0 & 1\\ \end{array} \right)\\ &=&D_3 \end{eqnarray}

なるほど。何乗しても値が変わらないようです。 これを踏まえると、 $J_3^3$ 以上も計算できて、

\begin{eqnarray} J_3^3&=&J_3^2J_3\\ &=& \left(-I + \left( \begin{array}{ccc} 0 & 0 & 0\\ 0 & 0 & 0\\ 0 & 0 & 1\\ \end{array} \right) \right) \left( \begin{array}{ccc} 0 & -1 & 0\\ 1 & 0 & 0\\ 0 & 0 & 0\\ \end{array} \right)\\ &=& -J_3 + \left( \begin{array}{ccc} 0 & 0 & 0\\ 0 & 0 & 0\\ 0 & 0 & 1\\ \end{array} \right) \left( \begin{array}{ccc} 0 & -1 & 0\\ 1 & 0 & 0\\ 0 & 0 & 0\\ \end{array} \right)\\ &=& -J_3 + \left( \begin{array}{ccc} 0 & 0 & 0\\ 0 & 0 & 0\\ 0 & 0 & 0\\ \end{array} \right)\\ &=&-J_3,\\ J_3^4&=&J_3^3J_3 =-J_3J_3=-J_3^2=I-D_3,\\ J_3^5&=&J_3^4J_3 =-J_3^2J_3=-J_3^3=J_3,\\ J_3^6&=&J_3^5J_3 =J_3J_3=J_3^2=-I+D_3,\\ J_3^7&=&J_3^6J_3 =-J_3+D_3J_3=-J_3 \end{eqnarray}

あとはこの繰り返しです。 まとめると、 $n=1,2,3,...$ について、

\begin{eqnarray} J_i^{2n+1}&=&(-1)^nJ_i\\ J_i^{2n}&=&(-1)^n(I-D_i)\\ J_i^0&=&I \end{eqnarray}

となります。 というわけで $e^{J_i\theta_i}$ のテイラー展開ができるようになりました。

\begin{eqnarray} R_i(\theta_i) &=& e^{J_i\theta_i}\\ &=& \sum_{n=0}^\infty \frac{1}{n!}J_i^n\theta_i^n\\ &=& \frac{1}{0!}J_i^0\theta_i^0 + \sum_{n=0}^\infty \frac{1}{(2n+1)!}J_i^{2n+1}\theta_i^{2n+1} + \sum_{n=1}^\infty \frac{1}{(2n)!}J_i^{2n}\theta_i^{2n}\\ &=& I + J_i\sum_{n=0}^\infty \frac{1}{(2n+1)!}(-1)^n\theta_i^{2n+1} + (I-D_i) \sum_{n=1}^\infty \frac{1}{(2n)!}(-1)^n\theta_i^{2n}\\ &=& I-D_i + D_i + J_i\sum_{n=0}^\infty \frac{1}{(2n+1)!}(-1)^n\theta_i^{2n+1} + (I-D_i) \sum_{n=1}^\infty \frac{1}{(2n)!}(-1)^n\theta_i^{2n}\\ &=& D_i+ J_i \mathrm{sin}\theta_i + (I-D_i) \mathrm{cos}\theta_i \end{eqnarray}

ややこしいですね。 ともかく、生成子から回転行列が計算できました。 例えば3軸周りの回転行列は

\begin{eqnarray} R_3(\theta_3) &=& D_3+ J_3 \mathrm{sin}\theta_3 + (I-D_3) \mathrm{cos}\theta_3\\ &=& \left( \begin{array}{ccc} \mathrm{cos}\theta_3 & -\mathrm{sin}\theta_3 & 0\\ \mathrm{sin}\theta_3 & \mathrm{cos}\theta_3 & 0\\ 0 & 0 & 1\\ \end{array} \right) \end{eqnarray}

 なぜこんなにややこしいかというと $J_i^2$$-I$ にならないからです。 $D_i$ という人が登場してしまいます。 登場人物が2次元では $J$ 一人でしたが、 $J_i,D_i$ の計6人になっています。 もう少し減らすことはできないでしょうか。

パウリ行列

 実は $J_i$ に一手間加えることで、 $D_i$ にご退場願うことができます。 混乱しないように、一手間加えた後の行列は $\sigma_i$ と呼びましょう。 $\sigma$ はギリシャ文字シグマ $\Sigma$ の小文字です。

 今までベクトル $\boldsymbol{v}$ は3次元でした。 これにも一手間加えましょう。 ここに、 $\boldsymbol{v}$ は、いきなりで申し訳ないのですが、4つ目の成分があると考えてしまいましょう。

\begin{eqnarray} \boldsymbol{v}&=& \left( \begin{array}{ccc} v_1 \\ v_2 \\ v_3 \\ 0 \\ \end{array} \right)\\ &=&v_1\boldsymbol{e}_1 +v_2\boldsymbol{e}_2 +v_3\boldsymbol{e}_3 +0\boldsymbol{e}_4 \end{eqnarray}

です。4つ目の成分 $v_4$ はいつも0とします。 4成分のベクトルですが、実は3次元のベクトルを意味しています。 これを回転させるのですから、 $\sigma_i$ も4x4行列となります。 どんな行列でしょうか。 例によって3軸回転で考えます。

 ベクトルの1,2,3成分は今まで通りに変わらないといけません。 つまり、

$$ \sigma_3= \left( \begin{array}{ccc} 0 & -1 & 0 & ?\\ 1 & 0 & 0 & ?\\ 0 & 0 & 0 & ?\\ ? & ? & ? & ?\\ \end{array} \right) $$

です。 ?には何が入っても、生成子をベクトルにかけた結果はこれまでと変わりません。 ?を2次元の時と同じように $\sigma_3^2=-I$ になるように決めてやれば、計算が簡単になりそうです。

$$ \left( \begin{array}{ccc} 0 & -1 \\ 1 & 0 \\ \end{array} \right)^2 = \left( \begin{array}{ccc} -1 & 0 \\ 0 & -1 \\ \end{array} \right) $$

だったことを思い出すと、もしかしてこうするといいのではないでしょうか。

$$ \sigma_3= \left( \begin{array}{ccc} 0 & 1 & 0 & 0\\ -1 & 0 & 0 & 0\\ 0 & 0 & 0 & 1\\ 0 & 0 & -1 & 0\\ \end{array} \right) $$

同じように $\sigma_1,\sigma_2$ も決めることができます。

$$ \sigma_1= \left( \begin{array}{ccc} 0 & 0 & 0 & 1\\ 0 & 0 & -1 & 0\\ 0 & 1 & 0 & 0\\ -1 & 0 & 0 & 0\\ \end{array} \right),\\ \sigma_2= \left( \begin{array}{ccc} 0 & 0 & 1 & 0\\ 0 & 0 & 0 & 1\\ -1 & 0 & 0 & 0\\ 0 & -1 & 0 & 0\\ \end{array} \right) $$

すると、

$$ \sigma_1\sigma_1=-I,\\ \sigma_2\sigma_2=-I,\\ \sigma_3\sigma_3=-I,\\ $$

という関係をみんな満たせるようになりました。やった! 追加で以下のような関係も計算すれば簡単に求まります。

$$ \sigma_1\sigma_2=-\sigma_2\sigma_1=\sigma_3,\\ \sigma_2\sigma_3=-\sigma_3\sigma_2=\sigma_1,\\ \sigma_3\sigma_1=-\sigma_1\sigma_3=\sigma_2,\\ \sigma_1\sigma_2\sigma_3 =\sigma_2\sigma_3\sigma_1 =\sigma_3\sigma_1\sigma_2 =-I $$

 この $\sigma_i$パウリ行列 (Pauli matrices)と呼びます。 パウリさんが量子力学の研究で導入したためです。 (一般的なパウリ行列はここで導入した $\sigma_i$ とは見た目が異なりますが、本質的には変わりません)

クォータニオン

 しかし、問題があります。 生成子はこれでいいのですが、肝心の回転行列が変なことになります。 $\sigma_i^2=-I$ なので、2次元回転の時と全く同じ計算で、

\begin{eqnarray} ?????R_3(\theta_3) &=& e^{\sigma_3\theta_3}\\ &=& \left( \begin{array}{cccc} \mathrm{cos}\theta_3 & -\mathrm{sin}\theta_3 & 0 & 0 \\ \mathrm{sin}\theta_3 & \mathrm{cos}\theta_3 & 0 & 0 \\ 0 & 0 & \mathrm{cos}\theta_3 & -\mathrm{sin}\theta_3 \\ 0 & 0 & \mathrm{sin}\theta_3 & \mathrm{cos}\theta_3 \\ \end{array} \right)\\ &=&I\mathrm{cos}\theta_3+\sigma_3\mathrm{sin}\theta_3 ????? \end{eqnarray}

おかしいですね。もともとの回転行列とは少し違う形になってしまいました。 何が悪かったのでしょうか。

 2次元回転ではベクトルを行列にすると計算が簡単になりました。 3次元でも同じ方法は使えるでしょうか。 今回は2次元の時と違って、生成子が偶然にも3つあります。 これは基底の数と同じです。 そこで試しに3つの生成子 $\sigma_i$ をそのまま基底のように使ってみましょう。 つまり、

\begin{eqnarray} \boldsymbol{v}&=&v_1\boldsymbol{e}_1+ v_2\boldsymbol{e}_2+ v_3\boldsymbol{e}_3+ 0\boldsymbol{e}_4,\\ Q(\boldsymbol{v})&=&v_1\sigma_1+ v_2\sigma_2+ v_3\sigma_3+ 0I \end{eqnarray}

ということです。 $v_4$ は常に0のはずなので関係ないはずなのですが、一応行列にすると $I$ に対応しているとします。 ベクトルをこのルールで行列に変えてから、上で試しに作った回転行列らしき何か

\begin{eqnarray} \rho_3(\theta_3) &=& e^{\sigma_3\theta_3}\\ &=&I\mathrm{cos}\theta_3+\sigma_3\mathrm{sin}\theta_3 \end{eqnarray}

をかけてみましょう。 ちなみに $\rho$ はrに当たるギリシャ文字「ロー」です。

 まず $\rho_3(\theta_3)$$Q(\boldsymbol{v})$ に左からかけてみましょう。

\begin{eqnarray} \rho_3(\theta_3)Q(\boldsymbol{v}) &=&(I\mathrm{cos}\theta_3+\sigma_3\mathrm{sin}\theta_3) (v_1\sigma_1+v_2\sigma_2+v_3\sigma_3)\\ &=&v_1I\sigma_1\mathrm{cos}\theta_3 +v_2I\sigma_2\mathrm{cos}\theta_3 +v_3I\sigma_3\mathrm{cos}\theta_3 +v_1\sigma_3\sigma_1\mathrm{sin}\theta_3 +v_2\sigma_3\sigma_2\mathrm{sin}\theta_3 +v_3\sigma_3\sigma_3\mathrm{sin}\theta_3\\ &=&v_1\sigma_1\mathrm{cos}\theta_3 +v_2\sigma_2\mathrm{cos}\theta_3 +v_3\sigma_3\mathrm{cos}\theta_3 +v_1\sigma_2\mathrm{sin}\theta_3 -v_2\sigma_1\mathrm{sin}\theta_3 -v_3I\mathrm{sin}\theta_3\\ &=&\sigma_1(v_1\mathrm{cos}\theta_3 -v_2\mathrm{sin}\theta_3) +\sigma_2(v_1\mathrm{sin}\theta_3 +v_2\mathrm{cos}\theta_3) +\sigma_3 v_3\mathrm{cos}\theta_3 -I v_3\mathrm{sin}\theta_3\\ &=&Q(\boldsymbol{e}_1)(v_1\mathrm{cos}\theta_3 -v_2\mathrm{sin}\theta_3) +Q(\boldsymbol{e}_2)(v_1\mathrm{sin}\theta_3 +v_2\mathrm{cos}\theta_3) +Q(\boldsymbol{e}_3)v_3\mathrm{cos}\theta_3 -Q(\boldsymbol{e}_4)v_3\mathrm{sin}\theta_3\\ &=&Q( \left( \begin{array}{c} v_1\mathrm{cos}\theta_3 -v_2\mathrm{sin}\theta_3\\ v_1\mathrm{sin}\theta_3 +v_2\mathrm{cos}\theta_3\\ v_3\mathrm{cos}\theta_3\\ -v_3\mathrm{sin}\theta_3\\ \end{array} \right) ) \end{eqnarray}

3軸回転を扱っているので、1,2成分だけが変化するはずが、第3成分が変化すると同時に、本来常に0であるべき第4成分が値を持ってしまっています。 計算の都合上、仮に4つ目の次元を導入しましたが、なんと、1,2軸平面で回転させたところ、勝手に4次元目の方向にも回転してしまったようです。 なんとか、4次元目への回転を打ち消す方法はないでしょうか。

 今度は右からかけてみましょう。

\begin{eqnarray} Q(\boldsymbol{v})\rho_3(\theta_3) &=&(v_1\sigma_1+v_2\sigma_2+v_3\sigma_3) (I\mathrm{cos}\theta_3+\sigma_3\mathrm{sin}\theta_3)\\ &=&v_1\sigma_1I\mathrm{cos}\theta_3 +v_1\sigma_1\sigma_3\mathrm{sin}\theta_3 +v_2\sigma_2I\mathrm{cos}\theta_3 +v_2\sigma_2\sigma_3\mathrm{sin}\theta_3 +v_3\sigma_3I\mathrm{cos}\theta_3 +v_3\sigma_3\sigma_3\mathrm{sin}\theta_3\\ &=&v_1\sigma_1\mathrm{cos}\theta_3 -v_1\sigma_2\mathrm{sin}\theta_3 +v_2\sigma_2\mathrm{cos}\theta_3 +v_2\sigma_1\mathrm{sin}\theta_3 +v_3\sigma_3\mathrm{cos}\theta_3 -v_3I\mathrm{sin}\theta_3\\ &=&\sigma_1(v_1\mathrm{cos}\theta_3 +v_2\mathrm{sin}\theta_3) +\sigma_2(-v_1\mathrm{sin}\theta_3 +v_2\mathrm{cos}\theta_3) +\sigma_3 v_3\mathrm{cos}\theta_3 -I v_3\mathrm{sin}\theta_3\\ &=&Q(\boldsymbol{e}_1)(v_1\mathrm{cos}\theta_3 +v_2\mathrm{sin}\theta_3) +Q(\boldsymbol{e}_2)(-v_1\mathrm{sin}\theta_3 +v_2\mathrm{cos}\theta_3) +Q(\boldsymbol{e}_3)v_3\mathrm{cos}\theta_3 -Q(\boldsymbol{e}_4)v_3\mathrm{sin}\theta_3\\ &=&Q( \left( \begin{array}{c} v_1\mathrm{cos}\theta_3 +v_2\mathrm{sin}\theta_3\\ -v_1\mathrm{sin}\theta_3 +v_2\mathrm{cos}\theta_3\\ v_3\mathrm{cos}\theta_3\\ -v_3\mathrm{sin}\theta_3\\ \end{array} \right) )\\ &=&Q( \left( \begin{array}{c} v_1\mathrm{cos}(-\theta_3) -v_2\mathrm{sin}(-\theta_3)\\ v_1\mathrm{sin}(-\theta_3) +v_2\mathrm{cos}(-\theta_3)\\ v_3\mathrm{cos}\theta_3\\ -v_3\mathrm{sin}\theta_3\\ \end{array} \right) ) \end{eqnarray}

なかなか面白いことになりました。 1,2成分は元の逆回転になっているのに、3,4成分は逆になっていません。 しかし、思い出してみると、私たちは3,4成分の回転を打ち消したかったのです。 この性質は使えそうです。

 今度は右から逆回転 $\rho_3(\theta_3)^*=\rho_3(-\theta_3)$ をかけるとどうなるでしょうか。

\begin{eqnarray} Q(\boldsymbol{v})\rho_3(\theta_3)^* &=&Q(\boldsymbol{v})\rho_3(-\theta_3)\\ &=&Q( \left( \begin{array}{c} v_1\mathrm{cos}\theta_3 -v_2\mathrm{sin}\theta_3\\ v_1\mathrm{sin}\theta_3 +v_2\mathrm{cos}\theta_3\\ v_3\mathrm{cos}(-\theta_3)\\ -v_3\mathrm{sin}(-\theta_3)\\ \end{array} \right) ) \end{eqnarray}

これです! 左から $\rho_3$ をかけた時に余計だった3,4成分の回転を元に戻してくれています。 左から $\rho_3$ をかけた後に右から $\rho_3^*$ をかけると3,4成分については解決です。 逆に1,2成分は倍回転してしまいますが、仕方ありません。 あらかじめ回転角を2で割っておくことにしましょう。

というわけでまとめると、

$$ Q(R_i(\theta_i)\boldsymbol{v})= \rho_i({\frac{\theta_i}{2}})Q(\boldsymbol{v})\rho_i(\frac{\theta_i}{2})^* $$

のようになります。 3次元ベクトルの回転は、4次元の行列の回転に拡張して考えると、半分の回転を左から、逆の半分の回転を右からかけることで実現できるのです。

 一般的には、

\begin{eqnarray} 1&=&I,\\ i&=&\sigma_1,\\ j&=&\sigma_2,\\ k&=&\sigma_3 \end{eqnarray}

という表記法を用います。 こう書いた場合、今まで出てきたような

$$ q=w+xi+yj+zk $$

のような値をクォータニオン(quaternion)あるいは日本語で四元数(しげんすう)と呼びます。

 普通のベクトルは以下のように $Q()$ で変換することで、w成分が0のクォータニオンとして扱います。

\begin{eqnarray} \boldsymbol{v}&=&v_1\boldsymbol{e}_1+ v_2\boldsymbol{e}_2+ v_3\boldsymbol{e}_3,\\ Q(\boldsymbol{v})&=&v_1i+v_2j+v_3k \end{eqnarray}

ちなみに

$$ q=w+xi+yj+zk $$

というクォータニオンがあるとき、 $w$実部(real part)またはスカラー部(scalar part)、 $xi+yj+zk$虚部(imaginary part)またはベクトル部(vector part)と呼びます。 2次元回転で出てきた複素数と似ていますが、虚部が1つではなく複数ある形をしています。 このようなものを超複素数(hypercomplex number)と呼びます。 つまりクォータニオンは超複素数の一種ということです。

 先ほど説明したように、クォータニオンを用いた回転は $\rho_i(\theta_i/2)$ で表されます。 これを三角関数を用いて表すと、

$$ \rho_i(\frac{\theta_i}{2}) =\mathrm{cos}\frac{\theta_i}{2}+\sigma_i\mathrm{sin}\frac{\theta_i}{2} $$

のようになります。 これで、x,y,zいずれかの軸周りの回転はできました。

任意軸周りの回転クォータニオン(工事中)

 では何らかのベクトル $\boldsymbol{a}$ 周りの回転を表すクォータニオンはどうすれば作れるでしょうか。

クォータニオンの内積

 クォータニオンにも内積を考えることができます。 ベクトルの内積は、各成分をそれぞれかけたものを足し合わせればいいのでした。

$$ \boldsymbol{v}= v_1\boldsymbol{e}_1+ v_2\boldsymbol{e}_2+ v_3\boldsymbol{e}_3,\\ \boldsymbol{u}= u_1\boldsymbol{e}_1+ u_2\boldsymbol{e}_2+ u_3\boldsymbol{e}_3,\\ \boldsymbol{v}\cdot\boldsymbol{u}= v_1 u_1+ v_2 u_2+ v_3 u_3 $$

クォータニオンも同じルールです。

$$ q_1=w_1+x_1i+y_1j+z_1k,\\ q_2=w_2+x_2i+y_2j+z_2k,\\ q_1\cdot q_2=w_1w_2+x_1x_2+y_1y_2+z_1z_2 $$

 結果はベクトルの内積と同じでスカラーになります。 ベクトルの内積と違って、実部も入れるのを忘れないようにしましょう。

クォータニオンの長さとベルソル(工事中)

すみません。工事中です。

回転クォータニオンの幾何学的解釈(工事中)

すみません。工事中です。

球面線形補間(工事中)

すみません。工事中です。