dp_gr_main
dp_gr_main(f)
は, f のグレブナ基底を計算する.
グレブナ基底は順序を変えるとその形が変わる. asir ではいままで順序の指定方法が
系統だっていなかった.
dp_gr_main の新しいインタフェースでは順序をある文法に従い指定する.
order : '[' orderElement { ',' orderElement } ']' orderElement : weightVec | builtinOrder weightVec : '[' weightElement { ',' weightElement } ']' builtiniOrder : '[' orderName ',' setOfVariables ']' weightElement : NUMBER | setOfVariables ',' NUMBER setOfVariables: V | range(V,V) orderName : @grlex | @glex | @lexここで
V
は 変数名, NUMBER
は整数をあわらす.
例1: v=[x,y,z,u,v], order=[[x,10,y,5,z,1],[@grlex,range(x,v)]]
は x
,y
,z
がそれぞれ weight 10, 5, 1 をもつ
順序で比較したあと, [x,y,z,u,v]
についての
graded reverse lexicographic order を tie-breaker として用いることを意味する.
参考書: B.Sturmfels: Gr\"obner Bases and Convex Polytopes (1995).
M.Saito, B.Sturmfels, N.Takayama:
Gr\"obner Deformations of Hypergeometric Differential Equations (2000).
[218] load("cyclic"); [219] V=vars(cyclic(4)); [c0,c1,c2,c3] [220]dp_gr_main(cyclic(4) | v=V, order=[[c0,10,c1,1],[c2,5],[@grlex,range(c0,c3)]]); [ 10 1 0 0 ] [ 0 0 5 0 ] [ R R R R ] [(-c3^6+c3^2)*c2^2+c3^4-1,c3^2*c2^3+c3^3*c2^2-c2-c3, (c3^4-1)*c1+c3^5-c3,(c2-c3)*c1+c3^4*c2^2+c3*c2-2*c3^2,-c1^2-2*c3*c1-c3^2, c0+c1+c2+c3] [1151] F=map(dp_ptod,katsura(4), vars(katsura(4))); [(1)*<<1,0,0,0,0>>+(2)*<<0,1,0,0,0>>+ ... ] [1152] dp_gr_main(F | order=[[range(x0,x3),1]]); [ 1 1 1 1 0 ] [ R R R R R ] [(47774098944)*<<0,0,0,0,13>>+ ... ] [1153] Opt=[["v",[x,y]], ["order",[[x,5,y,1]]]]; [[v,[x,y]],[order,[[x,5,y,1]]]] [1154] dp_gr_main([x^2+y^2-1,x*y-1] | option_list=Opt); [ 5 1 ] [ R R ] [-y^4+y^2-1,x+y^3-y]
ChangeLog
setOfVariables
の表現のために range オブジェクトが導入された.
Go to the first, previous, next, last section, table of contents.