Maxima で綴る数学の旅

紙と鉛筆の代わりに、数式処理システムMaxima / Macsyma を使って、数学を楽しみましょう

-数学- 可解な方程式を冪根で解く(4) 有限拡大と多項式の次数低減

かき揚

 

文献3の"11. f(x)の分解体に属する元の表記と積・商の計算"の記載の意味を考えてみました。

ちょっとだけ、既約多項式による剰余環と拡大体の同型について復習しましょう。

改訂新版 ガロア理論

改訂新版 ガロア理論

のp73 定理47を引用します。

定理47

\(E/F\)は体拡大で\(\alpha \in  E\)は\(F\)上代数的とする。

(i) \(\alpha\)を根に持つ既約なモニック多項式\(p\left(x\right) \in F\left[x\right]\)が存在する。

(ii) \(F\left[x\right]/\left(p\left(x\right)\right)\simeq F\left(\alpha\right)\)が成り立つ。実際同型

\(\Phi : F\left[x\right]/\left(p\right) \rightarrow F\left(\alpha\right)\)

で\(F\)を点ごとに固定し、\(\Phi\left(x+\left(p\right)\right)=\alpha\)となるものが存在する。

(iii)\(p\left(x\right)\)は\(\alpha\)を根にもつ\(F\left[x\right]\)の最低次数のモニック多項式である。しかも\(\alpha\)を根にもつ最低次数のモニック多項式は\(p\left(x\right)\)以外にない。

(iv)\(\left[F\left(\alpha\right):F\right]=\partial\left(p\right)\)

 つまり大雑把に言えば\(F\)に\(\alpha\)を添加して拡大体を作ると言えば、F係数の多項式環を\(\alpha\)の最小多項式\(p\left(x\right)\)で割った剰余体を作ることです。演算で言えば\(F\)係数の多項式環で\(p\left(x\right)\)で剰余を取ること、逆元を求めることが重要です。

そこで文献3の"11. f(x)の分解体に属する元の表記と積・商の計算"では添加する元の最小多項式による次数低減、積、商を計算するアルゴリズムを提示しているのです。

 

これらのアルゴリズムMaximaで実装したファイルFieldExtension.macを読み込むと以下の関数が使えるようになります。

ef_polynomial_reduction(P,C) Pは多項式、Cは添加元の最小多項式のリスト。PをCの各式で剰余を取る。

ef_mult(P,Q,C) P,Qは多項式、Cは添加元の最小多項式のリスト。PとQの積を計算してCの各式で剰余を取る。

ef_divide(P,Q,C) P,Qは多項式、Cは添加元の最小多項式のリスト。PとQの商を計算してCの各式で剰余を取る。

ef_pthroot(F,p,C) Fのp乗根を計算してCの各式で剰余を取る。p乗根がなければエラーを発生する。

 

文献3の"11. f(x)の分解体に属する元の表記と積・商の計算"の例1、例2をそのままやってみます。

(%i1) load("ExtendedField.mac");
$$ \tag{%o1} \verb|ExtendedField.mac| $$

有理数体\(Q\)に\(\zeta_{2}=\)虚数単位, \(\alpha_{1}=\sqrt{-6}, \zeta_{3}=\)1以外の1の3乗根,\(\alpha_{2}=\sqrt[3]{3\,\left(1+\alpha_{1}+2\,\zeta_{3}\right)}\)をこの順で添加した体を考えます。
(%i2) C:[[alpha[2],alpha[2]^3-3*(1+alpha[1]+2*zeta[3])],
[zeta[3],zeta[3]^2+zeta[3]+1],
[alpha[1],alpha[1]^2+6],
[zeta[2],zeta[2]^2+1]];
$$ \tag{%o2} \left[ \left[ \alpha_{2} , \alpha_{2}^3-3\,\left(2\,\zeta_{3}+\alpha_{1}+1\right) \right] , \left[ \zeta_{3} , \zeta_{3}^2+\zeta_{3}+1 \right] , \left[ \alpha_{1} , \alpha_{1}^2+6 \right] , \left[ \zeta_{2} , \zeta_{2}^2+1 \right] \right] $$

例題1としてP,Qを定義し、この体上でそれらの積を計算します。
(%i3) P:3*alpha[2]+2*alpha[1]*alpha[2]^2-3*alpha[2]*zeta[3]-3*alpha[2]^2*zeta[3]+alpha[1]*alpha[2]^2*zeta[3];
$$ \tag{%o3} \alpha_{1}\,\alpha_{2}^2\,\zeta_{3}-3\,\alpha_{2}^2\,\zeta_{3}-3\,\alpha_{2}\,\zeta_{3}+2\,\alpha_{1}\,\alpha_{2}^2+3\,\alpha_{2} $$
(%i4) Q:3-alpha[2]-alpha[1]*alpha[2]+alpha[2]*zeta[3]-alpha[1]*alpha[2]*zeta[3]-alpha[2]^2*zeta[3];
$$ \tag{%o4} -\alpha_{2}^2\,\zeta_{3}-\alpha_{1}\,\alpha_{2}\,\zeta_{3}+\alpha_{2}\,\zeta_{3}-\alpha_{1}\,\alpha_{2}-\alpha_{2}+3 $$
(%i5) ef_mult(P,Q,C);
$$ \tag{%o5} 54 $$

ちょうど54になりました。

例題2として、この体上で54をPで割った商を計算します。
(%i6) ef_divide(%,P,C);
$$ \tag{%o6} \alpha_{1}\,\left(-\alpha_{2}\,\zeta_{3}-\alpha_{2}\right)+\left(\alpha_{2}-\alpha_{2}^2\right)\,\zeta_{3}-\alpha_{2}+3 $$
(%i7) ratsimp(%-Q);
$$ \tag{%o7} 0 $$

商がQであることが確認できました。