カテゴリー
ガロア理論 数学

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

\(\newcommand{\field}[1]{\mathbb{#1}}\newcommand{\Q}{\field{Q}}\)
「最小分解体の原始元 \(V\) で各解 \(\alpha_{1}, \alpha_{2}, \dotsc\) を表す式」の求め方について、これまでよりもずっと計算量が少なくて済む技法があることがわかりました。私は勉強不足で知らなかったのですが、その技法とは「代数拡大体上での因数分解」で、おそらく代数屋さんなら100万回くらいは見たことのある話なんだろうと思います。


別記事での jurupapa さんからのコメントで「factor(p,q) で、多項式 q の根を添加した体で多項式 p の因数分解が具体的に得られる」という maxima の機能が紹介されていましたが、これを「方程式の左辺の多項式 \(f(x)\) を、\(V\) の最小多項式 \(g(x)\) の根を添加した体で因数分解する」ということに使えばだいたい解決です。jurupapa さんの blog の http://maxima.hatenablog.jp/entry/2018/11/04/171152 のコメント欄で ehito さんに示唆されるまで全然気づいていませんでした。何てこったい。

jurupapa さんが http://maxima.hatenablog.jp/entry/2019/01/13/231353 で検証された例にならって、maxima を使っていつもの例
\begin{align*}
f(x) &= x^{3}-3x-1 \\
V &= \alpha+2\beta+3\gamma \\
g(x) &= x^{3}-9x-9
\end{align*}
を試してみると
factor(x^3-3*x-1,V^3-9*V-9);
\[ \frac{(3x-V^2+6)(3x-V^2+3V+6)(3x+2V^2-3V-12)}{27} \]
solve(%,x);
\begin{equation}
\label{eq:galois-sol7-5}
\biggl[ x=-\frac{2V^2-3V-12}{3}, x=\frac{V^2-3V-6}{3}, x=\frac{V^2-6}{3} \biggr]
\end{equation}
となり、以前求めてあった
\begin{equation}
\begin{split}
\alpha &= \frac{1}{3}V^{2}-V-2 \\
\beta &= -\frac{2}{3}V^{2}+V+4 \\
\gamma &= \frac{1}{3}V^{2} -2
\end{split}
\label{eq:galois-sol7-7}
\end{equation}
と順番を除いて確かに一致します。

\eqref{eq:galois-sol7-5}は、解を順不同で表す式です。一方、これまでこの blog で扱っていたガロア群を求めるための手順では、このあと各 \(V_{k}\) を \(V\) で表す具体的な表式
\begin{equation}
\begin{split}
V_{1} &= V \\
V_{2} &= V^{2}-2V-6 \\
V_{3} &= -V^{2}+V+6 \\
V_{4} &= V^{2}-V-6 \\
V_{5} &= -V \\
V_{6} &= -V^{2}+2V+6
\end{split}
\label{eq:galois-sol7-6}
\end{equation}
を求める際に、\eqref{eq:galois-sol7-5}の \(3\) つの根が \(\alpha\), \(\beta\), \(\gamma\) とどう対応するのか、順番まで含めて特定した式\eqref{eq:galois-sol7-7}を使っていました。具体的には、\eqref{eq:galois-sol7-7}を
\begin{equation}
\begin{split}
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{split}
\label{eq:galois-sol7-9}
\end{equation}
に代入し、\(V\) の式として整理することで\eqref{eq:galois-sol7-6}を得ていたわけです。最初に ehito さんのコメントを見たときは、ここで解の順序を特定して\eqref{eq:galois-sol7-7}を求めるうまい手が浮かばなくて、「この技法では解が順不同でしか求められず、惜しいが際どく実用には役立たないのではないか」と一度は思ったのですが、程なく次のような手を思いつきました。(これは http://maxima.hatenablog.jp/entry/2019/01/13/231353 のコメント欄で ehito さんが提案されているものと同じです)

まず、\eqref{eq:galois-sol7-5}の \(3\) つの根の \(3!=6\) 通りの全置換に対し
\begin{equation}
\label{eq:galois-sol7-8}
1\cdot\text{根1} + 2\cdot \text{根2} + 3\cdot \text{根3}
\end{equation}
を計算します。結果を \(V\) の式として整理すると、順番を除けば\eqref{eq:galois-sol7-6}の右辺に現れるはずの式全体と一致することが予めわかっています。特に、その中には必ず「\(V\)」と一致するものがあります(\eqref{eq:galois-sol7-9}の \(1\) 行目は定義によって \(V\) そのものなので)。その時の根1, 根2, 根3が \(\alpha\), \(\beta\), \(\gamma\) というわけです。これで\eqref{eq:galois-sol7-7}が求まります。

さらに、これまでの手順だと\eqref{eq:galois-sol7-6}を求めるのに今得た結果\eqref{eq:galois-sol7-7}を\eqref{eq:galois-sol7-9} に代入していたわけですが、その \(3!=6\) 通りの計算は、やはり順番を除けば上の\eqref{eq:galois-sol7-8}で行った計算と同一になることが予めわかっています。なのでそれを再度繰り返すのは無駄で、次のようにすれば\eqref{eq:galois-sol7-8}での計算結果をそっくりそのまま活かすことが可能です(もちろん、「無駄」とは言ってもその計算は数式処理ソフトにとっては十分軽いはずなので、数式処理ソフトの利用を想定するならば再度繰り返すことにしても実質的な問題はないはずですし、プログラム的にも易しくなるでしょうが。その意味では、繰り返しを避けなければならない強い理由はありません)。

まず、\eqref{eq:galois-sol7-5}で得られた \(3\) つの根を、任意の順番で
\[ \beta_{1} = -\frac{2V^2-3V-12}{3}, \beta_{2} = \frac{V^2-3V-6}{3}, \beta_{3} = \frac{V^2-6}{3} \]
のように仮置きします。そして、\(S_{3}\) のひとつひとつの置換 \(\tau\) に対して、\eqref{eq:galois-sol7-8}、すなわち
\[ 1\beta_{\tau(1)} + 2\beta_{\tau(2)} + 3\beta_{\tau(3)} \]
を \(V\) の式として整理し、結果を \(\tau\) とペアにして記録します。つまり、\((\tau, \text{\(V\) の式})\) という \(3!=6\) 通りの対を記録することになります。

そして、結果の \(V\) の式がちょうど「\(V\)」になった時の \(\tau\) を \(a\) とします。上の例だったら、具体的には \(a(1)=2\), \(a(2)=1\), \(a(3)=3\) なので、
\[ a =
\begin{pmatrix}
1 & 2 & 3 \\
2 & 1 & 3
\end{pmatrix}
\quad \text{(右辺は置換の行列表記)} \]
です。今、\((\alpha_{1}, \alpha_{2}, \alpha_{3}) = (\alpha, \beta, \gamma)\) とすれば \(\alpha_{1} = \beta_{a(1)}\), \(\alpha_{2} = \beta_{a(2)}\), \(\alpha_{3} = \beta_{a(3)}\) ということですから
\begin{equation}
\label{eq:galois-sol7-10}
\forall i, \alpha_{i} = \beta_{a(i)}
\end{equation}
です。\eqref{eq:galois-sol7-10}を使って、\eqref{eq:galois-sol7-6}が導ければいいわけです。

もともと各 \(V_{k}\) は置換 \(\sigma \in S_{3}\) と 1 対 1 に対応していましたが、この \(\sigma\) に対応する解の順列 \((\alpha_{\sigma(1)}, \alpha_{\sigma(2)}, \alpha_{\sigma(3)})\) は、\eqref{eq:galois-sol7-10}によって
\[ \alpha_{\sigma(i)} = \beta_{a(\sigma(i))} \]
をみたすので、\(\beta\) の側で対応する置換は \(a\circ \sigma\) になります。したがって、\(V_{k}\) を \(V\) で表した表式は、上で記録した \((\tau, \text{\(V\) の式})\) の対の中から、\(\tau = a\circ \sigma\) であるものをピックアップすれば得られます。

要約すれば、「\(V_{k}\) に対応する \(\sigma\) に対し、\(a\) と \(\sigma\) の合成(積)\(a \circ \sigma\) を求めるだけでよい」というわけです。置換の積は、数式処理ソフトなら予め \(S_{n}\) の乗積表を作ってあるはずですから、そのテーブルを参照するだけでわかります。

例えば、上の例で \(V_{2}\) を \(V\) で表す式を求めるならこうです。\(V_{2}= \beta+2\gamma+3\alpha\) に対応する置換は
\[ \sigma =
\begin{pmatrix}
1 & 2 & 3 \\
2 & 3 & 1
\end{pmatrix}
\]
なので、上の例だと
\[ \tau = a \circ \sigma =
\begin{pmatrix}
1 & 2 & 3 \\
2 & 1 & 3
\end{pmatrix}
\begin{pmatrix}
1 & 2 & 3 \\
2 & 3 & 1
\end{pmatrix} =
\begin{pmatrix}
1 & 2 & 3 \\
1 & 3 & 2
\end{pmatrix}
\]
です。これに対応する \(V\) の式は、\eqref{eq:galois-sol7-8}の段階で次の通り計算されていることになっています。
\[ \beta_{1} + 2\beta_{3} + 3\beta_{2} = -\frac{2V^2-3V-12}{3} + 2 \cdot \frac{V^2-6}{3} + 3 \cdot \frac{V^2-3V-6}{3} = V^{2}-2V-6 \]
これが \(V_{2}\) で、確かに\eqref{eq:galois-sol7-6}の結果と一致しています。

こうやって、\eqref{eq:galois-sol7-6}を求める手順を整理してみると、結局置換 \(a\) を求めさえすれば、\eqref{eq:galois-sol7-7}は明示的に書き下す必要がなかった、ということもわかりますね。これは、この記事を書く過程で初めて気づきました(笑)。

アルゴリズムの解説

ehito さんが http://maxima.hatenablog.jp/entry/2018/11/04/171152 で提示してくださった「代数拡大体での因数分解の手順」は、私には当初なぜこれで因数分解ができるのかさっぱりわからなかったのですが、そこのコメント欄にも書いたように、以前見つけていた別文書「巡回群をガロア群に持つ5次方程式の判別とその解法」(元吉文男さん)の冒頭部に書かれているものとほぼ同じであることに気づき、そちらと見比べながらすごく簡単な例を手計算してみることで、ようやくアルゴリズムが理解できました。

上でも書いた通り、代数屋さんにとってはおそらくごく初歩的な話で、多くの教科書にバッチリ書いてあるようなことだと思いますが、自己満足のために(笑)私が解っている範囲の解説を書いておきます。

ここでは、\(p(x)=x^{2}+x+1\) を \(q(x)=x^{2}+3\) の根 \(a\) を使って因数分解する計算を例にとります。まず、\(x\) を \(X+a\) に置きかえた \(p(X+a)=(X+a)^{2}+(X+a)+1\) という式を作ります。この段階では \(X\) も \(a\) も文字(不定元)としておきます。そして、\(p(X+a)\) と \(q(a)=a^{2}+3\) の間で、\(a\) に関する終結式を求めます。
\[ R(p(X+a), q(a); a) = p(X+\sqrt{-3}) p(X-\sqrt{-3}) = X^{4}+2X^{3}+9X^{2}+8X+7 \]
上では \(q(a)\) の根の具体値 \(\pm \sqrt{-3}\) を使いましたが、もちろん終結式なので結果は具体値を使わずに得られます。以下の議論が見通しよくなるよう、具体値を明示した形で書きました。いずれにせよ結果は \(X\) の多項式になります(なお、\(0\) でない定数倍の違いは以下の議論に影響しないため無視しています)。これを \(r(X)\) とおいて \(\Q\) 係数の範囲で因数分解しましょう。
\begin{equation}
\label{eq:galois-sol7-11}
r(X) = (X^{2}+X+1)(X^{2}+X+7)
\end{equation}
が既約な因数分解になります。

いったん、ここまでで言えることをまとめましょう。終結式の性質から、次のことがなりたちます。
\[
\begin{split}
&\text{\(q(a)=0\) のもとでは、} \\
p(X+a)=0 &\implies r(X)=0 \\
&\implies X^{2}+X+1=0 \text{ または } X^{2}+X+7=0
\end{split}
\]
(ひとつめの「\(\implies\)」がなりたつのは、\(q(a)=0\) のもとでは \(a\) は \(\sqrt{-3}\) か \(-\sqrt{-3}\) のどちらかと決めつけてよいことによります。どちらであっても \(p(X+a)=0\) からは \(r(X)=0\) が導かれます)

さて、そうすると \(p(X+a)=0\) であるときは次のいずれかがなりたちます。
\begin{align}
&\text{\(q(a)=0\) のもとでは、} \notag\\
\label{eq:galois-sol7-12}
&p(X+a)=0 \text{ かつ } X^{2}+X+1=0 \\
&\qquad\text{または} \notag\\
\label{eq:galois-sol7-13}
&p(X+a)=0 \text{ かつ } X^{2}+X+7=0
\end{align}
この条件を生かすために、\(r(X)\) の各既約因子と \(p(X+a) = (X+a)^{2}+(X+a)+1\) の間で、互除法を使って最大公約式 GCD を求めます。互除法での割り算は、当然変数 \(X\) について行います。
\begin{align*}
&\text{\(q(a)=0\) のもとでは、} \\
\gcd(p(X+a),X^{2}+X+1) &= 2aX+a^{2}+a = 2aX+a-3 \\
\gcd(p(X+a),X^{2}+X+7) &= 2aX+a^{2}+a-6 = 2aX+a-9
\end{align*}
GCD の性質から、次のことがなりたちます。
\begin{align*}
&\text{\(q(a)=0\) のもとでは、} \\
\eqref{eq:galois-sol7-12} &\iff 2aX+a-3=0 \\
\eqref{eq:galois-sol7-13} &\iff 2aX+a-9=0
\end{align*}
以上の話を総合すると、次のことが言えます。
\[
\begin{split}
&\text{\(q(a)=0\) のもとでは、} \\
p(X+a) = 0 &\iff \eqref{eq:galois-sol7-12} \text{ または }
\eqref{eq:galois-sol7-13} \\
&\iff 2aX+a-3=0 \text{ または } 2aX+a-9=0
\end{split}
\]
これは、次のことを意味します。

\(q(a)=0\) のもとでは、\(X\) の多項式 \(p(X+a)\) の根全体の集合は、\(2aX+a-3\) と \(2aX+a-9\) の根を合わせた集合と一致する。

そうすると、以下のような議論を通じて、
\begin{equation}
\begin{split}
&\text{\(q(a)=0\) のもとでは、} \\
p(X+a) &= \text{《\(0\)でない定数》} \times (2aX+a-3)(2aX+a-9)
\end{split}
\label{eq:galois-sol7-14}
\end{equation}
がなりたつことが言えます。

  • まず、\(p(x)=x^{2}+x+1\) は重根を持ちませんでした。したがって、\(p(X+a)\) も \(X\) の多項式として重根を持ちません。すなわち、\(p(X+a)\) の根は(\(q(a)=0\) のもとでも)すべて単根です。
  • 因数分解\eqref{eq:galois-sol7-11}の各因子は \(\Q\) 係数の範囲で既約ですから、重根を持ちません。よって、それぞれの因子である \(2aX+a-3\), \(2aX+a-9\) も重根を持ちません(どちらも \(X\) の \(1\) 次式なので当たり前ではありますが、一般には \(1\) 次式とは限らないので、それに依存しない議論を行っています)。また、因数分解\eqref{eq:galois-sol7-11}の因子は互いに素ですから、それぞれの因子である \(2aX+a-3\), \(2aX+a-9\) も \(q(a)=0\) のもとでも互いに素です。つまりこれらは \(q(a)=0\) のもとでも共通根を持ちません。したがって、それらの積 \((2aX+a-3)(2aX+a-9)\) は、\(q(a)=0\) のもとでも単根のみを持ちます。

以上のことから\eqref{eq:galois-sol7-14}がなりたちます。

\eqref{eq:galois-sol7-14}が \(X\) の多項式としての等式になるので、\(X=x-a\) によって \(x\) の式に直せば
\[
\begin{split}
&\text{\(q(a)=0\) のもとでは、} \\
p(x) &= \text{《\(0\)でない定数》} \times (2a(x-a)+a-3)(2a(x-a)+a-9) \\
&= \text{《\(0\)でない定数》} \times (2ax-2a^2+a-3)(2ax-2a^2+a-9) \\
&= \text{《\(0\)でない定数》} \times (2ax+a+3)(2ax+a-3)
\end{split}
\]
後は両辺の \(x^{2}\) の係数を比べれば、\(0\) でない定数は \(\dfrac{1}{4a^{2}}=-\dfrac{1}{12}\) とわかり、
\[
\begin{split}
&\text{\(q(a)=0\) のもとでは、} \\
x^{2}+x+1 &= -\frac{1}{12}(2ax+a+3)(2ax+a-3)
\end{split}
\]
となって、\(\Q[a]\) 係数の範囲での因数分解が得られました。

おそらく、途中の議論はイデアルを使えばもっと簡潔にできるのでしょう。私はイデアルを使いこなせるほど理解できていないので、いちいち「\(q(a)=0\) のもとでは」を断って、全部根に還元する議論しかできませんでした。

今の議論を一般化するため、一連の話がうまくいったポイントを挙げていきます。

  • \(r(X)\) は有理数係数(整数係数)だったため、既約分解が確実にできました。
  • \(q(a)=0\) のもとでの GCD がきれいに求まったのは、\(q(x)=x^{2}+3\) が \(\Q\) 係数の範囲で既約だったおかげです。互除法の過程では、\(X\) の多項式の係数は \(a\) の \(\Q\) 係数多項式・有理式の形で出てきますが、それらの値が \(0\) になるかどうかを \(q(a)=0\) の条件だけで決定できるのは、\(q(x)\) の既約性によるもの。もし、\(q(x)=(x^{2}+3)(x^{2}-3)\) だったりしたら、\(q(a)=0\) のもとで
    \[ \gcd(p(X+a),X^{2}+X+1) =
    \begin{cases}
    1 & (\text{\(a\)が\(x^{2}-3\)の根のとき}) \\
    2aX+a-3 & (\text{\(a\)が\(x^{2}+3\)の根のとき})
    \end{cases}
    \]
    のように場合分けが必要になってしまいます。
  • \(p(X)\) が重根を持たず、\(r(X)\) が平方因子を持たなかったおかげで、\eqref{eq:galois-sol7-14}は左辺・右辺ともに単根のみを持つ式となり、\eqref{eq:galois-sol7-14}の成立が言えました。

最後の「\(r(X)\) が平方因子を持たなかった」ことが、先ほど触れた元吉さんの文書で書かれている「任意パラメータを調節して、終結式が無平方であるようにする」ことと関連しています。上の手順では最初に \(x\) を \(X+a\) で置きかえましたが、この際 \(a\) の係数が \(1\) であることに強い制約はなく、\(X-a\) や \(X+2a\) などでも一連の手順を展開するに当たって不都合はないです。そこで、\(x=X+ca\) のように任意パラメータ \(c\) を導入し、\(c\) として「終結式
\[ r(X) = R(p(X+ca), q(a); a) \]
が無平方になるような整数の具体値」を選ぶことで、うまく帳尻を合わせます(この「整数の具体値」は、当然 \(c=\pm1, \pm2, \dots\) と順次代入して、うまく行くまで繰り返す…という試行錯誤によって求めます(事前に適する値を知る方法もあるのかもしれませんが、私は知りません))。

実は、\(r(X)\) が平方因子を持たないことは、もうひとつ重要な意味がある(この記事を半ば以上書き進めるまで理解してませんでした(笑))のですが、それは後述します。

以上の点を踏まえると、上で説明した話は次のように一般化されます。

\(p(x)\), \(q(x)\) は \(1\) 次以上の(係数が具体的にわかった)整数係数多項式で、\(p(x)\) は重根を持たず、\(q(x)\) は \(\Q\) 係数の範囲で既約だとする。このとき、\(p(X+ca)\), \(q(a)\) の間で \(a\) に関する終結式
\[ r(X) = R(p(X+ca), q(a); a)\]
を求め、\(r(X)\) が \(X\) の多項式として無平方になるよう整数 \(c\) を選んでおけば、\(r(X)\) の \(\Q\) 係数の範囲での各既約因子と \(p(X+ca)\) の間の最大公約式を \(q(a)=0\) のもとで求めると
\begin{align}
&\text{\(q(a)=0\) のもとでは、} \notag\\
\label{eq:galois-sol7-15}
p(X+ca) &= \text{《\(0\)でない定数》} \times \text{《各 GCD の積》}
\end{align}
となるので、変数を \(x\) に戻すことで \(p(x)\) の \(\Q[a]\) の範囲での因数分解が求まる。

この話が本当に役立つには、まだ確認しなければいけないことがひとつあります。

上の手順で、\(p(x)\) の \(\Q[a]\) 係数の範囲での既約分解が必ず得られるのか?

上の手順は、一見、\(p(x)\) の \(\Q[a]\) 係数の範囲での因数分解を確実に与えてくれそうに見えます。しかし、それが既約分解にまでなっているかどうかまではまだ未確認です。そればかりか、\(q(a)=0\) のもとでの GCD を求めたとき、もしも大半の GCD が \(1\)(\(0\) でない定数)で、ひとつだけが \(p(X+ca)\) そのもの(の定数倍)…という結果になった場合、\eqref{eq:galois-sol7-15}は実際にはまったく因数分解になっていません。

もちろん、\(p(x)\) が実際に \(\Q[a]\) で既約だった場合はまさしくそういう結果しか出ないはずですが、\(p(x)\) が \(\Q[a]\) で可約だった場合にはそんな結果では困ります。我々が欲しいのは、「\(p(x)\) の \(\Q[a]\) 係数の範囲内での『既約分解を』見つけられるアルゴリズム」なのです(もともと、各解を \(V\) で表す式を得るためには、元の方程式の左辺が \(1\) 次式の積まで分解しつくした結果が必要だったので、たとえ因数分解ができてもそれが既約でない中途半端な分解では目的を達するには不十分でした)。

実は、\(r(X)\) が平方因子を持たないことは、上の手順が既約分解を与えることを保証します。今、\(p(x)\) が \(\Q[a]\) 係数の範囲で
\begin{equation}
\label{eq:galois-sol7-16}
p(x) = p_{1}(x,a)p_{2}(x,a) \quad (p_{1}, p_{2} \text{ は\(x\)について
\(1\)次以上})
\end{equation}
と因数分解できたとしましょう(\(p_{1}\), \(p_{2}\) の形は未知でもよい)。\(q(a)\) は \(\Q\) 係数の範囲で既約なら何でもいいのですが、簡単のためその根は \(a_{1}\), \(a_{2}\) のふたつだとします(さらに \(q(a)=a^{2}+3\) として \(a_{1}=\sqrt{-3}\), \(a_{2}=-\sqrt{-3}\) と具体化してもいいのですが、そう書くとごちゃごちゃした式になって却って見づらそうなので、こうしました。\(\pm \sqrt{-3}\) の方がわかりやすい方はそのように読み換えてくださって構いません)。

すると任意の \(x\) に対し
\[ p(x) = p_{1}(x,a_{1})p_{2}(x,a_{1}) = p_{1}(x,a_{2}) p_{2}(x,a_{2}) \]
がなりたちますから、
\begin{align}
p(X+ca_{1}) &= p_{1}(X+ca_{1},a_{1}) p_{2}(X+ca_{1},a_{1}) \notag\\
p(X+ca_{2}) &= p_{1}(X+ca_{2},a_{2}) p_{2}(X+ca_{2},a_{2}) \notag\\
\therefore r(X) &= p(X+ca_{1}) p(X+ca_{2}) \notag\\
\label{eq:galois-sol7-17}
&= \underbrace{p_{1}(X+ca_{1},a_{1}) p_{1}(X+ca_{2},a_{2})}_{P_{1}(X)}\underbrace{p_{2}(X+ca_{1},a_{1}) p_{2}(X+ca_{2},a_{2})}_{P_{2}(X)}
\end{align}
となります(定数倍の違いを除く)。\(P_{1}(X)\), \(P_{2}(X)\) は \(\Q\) 係数であることが直ちにわかります。

ここで、\(q(a)=0\) のもとで考えると、\(P_{1}(X)\) は \(X\) の多項式として \(p_{1}(X+ca,a)\) で割り切れます。なぜならば: \(q(a)=0\) のもとで \(P_{1}(X)\) を \(p_{1}(X+ca,a)\) で割った式を
\[ P_{1}(X) = p_{1}(X+ca,a)\text{商}(X,a) + \text{余り}(X,a) \]
と書くと、これに \(a=a_{1}\) を代入すればそのまま \(P_{1}(X)\) を \(p_{1}(X+ca_{1},a_{1})\) で割ったときの式になる。\eqref{eq:galois-sol7-17}からその割り算は割り切れるので、余りの式は \(a=a_{1}\) のとき \(0\)。同じ理由で、余りの式は \(a=a_{2}\) のときも \(0\)。\(a\) が \(a_{1}\) だろうが \(a_{2}\) だろうが \(0\) になる、ということは、\(q(a)=0\) のもとで余りは \(0\) と確定する、ということ。

同様に、\(q(a)=0\) のもとでは \(P_{2}(X)\) は \(X\) の多項式として \(p_{2}(X+ca,a)\) で割り切れます。

同様のことは、\eqref{eq:galois-sol7-16}の右辺が \(3\) つ以上の因子の積でも言えます。
\begin{equation}
\label{eq:galois-sol7-18}
p(x) = p_{1}(x,a)p_{2}(x,a) \dotsm p_{m}(x,a)  \quad (\text{\(p_{1}, \dots, p_{m}\)は\(x\)について\(1\)次以上})
\end{equation}
だったら、\(p_{1}, \dotsm, p_{m}\) に対応して \(\Q\) 係数多項式 \(P_{1}(X), \dots, P_{m}(X)\) が存在し、
\begin{equation}
\label{eq:galois-sol7-19}
r(X) = P_{1}(X) P_{2}(X) \dotsm P_{m}(X)
\end{equation}
となって(定数倍の違いを除く)、\(P_{1}(X), \dots, P_{m}(X)\) がそれぞれ \(p_{1}(X+ca,a), \dots, p_{m}(X+ca,a)\) を因子に持ちます。

そこで、\eqref{eq:galois-sol7-18}の右辺が \(\Q[a]\) 係数の範囲での既約分解である場合を考えましょう。すると、\(p_{i}(X+ca,a) \; (i=1,\dots,m)\) のひとつひとつも \(\Q[a]\) 係数の範囲で既約です。つまり、
\begin{equation}
\label{eq:galois-sol7-20}
p(X+ca) = p_{1}(X+ca,a) \dotsm p_{m}(X+ca,a)
\end{equation}
は \(\Q[a]\) 係数の範囲での既約分解になっています。

ここで、\(r(X)\) が平方因子を持たないという条件が効いてきます。このことと\eqref{eq:galois-sol7-19}から、次のふたつのことがわかります。

  1. 例えば \(p_{1}(X+ca,a)\) で割り切れるのは \(P_{1}(X)\) だけです。なぜならば、もし \(P_{2}(X)\) が \(p_{2}(X+ca,a)\) だけでなく \(p_{1}(X+ca,a)\) とたまたま等しい因子も同時に持っていたりしたら、\(r(X)\) が \(p_{1}(X+ca,a)\) で \(2\) 回(以上)割り切れて、重根を持ってしまうからです。
  2. どの \(P_{i}(X)\) も、対応する \(p_{i}(X+ca,a)\) で \(1\) 回しか割り切れません。この理由も前項と同様です。

(以上のふたつの議論では、\(p_{i}(x,a) \; (i=1,\dots,m)\) が \(x\) について \(1\) 次以上、とした仮定が効いています)

\eqref{eq:galois-sol7-19}より、\(r(X)\) の \(\Q\) 係数の範囲での既約分解は \(P_{1}(X), \dots, P_{m}(X)\) がさらに細かく分解される形でしか起こりません(定数倍の違いを除く)。よって、その \(\Q\) 係数既約因子を \(r_{1}(X), r_{2}(X), \dotsc\) とすれば、\(p_{i}(X+ca,a) \; (i=1,\dots,m)\) のひとつひとつは、やはり別々の \(r_{j}(X)\) にバラバラに含まれます(\(\Q\) 係数の範囲での分解は、\(\Q[a]\) 係数の範囲での分解の一種でもあるので、元々 \(\Q[a]\) で既約だった \(p_{i}(X+ca,a)\) はそれ以上砕かれることなくそのまま \(r_{j}(X)\) の中に潜む)。

したがって、各 \(r_{j}(X)\) ごとに \(q(a)=0\) のもとでの最大公約式
\[ \gcd(r_{j}(X), p(X+ca)) \]
を求めれば、出てくるのは \(p_{i}(X+ca,a) \; (i=1,\dots,m)\) がちょうど \(1\) 個ずつと、あと \(1\) のみです(\(\because \eqref{eq:galois-sol7-20}\); 定数倍の違いを除く)。よって得られた GCD で \(X=x-ca\) と置きかえれば、(定数倍の違いを除いて)\eqref{eq:galois-sol7-18}の既約因子 \(p_{i}(x,a) \; (i=1,\dots,m)\) が求まります。これで \(p(x)\) の \(\Q[a]\) での既約分解が求まりました!終わってみると、結局上で具体例を通じて説明したことも含めて全部証明し直した話になってしまいました。

あと、残っている話は

\(r(X)\) が無平方となるような整数 \(c\) の存在は保証されるのか?

ということだけです。

もし \(p(x)\) が平方因子を持てば、終結式の性質から \(r(X)\) は問答無用で平方因子を持ってしまいますから、無条件では適する \(c\) の存在は言えません。\(p(x)\), \(q(x)\) について何らかの条件が必要ですが、どんな十分条件があるのか、私にはよくわかっていないです。【追記】わかりました。後述。

上で私が課した条件は

\(p(x)\), \(q(x)\) は \(1\) 次以上の(係数が具体的にわかった)整数係数多項式で、\(p(x)\) は重根を持たず、\(q(x)\) は \(\Q\) 係数の範囲で既約

でした。たぶん、これくらいの条件なら十分条件になっているだろう、と当てずっぽうで予想してはいるのですが、証明しろと言われると今のところ no idea です。やはり、そろそろ代数の教科書をきちんと読んでみるべきなのでしょう(笑)。

【追記】そうか、これ「有限次代数拡大はすべて単拡大で表せる」や「\(n!\) 通りの \(V_{k}\) の値がすべて異なるように \(V\) の係数を選べる」という話とまったく同様に示せるのですね。ちゃんと十分条件になっていることがわかりました。
(証明)上での記法に合わせ、\(q(x)\) の根を \(a_{1}, a_{2}, \dotsc\)、 \(p(x)\) の根を \(b_{1}, b_{2}, \dotsc\) とすると
\begin{align*}
p(x) &= \text{整数}(x-b_{1})(x-b_{2}) \dotsm \\
\therefore p(X+ca) &= \text{整数}(X+ca-b_{1})(X+ca-b_{2}) \dotsm \\
\therefore r(X) &= p(X+ca_{1})p(X+ca_{2}) \dotsm \\
&= \text{整数} \prod_{i,j} (X+ca_{i}-b_{j})
\end{align*}
なので、\(r(X)\) のすべての根は \(-ca_{i}+b_{j}\)。よって \(r(X)\) が重根を持つのは、異なる \((i,j)\) に対し \(-ca_{i}+b_{j}\) が一致する場合。しかし \(p(x)\) が重根を持たず、\(q(x)\) も \(\Q\) 係数の範囲で既約で重根を持たないので、\(r(X)\) が重根を持つような \(c\) の値は有限個しかない。よって \(r(X)\) が重根を持たない整数 \(c\) は必ず存在する。□
\(q(x)\) は \(\Q\) 係数の範囲で既約でないといけないですが、\(p(x)\) は重根さえなければ可約でもいい、ということもはっきりしました。

ガロア群を求める別法

上ではどの解に対しどの因子が対応するかを、\(n!\) 通りの置換に対する計算結果と照合して特定する方法を説明しましたが、実はこれは必ずしも特定する必要はありません。\(\Q[V]\) 係数で既約分解する対象を、元の方程式の左辺 \(f(x)\) ではなく、\(V\) の最小多項式 \(g(x)\) にすれば、やはり \(1\) 次式の積に分解しつくして、すべての根を \(V\) で表した具体的な表式が得られます(根のうちひとつは当然 \(V\) 自身です)。つまり、\eqref{eq:galois-sol7-7}の右辺に当たる式のうち、ガロア群に対応する \(V_{k}\) に限定したものが順不同で求まる、ということです。

得られた結果の式は、(体の同形写像としての)ガロア群の元による、\(V\) のうつり先を列挙したものですから、それらを例えば
\begin{align*}
\sigma(V) &= V^{2}-2V-6 \\
\tau(V) &= -V^{2}+V+6
\end{align*}
のように書くことができます。すると、\(\sigma\) と \(\tau\) の積による \(V\) のうつり先も計算できます。
\begin{equation}
\begin{split}
(\sigma \circ \tau)(V) &= \sigma(\tau(V)) = \sigma(-V^{2}+V+6) \\
&= -(\sigma(V))^{2}+\sigma(V)+6 \\
&= -(V^{2}-2V-6)^{2} + V^{2}-2V-6 + 6
\end{split}
\label{eq:galois-sol7-21}
\end{equation}
この結果を \(g(V)=0\) を使って次数下げし、先ほど得られた根の \(V\) の式の一覧と照合すれば、\(\sigma \circ \tau\) がガロア群のどの元に等しいかがわかります。つまり、こうやってガロア群の乗積表を作ることができます。

乗積表が作れる、ということはガロア群の構造が完全にわかるということです。つまり、この道筋を辿った場合は、ガロア群は置換群として求まるわけではなく、「乗積表がわかる」という形で求まるわけです。

乗積表が手に入れば、組成列を作ったり、可解群だった場合に \(g(x)\) をべき根で因数分解したりできるのはこれまでと同様です。最終的に元の方程式の解を表示する際に、やはり解を \(V\) で表す式は結局必要になりますが、その時は解は順不同でよいので\eqref{eq:galois-sol7-5}に当たる式を求めるだけで十分で、順序を特定する必要はありません。

ただこれだと、\(n!\) 通りの順列全部についての計算が不要になる替わりに、ガロア群の要素数(\(g(x)\) の次数)を \(m\) としたときに \(O(m^{2})\) 通りの\eqref{eq:galois-sol7-21}のような多項式合成計算、および \(g(V)\) による剰余計算が必要になるため、計算量としては却って不利になっていることも多いんではないかと思います。元々持っていた、「各 \(V_{k}\) (の添字)と置換 \(\sigma\) の対応関係」のデータをまったく活かさず捨ててしまっているのももったいない。そういう意味で、やり方としては別にこちらが優っているわけではないと思います。

コメントを残す

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

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