restart;maple_mode(0);cas_setup(0,0,0,1,0,1e-10,10,[1,50,0,25],0,0,0); #radians,pas de cmplx, pas de Sqrt // fltk N4xcas23Comment_Multiline_InputE 20 599 916 28 12 --------------------------------------------Exercice---courbes param\'etr\'ees--------------------------------- XT:=t*(t^2-1)^2;YT:=t^2+1; eq:=resultant(XT-x,YT-y,t); // fltk N4xcas23Comment_Multiline_InputE 20 599 916 57 12 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); // fltk N4xcas23Comment_Multiline_InputE 20 599 916 42 12 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. // fltk N4xcas23Comment_Multiline_InputE 20 599 916 28 12 ----------------------------Exercice--------------------------------------------- l:=5^(1/3)+sqrt(5); P:=resultant((x-y)^3-5,y^2-5,y); if(simplify(unapply(P,x)(l))==0) then print("c'est bon") fi; // fltk 7Fl_Tile 27 324 909 101 12 [ // fltk N4xcas7EditeurE 27 324 909 100 12 100 , pmsomme:=proc(A,B) local fA,fB; fA:=unapply(A,x)(x-y); fB:=unapply(B,x)(y); resultant(fA,fB,y); end; l:=5^(1/3)+sqrt(2)+5^(1/7)+1+2^(1/5); P1:=pmsomme(x^3-5,x^2-2); P2:=pmsomme(P1,x^7-5); P3:=pmsomme(P2,(x-1)^5-2); nops(factor(P3)); simplify(unapply(P3,x)(l)); // ca doit etre nul // fltk N4xcas23Comment_Multiline_InputE 20 599 916 42 12 -----------------------------------------------------------------------------£ Exercice: Contour apparent B:=(x-1)^2+(y-2)^2+(z-4)^2-4; M:=[x,y,0]+t*[1,0,2];//un rayon de soleil // fltk N4xcas23Comment_Multiline_InputE 20 599 916 42 12 On cherche les (x,y) tels que le rayon du soleil M coupe B avec une racine£double en t. C'est le discriminant. P1:=unapply(B,x,y,z)(op(M)); P2:=diff(P1,t); EQ:=resultant(P1,P2,t); D1:=implicitplot(B,[x=-5..5,y=-5..5,z=0..8],display=magenta+rempli):; D3:=plan(z=0,couleur=yellow):; // fltk N4xcas23Comment_Multiline_InputE 20 599 916 57 12 Pn a trouve l'equation de la projection. C'est aussi l'equation du cylindre£ dans le repere (i,j,[1,0,2]). On trouve donc l'equation du cylindre dans£ (i,j,k). Si P est la matrice de passage on a: P:=[[1,0,1],[0,1,0],[0,0,2]]; // fltk N4xcas23Comment_Multiline_InputE 20 599 916 28 12 les coordonnes dans (i,j,k) en fonction de celles dans (i,j,[1,0,2]) P^(-1)*[x,y,z]; CYL:=unapply(EQ,x)(x-z/2); // l'equation du cylindre D2:=implicitplot(CYL,[x=-5..5,y=-5..5,z=0..10],display=green+line_width_3):; D3,D1,D2; // fltk N4xcas23Comment_Multiline_InputE 20 599 916 28 12 ----------------------------------------------------------------------------- // fltk N4xcas23Comment_Multiline_InputE 20 599 916 28 12 ----------------------------------------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):; (d2,d1); eqx:=resultant(C1,C2,y); //On elimine y // fltk N4xcas23Comment_Multiline_InputE 20 599 916 42 12 Astuce: pour ne pas passer en flottants via le menu deroulant, on lui donne une£extention de corps sous forme d'un flottant. Mais il vaut mieux utiliser approx. factor(eqx,1.1); // on obtient 5 points reels. factor(approx(eqx)); // on obtient 5 points reels. // fltk N4xcas23Comment_Multiline_InputE 20 599 916 28 12 c'est de degre 5 car le centre de projection (0,1,0) est solution. // fltk N4xcas23Comment_Multiline_InputE 20 599 916 42 12 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)); // fltk N4xcas23Comment_Multiline_InputE 20 599 916 100 12 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(subst(C1,y=-2*x+1),subst(C2,y=-2*x+1),x); //il n'est pas nul gcd((subst(C1,y=-2*x+1),subst(C2,y=-2*x+1),x)); //autre methode le pgcd est constant. // fltk N4xcas23Comment_Multiline_InputE 20 599 916 57 12 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. // fltk N4xcas23Comment_Multiline_InputE 20 599 916 42 12 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:=unapply(C1,x,y)(1+l*(t-1),1+l*(-2*t-1)); C2t:=unapply(C2,x,y)(1+l*(t-1),1+l*(-2*t-1)); // fltk N4xcas23Comment_Multiline_InputE 20 599 916 71 12 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); // fltk N4xcas23Comment_Multiline_InputE 20 599 916 57 12 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[ii]-2*i*sol[ii],color=black+point_width_3),ii=0..5):; //les points sur la droite y=-2x di1:=seq((droite(1+i,pi1[ii],color=green)),ii=0..5):; // les 6 droites: (d1,d2,pi1,di1); //NB un point d'intersection de C1 et C2 est a l'infini. 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 factor(eqx,1.1); // 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); // fltk N4xcas23Comment_Multiline_InputE 20 599 916 42 12 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(ii,couleur=black+point_width_3),ii=rac)); solx:=[solve(eqred,x)]; soly:=seq(gcd(subst(C1,x=solx[ii]),subst(C2,x=solx[ii])),ii=0..2); // fltk N4xcas23Comment_Multiline_InputE 20 599 916 28 12 les ordonn\'ees des points d'abscisse solx[i] sont: seq(cSolve(soly[ii],y),ii=0..2); // fltk N4xcas23Comment_Multiline_InputE 20 599 916 57 12 On constate que pour solx[3] les ordonn\'ees des points de C1 inter£ C2 ayant cette abscisse sont complexes conjuguees bien que solx[3]£ soit reel ce qui explique pourquoi le dessin ne nous donnait que 4 points. // fltk N4xcas23Comment_Multiline_InputE 20 599 916 28 12 -----------------------------------------------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); // fltk N4xcas23Comment_Multiline_InputE 20 599 916 86 12 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):; // fltk 7Fl_Tile 20 36 982 541 12 [ // fltk N4xcas6FigureE 20 36 982 540 12 // fltk N4xcas12History_PackE 22 79 322 70 12 [ // fltk 7Fl_Tile 31 54 313 23 12 [ // fltk N4xcas19Multiline_Input_tabE 31 54 313 22 12 envel; ] // fltk 7Fl_Tile 31 54 313 23 12 [ // fltk N4xcas19Multiline_Input_tabE 31 54 313 22 12 u:=element(-5..5,0); ] // fltk 7Fl_Tile 31 54 313 23 12 [ // fltk N4xcas19Multiline_Input_tabE 31 54 313 22 12 Ce:=implicitplot(Gt(u),x=-7..7,y=-7..7,color=red+line_width_1); ] ] // fltk N4xcas5Geo2dE 348 54 524 522 12 -5.1316,5.1316,-5.1619,5.1619,[],-5,5,1,0,0,0,1,1,1,0,1,1.4167,0,1,1,[],24,18,256,0,100,0,0,1,0.1 // fltk N4xcas23Comment_Multiline_InputE 20 599 916 28 12 ----------------------------Exercice--------------------------------------------- P:=x^4+x+1; A:=1/d*add(a[j]*x^j,j=0..degree(P)-1); H:=d*A; M:=matrix([seq([seq(coeff(rem(A*x^ii,P,x),x,j),ii=0..degree(P)-1)],j=0..degree(P)-1)]); M:=matrix(4,4,(ii,j)->coeff(rem(A*x^(j),P),x,ii)); //c'est plus simple cp:=charpoly(M,x):; res:=resultant(subst(P,x=y),d*x-subst(H,x=y),y):; //attention re est un mot reserve // fltk N4xcas23Comment_Multiline_InputE 20 599 916 28 12 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^ii,P,x),x,j),ii=0..degree(P)-1)],j=0..degree(P)-1)]); cp:=charpoly(M,x):; res:=resultant(unapply(P,x)(y),x-unapply(H,x)(y),y):; // fltk N4xcas23Comment_Multiline_InputE 20 599 916 28 12 le poly caract est 1/d^(deg P) * resultant: verification: normal(cp-res); // fltk N4xcas23Comment_Multiline_InputE 20 599 916 28 12 le poly min est une puissance de: gcd(res,diff(res,x)); pmin(M,x);//ils sont egaux. // fltk N4xcas23Comment_Multiline_InputE 20 599 916 28 12 ----------------------------------------Exercice---Intersections de quadriques-------------------------------------- purge(u); S1:=x^2+1/4*y^2+1/9*z^2-1 S2:=x^2+y^2+z^2-u; projy:=resultant(S1,S2,y); factor(projy);//c'est une conique double a cause de la symetrie en y. coni:=factors(projy)[0]; // fltk N4xcas23Comment_Multiline_InputE 20 599 916 57 12 Pour retrouver les coniques degeneree, on cree la forme quadratique associee en£homog\'en\'eisant son \'equation, puis on trouve la matrice de la forme quadratique£avec les d\'eriv\'ees partielles. on regarde ensuite son son determinant. q:=normal(x[2]^2*unapply(coni,x,y)(x[0]/x[2],x[1]/x[2])); Mq:=matrix(3,3,(ii,j)->diff(q,x[ii],x[j]));//le determinant est bien nul pour u=4. purge(u); DS1:=implicitplot(S1,x,y,z,couleur=13+rempli):; // fltk 7Fl_Tile 20 36 982 541 12 [ // fltk N4xcas6FigureE 20 36 982 540 12 // fltk N4xcas12History_PackE 22 79 322 70 12 [ // fltk 7Fl_Tile 31 54 313 23 12 [ // fltk N4xcas19Multiline_Input_tabE 31 54 313 22 12 DS1; ] // fltk 7Fl_Tile 31 54 313 23 12 [ // fltk N4xcas19Multiline_Input_tabE 31 54 313 22 12 u:=element(1..9,4) ] // fltk 7Fl_Tile 31 54 313 23 12 [ // fltk N4xcas19Multiline_Input_tabE 31 54 313 22 12 DS2:=implicitplot(S2,x,y,z,couleur=jaune+rempli); ] ] // fltk N4xcas5Geo3dE 347 54 524 522 12 -5,5,-5,5,[],-5,5,0.43654,0.016157,0.89347,-0.10438,1,2,0,2097152,1,1.4167,0,1,1,[[0,0,1,0,1,1,1,1,1,1,1,1,0,0,0,1,0,0,-1,0,0,180,1,0,0,1],[0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,-1,0,0,180,1,0,0,0],[0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,-1,0,0,180,1,0,0,0],[0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,-1,0,0,180,1,0,0,0],[0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,-1,0,0,180,1,0,0,0],[0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,-1,0,0,180,1,0,0,0],[0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,-1,0,0,180,1,0,0,0],[0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,-1,0,0,180,1,0,0,0]],24,18,256,0,100,0,0,1,0.1 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); // fltk N4xcas23Comment_Multiline_InputE 20 599 916 86 12 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); // fltk N4xcas23Comment_Multiline_InputE 20 599 916 28 12 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[3]^2*unapply(S3,x,y,z)(x[0]/x[3],x[1]/x[3],x[2]/x[3])); S4h:=normal(x[4]^2*unapply(S4,x,y,z)(x[0]/x[3],x[1]/x[3],x[2]/x[3])); MS3:=matrix(4,4,(ii,j)->diff(S3h,x[ii],x[j])); MS4:=matrix(4,4,(ii,j)->diff(S4h,x[ii],x[j])); factor(det(l1*MS3+l2*MS4));//les solutions sont (l1,l2) =(1,-1),(2,1),(1,2),(2,19) // fltk N4xcas23Comment_Multiline_InputE 20 599 916 115 12 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.