【お知らせ】プログラミング記事の投稿は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

表現行列を作る

四元数の積を、作用する側と作用される側に分離して考えます。

作用される側を4次元のベクトルとして表現します。

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

虚数単位ごとに左からの作用を調べます。

\begin{alignedat}{3} i(a+bi+cj+dk)&=ai-b+ck-dj&&=-b+ai-dj+ck \\ j(a+bi+cj+dk)&=aj-bk-c+di&&=-c+di+aj-bk \\ k(a+bi+cj+dk)&=ak+bj-ci-d&&=-d-ci+bj+ak \end{alignedat}

同じ結果を、行列をベクトルに作用させることで表現します。

I\begin{pmatrix}a\\b\\c\\d\end{pmatrix} =\begin{pmatrix}-b\\\;\;\;a\\-d\\\;\;\;c\end{pmatrix}, \ J\begin{pmatrix}a\\b\\c\\d\end{pmatrix} =\begin{pmatrix}-c\\\;\;\;d\\\;\;\;a\\-b\end{pmatrix}, \ K\begin{pmatrix}a\\b\\c\\d\end{pmatrix} =\begin{pmatrix}-d\\-c\\\;\;\;b\\\;\;\;a\end{pmatrix}

$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$ は四元数の性質を再現します。単位行列を $E$ とします。

I^2=J^2=K^2=IJK=-E \\ IJ=-JI=K,\ JK=-KJ=I,\ KI=-IK=J

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

反対称行列

$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

関連記事

今回の記事では左からの作用だけを行列で表現しましたが、右からの作用を別の行列で表現すると、左右から挟む作用を1つの行列にまとめることができます。

参考

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

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

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