Maxima で綴る数学の旅

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

-数学- ガロア群を使って多項式の根を求める際の注意事項

ガロア群を使って多項式の根を求める計算をまとめると、与えられた多項式ガロア群が可解群の場合、ガロア群の縮小に対応して係数体を冪根拡大させることが出来ます。その際にVの最小多項式を拡大体で因数分解することできます。単位群まで縮小させた場合、対応する拡大体ではVの最小多項式は1次式になり、Vが正確に求まります。あとはVから解を計算すれば、可解群をガロア群に持つ多項式の根を冪根で表示することが出来るのでした。

 

このストーリーの中で、体の拡大のための冪根を計算するところでゼロでの割り算が発生することがありました。また解を構成する複数の冪根の全ての組み合わせが、解を与えるわけではない、ということもありました。そもそも\(x^5-3\)という例題ではプログラム上1の5乗根を添加しても、数学的には体が拡大しない、ということもありました。これらをまとめて、井汲 景太さんによる非常に詳細な分析を以下の記事で見ることが出来ます。

 

一方、この辺をある意味でまとめて解決してしまう方法がehitoさんのブログに掲載されました。

ehitoさんがご自身のブログで公開されたプログラムでは、添加すべき冪根の計算や最小多項式の計算をグレブナー基底を用いることで見通しの良い計算にしています。この過程ではゼロ割は原理的に発生しません。また体を拡大させないような余分な条件を加えても計算自体は破綻しません。

 

しかもこの方法では、グレブナー基底計算の出力として、添加すべき冪根と、それを添加した体でのVの最小多項式が得られると同時に、「冪根達が満たすべき条件式」が出力される場合があります。求めた冪根の全ての組み合わせが元の多項式の根を導出するのではなく、この「冪根達が満たすべき条件式」を満たす冪根の組み合わせだけが、本当の根を導出するのです(グレブナー基底計算が多変数多項式系の零点集合を変えないことからわかります)。井汲 景太さんの上記の記事でも冪根達の追加条件についての記載があり、グレブナー基底ではそれを自動的に計算していることになりそうです。

  

実はグレブナー基底を使うといくつかの方程式では極端に計算速度が遅くなることがあり、ちょっと悩んでいたのですが、逆に従来の計算方式でも冪根達の適切な組み合わせを見つけるやっつけな方法を思いつきました。

 

要は全ての冪根達の組み合わせに対して、その冪根達で表した根の式に冪根達の数値を代入して、根の候補を数値的に求めます。この候補の数値を元の多項式に代入して、十分に0に近くなればそれが正しい冪根の組み合わせとみなす、というものです。やっつけなフィルタリングです。

 

グレブナー基底を使った群の縮小/体の拡大の計算プログラム(Stage4.mac)、グレブナー基底計算の結果によるフィルタリング、数値的なフィルタリング&確認プログラム(Verify.mac)、それらを組み込んだメインプログラム(SolveSolvable2.mac)を同梱したパッケージを次の記事でリリースすることにします。これを使うと\(x^3-2\)も\(x^5-3\)も根がちゃんと見つかります。