メモ(数論20): 十六元数

「チラ裏」は、きちんとまとまった記事ではなく、断片的なメモです。誤字脱字・間違いがあるかもしれません。

***

2024-01-12 十六元数の零因子 君は 0 を割ることができるか?

#数論 #十六元数 #FairyGlass #八元数


Cawagas & Gutierrez (2005) said, “The actual determination of the zero divisors of the sedenions is quite tedious and time consuming.” We disagree. We will show that in fact finding the 168 pairs of zero divisors is trivial and elementary, quite easy even if done manually. A sample PARI/GP script (not brute-force) is included to demonstrate this.

Using an interesting but rather complicated method, Robert P. C. de Marrais listed 168 pairs of sedenion zero divisors of the type (ab)(cd) = 0, where a, b, c, dQ = {±e0, ±e1, …, ±e7}. We’d like to note that based on the Cayley–Dickson process (ab)(cd) = (ac − d*bda + bc*), solving (ab)(cd) = 0 is simply solving the system of equations:
acd*b = 0, da + bc* = 0.

It is easy to see that, when a triple (abc) ∈ Q3 is fixed, the above can be uniquely solved for dQ if and only if (i) a, b, c are purely imaginary and linearly independent, and (ii) c ≠ ±ab. In practice, one can select any et as a, with 1 ≤ t ≤ 7 (7 options); any eu as b, with 1 ≤ u ≤ 7, u ≠ t (7 − 1 = 6 options); and any ev as c, with 1 ≤ v ≤ 7, v ≠ t, v ≠ u, c ≠ ±ab (7 − 3 = 4 options). For each triple (abc) selected this way, a valid d such that (ab)(cd) = 0 is determined as d = (ac)b = (cb)a. So we know that there are exactly 7 × 6 × 4 = 168 such pairs (or 168/2 = 84 pairs, depending on how you count them) no matter which of the 480 octonion multiplication tables is used. When a specific multiplication table is chosen (e.g. the classic one used by Graves and Cayley), it is trivial to actually write the 168 pairs, using the above-mentioned conditions and the formula d = (ac)b (see PARI/GP code). This elementary approach is possible because the octonions are a division algebra—more specifically, because the quasigroup Q is a Moufang loop.

Although there may be a few subtle points if you try to handle this in a totally elementary manner, our method is essentially so obvious that probably it is already known. We (re)discovered it in January, 2024, after seeing John Baez’s This Week’s Finds, Week 59, where he tries to prove that the “hexadecanions” are not a division algebra by showing that they have zero divisors, and incorrectly says (by quoting someone) that (e1, e4)(−1, e5) = 0. While this calculation is clearly erroneous, at first it was not clear how one can construct valid examples of zero divisors in an easy, simple way.


2 個の実数 A, B から複素数 A + Bi が定義されるように、2 個の複素数から四元数が定義され、2 個の四元数から八元数が定義され、2 個の八元数から十六元数が定義される。十六元数の見どころは「零因子」。二つの数 x, y はどちらも 0 ではないが、積 xy は 0 になる…という少し不思議な現象だ。

Cawagas たちは十六元数についての論文(2005年)の中で、168種(数え方によっては 84種)の零因子ペアを具体的に決定することは面倒で時間がかかると述べた。その見解は正しくないようだ。このメモでは、168ペアを構成する単純で初等的な方法を記し、それが必要十分であることを示す。アルゴリズムは明快で、手計算でも容易に実行可能。 PARI/GP によるサンプルスクリプトを添付する。


(コメント)
複素数は実数を2個
並べたようなもの…
四元数は実数を4個
並べたようなもの…
八元数は実数8個…
十六元数は16個…

「形」は超単純!


【1】 次の形で十六元数 x を表現できる:
  x = (a, b) ただし a, b は任意の八元数

〔補足〕 八元数とは? 虚数単位を e1, e2, … で表すと(これらはどれも相異なる虚数だが、一つ一つは普通の虚数 i と似た性質を持ち平方すると −1 になる)、八元数 a は次のように一つの実部と7種の虚数成分を持つ:
  a = a0 + a1e1 + a2e2 + a3e3 + a4e4 + a5e5 + a6e6 + a7e7
これを次のように、8次元ベクトル(8 個の実数を並べたもの)として略記することがある:
  a = (a0, a1, a2, a3, a4, a5, a6, a7)
同様に、もう一つの八元数
  b = (b0, b1, b2, b3, b4, b5, b6, b7)
を考えると、十六元数 x = (a, b) とは:
  x = ((a0, a1, a2, a3, a4, a5, a6, a7), (b0, b1, b2, b3, b4, b5, b6, b7))
これは16次元ベクトル…
  x = (a0, a1, a2, a3, a4, a5, a6, a7, b0, b1, b2, b3, b4, b5, b6, b7)
…と同一視され、ベタに書けば次のように15種の虚数成分を持つ数である。
  x = a0 + a1e1 + a2e2 + a3e3 + a4e4 + a5e5 + a6e6 + a7e7
   + b0e8 + b1e9 + b2e10 + b3e11 + b4e12 + b5e13 + b6e14 + b7e15
ここで b0, b1, … はただの変数名なので、虚数単位の番号に合わせて b0 = a8, b1 = a9, … と改名しても構わない。

y = (c, d) をもう一つの十六元数とすると、x と y の積は通常、次のように定義される(これは「定義」で「証明」ではないので、なぜ?と悩む必要はないのだが、この定義は、普通の四元数古典的八元数と互換性がある):

xy = (a, b)(c, d) = (ac − d*b, da + bc*)  ☆

ただしアスタリスクは共役を表す。八元数
  q = q0 + q1e1 + q2e2 + … + q7e7
の共役とは、実部が等しく虚部の符号が反対の数:
  q* = q0 − q1e1 − q2e2 − … − q7e7

補題1 実部 q0 が 0 なら q* = −q が成り立つ。特に虚数単位 e1, e2, …, e7 の共役は、それぞれ −e1, −e2, …, −e7

補題2 虚数単位の平方は −1 だから、ある虚数単位の逆数は、その虚数単位の符号を変えたもの。例えば:
  (e4)2 = e4e4 = −1
  だから −(e4e4) = (−e4)e4 = e4(−e4) = 1
つまり e4 と −e4 は互いに逆数。 4 番以外の虚数単位についても同様。

【2】 十六元数 x = (a, b) を構成する a, b が、どちらも(八元数の)虚数単位 e1, e2, …, e7 のどれかで、等しくはない(a ≠ b)としよう。例えば
  x = (e1, e2) とか x = (e7, e3)
のような十六元数を考える。

〔補足〕 八元数は
  a = a0 + a1e1 + a2e2 + a3e3 + a4e4 + a5e5 + a6e6 + a7e7
つまり
  a = (a0, a1, a2, a3, a4, a5, a6, a7)
の形の数で、各成分は任意の実数だから、
  a = (0, 0, 0, 1, 0, 0, 0, 0)
  = 0 + 0e1 + 0e2 + 1e3 + 0e4 + 0e5 + 0e6 + 0e7 = e3
のように、たまたま成分のほとんどが実数 0 の場合も、一つの八元数。一般には A + Bi の形を持つ複素数について、実部が 0 の 0 + 1i = i や 0 − 2i = −2i もやはり複素数(純虚数の複素数)だが、それと同様。ここでは「成分の前半に 1 が一つだけ、後半に 1 が一つだけあり、それ以外の成分は 0 の十六元数」を考えている。例えば:
  x = (e7, e3)
   = (0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 0)

実は、この型の十六元数は全て零因子積の定義 ☆ を使って書くと、
  xy = (a, b)(c, d) = (ac − d*b, da + bc*) = (0, 0) = 0  ★★
を満たす y = (c, d) が存在して、c, d はどちらも
  集合 S = {±e1, ±e2, …, ±e7}
の元(つまり要素)。このことを c, d ∈ S で表す。集合の元を選ぶときは、複号(プラス・マイナス)の選択は自由とする。例えば c = +e1, d = −e7 のように ± の上下の符号を同時に選択選択の上下が不統一でもいい。他の文脈で ± や ∓ が並んでいる場合、特に断りがない限り、複号の上下は対応している(複号同順)。

〔例〕 A = ±1, B = ∓1 第一の選択肢は、上の符号を選んで A = +1, B = −1。第二の選択肢は、下の符号を選んで A = −1, B = +1。

上記の「存在して…」という主張を確かめるには、任意の x = (a, b) が与えられたとして、それを定数としてそれに対し xy = 0 を満たす y = (c, d) が存在すること――つまり c, d を未知数として ★★ に基づく次の連立方程式に解があること――を示す必要がある:
  ac − d*b = ac + db = 0  ‥‥①
  da + bc* = da − bc = 0  ‥‥②
ここで「純虚数の共役は元の数の符号を変えたもの」という性質(補題1)を使った。

【3】 具体例。古典的な八元数の「九九」が分かっていると話が早いが、知らなくても掛け算表を参照すれば、機械的にできる。八元数では、交換法則 pq = qp が保証されないことに注意: p に右から q を掛けること pq と、左から q を掛けること qp は一般には意味が異なる。

〔注〕 掛け算表を選ばないと具体例を提示できないので、ここでは一番普通の規則を使うが、実は八元数の「九九」には480種のバリエーションがある。バリエーションは「七つある虚数の番号の付け方」「空間内の座標軸の正負の定義」のようなテクニカルな問題で、このメモの本題とは関係ない。

定数 a = e1, b = e4 が与えられたとする。 c, d を未知数として①②を解きたい。仮に c = e2 を選ぶと①は:
  e1e2 + de4 = e3 + de4 = 0
  つまり de4 = −e3
両辺に (e4)−1 = −e4 を右から掛けると(逆数については補題2参照):
  (de4)(e4)−1 = (−e3)(e4)−1
  d = (−e3)(−e4) = e3e4 = e7
八元数の世界では、結合法則 (pq)r = p(qr) が保証されないが、 r が q の逆数の場合には、次の形の限定的な結合法則が成り立つ:
  (pq)q−1 = p(qq−1) = p⋅1 = p  命題3(イ)参照
左辺の (de4)(e4)−1 を d に変形できたのは、そのため。

今求めた d = e7 は②も満たす:
  da − bc = e7e1 − e4e2 = −e6 − (−e6) = 0

よって (c, d) = (e2, e7) は①②の解: この具体例には、確かに(少なくとも一つの)解がある。 ★★ から、次の 2 因子は零因子:
  (a, b)(c, d) = (e1, e4)(e2, e7) = 0

【4】 上の例では「仮に」と称して説明なく c = e2 とした。実は c, d についてのこの連立方程式は、解がある場合、4種(符号だけの違いもカウントに含めれば8種)の解を持つ。 c の選択肢は7種(符号も含めて14種)しかないので、でたらめに c を選んでも、かなりの確率で有効な解が得られる。正確に言うと、次の通り。
  S = {±e1, ±e2, …, ±e7}
…の中から a, b を選ぶとき(ただし b ≠ ±a とする)、±a, ±b, ±ab 以外ならどれを c としても、①②の有効な解が得られる。 a = e1, b = e4, ab = e5 の例で言えば ±e2, ±e3, ±e6, ±e7 のどれを c としても、それに対応して①②を連立させる d が得られる。

定理S の 2 元から作られる十六元数の零因子) a, b ∈ S が b ≠ ±a を満たし、かつ c ∈ S が ±a, ±b, ±ab 以外の場合には――そしてその場合に限って―― (a, b)(c, d) = 0 を満たす d ∈ S が存在する。その具体的な値は d = (ac)b = (cb)a である。

〔注〕 この定理の証明には、具体的な掛け算規則の選択は必要ない。八元数の「九九」480種のどれを選んでも、同じ定理が成り立つ。

以下では、まず c = ±a, ±b, ±ab または b = ±a なら①②に解がないことを示してから、c がそれ以外の S の元なら①②に解があること(そして具体的な解)を述べる。

a, b についての仮定と補題2から、①は
  db = −ac つまり d = (−ac)b−1 = (−ac)(−b) = (ac)b  ‥‥③
を意味し、②は
  da = bc つまり d = (bc)a−1 = (bc)(−a) = (−bc)a  ‥‥④
を意味する。

S = {±e1, ±e2, …, ±e7} の 2 元について、それらが「等しくなく、互いに −1 倍の関係でもない」とき、その 2 元を「別種」と呼ぶことにする。

〔例〕 e2 と e4 は別種。e2 と −e4 も別種。e2 と −e2 は別種ではない。

補題3 S の別種の 2 元 p, q の積は再び S の元だが、p とも q とも別種。それを pq = r とすると、もし掛け算の左右を交換するなら、積の符号が変わる。つまり qp = −r。言い換えれば qp = −pq, pq = −qp。

この事実は、八元数の「和音」こと triad の性質に由来する(例: 176 が有効な和音なら e1e7 = e6 であり、同時に e7e1 = −e6)。四元数の積の基本性質(例: ij = k だが ji = −k)を継承している。

〔補足〕 別種ではない 2 元の積は ±1 に等しく、S の元にならない。例: e2e2 = −1, e2(−e2) = 1。なぜなら e2 などの一つ一つは虚数単位。

【5】 定理の証明(解がないケース) c = ±a なら ac = a(±a) = ±a2 = ∓1 であり(なぜなら a は虚数単位)、他方 −bc = −b(±a) = ∓ba なので:
  ③から d = (ac)b = ∓b
  ④から d = (−bc)a = (∓ba)a = ∓ba2 = ∓b(−1) = ±b (複号同順)
仮定により b ≠ 0 なので上と下は両立せず、③④(従って①②)を連立させる解はない。途中計算の (ba)a = ba2 の部分では、八元数が交代法則を満たすことを使った。

次に c = ±b なら ac = a(±b) = ±ab、 −bc = −b(±b) = ∓b2 = ±1 なので:
  ③から d = (ac)b = (±ab)b = ±ab2 = ∓a
  ④から d = (−bc)a = ±a
これも両立しない。

c = ±ab の場合はトリッキー: 以下で見るように、このケースで解 d があるなら d は実数でなければならず、 d ∈ S を前提とした①の変形は不成立。積の定義 ☆ によれば、
  xy = (ac − d*b, da + bc*) = (0, 0) = 0
が成り立つことは、次の二つが成り立つことと同じ:
  ac − d*b = 0  ‥‥⑤
  da + bc* = 0  ‥‥⑥
八元数は交代法則を満たすので、c = ±ab なら:
  ac = ±a(ab) = ±a2b = ∓b
これを⑤に代入すると:
  ∓b − d*b = 0 従って d*b = ∓b
両辺に b−1 を右から掛けると:
  d* = ∓bb−1 = ∓b(−b) = ±b2 = ∓1
これは虚部ゼロなので、共役の定義(虚部の符号が反対)から、共役は自分自身に等しい:
  d = d* = ∓1
これを⑥に代入すると(a, b についての仮定から c = ±ab は純虚数で補題1に従う):
  da + bc* = da − bc = (∓1)a − b(±ab) = 0
  つまり ∓a ∓ b(ab) = 0  ‥‥⑦
仮定により a, b は別種なので、補題3から b(ab) = −b(ba) = −b2a = a、従って⑦左辺は次の値を持ち、⑦右辺と等しくなり得ない。
  ∓a ∓ a = ∓2a
つまり⑤⑥は両立不可能。

最後に、もしも b = ±a なら:
  ③は d = (ac)b = (ac)(±a) = ±(ac)a
  ④は d = (−bc)a = (∓ac)a = ∓(ac)a
上と下は同じ (ac)a で符号が逆なので、両立不可能。なぜなら (ac)a ≠ 0。

〔補足〕 S 内の任意の 2 元(必ずしも相異ならない)の積は、再び S 内にあるか、または ±1。従って、S 内の任意の 3 元(必ずしも相異ならない)の積も、同じ範囲内にあり 0 にはなり得ない。

【6】 定理の証明(解があるケース) 「両立不可能」として除外されたケース(c = ±a, ±b, ±ab の場合と a = ±b の場合)以外では、必ず (a, b)(c, d) = 0 を満たす d ∈ S が存在する。それを言うには d についての二つの式③④が両立すること、つまり次の等式を示せばいい:
  (ac)b = (−bc)a
仮定により c は ±b ではないから、補題3により −bc = cb; 上の式をこう書いてもいい:
  (ac)b = (cb)a  ‥‥⑧

今 a, b, c ∈ S について、結合子その性質(八元数の交代性に基づく)を使うと:
  0 = △(c, a, b) − △(c, a, b) = △(c, a, b) + △(c, b, a)
  つまり 0 = (ca)b − c(ab) + (cb)a − c(ba)
ここで c と a は別種、 a と b も別種。補題3から ca = −ac, ab = −ba。上に代入して:
  0 = (−ac)b − c(−ba) + (cb)a − c(ba) この右辺第2・第4項は消滅
整理すると:
  0 = −(ac)b + (cb)a つまり (ac)b = (cb)a
⑧が示された。∎

〔注意〕 c = ±ab も⑧を満たすが、題意に適さない(既に除外されている): 【5】で見たように、c = ±ab だと d が実数になってしまい、そもそも①が成り立たないので、①に基づく③⑧の成否は、解の有無と無関係。ところで c ≠ ±ab なら、この種の不都合は生じない。 S の元の積が実数になるなら、その積は ±1 に限られる。④式 d = −(bc)a は d が実数でも実数でなくても成り立つので、それに当てはめると:
  ±1 = −(bc)a つまり (bc)a = ∓1
両辺に a−1 を右から掛けると:
  bc = ∓a−1 = ±a
両辺に b−1 を左から掛けると:
  c = ±b−1a = ∓ba = ±ab
つまり d が実数になるとしたら c = ±ab。

【7】 結論として、このタイプの零因子は、初等的な議論(八元数の連立1次方程式に基づく)によって、過不足なく直接構成できる。

  1. 八元数 a, b として S の任意の別種の元を選んでいい: 7 × 6 = 42 種の選択肢がある(符号も区別すれば168種)。
  2. a, b の選択に応じて c の選択肢は ±a, ±b, ±ab 以外の4種(符号も区別すれば8種)。どれを選んでもいい。
  3. a, b, c の組み合わせを決めると、d = (ac)b は自動的に定まる:
      (a, b) × (c, (ac)b) = 0 は十六元数の零因子

PARI/GP で記述すると次の通り(a, b, c の符号を正に固定)。八元数の積の計算に octomul5 を使う(詳細)。添え字 t, u, v の三重ループ(それぞれ 1 から 7 の値を取る)によって、有効な t, u, v の組み合わせごとに (et, eu)(ev, d) = 0 を満たす d ∈ S を決定する。これは試行錯誤の全数検索ではなく 73 = 343 種の組み合わせには、原則として全部、解 d がある。ただし解がない例外ケースについては、解を求めようとせず、ループがスキップされる: t = u のとき(つまり a = b のとき)には解がないことが分かっているので、実際の解は 6/7 に減り、c = a, b, |ab| のときにも解がないことが分かっているので、さらに 4/7 に減る。得られる解の総数は:
  73 × 6/7 × 4/7 = 7 × 6 × 4 = 168

プログラムのコード(読まずに先へ)。

\\ Simple construction of sedenion zero divisors (*not* brute-force)
\\ PARI/GP, Jan. 2024, Public Domain

\\ octonion e_n (n=0..7)
e( n ) = { my( vec = vector(8) ); vec[ n+1 ] = 1; vec; }

test() = {
 for( t = 1, 7,
  my( a = e(t) );
  for( u = 1, 7, if( u == t, next );
   printf( "( e%d + e%d ) : ", t, u+8 );
   my( b = e(u), ab = octomul5( a, b ) );
   for( v = 1, 7, if( v == t || v == u, next );
    my( c = e(v), d );
    if( c == ab || c == -ab, next );
    d = octomul5( octomul5( a, c ), b );
    report( v, d )
   ); \\v
   print
  );  \\u
  print
 );   \\t
}

report( v, d ) = {
 my( w = 0, Sign );
 for( n = 1, 7, if( d == e(n), w = n; Sign = "+"; break,
                    d == -e(n), w = n; Sign = "-"; break ) );
 if( w, printf( " ( e%d %s e%d ),", v, Sign, w+8 ),
     print( "Unexpected d=", d ) );
}

octomul5(X,Y) = { \\ octonion multiplication, classic (Graves-Cayley) version
 my(x0=X[1], x1=X[2], x2=X[3], x3=X[4], x4=X[5], x5=X[6], x6=X[7], x7=X[8]);
 my(y0=Y[1], y1=Y[2], y2=Y[3], y3=Y[4], y4=Y[5], y5=Y[6], y6=Y[7], y7=Y[8]);
 my(z0,z1,z2,z3, z4,z5,z6,z7);
 z0 = x0*y0 - x1*y1 - x2*y2 - x3*y3 - x4*y4 - x5*y5 - x6*y6 - x7*y7;
 z1 = (x0*y1 + x1*y0) + (x2*y3 - x3*y2) + (x4*y5 - x5*y4) + (x7*y6 - x6*y7);
 z2 = (x0*y2 + x2*y0) + (x3*y1 - x1*y3) + (x4*y6 - x6*y4) + (x5*y7 - x7*y5);
 z3 = (x0*y3 + x3*y0) + (x1*y2 - x2*y1) + (x4*y7 - x7*y4) + (x6*y5 - x5*y6);
 z4 = (x0*y4 + x4*y0) + (x5*y1 - x1*y5) + (x6*y2 - x2*y6) + (x7*y3 - x3*y7);
 z5 = (x0*y5 + x5*y0) + (x1*y4 - x4*y1) + (x7*y2 - x2*y7) + (x3*y6 - x6*y3);
 z6 = (x0*y6 + x6*y0) + (x2*y4 - x4*y2) + (x1*y7 - x7*y1) + (x5*y3 - x3*y5);
 z7 = (x0*y7 + x7*y0) + (x3*y4 - x4*y3) + (x6*y1 - x1*y6) + (x2*y5 - x5*y2);
 [z0,z1,z2,z3, z4,z5,z6,z7]; }

出力の最初の部分は、次の通り。

( e1 + e10 ) :  ( e4 - e15 ), ( e5 + e14 ), ( e6 - e13 ), ( e7 + e12 ),
( e1 + e11 ) :  ( e4 + e14 ), ( e5 + e15 ), ( e6 - e12 ), ( e7 - e13 ),
( e1 + e12 ) :  ( e2 + e15 ), ( e3 - e14 ), ( e6 + e11 ), ( e7 - e10 ),
( e1 + e13 ) :  ( e2 - e14 ), ( e3 - e15 ), ( e6 + e10 ), ( e7 + e11 ),
( e1 + e14 ) :  ( e2 + e13 ), ( e3 + e12 ), ( e4 - e11 ), ( e5 - e10 ),
( e1 + e15 ) :  ( e2 - e12 ), ( e3 + e13 ), ( e4 + e10 ), ( e5 - e11 ),

( e2 + e9 ) :  ( e4 + e15 ), ( e5 - e14 ), ( e6 + e13 ), ( e7 - e12 ),
( e2 + e11 ) :  ( e4 - e13 ), ( e5 + e12 ), ( e6 + e15 ), ( e7 - e14 ),
( e2 + e12 ) :  ( e1 - e15 ), ( e3 + e13 ), ( e5 - e11 ), ( e7 + e9 ),
( e2 + e13 ) :  ( e1 + e14 ), ( e3 - e12 ), ( e4 + e11 ), ( e6 - e9 ),
( e2 + e14 ) :  ( e1 - e13 ), ( e3 - e15 ), ( e5 + e9 ), ( e7 + e11 ),
( e2 + e15 ) :  ( e1 + e12 ), ( e3 + e14 ), ( e4 - e9 ), ( e6 - e11 ),

( e3 + e9 ) :  ( e4 - e14 ), ( e5 - e15 ), ( e6 + e12 ), ( e7 + e13 ),
( e3 + e10 ) :  ( e4 + e13 ), ( e5 - e12 ), ( e6 - e15 ), ( e7 + e14 ),
( e3 + e12 ) :  ( e1 + e14 ), ( e2 - e13 ), ( e5 + e10 ), ( e6 - e9 ),
( e3 + e13 ) :  ( e1 + e15 ), ( e2 + e12 ), ( e4 - e10 ), ( e7 - e9 ),
( e3 + e14 ) :  ( e1 - e12 ), ( e2 + e15 ), ( e4 + e9 ), ( e7 - e10 ),
( e3 + e15 ) :  ( e1 - e13 ), ( e2 - e14 ), ( e5 + e9 ), ( e6 + e10 ),

意味: このタイプの零因子のうち、x = e1 + e10 に対し xy = 0 を満たすものは
  y = e4 − e15, y = e5 + e14, y = e6 − e13, y = e7 + e12,
の四つ。 x = e1 + e11 に対し xy = 0 を満たすものは
  y = e4 + e14, y = e5 + e15, y = e6 − e12, y = e7 − e13,
の四つ。等々。

〔補足〕 次の関係が成り立つ(複号は a, b, c の選択に応じ、上下どちらか一つだけが正しい):
  (a, b)(c, d) = (et, eu)(ev, ±ew) = (et + eu+8)(ev ± ew+8)  t, u, v, w ∈ {1, 2, …, 7}。
右辺は十六元数の積 xy; 左辺と真ん中は、同じ積を八元数 a, b, c, d を使って表したもの(積の定義 ☆ 参照)。


(質問)
0 を割ることが
できるか?


x = 2 に対し xy = 10 を満たす y を求めることは 10 を 2 で割ること。同様に x = e1 + e10 に対し xy = 0 を満たす y を求めることは…
  0 を e1 + e10 で(左から)割ること
…のはずだが、この場合の xy = 0 の解 y は、自明な y = 0 の他にも、出力の最初の行にように、次の4種の零因子がある:
  y = e4 − e15, y = e5 + e14, y = e6 − e13, y = e7 + e12
すなわち、この「0 を割る割り算」には少なくとも五つの「答え」がある! 十六元数の世界では、この場合、0 を割ることはできない――というか割れることは割れるけど、答えが一つに定まらない。普通の数の世界では
  0 ÷ 2 = 0 × 1/2 = 0, 0 ÷ (3 + 4i) = 0 × (3 − 4i)/25 = 0
のように 0 を(0 以外の数で)割れば、答えは 0 に決まっているが、十六元数の世界ではもはやその常識は通用しない!

出力の残りの部分(下記)と合わせると、a = e1, e2, …, e7 のそれぞれに対し 4 × 6 = 24 種の積が報告され、トータルで 168 個の積が出力される。例えば
  (e1 + e10)(e5 + e14) = 0 と (e5 + e14)(e1 + e10) = 0
  (e1 + e10)(e4 − e15) = 0 と (e4 + e15)(e1 − e10) = 0
のような積が別々にカウントされている。前者は因子の左右を入れ替えただけで、同じといえば同じペア。 b の符号を変えると d の符号も変わることから、後者も(符号の違いを別にすれば)同じといえば同じペア。こういった左右入れ替えを別々にカウントしなければ、ペアの総数は半分の 84 になる。

( e4 + e9 ) :  ( e2 - e15 ), ( e3 + e14 ), ( e6 - e11 ), ( e7 + e10 ),
( e4 + e10 ) :  ( e1 + e15 ), ( e3 - e13 ), ( e5 + e11 ), ( e7 - e9 ),
( e4 + e11 ) :  ( e1 - e14 ), ( e2 + e13 ), ( e5 - e10 ), ( e6 + e9 ),
( e4 + e13 ) :  ( e2 - e11 ), ( e3 + e10 ), ( e6 + e15 ), ( e7 - e14 ),
( e4 + e14 ) :  ( e1 + e11 ), ( e3 - e9 ), ( e5 - e15 ), ( e7 + e13 ),
( e4 + e15 ) :  ( e1 - e10 ), ( e2 + e9 ), ( e5 + e14 ), ( e6 - e13 ),

( e5 + e9 ) :  ( e2 + e14 ), ( e3 + e15 ), ( e6 - e10 ), ( e7 - e11 ),
( e5 + e10 ) :  ( e1 - e14 ), ( e3 + e12 ), ( e4 - e11 ), ( e6 + e9 ),
( e5 + e11 ) :  ( e1 - e15 ), ( e2 - e12 ), ( e4 + e10 ), ( e7 + e9 ),
( e5 + e12 ) :  ( e2 + e11 ), ( e3 - e10 ), ( e6 - e15 ), ( e7 + e14 ),
( e5 + e14 ) :  ( e1 + e10 ), ( e2 - e9 ), ( e4 + e15 ), ( e7 - e12 ),
( e5 + e15 ) :  ( e1 + e11 ), ( e3 - e9 ), ( e4 - e14 ), ( e6 + e12 ),

( e6 + e9 ) :  ( e2 - e13 ), ( e3 - e12 ), ( e4 + e11 ), ( e5 + e10 ),
( e6 + e10 ) :  ( e1 + e13 ), ( e3 + e15 ), ( e5 - e9 ), ( e7 - e11 ),
( e6 + e11 ) :  ( e1 + e12 ), ( e2 - e15 ), ( e4 - e9 ), ( e7 + e10 ),
( e6 + e12 ) :  ( e1 - e11 ), ( e3 + e9 ), ( e5 + e15 ), ( e7 - e13 ),
( e6 + e13 ) :  ( e1 - e10 ), ( e2 + e9 ), ( e4 - e15 ), ( e7 + e12 ),
( e6 + e15 ) :  ( e2 + e11 ), ( e3 - e10 ), ( e4 + e13 ), ( e5 - e12 ),

( e7 + e9 ) :  ( e2 + e12 ), ( e3 - e13 ), ( e4 - e10 ), ( e5 + e11 ),
( e7 + e10 ) :  ( e1 - e12 ), ( e3 - e14 ), ( e4 + e9 ), ( e6 + e11 ),
( e7 + e11 ) :  ( e1 + e13 ), ( e2 + e14 ), ( e5 - e9 ), ( e6 - e10 ),
( e7 + e12 ) :  ( e1 + e10 ), ( e2 - e9 ), ( e5 - e14 ), ( e6 + e13 ),
( e7 + e13 ) :  ( e1 - e11 ), ( e3 + e9 ), ( e4 + e14 ), ( e6 - e12 ),
( e7 + e14 ) :  ( e2 - e11 ), ( e3 + e10 ), ( e4 - e13 ), ( e5 + e12 ),

〔付記〕 八元数・十六元数の掛け算の定義は複数あるが、ここでは古典的な方式を使っている。全数検索により、このタイプの零因子が(符号の違いを別にして)他にないことは検証済み。このタイプ以外の零因子の有無については、この議論からは何とも言えない。

【8】 x = (a, b) の a, b として、虚数単位ではなく実数の単位 1 あるいは −1 などを使うことは可能だろうか。実部が 0 でない十六元数 x は零因子になり得るか?

a = R ≠ 0 が実数だったら:
  ac − d*b = Rc + db = 0 だから d = −R⋅cb−1
  da + bc* = dR − bc = 0 だから d = 1/R⋅bc
もしも b, c が本文の定理同様 S の元なら、上の第1式は = R(cb) = −R(bc)。第2式との関係から −R = 1/R となるが、その両辺を −R 倍すると R2 = −1 となり、R は実数という前提に反する。 b または c または d も実数だったら…と考えてみても、どれも「解なし」。
  S = {±e1, ±e2, …, ±e7}
に ±e0 = ±1 を付け加えた 16 要素の集合で考えても、新しい零因子は見つからない。少なくとも本文のタイプの零因子では「a, b などは ±1 になり得ない」と結論される。

その結果、十六元数として見ると、このタイプの零因子には e1 ~ e7 と e9 ~ e15 は現れ得るのに e0 と e8 は現れない。

*

零因子は「ゼロでないのに掛けると消えてしまう」奇妙な存在。「実体(実部)のある数がそんな幽霊的な振る舞いはしないだろう」ということから、e0 が現れないこと(つまり零因子が純虚数であること)については、直観的にも「まぁそうかもね」と思える。

一方、このタイプの零因子に e8 が現れないこと――「15種類の虚数単位 e1 ~ e15 の振る舞いが対等ではない」という結論――は、不思議な感じがする。

四元数の三つの虚部 i, j, k は対称的、八元数の七つの虚部 e1, e2, …, e7 も(ほとんど?)対称的だが、16次元の 15 個の虚数軸では「次元対称性」が破れ、ある一つの虚数軸が、はっきり他と違う性質を持つらしい。

なぜそれが不思議に感じられるのか。八元数までの世界では「実数と虚数」という二分法が明確に成り立つ――例えば四元数は「実数成分と三つの虚数成分を持つ」というように。ところが十六元数においては「実数と虚数」という区別に、グレーゾーンと陰影が生じている: e8 は、平方すると −1 になるという点では他の虚数単位と同じだが、零因子の観点からは、他の虚数単位とは違う。あえて言えば「他の虚数単位よりも実数に近い性質の虚数単位」。不思議というより不慣れ、初体験の現象でびっくりした…というところか。「空間・次元・座標軸」のようなものについて、無意識に当たり前と仮定していたことが覆され、それが一種のセンス・オブ・ワンダーを引き起こす。慣れてしまえば、それも当たり前と感じられるようになるのだろう。

零因子そのものは 2⋅3 ≡ 0 (mod 6) のように身近にあり、驚くことではないけど、十六元数の零因子は「未知の深い何か」を秘めているようだ。

⁂


2024-01-21 複素数・四元数の平方根・立方根など

#数論 #四元数

複素数 3 + 4i の平方根は何か。四元数 11 + 10i − 30j − 20k の平方根は何か?

これは気分転換として気まぐれに書いたメモで、本題と関係ない。暫定的にこのページに含めておく。この話題をもう少し検討する機会があれば、専用ページを作って、そこにこのメモを移動する。

*

前者の答えを x + yi とすると:
  (x + yi)2 = (x2 − y2) + 2xyi = 3 + 4i
  つまり x2 − y2 = 3, 2xy = 4
若干の試行錯誤によれば x = 2, y = 1 が一つの解。確かにその値なら…
  x2 − y2 = 22 − 12 = 3
  2xy = 2⋅2⋅1 = 4
…なので、(2 + i)2 = 3 + 4i。平方してしまうのだから、符号は逆でもいい:
  (3 + 4i) = 2 + i または −(2 + i)

一般にはそう簡単にはいかない。 4 + 3i の平方根を考えてみる。上と同じ発想によると:
  x2 − y2 = 4, 2xy = 3
整数解はない!

第2式から:
  y = 3/2x  ‥‥①
①を第1式に代入:
  x2 − (3/2x)2 = 4
分母を払うため両辺を 4x2 倍:
  4x4 − 9 = 16x2
t = x2 と置いて整理すると:
  4t2 − 16t − 9 = 0
これを解くと t = (4 ± 5)/2 だが、t は実数 x の平方なので負ではなく、複号のマイナスは題意に適さない。従って:
  t = 9/2 その平方根から x = ±3/2 = ±32/2
①に代入すると y = ±2/2 なので、次の結論に至る。
  (4 + 3i) = ±(32 + i2)/2 ≈ ±(2.12132 + 0.70711i)

*

この種の問題の理論的扱い・数値計算では、三角関数が活用される。 z = 4 + 3i の例では、
  絶対値 |z| = (42 + 32) = 5
  偏角 θ = arg(z) = 0.64350…(約 36.9°)  〔※注〕
を使うと:
  元々の値は z = |z| (cos θ + i sin θ)
  平方根は z = |z| (cos (θ/2) + i sin (θ/2))
  立方根は 3z = 3|z| (cos (θ/3) + i sin (θ/3))
  四乗根は 4z = 4|z| (cos (θ/4) + i sin (θ/4))
  ………
のように何乗根でも、機械的に求められる。 0 以外の複素数の平方根は ± の二つ、立方根は偏角が 120° 違いの三つ、四乗根は偏角が 90° 違いの四つ…等々。上記では、そのうち代表的な一つだけを表記している。

〔※注〕 偏角は、逆三角関数を使って求めることができる。具体的な計算法は複数あるが、三角関数は周期的なので…
  例えば tan 45° = tan 225° = 1
…複数の角度に、同じ三角関数の値が対応。象限に注意。

0 以外の複素数 z について:
  z の平方根・立方根・四乗根…の絶対値は、それ自身 z の絶対値の正の平方根・立方根・四乗根…
  z の平方根・立方根・四乗根…の偏角は、z の偏角の 2 分の 1 、 3 分の 1 、 4 分の 1 …

〔例1〕 z = −1 + 5i の絶対値 |z| = 26 ≈ 5.09902、偏角 θ ≈ 1.76819 (約 101°)。この計算では、小数第6位を四捨五入して、小数5桁の近似値を使うことにする。
z の平方根(の一つ)の絶対値は |z| ≈ 2.25810、偏角は θ/2 ≈ 0.88410 (約 51°)。上の式を使って直交座標に変換すると:
  (−1 + 5i) ≈ 2.25810 × (cos 0.88410 + i sin 0.88410) ≈ 1.43160 + 1.74629i
z の立方根(の一つ) w の絶対値は 3|z| ≈ 1.72119、偏角は θ/3 ≈ 0.58940 (約 34°)。直交座標に変換すると:
  3(−1 + 5i) ≈ 1.72119 × (cos 0.58940 + i sin 0.58940) ≈ 1.43078 + 0.95674i
検算として:
  (1.43160 + 1.74629i)2 = −1.0000502041 + 4.999977528i
  (1.43078 + 0.95674i)3 = −1.000004870234032 + 4.999964186175824i
計算精度の範囲でいずれも −1 + 5i に一致。

*

四元数の平方根などを考えてみたい。四元数の平方などの逆算に当たる。

四元数の積の公式 四元数…
  q = q0 + q1i + q2j + q3k と r = r0 + r1i + r2j + r3k の積
…を qr = z0 + z1i + z2j + z3k とすると:
  z0 = q0r0 − q1r1 − q2r2 − q3r3
  z1 = 【01】 + 〖23〗 = (q0r1 + q1r0) + (q2r3 − q3r2)
  z2 = 【02】 + 〖31〗 = (q0r2 + q2r0) + (q3r1 − q1r3)
  z3 = 【03】 + 〖12〗 = (q0r3 + q3r0) + (q1r2 − q2r1)
ここで q0 ~ q3 と r0 ~ r3 はどれも実数。

〔注〕 黒かっこ 【mn】 は mn + ○nm の形の和を表し、白かっこ 〖mn〗 は mn − ○nm の形の差を表す。 zu に対する黒かっこは【0u】で、白かっこ内には 123123… のうち u の次の二つの数字が入る(u = 1 or 2 or 3)。

定理1(実部 0 の四元数の平方) 実部が 0 の四元数 q の平方は、q のノルムの −1 倍に等しい: q2 = −norm(q)

〔例2〕 q = 2i + 3j + 4k の平方 q2 = z0 + z1i + z2j + z3k は q と r = 2i + 3j + 4k (= q) の積。定理1を使わず、単に積の公式を使うと:
  z0 = 0⋅0 − 2⋅2 − 3⋅3 − 4⋅4 = −29
  z1 = (0⋅2 + 2⋅0) + (3⋅4 − 4⋅3) = 0
  z2 = (0⋅3 + 2⋅0) + (4⋅2 − 2⋅4) = 0
  z3 = (0⋅4 + 2⋅0) + (2⋅3 − 3⋅2) = 0
従って q2 = −29。これは norm(q) = 02 + 22 + 32 + 42 の −1 倍。

証明 定理1は、積 qr の公式で q0 = r0 = 0 かつ q1 = r1, q2 = r2, q3 = r3 の場合。従って:
  z0 = 0 − q1q1 − q2q2 − q3q3
これは norm(q) = 0 + (q1)2 + (q2)2 + (q3)2 の −1 倍。一方、公式に現れる添え字を m, n とすると、どの部分も…
  【0n】 = q0rn + qnr0 = 0 なぜなら q0 = r0 = 0
  〖mn〗 = qmrn − qnrm = qmqn − qnqm = 0
…なので z1 = z2 = z3 = 0。∎

定理2 任意の四元数 q = a + bi + cj + dk を考え、その平方を q2 = A + Bi + Cj + Dk とする。考えている q に対応して、実数の定数 h があって、q の虚部と q2 の虚部の間で B = hb, C = hc, D = hd が成り立つ。

〔例3〕 q = 3 + 5i + 4j − 3k とすると q2 = −41 + 30i + 24j − 18k(途中計算は下記)。後者の虚数部分の係数 30, 24, −18 は、それぞれ前者の対応する係数 5, 4, −3 の 6 倍。
  (3 + 5i + 4j − 3k)2 = [3 + (5i + 4j − 3k)][3 + (5i + 4j − 3k)]
  = 32 + 3(5i + 4j − 3k) + (5i + 4j − 3k)⋅3 + (5i + 4j − 3k)2
  = 9 + 6(5i + 4j − 3k) − norm(5i + 4j − 3k)  ←定理1を使用
  = 9 + 30i + 24j − 18k − (52 + 42 + 32) = 9 + 30i + 24j − 18k − 50 = −41 + 30i + 24j − 18k

証明 q2 = [a + (bi + cj + dk)][a + (bi + cj + dk)] を展開。ただし丸かっこ内は、塊のまま扱う:
  a2 + (bi + cj + dk)2 + a(bi + cj + dk) + (bi + cj + dk)a
この第2項に定理1を適用。 a は実数なので、第3・第4項は等しい。つまり:
  q2 = a2 − (b2 + c2 + d2) + 2a(bi + cj + dk) = A + Bi + Cj + Dk
この実部は A = a2 − b2 − c2 − d2、虚部は B = 2ab, C = 2ac, D = 2ad。 h = 2a は定数。∎

四元数 a + bi + cj + dk を平方すると i, j, k の係数はどれも 2a 倍される。平方の実部は a2 − (b2 + c2 + d2) に等しい。

問題 四元数 11 + 10i − 30j − 20k の平方根は何か?

10, −30, −20 はどれも 2a 倍されているのだから、整数解があるとすれば 2a はこれらの数の公約数: 2a = 10 つまり a = 5 が疑われる。 2a = 10 なら b = 1, c = −3, d = −2 だが…。事実、
  52 − (12 + 32 + 22) = 25 − 14 = 11
なので ±(5 + i − 3j − 2k) が答え(平方するので全体は −1 倍でもいい)。

問題2 四元数 92 + 96j + 144k の平方根は何か?

96 と 144 の最大公約数は 48 なので、a が整数なら 2a = 48, 24, 16, 12, 8, 6, 4, 2 の可能性がある。しかし例えば 2a = 6, a = 3 のような小さい数だと c = 96/6 = 16, d = 144/6 = 24 となって、
  A = a2 − (b2 + c2 + d2) = 32 − (162 + 242)
は 92 よりはるかに小さい負数。他方 2a = 48, a = 24 だと c = 96/48 = 2, d = 144/48 = 3 だが、
  A = 242 − (22 + 32) = 576 − 13
は 92 より大き過ぎ。 2a = 24, a = 12 を試すと c = 96/24 = 4, d = 144/24 = 6;
  A = 122 − (42 + 62) = 144 − 52 = 92
ゆえに答えは ±(12 + 4j + 6k)。

*

定理2は、より一般的に、こう拡張される。

定理3 任意の四元数 q = a + bi + cj + dk を考え、その n 乗を qn = A + Bi + Cj + Dk とする(n: 正の整数)。考えている q, n に対応して、実数の定数 h があって、q の虚部と qn の虚部の間で B = hb, C = hc, D = hd が成り立つ。

証明 n = 1 の場合は自明(h = 1)、 n = 2 の場合は定理2として証明済み(h = 2a)。「ある n 以下に対しては、定理は正しい」と仮定して、n + 1 に対しても定理が正しいことを示す(帰納法)。帰納法の仮定により、
  qn = x + h(bi + cj + dk) ここで x はこの四元数の実部
と書くことができる。このとき、定理1を利用すると:
  qn+1 = qnq = [x + h(bi + cj + dk)][a + (bi + cj + dk)]
   = xa + h(bi + cj + dk)2 + x(bi + cj + dk) + ha(bi + cj + dk)
   = [xa − h(b2 + c2 + d2)] + (x + ha)(bi + cj + dk)
実数 x + ha をあらためて h と置けば、定理3が成立。実部 [xa − h(b2 + c2 + d2)] についても(この h は旧 h)、あらためて x と置くことができる。∎

四元数 q = qa + bi + cj + dk の虚数部分 bi + cj + dk を3次元ベクトル (b, c, d) と解釈すると、q, q2, q3, … は、どれも
  原点 O → 点 P = (b, c, d)
と同一直線上の虚数部分を持つ。逆に、もし Q = A + Bi + Cj + Dk が何らかの四元数 q の 2 乗・3乗・4乗などだとしたら、その q の虚数部分のベクトル(上記の意味で)は Q の虚数部分のベクトル (B, C, D) と同じ方向を持つ――要するに、直線 OP 上にある。任意の四元数 q を選んで固定した場合、q の「べき」と「べき根」(平方・立方・四乗など、平方根・立方根・四乗根など)だけを考える限り、「虚数部分は特定の一つの直線 OP 上にある1次元的な量」と考えて差し支えない。

〔補足〕 四元数の枠組み全体で見ると、虚数部分のベクトルは i 成分、j 成分、k 成分の三つを持つ3次元的な量なのだが、べき計算においては、例えば「i 成分が 10 倍になれば j 成分も 10 倍になり k 成分も 10 倍になる」といった相互依存関係が存在し、虚数部分は3次元的自由度を持たない。四元数は虚数部分の他に(それと直交する)実部を持つので、実部も含めれば、べき・べき根は2次元的なデータ。

原点 O から点 P = (b, c, d) = bi + cj + dk までの距離は b2 + c2 + d2 なので、べき計算における虚数部分の単位ベクトル u は次の形を持つ:
  u = (bi + cj + dk)/(b2 + c2 + d2)  言い換えれば u = 1/(b2 + c2 + d2) × (bi + cj + dk)
このとき u の長さは――単位ベクトルなので当たり前だが――:
  |u| = 1/(b2 + c2 + d2) × (b2 + c2 + d2) = 1  その平方から norm(u) = 1
実部 0 の四元数 u は u2 = −norm(u) = −1 を満たすので(定理1)、それ自体も虚数単位(のようなもの)。 u は、基本の虚数単位 i, j, k のどれとも(一般には)一致しないが、ijk-空間内において、原点 O を中心とする単位球面上に P があり、ベクトル OP = u の長さは 1。

一般に u は ijk-空間内の「斜め」のベクトルで長さが 1。その斜めのベクトルは、実数軸とは直交する。「ijk-空間が実数軸と直交」というのは4次元幾何なので、直接イメージすることは少し難しいけど、ijk-空間から 1 本の直線だけを抜き出してしまえば、それはただの直線。「抜き出したその直線が縦、実数軸が横」になるよう視点を再設定すれば「両者が直交し2次元の平面を張る」――ということは、イメージ可能だろう。

〔例4〕 四元数 q = 5 + 2i + 3j + 4k について:
  u = (2i + 3j + 4k)/(22 + 32 + 42) = (2i + 3j + 4k)/29 と置くと |u| = 1
このとき q = 5 + 29u と書ける。なぜなら 29u = 2i + 3j + 4k。

q = x + yu の形で表現された四元数は(x, y: 実数)、一定の平面上(その平面の横軸の単位は実数 1。縦軸の単位は、純虚数の四元数 u)において、複素平面上における複素数と同様に振る舞う。理由は次の通り。

第一に、四元数を q = a + bi + cj + dk のように表現しても q = x + yu のように表現しても、両者は(表現が違うだけで)同一の値を持つのだから、q2, q3 などが(q の表し方と無関係に)同一の値を持つことは明白。定理3により、これらの累乗の値は必ず xy-平面――それは「四元数全体に当たる4次元空間」の部分集合――の上にある。今 p = bi + cj + dk を q の純虚数部分とすると:
  p = yu ただし y = (b2 + c2 + d2)
  q = x + yu ただし x = a
u2 = −1 に注意すると:
  q2 = (x + yu)2 = x2 + y2u2 + 2xyu
  = a2 − (b2 + c2 + d2) + 2a(bi + cj + dk)
つまり q2 の代わりに (x + yu)2 を計算しても、結果は定理2と一致する(q = x + yu だから当然だが)。 3乗以上についても同様。

第二に、−1 倍は 180° の回転、 u 倍(u2 = −1 である)は 90° の回転、平方は「偏角」が 2 倍になること、平方根は「偏角」が半分になること、等々。四元数に対するこのような回転はどれも同じ xy-平面上で行われるのだから、複素平面上での偏角の処理と全く同様に考えることができる。ただし xy-平面上の「偏角」は、x つまり実数軸の正の向きを 0°、それと直交する u の向きを 90° として、xy-平面上で測ったもの。

〔例5〕 四元数 q = 5 + 2i + 3j + 4k の平方根(の一つ)。例4から q = 5 + 29u。「原点から点 q へのベクトルの傾き」と解釈すると、x-座標が 5 増えるとき y-座標が 29 = 5.38… 増えるのだから、q の偏角は +45° = π/4 = 0.785… より少し大きい:
  θ = arctan(29 / 5) ≈ 0.82247 (約 47°)
  絶対値 |q| = (52 + 22 + 32 + 42) = 54 ≈ 7.34847
  u = (2i + 3j + 4k) / 29 ≈ 0.37139i + 0.55709j + 0.74278k
従って:
  q = 7.34847 (cos (0.82247/2) + u sin (0.82247/2))  ‥‥②
  ≈ 2.71081 × [0.91663 + (0.37139i + 0.55709j + 0.74278k) × 0.39974]
  ≈ 2.48481 + 0.40245i + 0.60367j + 0.80489k
この最後の数の i, j, k の係数は、それぞれ q の対応する係数 2, 3, 4 の約 0.2 倍。逆に q の i, j, k の係数は、どれも対応する q の係数の約 5 倍。この倍率は a ≈ 2.48481 を使って 2a で表されるので、つじつまは合っている(詳しく調べると、どれも約 4.9696 倍で、計算精度の範囲で 2a に一致)。さらに…
  2.484812 − (0.402452 + 0.603672 + 0.804892) = 5.0000493526
…も、計算精度の範囲で q の実部と一致。直接検算すると:
  (2.48481 + 0.40245i + 0.60367j + 0.80489k)2 ≈ 5.00005 + 2.00002i + 3.00001j + 4.00000k

〔例6〕 同じ q = 5 + 2i + 3j + 4k の立方根(の一つ)。例5の②の代わりに次の計算をする:
  3q = 37.34847 (cos (0.82247/3) + u sin (0.82247/3))
  ≈ 1.94416 × [0.96265 + (0.37139i + 0.55709j + 0.74278k) × 0.27074]
  ≈ 1.87155 + 0.19549i + 0.29323j + 0.39097k
p = 3q から見ると、その立方に当たる q の虚部各成分は、約 10 倍になっている。この倍率は p2 の実部と 2a2 の和に等しい(a は p の実部: 定理3参照)。
  検算 (1.87155 + 0.19549i + 0.29323j + 0.39097k)3 ≈ 4.99989 + 2.00007i + 3.00005j + 4.00003k

*

十六元数の零因子Moufang 恒等式の同値性など、ややマニアックな話題が続いたので、息抜きに「複素数の平方根」のような普通のことを考えてみた。特定の四元数のべき・べき根が同一平面上にあり、四元数の平方根・立方根などを複素数の平方根・立方根などと同様に扱えることが面白い。

〔参考文献〕 Ivan Niven: The Roots of a Quaternion
https://archive.org/details/sim_american-mathematical-monthly_june-july-1942_49_6/page/386/mode/1up

⁂


2024-04-21 四元数が結合法則を満たすこと 手法の検討

#数論 #十六元数 #八元数 #四元数

任意の四元数 a, b, c は結合法則 (ab)c = a(bc) に従う。八元数 a, b, c は、一般には結合法則に従わない。

四元数の結合性については、直接計算で証明することも可能――しかし直接的に計算するのはゴチャゴチャして面倒くさい上、得られる結論も「計算すると一致する」というだけで「なぜ一致するのか?」という核心を見通せない。もう少し要領よく、再検討してみたい。

この考察は、八元数が特定の状況で示す反結合性 (ab)c = −a(bc) について検討するための、準備ともなるだろう。八元数における(限定的な)反結合性の話題は、十六元数の零因子についての議論から自然に派生する。16次元の構造(そこに何があるのか)をまだ見通せず、その荒野をさまよって何をしたいのか・どこに行きたいのか自分でも分からないけど、なにやら面白い景色に出会えるかもしれない(零因子における e8 の対称性の破れだけでも驚いた)。最低でも「十六元数の積などと関連して、4次元の対象がもっとよく見えるようになれば、楽しいだろう」という期待はある。

*

【1】 三つの四元数 Q = q0 + q1i + q2j + q3k, R = r0 + r1i + r2j + r3k, S = s0 + s1i + s2j + s3k が(積についての)結合法則を満たすこと。その証明を、{i, j, k} が結合法則を満たすことの証明に帰着させる。ここで qu, ru, su (u = 0, 1, 2, 3) は任意の実数。 e, f, g を {i, j, k} の任意の要素(必ずしも相異ならない)とすると、検証すべき等式 (ef)g = e(fg) は 33 = 27 パターンしかないので、容易に直接検証できる。

もう少しだけ抽象的に考えると、その 27 パターンをさらに少数のパターンに帰着させることもできるのだが、ここではとりあえず {i, j, k} が結合法則を満たすことを 27 パターンについて直接的に確かめたとしよう。

〔例1〕 (ij)k = kk = −1 と i(jk) = ii = −1 は一致するので (i, j, k) は結合法則を満たす。(ij)j = kj = −i と i(jj) = i(−1) = −i は一致するので (i, j, j) は結合法則を満たす。等々。

われわれは、実数と四元数の間に、交換法則・結合法則が成り立つことを知っている。今 i, j, k の任意の実数倍をそれぞれ I, J, K とすると、{i, j, k} が結合法則を満たすのだから {I, J, K} も結合法則を満たす。

〔例2〕 (ij)j = i(jj) は既に分かっている。従って (−i⋅3j)(2k) = (−i)(3j⋅2k) も成り立つ。これは (ij)k = i(jk) の両辺を −6 倍したに過ぎない。つまり I = (−1)i, J = 3j, K = 2k も結合法則に従う。係数 −1, 3, 2 を任意の実数に置き換えても同様。

(I, J, K) に限らず、(I, J, J) や (I, K, J) や (K, K, J) など、 {I, J, K} の任意の三つの組み合わせが結合法則に従うことは、明白。なぜなら {i, j, k} の任意の三つの組み合わせは結合法則に従うことは分かっていて、 {I, J, K} は単にそれを実数倍しているだけ。すなわち次が成り立つ。

命題1 i または j または k の任意の実数倍を E, F, G とすると (E, F, G) は結合法則に従う:
  (EF)G = E(FG)

【2】 ここで、次の命題を考えてみたい。

命題2 (a, b, c) と (A, b, c) がどちらも結合法則に従うと仮定する。すなわち (ab)⋅c = a⋅(bc) と (Ab)⋅c = A⋅(bc) が成り立つとしよう。そのとき (a + A, b, c) も結合法則に従う。すなわち、次が成り立つ:
  [(a + A)b]⋅c = (a + A)⋅(bc)

証明 分配法則から、証明すべき式の左辺は…
  [(a + A)b]⋅c = (ab + Ab)⋅c = (ab)⋅c + (Ab)⋅c
…に等しい。仮定により、それは次に等しい:
   = a⋅(bc) + A⋅(bc)
分配法則を使うと、それは次に等しい:
   = (a + A)⋅(bc)
これは証明すべき式の右辺である。∎

命題1と命題2を組み合わせると、次の結論が生じる。

命題3 q = q1i + q2j + q3k を純四元数(実部がゼロの四元数)とする(q1, q2, q3 は任意の実数)。 i または j または k の任意の実数倍を F, G とすると (q, F, G) は結合法則に従う:
  (qF)G = q(FG)
例えば (q⋅3k)(2j) = q(3k⋅2j)

証明 I = q1i, J = q2j と置くと、命題1から (I, F, G) と (J, F, G) はどちらも結合法則に従う。ゆえに命題2から (I + J, F, G) は結合法則に従う: a = I + J と置けば、 (a, F, G) が結合法則に従う。

一方 A = q3j と置くと、命題1から (A, F, G) は結合法則に従う。上述のように (a, F, G) も結合法則に従うので、命題2によって (a + A, F, G) は結合法則に従う。ところが a + A = I + J + A = q1i + q2j + q3k = q であるから、これは (q, F, G) が結合法則に従うという意味。∎

【3】 命題2と同様にして、分配法則から次が証明される。

命題4 (q, b, c) と (q, B, c) がどちらも結合法則に従うなら、 (q, b + B, c) も結合法則に従う。

この単純な事実から、次の結論が生じる。

命題5 q と r = r1i + r2j + r3k を任意の純四元数とする(r1, r2, r3 は任意の実数)。 i または j または k の任意の実数倍を G とすると (q, r, G) は結合法則に従う:
  (qr)G = q(rG)

証明 命題3と同様。あらためて I = r1i, J = r2j と置くと、命題3から (q, I, G) と (q, J, G) はどちらも結合法則に従うので、命題4から (q, I + J, G) は結合法則に従う: b = I + J と置けば (q, b, G) が結合法則に従う。一方、B = r3k と置くと、命題3から (q, B, G) は結合法則に従う。その結果、命題4から (q, b + B, G) も結合法則に従う。ところが b + B = I + J + B = r なので、これは (q, r, G) が結合法則に従うという意味。∎

【4】 次のステップは明白だろう。まず命題2と同様にして、次が証明される。

命題6 (q, r, c) と (q, r, C) がどちらも結合法則に従うなら、 (q, r, c + C) も結合法則に従う。

そして次の重大な結論に至る。

命題7 任意の三つの純四元数 q, r, s は結合法則 (qr)s = q(rs) を満たす。

証明 s = s1i + s2j + s3k とする(s1, s2, s3 は実数)。命題5から (q, r, s1i) と (q, r, s2j) はどちらも結合法則に従うので、命題6から (q, r, s1i + s2j) も結合法則に従う: c = s1i + s2j と置けば (q, r, c) が結合法則に従う。一方、命題5から (q, r, s3k) も結合法則に従うので、命題6から (q, r, c + s3k) = (q, r, s) も結合法則に従う。∎

命題8 任意の三つの四元数 Q, R, S は結合法則 (QR)S = Q(RS) を満たす。

証明 Q = q0 + q, R = r0 + r, S = s0 + s とする(q0, r0, s0 は実数、 q, r, s は純四元数)。

q0 は実数なので (q0, r, s) は、もちろん結合法則に従う。命題7から (q, r, s) も結合法則に従う。よって命題2から (q0 + q, r, s) = (Q, r, s) も結合法則に従う。

r0 は実数なので (Q, r0, s) は、もちろん結合法則に従う。 (Q, r, s) も結合法則に従うことは、上記の通り。よって命題4から (Q, r0 + r, s) = (Q, R, s) も結合法則に従う。

s0 は実数なので (Q, R, s0) は、もちろん結合法則に従う。 (Q, R, s) も結合法則に従うことは、上記の通り。よって命題6から (Q, R, s0 + s) = (Q, R, S) も結合法則に従う。∎

【5】 かくして「四元数の積」の公式を一度も使わずに、「四元数の積」が結合法則を満たすことを証明できた。それは「基底ベクトルが結合的なので、分配法則がある限り、その線型結合も結合的」というような議論だが、このような手法をもう少し抽象化することが役立ちそうだ。というのも、八元数では基底ベクトルだけで 8 個あり、± を区別すると 16 要素あるので、「基底だけ調べればいい」としても、単純計算で 83 = 512 あるいは 163 = 4096 ものパターンがある。四元数の場合と違い、手動で個々に検証するのは現実的ではない。

「八元数は必ずしも結合法則に従わない」といった否定的な命題を扱うのであれば、反例を構成することでも議論を完結させられる。しかし、肯定的な命題(交代法則、Moufang 恒等式など)に関しては、何らかの意味での全数検索が必要になる局面が予想される。

ではどうするか? 例えば、四元数の虚数単位 i, j, k の任意の置換を e1, e2, e3 として、「対称性から、一般性を失うことなく e1 = i と仮定できる」と論じれば、27 パターンあった直接検証を 9 パターンに節減できる。純八元数の場合、73 = 343 から 72 = 49 への節減に当たり、49 パターンくらいなら、ちょっと頑張れば直接検証も可能だろう。この辺りに、攻略の糸口がありそうだ…。

*

今回の議論では、四元数 Q = q0 + q1i + q2j + q3k を(素朴に)実数 q0 と純四元数 q = q1i + q2j + q3k の和に分解したが、次のような感じで「二つの複素数成分」に分解する手もあったかもしれない。
  Q = λ + μj ここで λ = q0 + q1i と μ = q2 + q3i は複素数
複素数が交換法則・結合法則を満たすことは分かり切っているので、うまくやればこのアプローチの方が便利そう: 複素数 λ, μ がスカラーの2次元ベクトル (λ, μ) の議論になる。今回と同様の手法も使えるだろうし、2次元なら積の公式から直接でも、そう難しくないだろう。

考えてみると、われわれは往々「分かり切っている」と称して、複素数の結合性を無証明で仮定しているのではないか?

複素数を外から眺め、このような問題意識を持つことができる――というのも、八元数の御利益だろう。八元数をいじった後では、積 (ab)c を abc と書くことについて、(たとえ結合的な四元数であっても)一定のためらいを感じるようになる。それどころか (aa)a を a3 と書いていいのかどうかも、自明ではない――ということに気付く。

⁂


<メールアドレス>