うべの時空代数

気になる点がありましたらコメントくださいm(_ _)m

時空代数の逆元の求め方の発想・過程

時空代数の逆元の求め方を思いついたそれまでの発想や過程を説明したい.時空代数\mathrm{ST}=\mathrm{GA}(3,\ 0)の任意の元は
a=a_{00}+\gamma_0a_{10}+\gamma_1a_{11}+\gamma_2a_{12}+\gamma_3a_{13}\\
 +\gamma_{01}a_{01}+\gamma_{02}a_{02}+\gamma_{03}a_{03}+\gamma_{23}a_{21}+\gamma_{31}a_{22}+\gamma_{12}a_{23}\\
 +\gamma_{123}a_{30}+\gamma_{023}a_{31}+\gamma_{031}a_{32}+\gamma_{012}a_{33}+\gamma_{0123}a_{20}
のようにあらわせる.\gamma_0は二乗が-1,それ以外の1次基底は+1である.余談であるが,aの添え字が少々独特なのはC言語

typedef struct {
	double est[4][4];
}est;

と配列の構造体で表すときを考えたためである.さて時空代数の元a,\ b幾何積(普通の積)abは行列を使って,
\begin{pmatrix}
 +00&-10&+11&+12&+13&+01&+02&+03&-21&-22&-23&-30&+31&+32&+33&-20\\
 +10&+00&+01&+02&+03&-11&-12&-13&-31&-32&-33&-20&-21&-22&-23&+30\\
 +11&+01&+00&+23&-22&-10&-33&+32&-30&+13&-12&-21&-20&+03&-02&+31\\
 +12&+02&-23&+00&+21&+33&-10&-31&-13&-30&+11&-22&-03&-20&+01&+32\\
 +13&+03&+22&-21&+00&-32&+31&-10&+12&-11&-30&-23&+02&-01&-20&+33\\
 +01&-11&+10&+33&-32&+00&+23&-22&-20&+03&-02&-31&+30&-13&+12&-21\\
 +02&-12&-33&+10&+31&-23&+00&+21&-03&-20&+01&-32&+13&+30&-11&-22\\
 +03&-13&+32&-31&+10&+22&-21&+00&+02&-01&-20&-33&-12&+11&+30&-23\\
 +21&-31&+30&-13&+12&+20&-03&+02&+00&+23&-22&+11&-10&-33&+32&+01\\
 +22&-32&+13&+30&-11&+03&+20&-01&-23&+00&+21&+12&+33&-10&-31&+02\\
 +23&-33&-12&+11&+30&-02&+01&+20&+22&-21&+00&+13&-32&+31&-10&+03\\
 +30&+20&+21&+22&+23&-31&-32&-33&+11&+12&+13&+00&+01&+02&+03&-10\\
 +31&+21&+20&-03&+02&-30&+13&-12&+10&+33&-32&+01&+00&+23&-22&-11\\
 +32&+22&+03&+20&-01&-13&-30&+11&-33&+10&+31&+02&-23&+00&+21&-12\\
 +33&+23&-02&+01&+20&+12&-11&-30&+32&-31&+10&+03&+22&-21&+00&-13\\
 +20&-30&+31&+32&+33&+21&+22&+23&+01&+02&+03&+10&-11&-12&-13&+00\\
\end{pmatrix}\begin{pmatrix}b_{00}\\b_{10}\\b_{11}\\b_{12}\\b_{13}\\b_{01}\\b_{02}\\b_{03}\\b_{21}\\b_{22}\\b_{23}\\b_{30}\\b_{31}\\b_{32}\\b_{33}\\b_{20}\end{pmatrix}
とあらわせる.係数行列は-a_{20}\rightarrow-20のようにaを省略して符号と添え字のみで書いた.さてこの行の成分が1,\ 0,\ 0,\ \cdotsとなるようなbを求めたいわけだ.最初は掃き出し法やらで求めようと思っていたがさすがに16*16で無理がある.プログラミングでもやってみたが計算に時間がかかりすぎてフリーズする.そこで後から割ればいいため積が0次となるようなbを求めようと考えた.bの成分がaの同基底の成分の\pm1倍で表せると仮定し,基底が
1,\ \gamma_0,\ \gamma_i,\ \gamma_{0i},\ \gamma_{123i},\ \gamma_{123},\ \gamma_{0123i},\ \gamma_{0123}\ (i=1,\ 2,\ 3)
の成分に分けて考えようと思った.つまりb\varepsilonには+1,\ -1のどちらかが入るとして,
b=\varepsilon_{00}a_{00}+\varepsilon_{10}\gamma_0a_{10}+\varepsilon_{1i}\gamma_1a_{11}+\varepsilon_{1i}\gamma_2a_{12}+\varepsilon_{1i}\gamma_3a_{13}\\
 +\varepsilon_{0i}\gamma_{01}a_{01}+\varepsilon_{0i}\gamma_{02}a_{02}+\varepsilon_{0i}\gamma_{03}a_{03}+\varepsilon_{2i}\gamma_{23}a_{21}+\varepsilon_{2i}\gamma_{31}a_{22}+\varepsilon_{2i}\gamma_{12}a_{23}\\
 +\varepsilon_{30}\gamma_{123}a_{30}+\varepsilon_{3i}\gamma_{023}a_{31}+\varepsilon_{3i}\gamma_{031}a_{32}+\varepsilon_{3i}\gamma_{012}a_{33}+\varepsilon_{20}\gamma_{0123}a_{20}
と仮定し,
e:=ab=e_{00}+\gamma_0e_{10}+\gamma_1e_{11}+\gamma_2e_{12}+\gamma_3e_{13}\\
 +\gamma_{01}e_{01}+\gamma_{02}e_{02}+\gamma_{03}e_{03}+\gamma_{23}e_{21}+\gamma_{31}e_{22}+\gamma_{12}e_{23}\\
 +\gamma_{123}e_{30}+\gamma_{023}e_{31}+\gamma_{031}e_{32}+\gamma_{012}e_{33}+\gamma_{0123}e_{20}
として,例えば\gamma_0の成分が0要するにe_{10}=0になるためには,aは省略するが
\varepsilon_{00}(10)(00)+\varepsilon_{10}(00)(10)+\varepsilon_{1i}(01)(11)+\varepsilon_{1i}(02)(12)+\varepsilon_{1i}(03)(13)\\-\varepsilon_{0i}(11)(01)-\varepsilon_{0i}(12)(02)-\varepsilon_{0i}(13)(03)-\varepsilon_{2i}(31)(21)-\varepsilon_{2i}(32)(22)-\varepsilon_{2i}(33)(23)\\-\varepsilon_{30}(20)(30)-\varepsilon_{3i}(21)(31)-\varepsilon_{3i}(22)(32)-\varepsilon_{3i}(23)(33)+\varepsilon_{20}(30)(20)\\=0
になるような\varepsilon+1,\ -1どちらになるかの組み合わせを求めればいい.誤解を招きそうなので言及するが例えば\varepsilon_{1i}iには具体的な数は入らず,\varepsilon_{1i}+1ならその組み合わせの他の\varepsilon_{1i}+1である.そのようにしたのは逆元に空間等方性は持ってほしいというわたくしの要請である.0次以外が0になればいいのでこれをe_{10},\ e_{1i},\ e_{0i},\ e_{2i},\ e_{30},\ e_{3i},\ e_{20}それぞれ行い,すべてに共通する\varepsilonの組み合わせを見つければいいということである.それを表にまとめた.ただし1は省略し,組み合わせに全体を-1したものを含むので\varepsilon_{00}+1で固定する.

10 00 10 1i 0i 2i 30 3i 20
+ - + + + + - +
+ - - - + + - +
+ - + + - + + +
1 + - - - - + + +
+ - + + + - - -
5 + - - - + - - -
2 + - + + - - + -
+ - - - - - + -
1i 00 10 1i 0i 2i 30 3i 20
3 + + - + - + - -
1 + - - - - + + +
0i 00 10 1i 0i 2i 30 3i 20
4 + + + - - - - +
1 + - - - - + + +
2i 00 10 1i 0i 2i 30 3i 20
+ + + + - - - -
2 + - + + - - + -
3 + + - + - + - -
+ - - + - + + -
4 + + + - - - - +
+ - + - - - + +
+ + - - - + - +
1 + - - - - + + +
2i 00 10 1i 0i 2i 30 3i 20
+ + + + - - + +
2 + - + + - - + -
+ + - + + - + +
+ - - + + - + -
4 + + + - - - - +
+ - + - - - - -
+ + - - + - - +
5 + - - - + - - -
3i 00 10 1i 0i 2i 30 3i 20
4 + + + - - - - +
3 + + - + - + - -
20 00 10 1i 0i 2i 30 3i 20
+ + + + - + + -
2 + - + + - - + -
3 + + - + - + - -
+ - - + - - - -
+ + + - + + + -
+ - + - + - + -
+ + - - + + - -
5 + - - - + - - -
10 1i 0i 2i 30 3i 20
1
2
3
4
5

同基底の成分の\pm1倍かつ空間等方性の過程で積が0次のみになるような元はないことがわかる.落胆するのはまだ早い.次はさらにかけて0次になるような元を探せばいいのである.これは簡単に見つかる.組み合わせ1から5どれを使ってもよさそうなのだがより成分が0になっている組み合わせのひとつである組み合わせ1で考えてみると,
e:=ab=e_{00}+\gamma_0e_{10}+\gamma_1e_{11}+\gamma_2e_{12}+\gamma_3e_{13}+\gamma_{0123}e_{20}\\
 f=-e_{00}+\gamma_0e_{10}+\gamma_1e_{11}+\gamma_2e_{12}+\gamma_3e_{13}+\gamma_{0123}e_{20}
として積efは0次のみになる.よってb,\ fをそれぞれa',\ a''とすると,
aa'a''\in \mathbb{R}
が成り立つ.
このことから逆元を求める.
1=\frac{aa'a''}{aa'a''}\\
 1=aa'a''\frac{1}{aa'a''}\\
 a^{-1}=\frac{a'a''}{aa'a''}
これで逆元が求まった.余談であるがプログラムにする時を考えて組み合わせ1を-1倍した組み合わせ

00 10 1i 0i 2i 30 3i 20
- + + + + - - -

にしたほうが\ast=-1を行う回数が減るため好ましい.C言語での例を書いておく.\mathrm{PST}(\mathrm{e}1,\ \mathrm{e}2)は時空代数の幾何積の関数である.

double DETST(est e1) {
	est e2 = e1;
	e2.est[0][0] *= -1;
	e2.est[3][0] *= -1;
	e2.est[3][1] *= -1;
	e2.est[3][2] *= -1;
	e2.est[3][3] *= -1;
	e2.est[2][0] *= -1;
	est e3 = PST(e1, e2);
	e3.est[0][0] *= -1;
	return PST(PST(e1, e2), e3).est[0][0];
}

est IST(est e1) {
	double d = DETST(e1);
	if (d != 0) {
		est e = { 1 / d }, e2 = e1;
		e2.est[0][0] *= -1;
		e2.est[3][0] *= -1;
		e2.est[3][1] *= -1;
		e2.est[3][2] *= -1;
		e2.est[3][3] *= -1;
		e2.est[2][0] *= -1;
		est e3 = PST(e1, e2);
		e3.est[0][0] *= -1;
		return PST(PST(e2, e3), e);
	}
	return e1;
}