arith blog

   気ままにらくがきブログ

四次元回転イメージと多元数の乗積表

はじめに

今回は、四次元とかそれ以上の次元に関するお話です。といってもスピリチュアルな方向ではなく「多元数(超複素数)に関する個人的考察」を書き連ねた記事となります。興味のある方だけお付き合いくださいませm(_ _)m

複素数の二次元回転なら分かる」、「仕組みは謎だけど四元数同士の積で三次元の回転を表現できることは知ってる」程度の知識がある方を対象として

  • 四元数同士を掛けたときの空間イメージがわかない
  • 三次元回転の式はどっからでてきたの?
  • 共役四元数を左右から掛ける意味は?
  • 八元数結合則が成り立たない理由は?

にお答えするような内容で書いてみるつもりです。出来るだけ抽象度を下げた説明を心がけたいと思っておりますが、そもそも想像することが難しい世界のお話ですのでもしうまく伝わらない文章になってしまっていたらゴメンナサイ!!

四元数と四次元回転の関係イメージ

四元数の積の幾何イメージ

四元数の積として表される回転は、isoclinic rotation と呼ばれる四次元回転の一種に該当します。この isoclinic rotation というのは日本語に訳すなら「等角回転」となるでしょうか。四次元空間内の1点で垂直に交わる2平面が互いの面を回転の中心軸面として同じ角度で回転するもので、全ての点がこれら2平面の回転を合成した動きをすることになり、絶対値が1の回転なら四次元超球面上の大円に沿って回転します。四次元回転では回転軸が直線ではなく面なのです。

三次元空間では垂直に交わる2平面の交差部が直線となりますので、1点で交わるといわれても想像が難しいでしょう。しかし、一方の平面上の直線(交差部の直線とは平行ではない)を軸にしてその平面を四次元目の方向へと回転させると、その平面は回転軸の直線を残してその三次元空間から姿を消しますので、この時残された直線ともう一方の平面とは1点で交わることになる、といった感じでイメージをしてみるとおぼろげながら掴めてくるかもしれません(;´∀`)

話を戻しまして、等角回転の様子は式の形から伺うことができます。

\small(a+bi+cj+dk)(\cos\theta+i\sin\theta)
=\small( (a+bi)+(cj+dk))(\cos\theta+i\sin\theta)
\small=(a+bi)(\cos\theta+i\sin\theta)+(cj+dk)(\cos\theta+i\sin\theta)

(a+bi)(cj+dk) のそれぞれが回転する面上を同じ角度 \theta で回転する式となっていますね。私の便宜上の造語ですが、これら2面のうち実軸とi軸を含むように分けた側の軸面(実-i平面)を「実面」と呼び、含まない側の軸面(j-k平面)を「虚面」と呼ぶことにします。

さて、先程の式では (\cos\theta+i\sin\theta) を右側から掛けていますが、もしこれを左から掛けていたらどうなっていたでしょうか。

\small(\cos\theta+i\sin\theta)(a+bi+cj+dk)
=\small(\cos\theta+i\sin\theta)( (a+bi)+(cj+dk))
\small=(\cos\theta+i\sin\theta)(a+bi)+(\cos\theta+i\sin\theta)(cj+dk)

計算順序が変わったことで、実面と虚面で次のように回転方向の違いが生じます。

右から掛けた場合
\small(a+bi)(\cos\theta+i\sin\theta)+\small(cj+dk)(\cos\theta+i\sin\theta)
\small=(a+bi)\cos\theta+(ai-b)\sin\theta+\small(cj+dk)\cos\theta-(ck-dj)\sin\theta
\small=(a+bi)\cos\theta+(ai-b)\sin\theta+\small(cj+dk)\cos(-\theta)+(ck-dj)\sin(-\theta)

左から掛けた場合
\small(\cos\theta+i\sin\theta)(a+bi)+\small(\cos\theta+i\sin\theta)(cj+dk)
\small=(a+bi)\cos\theta+(ai-b)\sin\theta+\small(cj+dk)\cos\theta+(ck-dj)\sin\theta

このように実面の回転方向に対する虚面の回転方向は正逆2通りあり、掛ける方向によって振り分け可能です。そこでこれらの回転を掛ける方向にちなみ left と right で区別することにしましょう。先程の式では上の段がright、下の段がleft ということになりますね。left回転とright回転では虚面の回転方向が逆になるのがポイントです。

ところで、今は等角回転を前提としたお話をしていましたが、四次元空間上の実面と虚面は、回転の中心点こそ共有しているものの互いに完全に独立しておりますので、それぞれが異なる角度で回転することもできるはずです。実は先程の left と right をパズルのように組み合わせれば、そのような回転を作り出すことができちゃいます。

例えば実面上の回転角を \alpha、虚面上の回転角を \beta として回転させたいとしましょう。この場合、left回転を\frac{\alpha+\beta}2、right回転を\frac{\alpha-\beta}2 するとよいです。

\small\left(\cos\frac{\alpha+\beta}2+i\sin\frac{\alpha+\beta}2\right)\left( (a+bi)+(cj+dk)\right)\left(\cos\frac{\alpha-\beta}2+i\sin\frac{\alpha-\beta}2\right)

これらの結果として回転する角度の合計は、left回転+right回転で

実面:\frac{\alpha+\beta}2+\frac{\alpha-\beta}2=\alpha

虚面:\frac{\alpha+\beta}2-\frac{\alpha-\beta}2=\beta

となるので目的の回転を得られるってわけですね。

この時、もし \alpha0 だったら実面は回転せずに虚面のみが回転し、\beta0 なら虚面は回転せずに実面のみが回転することになります。実面と虚面は互いを軸面としあって回転しているため、一方が回転してない状態であるならばそれはもはや三次元回転といってよいでしょう。

ここで、とある座標 P と原点を結ぶ直線を考えたとき、もしこの直線が実軸に対して直交しているのであればその直線は実軸方向には傾いていませんので (0,~x,~y,~z) と表現できますね。また、この座標の原点からの距離を 1 としてこの直線と実軸のなす平面を実面とみなすならば、実面の回転における i に相当するのは点 P でその座標が xi+yj+zk です。とすると、この実面を回転させないように虚面相当の平面(この直線に直交し原点を通る平面)のみを \theta 回転させる場合、任意座標 q の回転は

\small(\cos\frac{0+\theta}2+(xi+yj+zk)\sin\frac{0+\theta}2)q(\cos\frac{0-\theta}2+(xi+yj+zk)\sin\frac{0-\theta}2)\\\small=(\cos\frac{\theta}2+(xi+yj+zk)\sin\frac{\theta}2)q(\cos\frac{\theta}2-(xi+yj+zk)\sin\frac{\theta}2)

という形に書けるはずです。この式どこかで見たことないでしょうか。共役四元数を左右から掛ける三次元回転の公式は、このような仕組みで成り立っていたのです。

 

四元数と四次元回転の関係イメージ

乗積表の構造

さて、お次は四元数の乗積表を見てみましょう。

  1 +i +j +k
1 +1 +i +j +k
+i +i -1 +k -j
+j +j -k -1 +i
+k +k +j -i -1

符号を無視して考えるならば単位元1 とする元の集合で閉じており、自分自身を逆元とする結合的かつ可換なアーベル群だと分かります。ij=k,~jk=i,~ki=j というループを持つのが大きな特徴で、実はこれは二進数を各桁ごとに排他的論理和を取る演算と代数的性質が全く同じなのです。

\oplus 00 01 10 11
00 00 01 10 11
01 01 00 11 10
10 10 11 00 01
11 11 10 01 00
e_0\oplus e_a=e_a
e_a\oplus e_a=e_0
e_a\oplus e_b=e_c
e_b\oplus e_c=e_a
e_c\oplus e_a=e_b

 ~e_{01}=i,~e_{10}=j,~e_{11}=k のように捉えますと、このループ構造は順列と逆順列のペアがあり、一方が赤字で書かれた乗積のうち3つに該当していますね。このように符号を割り当てることで四元数の乗積表を作れることが分かりました。

では、もう少し踏み込んで考察してみます。

積の構造

ケーリー=ディクソンの構成法」をイメージすると分かりやすいかと思いますが、多元数の各元(各次元軸)は、積に関して二進数「的」な構造を持っています。
例えば八元数

 e_0=1,~e_1=i,~e_2=j,~e_3=k,

 e_4=l,~e_5=m,~e_6=n,~e_7=o

のように定義されている場合、

 e_{000}=1,~e_{001}=i,~e_{010}=j,~e_{011}=k,

 e_{100}=l,~e_{101}=m,~e_{110}=n,~e_{111}=o

というイメージでしょうか。

八元数の基本的な元は8種類ですが、このように考えれば実質的な構成要素は添字にある l成分,j成分,i成分 の3種類に集約させられます。実は多元数の積はこうした分解によって得られる構成要素のみで表現可能なのです。

例えば八元数の積ならば

e_{abc}\cdot e_{def}=(-1)^{\delta(abc,def)}\cdot i^{c+f}\cdot j^{b+e}\cdot l^{a+d}

と表現できます。(\delta は何らかの処理によって適切に値を返す関数とお考え下さい)

この i^{c+f}\cdot j^{b+e}\cdot l^{a+d} は、符号を無視すれば二進数を各桁ごとに排他的論理和をとる演算を用いて e_{abc~\oplus ~def} と表現できますよね。

ということは、適切に符号を割り振る方法さえ分かれば排他的論理和を用いる手法でもっと大きな乗積表も作れそうです。八元数以上では結合則が成り立たないとされていますが、その理由を探るためにも符号の付け方ルールを見直してみましょう。

十六元数の乗積表を作ってみた

十六元数ということで、4桁の二進数の排他的論理和表に符号をつけてみました。

十六元数の乗積表

黒字は正符号、赤字は負符号です。以下、符号の決め方の根拠を書いていきます。

    [基本ルール]
  • e_0\cdot e_a=e_a単位元の積)
  • 0\lt a の時、e_a\cdot e_a=-1\frac{\pi}2+\frac{\pi}2=\pi~rad回転)
  • a\lt b の時、\mathrm{sgn}(e_a\cdot e_b)=+1(積順と符号の関係)
  • a\ne0,~b\ne0,~a\ne b の時、e_a\cdot e_b=-e_b\cdot e_a(反交換)
  • 結合則はひとまず成立するものとして考え、破綻時に見直す。
背景が白

基本ルールに従います。

背景が灰色

基本ルールに従えば、i,~j,~ij(=k) の積のループ順は次のように定まります。

ij=-ji=k
jk=-kj=i
ki=-ik=j

 

このようなループ順の関係を、以降 \varepsilon(i,j,k) のように表記します。この場合は

\varepsilon(i,j,ij)

です。

背景が薄緑

基本ルールに従えば、l,~p,~lp の積のループ順は次のように定まります。

\varepsilon(l,p,lp)
背景がオレンジ

i に対する jljpj に対する ilipij に対する ilip はそれぞれ同列関係にあるべきですが、ループ順を考えると j\cdot il=-ijl からは \varepsilon(j,il,-ijl) が導かれるのに対し il\cdot j=-ijl からは \varepsilon(j,il,ijl) が導かれて矛盾してしまいます。これは、

-ijl=jil=j(il)=-(il)j=-i(lj)=i(jl)=ijl

を見れば一目瞭然、結合則によって反交換2回分が1回分に短縮されてしまい符号の辻褄が合わなくなったことが原因です。そこで、lp に対して結合の付け外しをする際には符号を反転させる」ことで矛盾を解消しましょう。

また、結合則を崩したことに伴う

(il)(il)=-ilil=iill=1\ne-1

(ij)(il)=-ji(il)=jiil=-jl
(ij)(il)=-il(ij)=-ilij=-lj=jl

という矛盾を防ぐため、「二乗となる元は他の元と結合しない」ようにします。

jl(-ijl)=ijl(jl)=-i(jl)(jl)=i
il(ijl)=-ijl(il)=jil(il)=-j(il)(il)=j
il(-jl)=il(lj)=-illj=ij

のように算出すれば問題ないようです。

\varepsilon(i,jl,-ijl)
\varepsilon(j,il,ijl)
\varepsilon(ij,il,-jl)
\varepsilon(i,jp,-ijp)
\varepsilon(j,ip,ijp)
\varepsilon(ij,ip,-jp)
背景が肌色

1,~i,~j,~ij に対する pl は同列関係にあるべきですね。

l(ijl)=-ijll=ij

のように算出すれば問題ないようです。

\varepsilon(i,l,il)
\varepsilon(j,l,jl)
\varepsilon(ij,l,ijl)
\varepsilon(i,p,ip)
\varepsilon(j,p,jp)
\varepsilon(ij,p,ijp)
背景が緑色

l,il,~jl,~ijl に対する p は同列関係にあるべきですね。

p(ijlp)=-ijlpp=ijl

のように算出すれば問題ないようです。

\varepsilon(il,p,ilp)
\varepsilon(jl,p,jlp)
\varepsilon(ijl,p,ijlp)
背景が薄水色

p,ip,~jp,~ijp に対する l は同列関係にあるべきですね。

l(-ijlp)=l(ijpl)=-ijpll=ijp

のように算出すれば問題ないようです。

\varepsilon(ip,l,-ilp)
\varepsilon(jp,l,-jlp)
\varepsilon(ijp,l,-ijlp)
背景が薄黄色

i,j,ij に対する lpil,jl,ijl に対する lpip,jp,ijp に対する lp は同列関係にあるべきですね。

lp(-ijlp)=ijlp(lp)=-ij(lp)(lp)=ij
ijl(lp)=-ijllp=ijp
lp(ijp)=-pl(ijp)=ijp(pl)=-ijppl=ijl

のように算出すれば問題ないようです。

\varepsilon(i,lp,-ilp)
\varepsilon(j,lp,-jlp)
\varepsilon(ij,lp,-ijlp)
\varepsilon(il,lp,ip)
\varepsilon(jl,lp,jp)
\varepsilon(ijl,lp,ijp)
背景が濃い水色

これらは全て lp を構成要素に持つ元が積のループ内に現れる乗積です。

(jl)(ip)=-(jl)(pi)=(jlp)i=-i(jlp)=ij(lp)=-ijlp
(jl)(ip)=-(ip)(jl)=( (ip)j)l=-(j(ip))l=jipl=-ijpl=ijlp

という矛盾を避けるため、lp の結合を優先させるようにします。

(jlp)(ijlp)=-j(lp)(ijlp)=j(lp)(ij)(lp)=-j(lp)(lp)(ij)=j(ij)=i
(ilp)(-ijlp)=-i(lp)(-ijlp)=-i(lp)(ij)(lp)=i(lp)(lp)(ij)=-iij=j
ij(ilp)=-iji(lp)=iij(lp)=-j(lp)=jlp
(ilp)(jlp)=-i(lp)(jlp)=i(lp)j(lp)=-i(lp)(lp)j=ij
(il)(jp)=-il(pj)=(ilp)j=-(i(lp))j=j(i(lp))=-jilp=ijlp

のように算出すれば問題ないようです。

\varepsilon(i,jlp,ijlp)
\varepsilon(j,ilp,-ijlp)
\varepsilon(ij,ilp,jlp)
\varepsilon(il,jp,ijlp)
\varepsilon(il,ijp,-jlp)
\varepsilon(jl,ip,-ijlp)
\varepsilon(jl,ijp,ilp)
\varepsilon(ijl,ip,jlp)
\varepsilon(ijl,jp,-ilp)

 

このようにして全ての乗積に符号をつけてみたのですが、十六元数としての正当性は大丈夫なのでしょうか。検証する手段がちょっと思いつかないのですが、少なくとも Wikipedia 先生の「十六元数」のページと比較してみた限りは一致してるようなのでとりあえずは良しとしましょう(*>_<*)ノ