数式処理ソフトによるガロア群の算出と、べき根を用いた厳密解の表現 その17

\(\newcommand{\Q}{\mathbb{Q}} \renewcommand{\dotsc}{\cdots}\)

以前の記事のちょっとした補足を2つ述べます。ひとつは、各解を \(V\) で表す式の導出の仕方、もうひとつは \(g(x)\) を因数分解するときの、べき根で\(\theta(x)\) を求める整合性のあるやり方についてです。

各解を \(V\) で表す式の導出・補足

以前、終結式の反復計算によって「\(V\) と同じ位置(先頭)に \(\alpha\) を持つような \(V_{k}\) すべてを根に持つ多項式」を効率的に求める方法を説明しましたが、本 blog では(そして jurupapa さんの blog でも)それをどう使えば「\(\alpha\) を \(V\) で表す式」が得られるのか、具体的には説明していませんでした。以前の記事で

多項式の GCD 計算だけ(グレブナー基底を使ってもいいですね)で「\(\alpha\)を根に持つ \(\Q(V)\) 係数の \(1\) 次多項式」を求めることができ

とだけ書いたやり方を説明します。

この計算法は三森明夫 “ガロア論文の古典的証明” で紹介されていたもので、おそらく、元々Galois が採用していた方法なのだと思います(考案者がGaloisなのか、それ以前から知られていたやり方なのかは私は知らない)。私が最初にこの辺りの話をいじくり回していた際、手計算で
\begin{align*}
\alpha &= \frac{1}{3}V^{2}-V-2 \\
\beta &= -\frac{2}{3}V^{2}+V+4 \\
\gamma &= \frac{1}{3}V^{2} -2
\end{align*}
という式を求めた時も、実際は Lagrange 補間ではなくこの計算法を使っていました(Lagrange補間を使った方法はかなり式が複雑になり、3次方程式であっても手計算ではなかなかやる気が起きない式になります)。

この計算法ですが、同書の記述は私にとってはかなりわかりにくくて、最初は何が何だかさっぱり理解できませんでした。一連の考察がある程度進んでから再度読み返して、色々な記述が何を言おうとしているのかある程度推測できるようになって、初めてアルゴリズムが理解できました(jurupapa さんは最初から理解されていたようで、その理解力には脱帽です)。私にとって一番ハードルが高かったのは、同書では \(V\) という文字が多項式の不定元を表していることも \(\alpha+2\beta+3\gamma\) のような「具体的な値」を表していることも両方あって、しかもすぐ近くでそのふたつの用法が断りなしに切り替えられていることがあったことでした。

そんなわけで、ここではその計算法を、私がわかりやすいと思える説明で述べてみます。やはり具体例を通じて説明することにして、方程式は例によって \(f(x)=x^{3}-3x-1=0\) とし、\(V=\alpha+2\beta+3\gamma\) とします。\(V\) の中の解 \(\alpha\), \(\beta\), \(\gamma\) を対称群 \(S_{3}\) の元によって置換した値は
\begin{align*}
V_{1} &= \alpha+2\beta+3\gamma = V\\
V_{2} &= \beta+2\gamma+3\alpha \\
V_{3} &= \gamma+2\alpha+3\beta \\
V_{4} &= \beta+2\alpha+3\gamma \\
V_{5} &= \gamma+2\beta+3\alpha \\
V_{6} &= \alpha+2\gamma+3\beta
\end{align*}
です。

まず、以前の記事でも説明した通り、\(V_{k}\) のうち「\(\alpha\) を固定する置換」に対応する
\begin{align*}
V_{1} &= \alpha+2\beta+3\gamma \\
V_{6} &= \alpha+2\gamma+3\beta
\end{align*}
を根に持つ多項式 \(F_{\alpha}(x)=(x-V_{1})(x-V_{6})\) は終結式の反復計算で求められ、
\[ F_{\alpha}(x) = x^2+3\alpha x+3\alpha^2-3 \]
でした。

\(F_{\alpha}(x)\) の作り方から \(F_{\alpha}(V)=0\) だから、
\[ V^2+3\alpha V+3\alpha^2-3=0 \]
です。よって、\(t(x) = V^2+3Vx+3x^2-3\) とおけば \(t(\alpha)=0\) だから、\(t(x)\) は \(\alpha\) を根に持つ多項式です。ここでさらに、\(\beta\), \(\gamma\) は \(t(x)\) の根にならないことも言えます。その理由はと言うと…

\(F_{\alpha}(x)\) を求める計算を、\(\alpha\) と \(\beta\) を入れ替えて行ったとしましょう。するとそれは \(\beta+2\alpha+3\gamma (=V_{2})\) と \(\beta+2\gamma+3\alpha (=V_{4})\) を根に持つ多項式を求めることになりますが、\(\alpha\), \(\beta\), \(\gamma\) の対称性から、結果の式も \(\alpha\) と \(\beta\) を入れ替えたもの、つまり \(F_{\alpha}(x)\) の \(\alpha\) が \(\beta\) に置き換わった式になります。これはつまり
\[ (x-\beta-2\alpha-3\gamma) (x-\beta-2\gamma-3\alpha) = x^2+3\beta x+3\beta^2-3 \]
であることを意味します。この多項式の根は \(V_{2}\), \(V_{4}\) で、\(V=V_{1}\) は根ではありません。したがって右辺に \(x=V\) を代入しても \(0\) にならず、
\[ V^{2}+3\beta V + 3\beta^{2}-3 \ne 0 \]
です。これより \(t(\beta) \ne 0\) です。まったく同じようにして、\(t(\gamma) \ne 0\) も言えます。

以上から、\(t(x)\) は「\(\alpha\) は根に持つが、\(\beta\), \(\gamma\) は根に持たない多項式」です。よって、\(f(x)\) と \(t(x)\) の GCD は \(x-\alpha\) になります。\(t(x)=3x^{2}+3Vx+V^{2}-3\) はその作り方から必然的に \(\Q(V)\) 係数の多項式で、\(f(x)=x^{3}-3x-1\) は \(\Q\) 係数だから、\(f(x)\) と \(t(x)\) で互除法によって GCD を求めれば、「\(\alpha\) を根に持つ \(\Q(V)\) 係数の \(1\) 次多項式」が得られます。
\[ \gcd(x^{3}-3x-1, 3x^{2}+3Vx+V^{2}-3) = (V^{2}-3)x + 3V+3 \quad (V^{3}-9V-9=0 \text{ を使って整理した}) \]
よって \(\alpha\) を \(V\) の \(\Q\) 係数有理式で表す式が得られ、\(V^{3}-9V-9=0\) を使ってそれを \(V\) の \(\Q\) 係数多項式に直せる、というわけです。
\[ \alpha = -\frac{3V+3}{V^{2}-3} = \dots = \frac{1}{3}V^{2}-V-2 \]

\(\beta\) を \(V\) で表す式を求めるには、「\(\beta\) を固定する置換に対応する \(V_{k}\)」を根に持つ多項式 \(F_{\beta}(x)\) を求める所から始めて同様の手順を辿ればOKです(ここでは、終結式の反復計算は新規にやり直す必要がある。以前の計算結果を流用することはできない)。

\(\theta(x)\) の求め方

以前は1次独立性に訴える議論をしていたので、\(1\) のべき根が他数含まれるようになって「Galois群の部分群に対応する体の元」かどうかがよくわからなくなってくる状況で成立する話かどうかすっきりとは見やすくなくなっていましたが、そこをもっと簡潔にできることに気づきました。話としては「置換群としての Galois群で不変な解の多項式の値は、各解を \(V\) の \(\Q\) 係数多項式で表した式を代入して \(V\) について次数下げすれば \(V\) が自動的に消え去ってわかる」ということと同類の話に過ぎず、類似のことが解の「有理式」に対してもなりたつ、という話になります。「多項式」の話が多項式の係数の範囲に限定されなかったのと同様、「有理式」の方も係数の範囲にはまったくよりません。

今、
\[ \theta_{1}(x) = h_{0}(x) + \zeta h_{1}(x) + \dots + \zeta^{p-1} h_{p-1}(x) \]
の係数は、解 \(\alpha, \beta, \dots\) の \(K(\zeta)\) 係数多項式として表されています。それらは下位の置換群 \(H\) ではどれも不変で、\(p\) 次巡回群 \(G/H\) の生成元に対応する置換 \(\sigma\) では一斉に \(\zeta^{-1}\) 倍される、という関係にありました。なので、それらの比は \(\sigma\) で不変です。したがって、\(\theta_{1}(x)\) の最高次の係数を \(a\) とすると、\(\frac{\theta_{1}(x)}{a}\) の係数は「\(G\) で不変な解の有理式」になっています。それらの値が求めたかったわけです。詳細は後述しますが、それには各解を \(V\) で表す式をその有理式に代入し、分母・分子それぞれを \(V\) について次数下げすると、余り難しい計算なしに求められます。特に、「分母の有理化」は必要ありません。

まず、分母、分子を次数下げして、\(g_1(x)\) の次数未満にしたものをそれぞれ \(\delta(x)\), \(\nu(x)\) とします。ここで、\(g_{1}(x)\) は \(V\) の現在の最小多項式で、今因数分解したいと思っている式そのものであり、上位の置換群 \(G\) に対応する \(V_{k}\) すべてを根に持つ多項式です。さて、元の有理式が上位の置換群 \(G\) で不変であることは、

有理式 \(\frac{\nu(x)}{\delta(x)}\) に、\(g_1(x)\) の根を代入したら、どの根を代入しても分数としての値は同じ

ということを意味します。この「同じ」値が今求めたい値で、これを \(\lambda\) とおきましょう。\(\lambda\) は、\(K(\zeta)\) の元になることだけが今わかっていて、具体的な値はまだ不明です。
\[ \frac{\nu(V_{k})}{\delta(V_{k})} = \lambda \text{ for all roots of } g_{1}(x) \]
すると、\(\nu(x)-\lambda \delta(x)\) は「\(g_1(x)\) よりも低次なのに、\(g_1(x)\) のどの根を代入しても \(0\) になる多項式」です。そのような多項式はゼロ多項式に限られます。よって多項式の等式として
\[ \nu(x) = \lambda \delta(x) \]
がなりたちます。すなわち有理式の等式として
\[ \frac{\nu(x)}{\delta(x)} = \lambda \]
がなりたつのです。つまり、元の解の有理式(\(\frac{\theta(x)}{a}\) の任意の係数)の分母・分子を \(V\) で表してそれぞれ次数下げした結果は、\(V\) の多項式として定数倍の関係にあり、その比 \(\frac{\nu(V)}{\delta(V)}\) はただの多項式の割り算で求められます。これで、未知だった値 \(\lambda\) がわかるわけです(逆数 \(\frac{1}{\delta(V)}\) を \(V\) の \(K(\zeta)\) 係数多項式として求める必要はない)。

さらに、このように

  • \(\nu(x)\) と \(\delta(x)\) が多項式として定数倍の関係にある

ということから、次のふたつもなりたちます。

  • \(\nu(x)\) と \(\delta(x)\) の次数が同じになる(※)
  • 両者の比 \(\lambda\) は、両者の最高次の係数の比に等しい

そうなっていることは、実際に \(\nu(x)\) と \(\delta(x)\) を求める前から予めわかるので、実際の計算では \(\nu(x)\) と \(\delta(x)\) は最高次の係数だけ求まれば十分です。つまり、次数下げで \(g_1(x)\) による剰余を求める計算では、高次の係数から順に求まっていきますが、\(0\) でない係数が見つかった時点で計算を打ち切ってよい、ということです。そうして、\(\nu(x)\) と \(\delta(x)\) の最高次の係数(いずれも \(K(\zeta)\) の元)の比を計算すれば \(\lambda\) が求まるわけです。ここでは「\(K(\zeta)\) の元の逆数」の計算は必要ですが、より複雑な「\(K(\zeta)[V]\) の元の逆数を \(K(\zeta)[V]\) の元として求める」という計算は避けられる、というわけです。

※ より正確に言えば、\(\nu(x)\) の方はゼロ多項式になる可能性はあるので、その場合のみ「同じ次数」ではなくなります。なので、「剰余は最高次係数だけ求めればいいから、\(0\) でない係数が出た段階で計算を打ち切っていい」という話も、正確には \(\delta(x)\) の方についてのみ言える話で、先にそちらを計算してから \(\nu(x)\) の計算に入り、「\(\delta(x)\) の最高次と同じ次数の係数が求まった時点で計算を打ち切っていい(もしそれが \(0\) だったら、それ以上計算しなくても \(\nu(x)\) がゼロ多項式と確定する)」という話になります。(「\(\delta(x)\) よりも高次の項で、\(\nu(x)\) が \(0\) でない係数を持つことはない」ということも、実際に \(\nu(x)\) を計算する前からわかる)

当然、今の計算法は \(\theta_{2}(x)\) 以降の計算にも利用できます。
\[ \theta_{k}(x) = h_{0}(x) + (\zeta^{k})h_{1}(x) + \dots + (\zeta^{k})^{p-1} h_{p-1}(x) \]
の各係数は解の \(K(\zeta)\) 係数多項式の形で、いずれも \(H\) の置換で不変、\(\sigma\) で \(\zeta^{-k}\) 倍されます。よって、引き続き \(a\) を \(\theta_{1}(x)\) の最高次の係数とすれば \(\frac{\theta_{k}(x)}{a^{k}}\) の各係数は \(G\) の置換で不変な解の有理式ですから、それぞれの値を先ほどと同じようにして計算することができます。


投稿日

カテゴリー:

,

投稿者:

タグ:

コメント

コメントを残す

メールアドレスが公開されることはありません。 が付いている欄は必須項目です

このサイトはスパムを低減するために Akismet を使っています。コメントデータの処理方法の詳細はこちらをご覧ください