monitor("lezione17-03-21.txt","io"); /////////////////////////////////////////////////////// // Punti singolari di curve, esempio [CLO, p. 146] // /////////////////////////////////////////////////////// ring R = 0, (x,y), lp; option(redSB); poly f = -1156+688*x^2-191*x^4+16*x^6+544*y+30*x^2*y-40*x^4*y+225*y^2 -96*x^2*y^2+16*x^4*y^2-136*y^3-32*x^2*y^3+16*y^4; // trovare i punti singolari della curva affina piana V(f) ideal F = f; ideal J = jacob(f); ideal I = F + J; // V(I) = unione dei punti singolari, il "luogo singolare" // oppure: LIB "sing.lib"; ideal I = slocus(F); ideal sI = std(I); size(sI); // dimensione del luogo singolare: dim(sI); sI; factorize(sI[1]); // per trovare le ordinate dei punti singolari diff(_[1][2],y); // derivata del secondo fattore rispetto ad y _/192; // dividiamo la derivata per 192 // Poiche' la derivata del secondo fattore di sI[1] e' non negativa, // il secondo fattore di sI[1] ha una sola radice reale. ////////////////////////////////////////////////// // Altro metodo: utilizzare il comando solve. // ////////////////////////////////////////////////// LIB "solve.lib"; solve(sI,6,0); // Ci sono 7 punti singolari di cui (i primi) 3 reali. ////////////////////////////////////////////////////////// // Altro metodo ancora: utilizzare il comando slocus. // ////////////////////////////////////////////////////////// LIB "sing.lib"; // si ricordi che F = ideale generato da f che definisce la curva // V(slocus(F)) e' il luogo singolare della curva solve(slocus(F),6,0); monitor(""); quit;