のどかなレストラン
これから数回にわたり、可解な多項式を冪根で解くアルゴリズムのMaximaでの実装について紹介します。
「ガロアの時代 ガロアの数学〈第2部〉数学篇 (シュプリンガー数学クラブ)」に掲載されているガロアの第一論文(例の決闘前夜まで修正していたもの)を読むと、
- 与えられた方程式のガロア群を求めること、
- その方程式の可解性の判定、
- 体の拡大に必要な添加元(冪根)の求め方、
が含まれています。これらの各ステップは構成的であり、適切に補うことで添加元を求めることが実際に出来ます。
以前の記事ではこの最初のステップまでを、
文献1 井汲 景太 方程式のガロア群の求め方 – 五次元世界の冒険
文献2 三森明夫 ガロア論文の古典的証明
を参考にしてMaximaで実装してみました。
実は文献1では、2つ目以降のステップについても記述されていました。可解なガロア群の組成列に沿ってガロア群を縮小させる(体を拡大させる)と、原始元の最小多項式の次数が低下し、全ての根を含む体では最小多項式は1次式になることを示しています。この過程も構成的であり、解ける方程式はこの1次式を解くことで解を求めることが出来るのです。この解法は、次数ごとの解の公式には頼らず、さらに次数が5次以上でも可解であれば解が求まるすぐれものです。
最近文献1の著者の方から本ブログのコメントで連絡を頂き、上記アルゴリズムを詳細まで詰めて、数式処理システムMathematicaで計算を行った資料を紹介頂きました。
文献3 「退職後は素人数学者」可解な代数方程式のガロア理論に基づいた解法
この文献では数学的にアルゴリズムを説明するとともに、数式処理システムMathematica上で上記の計算を実行しています。特に、与えられた有限群の正規部分群を1つ作るアルゴリズム、1の冪根の処理の仕方など、大変わかりやすい記述です。また例として4次多項式\( x^4+2\,x^3+3\,x^2+4\,x+5 \)をあげて、ガロア群、組成列、最小多項式の次数低減、解の計算など全ての過程の計算結果を示しています。
今回、自分の理解を確かめるために、文献3のアルゴリズムを数式処理システムMaximaである程度実装することができたので、これから数回に渡ってご紹介します。アルゴリズムの理解を主目的としたので、文献3のMathematicaのコードはほとんど読まずに、アルゴリズムの解説と例題の処理過程を読んでMaximaのコードを書きました。特に例題の処理過程の計算結果は自分のコードのデバッグに役に立ちました。
相変わらず私自身の貢献が少なく恥ずかしいのですが、
- 無料のMaximaでもここまでの計算ができることを示したこと
- 正規部分群や組成列の計算のコードなど誰かが再利用できるかもしれないこと、
- 一部の処理を良かれと思って「最適化」したら計算爆発が起きたことの報告(記載予定)
など、少しは意味があるかもしれないと信じて書くことにします。