Maxima で綴る数学の旅

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

-数学- GaloisGroupSolverをGithubに公開しました

 

3連休の間に1日かけてGithubにレポジトリを作り、関連するファイルをアップロードして公開しました。まず、パッケージのダウンロード方法ですが、ここからダウンロードできます。

ちなみにパッケージの名前としてSolveSolvableで行こうかと思ったのですが、解りにくいので、GaloisGroupSolverとしてみました。Githubにはこちらからどうぞ。

github.com

ダウンロードするとGaloisGroupSolver-master.zipというファイルが出来ますので、展開してください。Linuxなどであれば、このディレクトリに移動してからmaximaを起動して、試しに以下をやってみてください。

load("SolveSolvable2.mac");

SolveSolvable(x^3-3*x+1)$

 

この中にはStage3.macとStage4.macというよく似た名前のファイルが同梱されており、上記のSolveSolvable2.macは必ずStage3.macを読み込みます。これらのファイルはガロア群の縮小と係数体の拡大を行うのですが、Stage4.macではehitoさんのブログ記事に基づいたグレブナー基底による計算を行います。この場合、追加条件が求まれば、SolveSolvable()関数はその条件も表示します。注意点としてStage4.macを使うと4次方程式でも時間がかかる場合があります。

 

注意点として、解けない5次方程式を与えると最初に120次多項式因数分解しようとするところで、非常に時間がかかります。解ける方程式がSolveSolvable2.macに例題として記載してありますので、この辺で試してみてください。

 

6次方程式でもガロア群が簡単なものであれば解けることをご覧ください。

(%i1) load("SolveSolvable2.mac");
$$ \tag{*} \verb| | \\
\mathrm{resolvante}\verb| | \\
\mathrm{generale}\verb| | \\
\verb| | \\
\verb|NOTE: To compile the system do|\verb| | \\
\verb|load("sym/compile");|\verb| |define: warning: redefining the built-in function resolvante_produit_sym $$
$$ \tag{%o1} \verb|SolveSolvable2.mac| $$
(%i2) SolveSolvable(x^6+x^3+1)$
$$ \tag{*} \verb|Minimal polynomial of V|\verb| | \\
V^6+45\,V^4-692\,V^3+1323\,V^2-17253\,V+120583\verb| | $$
$$ \tag{*} \verb|Galois Group of|\verb| |x^6+x^3+1\verb| | \\
\begin{pmatrix} a&b&c&d&e&f\\ b&f&e&c&d&a\\ c&e&f&b&a&d\\ d&c&b&a&f&e\\ e&d&a&f&b&c\\ f&a&d&e&c&b\\ \end{pmatrix} \verb| | $$
$$ \tag{*} \verb|Subnormal series and quotients of orders|\verb| | \\
\verb|FiniteGroup[1,238,333,416,557,618]|\verb| | 
\verb|FiniteGroup[1,238,618]|\verb| | \\
\verb|FiniteGroup[1]|\verb| | \\
x^6+x^3+1\verb| |\verb|is solvable.|\verb| | $$
$$ \tag{*} \verb|Solutions|\verb| | $$
$$ \tag{*} \mathrm{\%x}_{1}=-\frac{952\,\alpha_{1}\,\alpha_{2}^2\,{\rm Z}_{3}}{1262459}+\frac{1108\,\alpha_{2}^2\,{\rm Z}_{3}}{114769}+\frac{53321\,\alpha_{1}\,\alpha_{2}\,{\rm Z}_{3}}{11362131}+\frac{323831\,\alpha_{2}\,{\rm Z}_{3}}{688614}+\frac{1502\,\alpha_{1}\,{\rm Z}_{3}}{344307}+\frac{50171\,{\rm Z}_{3}}{114769}-\frac{2536\,\alpha_{1}\,\alpha_{2}^2}{3787377}-\frac{1588\,\alpha_{2}^2}{114769}-\frac{20486\,\alpha_{1}\,\alpha_{2}}{11362131}-\frac{51205\,\alpha_{2}}{344307}-\frac{1270\,\alpha_{1}}{114769}+\frac{37477}{114769}\verb| | $$
$$ \tag{*} \mathrm{\%x}_{2}=\frac{320\,\alpha_{1}\,\alpha_{2}^2\,{\rm Z}_{3}}{3787377}-\frac{2696\,\alpha_{2}^2\,{\rm Z}_{3}}{114769}-\frac{188576\,\alpha_{1}\,\alpha_{2}\,{\rm Z}_{3}}{11362131}-\frac{40967\,\alpha_{2}\,{\rm Z}_{3}}{344307}-\frac{5312\,\alpha_{1}\,{\rm Z}_{3}}{344307}-\frac{12694\,{\rm Z}_{3}}{114769}+\frac{952\,\alpha_{1}\,\alpha_{2}^2}{1262459}-\frac{1108\,\alpha_{2}^2}{114769}+\frac{61448\,\alpha_{1}\,\alpha_{2}}{11362131}+\frac{10238\,\alpha_{2}}{344307}-\frac{1502\,\alpha_{1}}{344307}-\frac{50171}{114769}\verb| | $$
$$ \tag{*} \mathrm{\%x}_{3}=\frac{151960\,\alpha_{1}\,\alpha_{2}^2\,{\rm Z}_{3}}{11362131}-\frac{17804\,\alpha_{2}^2\,{\rm Z}_{3}}{344307}+\frac{28187\,\alpha_{1}\,\alpha_{2}\,{\rm Z}_{3}}{11362131}-\frac{22507\,\alpha_{2}\,{\rm Z}_{3}}{229538}+\frac{794\,\alpha_{1}\,{\rm Z}_{3}}{344307}-\frac{10461\,{\rm Z}_{3}}{114769}+\frac{93784\,\alpha_{1}\,\alpha_{2}^2}{11362131}-\frac{9701\,\alpha_{2}^2}{344307}+\frac{47854\,\alpha_{1}\,\alpha_{2}}{11362131}+\frac{1420\,\alpha_{2}}{114769}+\frac{1348\,\alpha_{1}}{344307}+\frac{1320}{114769}\verb| | $$
$$ \tag{*} \mathrm{\%x}_{4}=-\frac{6464\,\alpha_{1}\,\alpha_{2}^2\,{\rm Z}_{3}}{1262459}+\frac{122872\,\alpha_{2}^2\,{\rm Z}_{3}}{344307}+\frac{19667\,\alpha_{1}\,\alpha_{2}\,{\rm Z}_{3}}{11362131}+\frac{25347\,\alpha_{2}\,{\rm Z}_{3}}{229538}+\frac{554\,\alpha_{1}\,{\rm Z}_{3}}{344307}+\frac{11781\,{\rm Z}_{3}}{114769}-\frac{1127\,\alpha_{1}\,\alpha_{2}^2}{344307}+\frac{150377\,\alpha_{2}^2}{688614}-\frac{28187\,\alpha_{1}\,\alpha_{2}}{11362131}+\frac{22507\,\alpha_{2}}{229538}-\frac{794\,\alpha_{1}}{344307}+\frac{10461}{114769}\verb| | $$
$$ \tag{*} \mathrm{\%x}_{5}=-\frac{93784\,\alpha_{1}\,\alpha_{2}^2\,{\rm Z}_{3}}{11362131}-\frac{105068\,\alpha_{2}^2\,{\rm Z}_{3}}{344307}-\frac{47854\,\alpha_{1}\,\alpha_{2}\,{\rm Z}_{3}}{11362131}-\frac{1420\,\alpha_{2}\,{\rm Z}_{3}}{114769}-\frac{1348\,\alpha_{1}\,{\rm Z}_{3}}{344307}-\frac{1320\,{\rm Z}_{3}}{114769}-\frac{56593\,\alpha_{1}\,\alpha_{2}^2}{11362131}-\frac{130975\,\alpha_{2}^2}{688614}-\frac{19667\,\alpha_{1}\,\alpha_{2}}{11362131}-\frac{25347\,\alpha_{2}}{229538}-\frac{554\,\alpha_{1}}{344307}-\frac{11781}{114769}\verb| | $$
$$ \tag{*} \mathrm{\%x}_{6}=\frac{2536\,\alpha_{1}\,\alpha_{2}^2\,{\rm Z}_{3}}{3787377}+\frac{1588\,\alpha_{2}^2\,{\rm Z}_{3}}{114769}+\frac{45085\,\alpha_{1}\,\alpha_{2}\,{\rm Z}_{3}}{3787377}-\frac{241897\,\alpha_{2}\,{\rm Z}_{3}}{688614}+\frac{1270\,\alpha_{1}\,{\rm Z}_{3}}{114769}-\frac{37477\,{\rm Z}_{3}}{114769}-\frac{320\,\alpha_{1}\,\alpha_{2}^2}{3787377}+\frac{2696\,\alpha_{2}^2}{114769}-\frac{13654\,\alpha_{1}\,\alpha_{2}}{3787377}+\frac{40967\,\alpha_{2}}{344307}+\frac{5312\,\alpha_{1}}{344307}+\frac{12694}{114769}\verb| | $$
$$ \tag{*} \verb|with|\verb| | \\
\left[ \left[ \alpha_{2} , -3\,{\rm Z}_{3}+\alpha_{2}^3+3 \right] , \left[ {\rm Z}_{3} , {\rm Z}_{3}^2+{\rm Z}_{3}+1 \right] , \left[ \alpha_{1} , \alpha_{1}^2+\frac{3267}{4} \right] \right] \verb| | $$
$$ \tag{*} \verb|Verification|\verb| | \\
 \verb|Numeric values of added radicals|\verb| | \\
 \left[ \alpha_{2}=1.113340798452839B0-1.326827896337877B0\,i , {\rm Z}_{3}=-8.660254037844387B-1\,i-5.0B-1 , \alpha_{1}=-2.857883832488648B1\,i \right] \verb| | $$
$$ \tag{*} \verb|Numeric calcuration of the above solutions|\verb| | \\
 \left[ 3.420201433256688B-1\,i-9.396926207859081B-1 , 1.736481776669303B-1-9.848077530122079B-1\,i , 9.848077530122078B-1\,i+1.736481776669305B-1 , -3.420201433256686B-1\,i-9.396926207859082B-1 , 7.660444431189777B-1-6.427876096865393B-1\,i , 6.427876096865393B-1\,i+7.66044443118978B-1 \right] \verb| | $$
$$ \tag{*} \verb|Numeric solutions with allroots(|\verb| |x^6+x^3+1\verb| |\verb|)|\verb| | \\
 \left[ x=0.6427876096865394\,i+0.766044443118978 , x=0.766044443118978-0.6427876096865394\,i , x=0.3420201433256684\,i-0.9396926207859084 , x=-0.3420201433256684\,i-0.9396926207859084 , x=0.984807753012208\,i+0.1736481776669304 , x=0.1736481776669304-0.984807753012208\,i \right] \verb| | $$
(%i3) time(%); 

$$ \tag{%o3} \left[157.777\right]$$