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---courbes param\'etr\'ees---------------------------------*/ XT:=t*(t^2-1)^2;YT:=t^2+1; eq:=resultant(XT-x,YT-y,t); /* On remarque que si YT est reel, alors t^2 aussi, donc si XT est aussi reel,£ XT/(t^2-1) aussi donc t aussi. donc si (XT,YT) est une solution reelle de£ l'equation cartesienne trouvee, alors elle elle provient d'un parametre reel.*/ purge(x,y,u,t); dessin1:=plotparam(XT+I*YT,t=-2..2): dessin2:=implicitplot(eq=0,x=-5..5,y=-5..5,xstep=0.01,ystep=0.01): /* Pour la fraction rationnelle trigonom\'etrique, on exprime x et y en fonction£d'un fraction rationnelle en u=tan(t/2), puis on elimine u avec le resultant.*/ F1:=normal(halftan((cos(t)+1)/(sin(t)+2)));#on exprime tout avec tan(t/2) F1u:=subst(F1,tan(t/2)=u); F2:=normal(halftan((sin(t)^3)/(sin(t)-3))); F2u:=subst(F2,tan(t/2)=u); eq:=resultant(denom(F1u)*x-numer(F1u),denom(F2u)*y-numer(F2u),u); dessinpara:=plotparam([F1,F2],t=-2*Pi..2*Pi): dessinimpli:=implicitplot(eq,x=0..2,y=-1..1,ystep=0.01):#on ajuste un peu pour que implicitplot s'en sorte. /* ----------------------------------------Exercice---Intersections et projection--------------------------------------*/ purge(x,y); C1:=x*y-4;C2:=y^2-(x-3)*(x^2-16); d1:=implicitplot(C1,x=-7..7,y=-8..8,color=red+line_width_2): d2:=implicitplot(C2,x=-7..7,y=-8..8,color=blue+line_width_2,xstep=0.01,ystep=0.01): eqx:=resultant(C1,C2,y); #On elimine y /* Astuce: pour ne pas passer en flottants via le menu deroulant, on lui donne une£extention de corps sous forme d'un flottant.*/ evalf(factor(eqx,1.1),10); # on obtient 5 points reels. /* c'est de degre 5 car le centre de projection (0,1,0) est solution.*/ /* on parametre la droite passant par les points [1,1] et [0,y] grace au vecteur£ directeur (-1,y-1): */ M:=[1,1]+t*[-1,y-1]; P1:=unapply(C1,x,y)(op(M)); P2:=unapply(C2,x,y)(op(M)); /* On cherche l'equation de la projection de l'intersection depuis (1,1) sur£ Oy. Cette equation est encore de degre 5. Pourtant (1,1) n'est pas£ solution. Mais on a pris toutes les droites passant par (1,1) sauf (x=1) (ie£ x=z en projectif) mais le point (0,1,0) est solution de C1 inter C2, et il£ est sur cette droite. On a donc perdu la ou les solutions qui sont sur la£ droite retir\'ee. */ resultant(P1,P2,t); resultant(subs(y=-2*x+1,C1),subs(y=-2*x+1,C2),x); #il n'est pas nul gcd((subs(y=-2*x+1,C1),subs(y=-2*x+1,C2),x)); #autre methode le pgcd est constant. /* On a donc verifie que la droite d'equation y=-2x+1 (ie la parallele a y=-2x£passant par (1,1) ne rencontrait pas C1 inter C2 meme sur un corps£algebriquement clos.)*/ /* NB: A=(1,1) n'est pas sur la droite y=-2x. Bt=(t,-2t) eq param de la droite£ (ABt): x=1+l(t-1),y:=1+l(-2t-1)*/ C1t:=subs(x=1+l*(t-1),y=1+l*(-2*t-1),C1); C2t:=subs(x=1+l*(t-1),y=1+l*(-2*t-1),C2); /* la projection est donn\'ee par les points de coordonn\'ee (t,-2t) o\`u t racine£ de. De plus, on a verifie que la parallele a la droite y=-2x passant par (1,1)£ ne contenait aucune solutions de C1 inter C2, ca ne pose donc pas de problemes£ de l'avoir retiree.*/ p2:=resultant(C1t,C2t,l); /* car le point (1,-2) est l'intersection de y=-2x avec la droite passant par (1,1)£et le point a l'infini de Oy. Mais le point a l'infini de Oy etait bien dans£C1 inter C2. */ sol:=solve(approx(p2),t);#pour basculer en flottants on fait approx. pi1:=seq(point(sol[i]-2*I*sol[i],color=black+point_width_3),i=1..6): #les points sur la droite y=-2x di1:=seq((droite(1+I,pi1[i],color=green)),i=1..6): # les 6 droites: purge(x,y); C1:=(x-2)^2+y^2-4; C2:=y^2-(x-3)*(x^2-16); d1:=implicitplot(C1,x=-1..5,y=-3..3,color=red): d2:=implicitplot(C2,x=-5..8,y=-8..8,color=blue): (d1,d2); eqx:=resultant(C1,C2,y); #On elimine y evalf(factor(eqx,1.1),10); # on obtient 5 points reels. factor(eqx); #On voit qu'il faut introduire le discriminant. factor(eqx,sqrt(13)); eqred:=gcd(eqx,diff(eqx,x)); rac:=[solve(approx(eqred),x)]; /* On constate qu'il y a un point qui ne semble pas correspondre a une projection£d'un point d'instersection. Nous allons l'interpr\'eter maintenant.*/ (d1,d2,seq(point(i,color=black+point_width_3),i=rac)): solx:=[solve(eqred,x)]; soly:=seq(gcd(subs(x=solx[i],C1),subs(x=solx[i],C2)),i=1..3); /* les ordonn\'ees des points d'abscisse solx[i] sont:*/ L2:=seq(cSolve(soly[i],y),i=1..3): sort([L2],(u,v)-> real(u+I*u*0.3)diff(q,x[i],x[j]));#le determinant est bien nul pour u=4. purge(u); DS1:=implicitplot(S1,x,y,z,color=13+rempli): purge(t); u:=3; M:=[5,5,10]+t*[x-5,y-5,0-10];#la droite passant par [5,5,10] et [x,y,0] proj2:=resultant(unapply(S1,x,y,z)(op(M)),unapply(S2,x,y,z)(op(M)),t); /* La projection pour u=3 depuis (5,5,10) a brise la sym\'etrie que l'on avait en£projetant selon Oz sur les solutions du systeme. On n'a donc plus le carr\'e£d'une conique. D'autre part, bien que l'on voie 2 nappes r\'eelles, elles ne£ressemblent pas du tout a des coniques ni a des droites, l'equation de degre 4£est donc irreductible sur les complexes.*/ implicitplot(proj2,x=-2..2,y=-2..2,xstep=0.01): /* on cherche une quadrique degeneree contenant S3 inter S4 */ S3:=7*x^2+4*x*y+4*x*z+5*y^2+12*y*z+6*z^2+1; S4:=-x^2-2*x*y-2*x*z-4*y^2-6*y*z-3*z^2-2; S3h:=normal(x[4]^2*unapply(S3,x,y,z)(x[1]/x[4],x[2]/x[4],x[3]/x[4])); S4h:=normal(x[4]^2*unapply(S4,x,y,z)(x[1]/x[4],x[2]/x[4],x[3]/x[4])); MS3:=matrix(4,4,(i,j)->diff(S3h,x[i],x[j])); MS4:=matrix(4,4,(i,j)->diff(S4h,x[i],x[j])); factor(det(l1*MS3+l2*MS4));#les solutions sont (l1,l2) =(1,-1),(2,1),(1,2),(2,19) /* Donc les 4 noyaux suivants donnent 4 points de l'espace projectif de dimension£3 tels que S3 inter S4 soit sur un cone de degre 2 de sommet ce point. cette£intersection se projette donc en une conique double depuis ces points. Il y en£a 3 a l'infini et le point (0,0).£ On trouve donc les 3 projections selon les vecteurs (0,1,-1),(0,0,-1),(3,0,-1)£ et la projection centrale de centre (0,0,0). Essayons d'eliminer z avec la£ projections selon (0,1,-1). */ ker(MS3-MS4);ker(2*MS3+MS4);ker(MS3+2*MS4);ker(2*MS3+19*MS4); M:=[x,y,0]+t*[0,1,-1]; proj3:=resultant(unapply(S3,x,y,z)(op(M)),unapply(S4,x,y,z)(op(M)),t); factor(proj3);#c'est bien une conique double. /* -----------------------------------------------Exercice-----------------------------------*/ G:=t^2*(x^2+y^2-1)+t*(x*y+y^2-x^2)+(x^2+2*y^2-1); dG:=diff(G,t); eq:=resultant(G,dG,t); factor(eq); /* c'est divisible par le coefficient de t^2 dans G! En effet, on a calcule un£resultant entre un polyn\^ome de degre 2 et un autre de degre 1. Mais en un point£ou x^2+y^2=1, le degre de ces polynomes chute de 1, et l'on aurait donc du£prendre pour un tel point une formule de resultant pour degre inferieur. On a£donc rajoute des solution a notre probleme. l'equation de l'enveloppe est donc:*/ eqenv:=normal(eq/(coeff(G,t^2))); Gt:=unapply(G,t); dGt:=unapply(diff(G,t),t); envel:=implicitplot(eqenv,x=-7..7,y=-7..7,xstep=0.01,ystep=0.01,affichage=blue+line_width_3):