restart;maple_mode(1);cas_setup(0,0,0,1,0,1e-10,10,[1,50,0,25],0,0,0); #radians,pas de cmplx, pas de Sqrt /* -----------------------------------------------Exercice-----------------------------------*/ /* Essayons (1,1) (1,0) (2,1). C'est l'ensemble des points annulant les elements de I.*/ q1:=(x+y-1)*(y-1);q2:=(x-y-1)*(x-1);q3:=(x-1)*(y-1); #Les coniques contenant les 3 points. I1:=[q1,q2,q3]; #l'ideal des 3 points. I2:=[q1^2,q1*q2,q2^2,q3^2,q2*q3,q1*q3]; #le carr\'e de l'id\'eal I1. P:=normal(([1,2,-3,0,-5,6]*transpose(I2))[1]-q2^2); factor(P); /* P est irreductible sur Q, mais on ne le sait pas sur C. En revanche, le£dessin suivant ne ressemble ni a la reunion de 2 coniques, ni a la reunion£d'une droite et d'une cubique. P est donc bien irreductible sur C. */ DP:=implicitplot(P,x=-1..4,y=-4..4,xstep=0.01,ystep=0.01,couleur=blue+line_width_3): /* On trouve 2 element de I1 de degre 2 sans terme constant.*/ C1:=q1-q2; C2:=q1-q3; /* Une conique passant par (0,0) et les 3 autres points coupe la quartique en£(0,0) et deux fois les 3 autres points. Ceci se voit sur le resultant. IL y a£un facteur de degre 5 qui ne depend pas de la conique passant par ces 4 points,£et dont les racines sont les projections des 4 points avec multiplicit\'ees. */ factor(gcd(resultant(P,C1,y),resultant(P,C2,y))); quo(resultant(P,C1,y),x*(x-2)^2*(x-1)^4,x); quo(resultant(P,C2,y),x*(x-2)^2*(x-1)^4,x); dernierfacteurx:=quo(resultant(P,C1+t*C2,y),x*(x-2)^2*(x-1)^4,x); xt:=solve(dernierfacteurx,x); /* On peut ne pas avoir de chance avec les 2 coniques choisies, ici le pgcd est£ de degre 8 , et pas 7,*/ factor(gcd(resultant(P,C1,x),resultant(P,C2,x))); /* Mais en prenant une combinaison lineaire generale on voit le facteur£correspondant aux 1+3*2 racines deja connues, On simplifie donc par ce polynome£de degre 7. */ factor(resultant(P,C1+t*C2,x)); dernierfacteury:=quo(resultant(P,C1+t*C2,x),y^3*(y-1)^4,y); yt:=solve(dernierfacteury,y); /* On verifie graphiquement la parametrisation.*/ paramplot(xt+I*yt,t=-75..75,tstep=0.01); /* ----------------------------Exercice---------------------------------------------*/ P:=x^4+x+1; A:=1/d*add(a[i]*x^i,i=0..degree(P)-1); H:=d*A; M:=matrix([seq([seq(coeff(rem(A*x^i,P,x),x,j),i=0..degree(P)-1)],j=0..degree(P)-1)]); M:=matrix(4,4,(i,j)->coeff(rem(A*x^(j-1),P),x,i-1)); #c'est plus simple cp:=charpoly(M,x): res:=resultant(subs(x=y,P),d*x-subs(x=y,H),y): #attention re est un mot reserve /* le poly caract est 1/d^(deg P) * resultant: verification:*/ normal(d^(degree(P))*cp-res); #ils sont bien egaux P:=x^4+1; A:=x^2:H:=A; M:=matrix([seq([seq(coeff(rem(A*x^i,P,x),x,j),i=0..degree(P)-1)],j=0..degree(P)-1)]); cp:=charpoly(M,x): res:=resultant(subs(x=y,P),x-subs(x=y,H),y): /* le poly caract est 1/d^(deg P) * resultant: verification:*/ normal(cp-res); /* le poly min est une puissance de:*/ gcd(res,diff(res,x)); pmin(M,x);#ils sont egaux.