[b35b93] | 1 | LIB "elim.lib"; |
---|
| 2 | LIB "sing.lib"; |
---|
| 3 | // Affine polar curve: |
---|
| 4 | ring R = 0,(x,z,t),dp; // global ordering dp |
---|
| 5 | poly f = z5+xz3+x2-tz6; |
---|
| 6 | dim_slocus(f); // dimension of singular locus |
---|
| 7 | ideal j = diff(f,x),diff(f,z); |
---|
| 8 | dim(std(j)); // dim V(j) |
---|
| 9 | dim(std(j+ideal(f))); // V(j,f) also 1-dimensional |
---|
| 10 | // j defines a curve, but to get the polar curve we must remove the |
---|
| 11 | // branches contained in f=0 (they exist since dim V(j,f) = 1). This |
---|
| 12 | // gives the polar curve set theoretically. But for the structure we |
---|
| 13 | // may take either j:f or j:f^k for k sufficiently large. The first is |
---|
| 14 | // just the ideal quotient, the second the iterated ideal quotient |
---|
| 15 | // or saturation. In our case both is the same. |
---|
| 16 | ideal q = quotient(j,ideal(f)); // ideal quotient |
---|
| 17 | ideal qsat = sat(j,f)[1]; // saturation, proc from elim.lib |
---|
| 18 | ideal sq = std(q); |
---|
| 19 | dim(sq); |
---|
| 20 | // 1-dimensional, hence |
---|
| 21 | // q defines the affine polar curve |
---|
| 22 | // |
---|
| 23 | // to check that q and qsat are the same, we show both inclusions, i.e. |
---|
| 24 | // both reductions must give the 0-ideal |
---|
| 25 | size(reduce(qsat,sq)); |
---|
| 26 | size(reduce(q,std(qsat))); |
---|
| 27 | qsat; |
---|
| 28 | // We see that the affine polar curve does not pass through the origin, |
---|
| 29 | // hence we expect the local polar "curve" to be empty |
---|
| 30 | // ------------------------------------------------ |
---|
| 31 | // Local polar curve: |
---|
| 32 | ring r = 0,(x,z,t),ds; // local ordering ds |
---|
| 33 | poly f = z5+xz3+x2-tz6; |
---|
| 34 | dim_slocus(f); // dimension of singular locus |
---|
| 35 | ideal j = diff(f,x),diff(f,z); |
---|
| 36 | dim(std(j)); // V(j) 1-dimensional |
---|
| 37 | dim(std(j+ideal(f))); // V(j,f) also 1-dimensional |
---|
| 38 | ideal q = quotient(j,ideal(f)); // ideal quotient |
---|
| 39 | q; |
---|
| 40 | // The local polar "curve" is empty, i.e V(j) is contained in V(f) |
---|
| 41 | // ------------------------------------------------ |
---|
| 42 | // Projective polar curve: (we need "sing.lib" and "elim.lib") |
---|
| 43 | ring P = 0,(x,z,t,y),dp; // global ordering dp |
---|
| 44 | poly f = z5+xz3+x2-tz6; |
---|
| 45 | f = z5y+xz3y2+x2y4-tz6; // homogenize f with respect to y |
---|
| 46 | // but consider t as parameter |
---|
| 47 | dim_slocus(f); // projective 1-dimensional singular locus |
---|
| 48 | ideal j = diff(f,x),diff(f,z); |
---|
| 49 | dim(std(j)); // V(j), projective 1-dimensional |
---|
| 50 | dim(std(j+ideal(f))); // V(j,f) also projective 1-dimensional |
---|
| 51 | ideal q = quotient(j,ideal(f)); |
---|
| 52 | ideal qsat = sat(j,f)[1]; // saturation, proc from elim.lib |
---|
| 53 | dim(std(qsat)); |
---|
| 54 | // projective 1-dimensional, hence q and/or qsat define the projective |
---|
| 55 | // polar curve. In this case, q and qsat are not the same, we needed |
---|
| 56 | // 2 quotients. |
---|
| 57 | // Let us check both reductions: |
---|
| 58 | size(reduce(qsat,std(q))); |
---|
| 59 | size(reduce(q,std(qsat))); |
---|
| 60 | // Hence q is contained in qsat but not conversely |
---|
| 61 | q; |
---|
| 62 | qsat; |
---|
| 63 | // |
---|
| 64 | // Now consider again the affine polar curve, |
---|
| 65 | // homogenize it with respect to y (deg t=0) and compare: |
---|
| 66 | // affine polar curve: |
---|
| 67 | ideal qa = 12zt+3z-10,5z2+12xt+3x,-144xt2-72xt-9x-50z; |
---|
| 68 | // homogenized: |
---|
| 69 | ideal qh = 12zt+3z-10y,5z2+12xyt+3xy,-144xt2-72xt-9x-50z; |
---|
| 70 | size(reduce(qh,std(qsat))); |
---|
| 71 | size(reduce(qsat,std(qh))); |
---|
| 72 | // both ideals coincide |
---|
[46976a6] | 73 | LIB "tst.lib";tst_status(1);$ |
---|