2.3.4 Change of rings
To calculate the local Milnor number we have to do the calculation with the
same commands in a ring with local ordering.
We can define the localization of the polynomial ring at the origin
(see Polynomial data, and Mathematical background).
The ordering directly affects the standard basis which will be calculated.
Fetching the polynomial defined in the ring
r into this new ring,
helps us to avoid retyping previous input.
poly f = fetch(r,f);
fetch we can use the function
which is more general but less efficient.
The most general way to fetch data from one ring to another is to use maps,
this will be explained in map.
In this ring the terms are ordered by increasing exponents. The local Milnor
number is now
This shows that
f has outside the origin in affine 3-space
singularities with local Milnor number adding up to
.Using global and local orderings as above is a convenient way to check
whether a variety has singularities outside the origin.
jacob applied twice gives the Hessian of
f, in our example
a 3x3 - matrix.
matrix H = jacob(jacob(f));
print command displays the matrix in a nicer format.
==> 6x+6xy2-2y3,6x2y-6xy2, 0,
==> 6x2y-6xy2, 6y+2x3-6x2y,0,
==> 0, 0, 2
We may calculate the determinant and (the ideal generated by all) minors of
a given size.
minor(H,1); // the 1x1 - minors
The algorithm of the standard basis computation may be
affected by the command
option. For example, a reduced standard
basis of the ideal generated by the
-minorsof H is obtained in the following way:
This shows that 1 is contained in the ideal of the
-minors,hence the corresponding variety is empty.