先の記事で、ピタゴラス数を求める行列式と互いに素の行列式を示した。
アイゼンシュタイン数も互いに素な値から生成出来るので、互いに素の行列式から導けるだろうと計算してみました。
互いに素の行列式
R= | -1 | 2 | =R-1, S= | m | n | -m | -n | ||||
0 | 1 | n | m | n | m |
ピタゴラス数の行列式
P= | -1 | -2 | 2 | =P-1, Q= | a | -a | a | -a | ||||
-2 | -1 | 2 | b | b | -b | -b | ||||||
-2 | -2 | 3 | c | c | c | c |
アイゼンシュタイン数の行列式
E= | -3 | -4 | 4 | =E-1, F= | m2-n2 | n2-m2 | m2-n2 | n2-m2 | ||||
-4 | -3 | 4 | n(n+2m) | m(m+2n) | n(n-2m) | m(m-2n) | ||||||
-6 | -6 | 7 | m2+mn+n2 | m2+mn+n2 | m2-mn+n2 | m2-mn+n2 |
行列Eは、互いに素の行列S、行列の積RSより、行列F、行列の積EFは求まるので、その値から逆算しました。
行列Fも、行列Q同様に、a、b、cで示そうと試みたが、ピタゴラス数のようには行かず。
行列Fの2行目の形を、x(x+2y)型にしたのは、この値が奇数か偶数かで、mとnの値を求めやすくするためである。
例えば、行列Fの1列目に、(21, 24, 39)という値が入っていたとする。
24は偶数なので、nは偶数でなければならない。
n=2とすると、m=5となり、1行1列の式に代入すると、25-4=21で正しいので、m、nが定まる。
例えば、行列Fの1列目に、(11, 85, 91)という値が入っていたとする。
85は奇数なので、nは奇数でなければならない。
n=1とすると、m=42となり、1行1列の式に代入すると、1764-1=1763で矛盾。
n=3とすると、mは整数ではなく矛盾。
n=5とすると、m=6となり、1行1列の式に代入すると、36-25=11で正しいので、m、nが定まる。
このように、1列目の値から、m、nを定め、2列目以降を埋めていくことになる。
行列Fが完成したら、行列の積EFを計算することとなる。
互いに素のm, nから、ピタゴラス数(a, b, c)は、相互関係を知らずとも、容易に計算が可能であるが、アイゼンシュタイン数はピタゴラス数に比べたら計算が複雑で面倒である。
また、先の記事でも書いたが、互いに素の(m, n)から、互いに素ではないアイゼンシュタイン数(a, b, c)が生まれてしまうケースががある。
今回示したアイゼンシュタイン数の行列式においても、同様である。
既約アイゼンシュタイン数は本当に無限に存在するのだろうか。
互いに素な(m, n)、既約ピタゴラス数(a, b, c)、アイゼンシュタイン数(a, b, c)とが、一対一で対応している。
互いに素や、既約ピタゴラス数は、可算無限である。
一対一対応したアイゼンシュタイン数も可算無限であるが、既約アイゼンシュタイン数と既約ではないアイゼンシュタイン数が混在してしまっている。
この辺りの問題を考えなければいけないんだろうな。
(m, n)=(2, 1)が互いに素の3進木の根である。
(2, 1)の第3子である(5, 2)
gcd(5, 2)=1
対応するアイゼンシュタイン数は、
(a, b, c)=(3, 5, 7)がアイゼンシュタイン数の3進木の根である。
(3, 5, 7)の第3子である(21, 24, 39)
gcd(21, 24, 39)=3
(21, 24, 39)->(7, 8, 13)
この(7, 8, 13)が、アイゼンシュタイン数の3進木の別の場所に出てこなければ、問題はない。
(7, 8, 13)から(m, n)を求めると、8は偶数なので、nも偶数。
n=2のとき、m=2となり、m2-n2=0となり矛盾。
n=4のとき、m=0となり、矛盾。
どちらにして、m, nは互いに素ではないので、互いに素の3進木には現れない。
(21, 24, 39)から(m, n)を求めると、24は偶数なので、nも偶数
n=2のとき、m=5となり、m2-n2=21
つまりは(m, n)=(5, 2)で現れるべくして現れたと考えるに至る。
既約アイゼンシュタイン数だけを生成するには、もう1つ2つ、何らかのパラメータが必要なんだろうなということだと考えるが、上記の行列式に関しては変更する必要はないと考えている。
さて、行列式は、手作業でやると面倒だが、Excelやプロウラミング言語でやるならば、手作業ほど面倒ではない。
Excelだと、MMULTとか、MINVERSEといった、行列関連の関数があるので便利である。
一般業務で行列計算するようなことがあるのかと言われると、おそらくは皆無だろうな。
ではでは