【お知らせ】プログラミング記事の投稿はQiitaに移行しました。

四元数の実行列表現を作る

四元数の実行列表現を積の関係から作ります。

目次

四元数

四元数複素数に新しい虚数単位 $j$ を追加して、$i$ と $j$ の積を交換すると符号が転する(反交換性)というルールから組み立てられます。

i^2=j^2=-1,\ ij=-ji

$ij$ を $k$ と表記します。

ij=:k

$k$ を含む演算は $ij$ に置き換えれば導けます。

\begin{aligned} k^2&=ijk=ijij=-iijj=-1 \\ ik&=iij=-j \\ ki&=iji=-iij=j \\ jk&=jij=-ijj=i \\ kj&=ijj=-i \end{aligned}

以上の計算から $i,j,k$ はお互いに反交換であることが分かります。まとめると以下の通りです。

i^2=j^2=k^2=ijk=-1 \\ ij=-ji=k,\ jk=-kj=i,\ ki=-ik=j

$i→j→k→i→j→\cdots$ と巡回的に並べると、順番に 3 つ取り出した組み合わせが正になります。(巡回性)

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

表現行列を作る

四元数をベクトルに対応させます。

a+bi+cj+dk\ \mapsto\ \begin{pmatrix}a\\b\\c\\d\end{pmatrix}\quad(a,b,c,d∈\mathbb R)

簡単のため $a=b=c=d=1$ のケースを考えます。

1+i+j+k

左から $i,j,k$ を掛けて、得られた積から係数を抜き出して縦に並べれば、表現行列が得られます。行列がベクトルに作用して、一次変換で四元数の計算を再現します。

\begin{alignedat}{6} i(1+i+j+k) =&&&i&&-1&+&k&&-j&& \\ =&1&(&&&-1&&&&&&) \\ +&i&(&1&&&&&&&&) \\ +&j&(&&&&&&&-1&&) \\ +&k&(&&&&&1&&&&) \end{alignedat} \begin{aligned} \\ \quad→~ \begin{pmatrix} 0&-1&0&0 \\ 1&0&0&0 \\ 0&0&0&-1 \\ 0&0&1&0 \end{pmatrix} =:I \end{aligned}
\begin{alignedat}{6} j(1+i+j+k) =&&&j&&-k&&-1&+&i&& \\ =&1&(&&&&&-1&&&&) \\ +&i&(&&&&&&&1&&) \\ +&j&(&1&&&&&&&&) \\ +&k&(&&&-1&&&&&&) \end{alignedat} \begin{aligned} \\ \quad→~ \begin{pmatrix} 0&0&-1&0 \\ 0&0&0&1 \\ 1&0&0&0 \\ 0&-1&0&0 \end{pmatrix} =:J \end{aligned}
\begin{alignedat}{6} k(1+i+j+k) =&&&k&+&j&&-i&&-1&& \\ =&1&(&&&&&&&-1&&) \\ +&i&(&&&&&-1&&&&) \\ +&j&(&&&1&&&&&&) \\ +&k&(&1&&&&&&&&) \end{alignedat} \begin{aligned} \\ \quad→~ \begin{pmatrix} 0&0&0&-1 \\ 0&0&-1&0 \\ 0&1&0&0 \\ 1&0&0&0 \end{pmatrix} =:K \end{aligned}

この表現行列は次の書籍で使われています。

反対称行列

$I,J,K$ は反対称行列(転置で符号が反転する行列)です。転置で対応する成分の元になった計算を比較します。

\begin{aligned} I_{21}&:\ i1=i&&⟷&I_{12}&:\ ii=-1 \\ I_{43}&:\ ij=k&&⟷&I_{34}&:\ ik=-j \\ J_{31}&:\ j1=j&&⟷&J_{13}&:\ jj=-1 \\ J_{24}&:\ jk=i&&⟷&J_{42}&:\ ji=-k \\ K_{41}&:\ k1=k&&⟷&K_{14}&:\ kk=-1 \\ K_{32}&:\ ki=j&&⟷&K_{23}&:\ kj=-i \end{aligned}

$i1=i$ のように単位元 $1$ を掛ける計算と、$ii=-1$ のように 2 乗で -1 になる計算が対になっているのが面白いです。

また、$ij=k$ と $ik=-j$ などは、2番目の因子と右辺を入れ替えると符号が反転します。これは巡回性と反交換性によって対応します。

ij=k\ \xrightarrow{\text{巡回性}}\ ki=j\ \xrightarrow{\text{反交換性}}\ ik=-j

参考文献

実行列表現を作る手法は次を参照しました。対象は八元数です。

八元数は非結合的なため、左からの作用と右からの作用とで表現行列を分ける手法があります。

  • Yongge Tian, Matrix Representations of Octonions and Their Applications (2000), arXiv:math/0003166v2