|
A.1.1 Basic programming
We show in the example below the following:
-
define the ring
R of characteristic 32003, variables x,y,z , monomial
ordering dp (implementing F_32003[x,y,z])
-
list the information about
R by typing its name
-
check the order of the variables
-
define the integers
a,b,c,t
-
define a polynomial
f (depending on a,b,c,t ) and display it
-
define the jacobian ideal
i of f
-
compute a Groebner basis of
i
-
compute the dimension of the algebraic set defined by
i (requires
the computation of a Groebner basis)
-
create and display a string in order to comment the result (text between
quotes " "; is a 'string')
-
load a library (see primdec_lib)
-
compute a primary decomposition for
i and assign the result to a
list L (which is a list of lists of ideals)
-
display the number of primary components and the first primary and prime
components (entries of the list L[1])
-
implement the localization of F_32003[x,y,z] at the homogeneous maximal
ideal (generated by x,y,z) by defining a ring with local monomial
ordering (
ds in place of dp )
-
map i to this ring (see imap) - we may use the same name
i ,
since ideals are ring dependent data
-
compute the local dimension of the algebraic set defined by
i at
the origin (= dimension of the ideal generated by i in the localization)
-
compute the local dimension of the algebraic set defined by
i at
the point (-2000,-6961,-7944) (by applying a linear coordinate transformation)
For a more basic introduction to programming in SINGULAR, we refer
to Getting started.
| ring R = 32003,(x,y,z),dp;
R;
==> // coefficients: ZZ/32003
==> // number of vars : 3
==> // block 1 : ordering dp
==> // : names x y z
==> // block 2 : ordering C
x > y;
==> 1
y > z;
==> 1
int a,b,c,t = 1,2,-1,4;
poly f = a*x3+b*xy3-c*xz3+t*xy2z2;
f;
==> 4xy2z2+2xy3+xz3+x3
ideal i = jacob(f); // Jacobian Ideal of f
ideal si = std(i); // compute Groebner basis
int dimi = dim(si);
string s = "The dimension of V(i) is "+string(dimi)+".";
s;
==> The dimension of V(i) is 1.
LIB "primdec.lib"; // load library primdec.lib
list L = primdecGTZ(i);
size(L); // number of prime components
==> 6
L[1][1]; // first primary component
==> _[1]=2y2z2+y3-16001z3
==> _[2]=x
L[1][2]; // corresponding prime component
==> _[1]=2y2z2+y3-16001z3
==> _[2]=x
ring Rloc = 32003,(x,y,z),ds; // ds = local monomial ordering
ideal i = imap(R,i);
dim(std(i));
==> 1
map phi = R, x-2000, y-6961, z-7944;
dim(std(phi(i)));
==> 0
|
|