Singular 3-0-2-1 from Oct 9 2006 (and newer) has the new command interpolation for exactly this purpose:
interpolation -------------
`*Syntax:*' `interpolation (' list`,' intvec `)' `*Type:*' ideal `*Purpose:*' `interpolation(l,v)' computes the reduced Groebner basis of the intersection of ideals l[1]^v[1],...,l[N]^v[N] by applying linear algebra methods. `*Assume:*' Every ideal from the list l must be a maximal ideal of a point and should have the following form: variable_1-coordinate_1,...,variable_n-coordinate_n, where n is the number of variables in the ring. The ring should be a polynomial ring over Zp or Q with global ordering. `*Example:*' ring r=0,(x,y),dp; ideal p_1=x,y; ideal p_2=x+1,y+1; ideal p_3=x+2,y-1; ideal p_4=x-1,y+2; ideal p_5=x-1,y-3; ideal p_6=x,y+3; ideal p_7=x+2,y; list l=p_1,p_2,p_3,p_4,p_5,p_6,p_7; intvec v=2,1,1,1,1,1,1; ideal j=interpolation(l,v); // generator of degree 3 gives the equation of the unique // singular cubic passing // through p_1,...,p_7 with singularity at p_1 j; ==> j[1]=-4x3-4x2y-2xy2+y3-8x2-4xy+3y2 ==> j[2]=-y4+8x2y+6xy2-2y3+10xy+3y2 ==> j[3]=-xy3+2x2y+xy2+4xy ==> j[4]=-2x2y2-2x2y-2xy2+y3-4xy+3y2 // computes values of generators of j at p_4, results should be 0 subst(j,x,1,y,-2); ==> _[1]=0 ==> _[2]=0 ==> _[3]=0 ==> _[4]=0 // computes values of derivatives d/dx of generators at (0,0) subst(diff(j,x),x,0,y,0); ==> _[1]=0 ==> _[2]=0 ==> _[3]=0 ==> _[4]=0
|
|