A comparison of splitting field calculators

方程式 f=0 の Gaolis 群の元の陽な表示(置換や同型写像)の取得には「分解体の定義多項式」と「 primitive element による f の根の多項式表示」の利用が古典的です.そこで今回は,幾つかの計算機代数システムについて,当該処理を担当する関数によるサン…

冪根拡大の新たな構成法

上の既約多項式 に対して,次が既知であるとします. (1) の 上の最小分解体 の定義多項式 (つまり, の primitive element の 上の最小多項式) (2) の各根 ( は に対応する変数) (3)各 についての (つまり, の根 )および の根の列に対する…

位数が大きな場合

これまでの RR シリーズでは,分解体の定義多項式,primitive element による入力多項式の根の表示, primitive element を根の 線型結合で表した際の係数を古典的な Trager の方法( http://www.cecm.sfu.ca/personal/monaganm/teaching/TopicsinCA17/Trage…

QE による検証

Mathematica の QE のデフォルトの議論領域は Reduce[Exists[x, a*x^2 == 1]] に対する出力 からも判るように複素数体であり,前回公開した Mathematica での実装の目的の 1 つは,この QE による結果の検証でした.Mathematica で前回の各関数の定義コード…

Mathematica 推参

オリジナルプログラムの元になったコードは Mathematica で書かれていますが,汎用性を重視した筆致なので,今回は https://reference.wolfram.com/language/tutorial/AlgebraicNumberFields.html.ja にある代数体関連の組み込み関数などを用いて書いてみま…

円分体の利用

RR シリーズでは冪根が代数的整数となるよう変数の導入時に係数を調整しています.これは algebraic モードへの適用を念頭に置いたものですが,1 の原始冪乗根の中間体上の定義式は必ずしも monic でないため,RR6m では,tellrat への入力の前に線形変換を…

inv 再考

置換の表現には,リストタイプと巡回タイプとがあり,それぞれ積,逆元の実装に適していますが,今回のコードは根の置換という出自からリストタイプを利用しており,逆元の実装に工夫の余地がありました.現在公開中の inv は inv(A):=map(second,sort(map("…

GCD の利用

現在のオリジナルプログラムや RR6 では,分解体の primitive element A の中間体 K(w,a) 上の定義式が Lagrange resolvents の和となることを利用していますが,http://ehito.hatenablog.com/entry/2019/03/02/163023 で述べたように,A の K(w,a) 上の定義…

微調整

http://ehito.hatenablog.com/entry/2019/02/24/234939 の実行例の timer_info() を見ると [[total,0.001663981382026495*sec,5586,9.295*sec,0], [mp,0.214*sec,15,3.21*sec,0], [nGG,0.1895333333333333*sec,15,2.843*sec,0], [RR6,0.167*sec,15,2.505*sec…

実行例

円分多項式の例です. (%i9) ROU(x,N):=rat(apply("*",makelist((x^(N/s)-1)^moebius(s),s,listify(divisors(N)))))$ Evaluation took 0.0000 seconds (0.0000 elapsed) using 0 bytes. (%i10) for i:3 thru 22 do print([p:ROU(x,i),mp(p),RR6(cs(nGG(DA)))…

4.添加する元の定義式,および,5.分解体の相対定義式(解説)

現在のオリジナルプログラムでは,すべての Lagrange Resolvent の冪乗,開冪,和を取って,表題の2つを算出しています.一方,http://ehito.hatenablog.com/entry/20190123/1548255005 で提案した方法は,分解体の(基礎体 K 上の)定義式 P,新たに添加す…

4.添加する元の定義式,および,5.分解体の相対定義式

取り敢えず,コードと例を記します.解説はまた後日. load("grobner")$ factor2list(f0):=block([f:num(f0)],if op(f)="-" then args(-f) elseif op(f)="*" then args(f) else [f])$ rrem(S,T):=block([U:S],map(lambda([s],U:remainder(U,s[1],s[2])),T),U…

3.組成列

組成列の計算については,http://ehito.hatenablog.com/entry/2019/02/13/200937 で述べましたが,mnsg に積閉の必要条件などを加え,やや速くなっています.cs の引数は nGG の出力,出力は先述の通りです. mul(A,B):=map(lambda([s],A[s]),B)$ inv(A):=ma…

2.Galois 群

現在のオリジナルプログラムでは,Galois 群の元と分解体の絶対定義式の根との対応の把握に若干の検索を行っています.これに対して,下記の nGG では,1.で得た RA における A が絶対定義式 DA の任意の根であるという点に着目して,それらの根と「入力 p…

1.分解体の絶対定義多項式

今回のオリジナルプログラム https://github.com/YasuakiHonda/GaloisGroupSolver が行う主な処理は 1.分解体の絶対定義式 2.Galois 群 3.組成列 4.添加する元の定義式 5.分解体の相対定義式 の算出です.種々の方法の比較の意味も含め,私家版を…

正規部分群の構成

今回のオリジナルプログラムでは各元の一点集合の conjugate closure から極大正規部分群を選んでいますが,それが必ずしも正しい結果を与えないことも,例えば G:[[1,2,3,4,5,6],[1,2,3,4,6,5],[1,2,4,3,5,6],[1,2,4,3,6,5], [2,1,3,4,5,6],[2,1,3,4,6,5],[…

冪乗に分解できるタイプ

今回のオリジナルプログラムでは,例えば,SolveSolvable(x^2-2)$ の根の表示には [[alpha[1],alpha[1]^2-8]] が現れるので,SolveSolvable(x^2-8)$ と問うと,[[alpha[1],alpha[1]^2-32]] が現れるので,...となってしまいます.プログラムの趣意に反す…

Groebner基底の利用(その1)

jurupapaさん( http://maxima.hatenablog.jp/ )が公開しておられる「可解な方程式を冪根で解く」プログラムの処理の一部に Groebner 基底を用いてみました.例は以下のものです. http://maxima.hatenablog.jp/entry/2018/10/09/005917 http://maxima.hate…

CAD-QE on PARI+Singular(実行例)

同じ例を開発中の PARI+Singular 上での CAD-QE で処理すると... ? tst11Sv2s01([ex,ex],[a,b,c,x,y],and,"x^2+y^2=1,a*x+b*y+c=0",2*7);Ans() [y,2] [x,4] [c,6] [b,4] [a,1] var.:a b c x y *** connecting adjacent 40/1608 cells. 1[a < [a,1],true,[…

QEPCAD Version B 1.72

https://www.usna.edu/Users/cs/wcbrown/qepcad/B/QEPCAD.html 上記の通り,更新されていましたので,インストールスクリプトをUPします. export CAS=~/CAS mkdir $CAS export qe=$CAS/qesource export saclib=$CAS/saclib2.2.7 cd $CAS wget https://www.u…

CAD-QE on Risa/Asir(特徴)

CAD の要は,projection と代数体上での根の分離です.昨年の maxima における実装は,Lazard method と複素数値根のクラスタリングのための pscs の計算(Mathematica 似)との併用というスタイルであり,それは primitive elements の計算(squarefree nor…

CAD-QE on Risa/Asir(使用例)

先のソースコードを cadqe.rr として保存,Asir を起動,それをロードします. asir -quiet load("cadqe.rr")$ 幾つかのメッセージが表示された後,入力待ちになるので help("cadqe")$ と入力すると,次のような使用例が表示されます. cadqe([ex],[a,b,c,x]…

CAD-QE on Risa/Asir(ソースコード)

Risa/Asir 上に CAD ベースの RCF-QE を実装しましたので,ソースコードと使用例を公開します.環境は,Core i5-3210M 2.50GHz/8GB/Ubuntu 14.04,Risa/Asir Version 20170917 (Kobe Distribution),OpenXM/Risa/Asir-Contrib $Revision: 1.143 $ (20170210)…

REDUCE 更新

https://sourceforge.net/projects/reduce-algebra/files/snapshot_2017-09-22インストールスクリプト. svn co http://svn.code.sf.net/p/reduce-algebra/code/trunk reduce-algebra cd ./reduce-algebra ./configure --with-psl make sudo apt-get install…

Wolfram Open Cloud

http://blog.wolfram.com/2016/01/28/launching-the-wolfram-open-cloud-open-access-to-the-wolfram-language/ での告知の通り,Wolfram Open Cloud として,Mathematica が https://sandbox.open.wolframcloud.com/ などで利用可能になっています.

実行例(5)

入力は,主に http://www.cs.bath.ac.uk/~djw42/triangular/examplebank.pdf の Examples from [CMXY09](https://arxiv.org/pdf/0903.5221.pdf)から選びました.環境は,Core i5-3210M 2.50GHz/8GB/Ubuntu 14.04/Maxima 5.40.0/SBCL 1.3.20 です.コントロ…

Lazard's method(その1)

1994年(Unpublished manuscript は 1990年)に Daniel Lazard が発表した(https://link.springer.com/chapter/10.1007/978-1-4612-2628-4_29)CAD の構成方法は,一般化された根の重複度を保つ分割によるもので,その projection set(主係数,定数項,判…

結果の検証

今回の QE ツールにおける入出力(に対応した論理式)の等価性の検証は,いつもお世話になっている qepmax(https://github.com/YasuakiHonda/qepmax)を介して QEPCAD B で行なっています.具体的には,次のように出力のリストを論理結合に変換する関数 F2G…

実行例(4)

(%i1) (qvpeds ([],[a,b,c,d],0,h1,r11,0 ), qe( bfpcad(ext( '( a^3+b^2-1=0 and b^3+c^2-1=0 and c^3+d^2-1=0 and d^3+a^2-1=0 ) ))) ); Evaluation took 14.3200 seconds (16.7700 elapsed) using 2101.559 MB. (%o1) [[a = root(a,1),b = root(b^2+a^3-1…

実行例(3)

CGS-EQ の深作亮也先生(東京理科大)のサイト http://www.rs.tus.ac.jp/fukasaku/software/CGSQE-20160509/benchmark/computation-time/ http://www.rs.tus.ac.jp/fukasaku/software/CGSQE-20160509/benchmark/input/04/log/出典 http://citeseerx.ist.psu.…