Hilbert


with(grobner):

#Gjor om Grobner-basis til liste over ledende monomer
LeadMons:=(Basis,Vars)->
 map(((U,Vars)->op(2,leadmon(U,Vars))),Basis,Vars);

#LCM som bevarer koeffisienten
comdiv:=(u,v)->u*v/gcd(u,v);

#poly-leddvisLCM(poly,mono)
multicomdiv:=(poly,mono)->
 if type(poly,`+`) then poly-map(comdiv,0+poly,mono)
 else poly-comdiv(poly,mono)
 fi;

#Beregner sum_I (-1)^I lcm_I(p_i) / prod_i (1-x_i)
MonoBasis:=proc(Basis,Vars)
local i,p;
p:=1;
for i from 1 to nops(Basis) do;
 p:=multicomdiv(p,op(2,leadmon(op(i,Basis),Vars)));
od;
for i from 1 to nops(Vars) do;
 p:=p/(1-op(i,Vars));
od;
RETURN(p);
end;


Tilbake til hjemmesiden

Created 23 February 1996 by Einar Andreas Rødland: einara@math.uio.no