\documentclass[12pt,a4paper]{article}
\usepackage{multicol}
\usepackage[french]{babel}
\newfont{\mini}{cmssi10 scaled 480}
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
\def\euro{\mbox{\textsf{C}\kern -2.33em{\raise0.24ex\vbox{\small\it =}}}}
%%%%%%%%%%%%%%%%%%%%%%%%%%
\def\fin{\nolinebreak \raise-0.1em\hbox{$\Box$}}
\def\stackunder#1#2{\mathrel{\mathop{#2}\limits_{#1}}}
\def\dual{ ^{\rm v}}
\def\bidual{ ^{\rm vv}}
\def\primedual{ ^{\prime \rm v}}
\def\ideal{{\cal J}}
\def\LL{{\cal L}}
\def\max{{\cal M}}
\def\quot#1#2{\mbox{\raise 0.1cm\hbox{$#1$}{\big /}\raise -0.1cm\hbox{$#2$}}}
\def\danger{{\Large \bf
    $\bigtriangleup$}\kern-0.32cm\raise0.05cm\hbox{\small
    !}\kern0.32cm\lower0.05cm\hbox{}}
%%%%%%%
\newlength{\largeurtmp}
\def\rela{\settoheight{\largeurtmp}{Z}{\rm Z} \kern -0.6\largeurtmp
  \raise 0.05cm\hbox{\tiny{\it /}}\kern 0.6\largeurtmp}
\def\petitrela{\settoheight{\largeurtmp}{Z}{\rm Z} \kern -0.4\largeurtmp
  \raise 0.05cm\hbox{\tiny{\it /}}\kern 0.4\largeurtmp}
\def\petitcomplex{{
    \settoheight{\largeurtmp}{$_C$}{\rm C}\kern -\largeurtmp
    \rule{0.25pt}{1.3\largeurtmp}\kern \largeurtmp}}
\def\complex{{
    \settoheight{\largeurtmp}{Q}{\rm C}\kern -0.66\largeurtmp
    \rule{0.25pt}{0.9\largeurtmp}\kern 0.66\largeurtmp}}
\def\ratio{{
    \settoheight{\largeurtmp}{C}{\rm Q}\kern -0.75\largeurtmp
    \rule{0.25pt}{0.9\largeurtmp}\kern 0.75\largeurtmp}}
\def\petitratio{{
    \settoheight{\largeurtmp}{C}{\rm Q}\kern -0.6\largeurtmp
    \rule{0.25pt}{0.6\largeurtmp}\kern 0.6\largeurtmp}}
\newcommand{\proj}{{\rm I} \! {\rm P}}
\newcommand{\reel}{{\rm I} \! {\rm R}}
\newcommand{\Fp}{{\rm I} \! {\rm F}_p}
\newcommand{\nat}{{\rm I} \! {\rm N}}
%%%%%%%%%%%%%%%Debut de macros de fiches d'exos
%%les macros sont \exo, \qu, \quskip \squ \qusqu \qusquskip
\newcounter{exo}
\newcounter{question}
\newlength{\lng}
\newcounter{sousquestion}
\setcounter{exo}{1}
\def\exo{

  \bigskip
  \noindent{\bf Exercice
    \Roman{exo}:}\addtocounter{exo}{1}\setcounter{question}{0}\nopagebreak 

  }
\def\exotitre#1{

  \bigskip
  \noindent{\bf Exercice
    \Roman{exo}: #1}\addtocounter{exo}{1}\setcounter{question}{0}\nopagebreak 

  }
\def\qu{

  \addtocounter{question}{1}\arabic{question})
  \setcounter{sousquestion}{1} }
\def\quskip{

  \bigskip
  \qu}
\def\squ{

  \settowidth{\lng}{\arabic{question})
  }\hspace{\the\lng}\alph{sousquestion}) \addtocounter{sousquestion}{1}} 
\def\qusqu{\qu\nopagebreak \vskip -1\baselineskip \squ}
\def\qusquskip{\quskip\nopagebreak \vskip -1\baselineskip \squ}

%%reference pour exos,squ \`a placer avant la question, qu est a placer apres
\def\labelexo#1{\expandafter\edef\csname refexo#1\endcsname {\Roman{exo}}}
\def\refexo#1{\csname refexo#1\endcsname}
\def\labelqu#1{\expandafter\edef\csname refqu#1\endcsname {\arabic{question})}}
\def\refqu#1{\csname refqu#1\endcsname}
\def\labelsqu#1{\expandafter\edef\csname refsqu#1\endcsname
  {\arabic{question}\alph{sousquestion})}} 
\def\refsqu#1{\csname refsqu#1\endcsname}  

%%%%%%%%%%fin de macros fiche d'exos
%%macros taille page
\newlength{\elargir}
\setlength{\elargir}{2.5cm}
\addtolength{\leftmargin}{-\elargir}
%%\addtolength{\hoffset}{-\elargir}
\addtolength{\oddsidemargin}{-\elargir}
\addtolength{\evensidemargin}{-\elargir}
\addtolength{\elargir}{\elargir}
\addtolength{\textwidth}{\elargir}
\addtolength{\textheight}{13\baselineskip}
\topmargin=-5\baselineskip
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%        
\everymath={\displaystyle}
\begin{document}
\noindent{\bf Universit\'e de Paris 7 \hfill \framebox{\Large \bf
    \hspace{0.5cm} TP17 Cubiques \hspace{0.5cm}}\hfill   agreg 2010 (F.Han\footnote{http://www.math.jussieu.fr/$\sim$han/agreg})}\\
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
\def\code#1{{\tt #1}}
%% 
\columnsep 0.7cm
\begin{multicols}{2}
% 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
%srand; #on initialise random  
\exotitre{Cubique plane rationnelle}
\newcommand{\PP}{{\rm I} \! {\rm P}}
Une courbe plane d'\'equation $P(x,y)=0$ passant par $(1,1)$ est dite singuli\`ere en
ce point si $\frac{\partial P }{\partial x}$ et $\frac{\partial P}{\partial y}$
s'annulent en ce point.
\qu Remarquer que cette courbe est singuli\`ere en $(2,1)$ si et seulement si $P$
est dans l'id\'eal $((x-2)^2,(x-2)(y-1),(y-1)^2)$. Cr\'eer un \'el\'ement  de degr\'e $3$
au hasard dans cet id\'eal, et essayer de dessiner la courbe d'\'equation $P(x,y)=0$.
%P:=normal(add((rand(-5,5)*x+rand(-5,5)*y+rand(-5,5))*(x-2)^i*(y-1)^(2-i),i=0..2));
%implicitplot(P,x,y,xstep=0.01);
\qu Pour $(a,b)\neq (0,0)$, on note $d_{a,b}$ la droite passant par $(2,1)$
et le point $(a+2,b+1)$.  Calculer l'intersection de la droite $d_{a,b}$ avec la
courbe pr\'ec\'edente. Montrer qu'il y a une racine double connue et un point
r\'esiduel not\'e $M_{a,b}$. Justifiez ces expressions en terme de racines d'un
polyn\^ome \`a une variable.
% fP:=unapply(P,x,y);
% intersec:=normal(fP(a*t+2,b*t+1)/t^2);
% !s!<c>
% On resout l'equation de degre 1 en t: intersec=0 en recuperant les
% coefficients. C'est toujours plus raisonnable d'eviter  d'utiliser une
% fonction sophistiquee telle que  solve, dont on ne sait pas trop ce quelle
% fait. Meme si ici ca marche tres bien. 
%!s!
% t0:=normal(-coeff(intersec,t,0)/coeff(intersec,t,1));
% xab:=a*t0+2;yab:=b*t0+1; #les coordonn\'ees du point Mab.
% if normal(fP(xab,yab))==0 then print("c'est bon, le point trouve est bien sur la cubique") fi; # verification.
\qu Dessiner cette courbe param\'etr\'ee par $\PP_1$ dans le plan affine.
%Ma:=subst(xab+I*yab,b=1);
% C1:=paramplot(Ma,a=-20..20,affichage=blue);#NB la langue des couleurs peut poser PB
% !s!<g>
% a:=element(-20..20,0);
% point(Ma,affichage=point_width_3);
% droite(Ma,2+I);
% C1;
% !s!
\exotitre{Surface cubique}
On consid\`ere maintenant une surface $S$ de $\reel^3$ d'\'equation $P(x,y,z)=0$ o\`u $P$
est un polyn\^ome de degr\'e $3$ nul en $(0,0,0)$, et de gradient dirig\'e selon $Oz$ en ce
point. 
\qu Cr\'eer une fonction \code{rl();} qui donne un polyn\^ome al\'eatoire (non
homog\`ene avec de petits coefficients) de d\'egr\'e 1 en $x,y,z$. Le produit
\code{rl()*rl()} est il un polyn\^ome  g\'en\'eral de degr\'e 2? Comment peut
on  d\'eduire de \code{rl()} un polyn\^ome al\'eatoire de degr\'e 2 en $x,y,z$?
% rl:=proc() rand(-5,5)*x+rand(-5,5)*y+rand(-5,5)*z+rand(-5,5); end;
% !s!<c>
% Le produit rl()*rl() est une quadrique de rang 2 (au lieu de 4.NB: l'equation
%  homogene a 4 variables), elle n'est pas donc
% generale. En revanche toute forme quadratique de 4 variables est somme de 2
% formes quadratiques de rang 2.
% !s!
% ql:=proc()  normal(rl()*rl()+rl()*rl()); end; #une quadrique random.
\squ Choisir un tel polyn\^ome $P$, trouver l'intersection $C$ de cette surface avec
son plan tangent en $(0,0,0)$ sous forme cart\'esienne. 
% P:=normal((x-2*y-z+3)*x^2+x*y*(x-2*y-z-1)+y^2*(x+4*y+3*z-5)+z*(2*x^2-x+y*z-2*z^2+y^2-z-y-7)); # celui ci convient
% srand;
% P:=normal(rl()*x^2+x*y*rl()+y^2*rl()+z*(rl()*rl()+rl()*rl())); # par  hypothese, P  est dans l'ideal (x^2,xy,y^2,z)
% !s!<c>
% Pour l'hypotheses de lissite, on ne la verifiera pas de maniere exacte, on
% utilise donc une fonction resoudre  en flottants complexes: cSolve
%!s!
% if cSolve(([P,op(grad(P,[x,y,z]))]),[x,y,z])==[] then print("S est bien  lisse. ouf!")  else print("il faut prendre un autre P") fi;
% C:=normal(subs(z=0,P));# l'equation de C dans le plan z=0.
\squ Que peut on dire de $C$ au point $(0,0,0)$? Param\'etrer $C$ priv\'ee de
quelques  points par des
fractions rationnelles  en un param\`etre $a$. (comme dans l'exercice
pr\'ec\'edent). On notera $M_a$ ce point.
% !s!<c>
% la courbe plane C dans le plan z=0 a une equation sans termes de degre 0 ni 1,
% elle est donc singuli\`ere en (0,0)
%!s!
% fP:=unapply(C,x,y);
% purge(a,b);
% !s!<c>
% On prend la droite de vecteur directeur (a,1) (il manquera juste la droite verticale).
%!s!
% intersec:=normal(fP(a*t,t)/t^2);
% t0:=normal(-coeff(intersec,t,0)/coeff(intersec,t,1));
% xa:=a*t0;ya:=t0; #les coordonn\'ees du point Ma.
% if normal(fP(xa,ya))==0 then print("c'est bon") fi; # verification.
\qu Dans cette question, on se propose de r\'eit\'erer cette construction afin de
trouver une famille de dimension $2$ de points rationnels sur la
surface $S$. On
pourra passer cette question dans un premier temps, et passer directements au
probl\`eme des 27 droites. 
\squ Donner l'\'equation cart\'esienne  de l'espace tangent \`a $S$ en $M_a$.
% dPxa:=normal(unapply(diff(P,x),x,y,z)(xa,ya,0));
% dPya:=normal(unapply(diff(P,y),x,y,z)(xa,ya,0));
% dPza:=normal(unapply(diff(P,z),x,y,z)(xa,ya,0));
% Eqa:=numer((x-xa)*dPxa+(y-ya)*dPya+z*dPza);
\squ Donner deux vecteurs du plan tangent en $M_a$ qui sont en g\'en\'eral ind\'ependants: $v_1,v_2$.
%!s!<c>
%On choisit deux vecteurs du plan tangent qui en general forment une base.
%On simplifie donc par leur pgcd des coefficients pour retirer des cas ou ils
%sont nuls.
%!s!
% g:=gcd(coeff(Eqa,y,1),coeff(Eqa,x,1)); #il est non trivial
% v1:=normal([-coeff(Eqa,y,1),coeff(Eqa,x,1),0]/g);
% g:=gcd(coeff(Eqa,y,1),coeff(Eqa,z,1)); 
% v2:=normal([0,-coeff(Eqa,z,1),coeff(Eqa,y,1)]/g);
% !s!<c>
% Maintenant le seul cas ou v1,v2 n'est pas libre est donne par l'annulation
% du premier coefficient de v1. notons le v1v2lies, l'annulation de ce polynome
% ne correspondra pas a un cas voulu, mais sur ce lieu il faudrait choisir une
% autre base du plan
% !s!
%v1v2lies:=v2[3];
\squ Pour un param\`etre formel $b$, trouver le point r\'esiduel de l'intersection
de la droite $(M_a,v_1+b.v_2)$. V\'erifier que ce point est sur $S$.
% N:=[xa,ya,0]+t*(v1+b*v2);
% resiequ:=normal(unapply(P,x,y,z)(op(N))/t^2);
% t0:=-coeff(resiequ,t,0)/coeff(resiequ,t,1)
% !s!<c>
% On obtient donc dans l'expression suivante une application
% rationnelle "dominant" la surface cubique. On n'espere pas qu'il
% s'agisse d'une parametrisation rationnelle (un point a le droit
% d'avoir plusieurs antecedants) on parlera donc d'unirationalite. 
%!s!
% Naff:=normal([xa,ya,0]+t0*(v1+b*v2));#la cubique affine dominee par cette application. 
% normal(unapply(P,x,y,z)(op(Naff)));#ca doit etre nul.
% Nproj:=normal(denom(Naff[1])*[Naff[1],Naff[2],Naff[3],1]);
\qu Dans cette question, on souhaite trouver le nombre de droites incluses dans $S$.
\squ Exprimer la condition pour que la droite passant par $M_a$ et de vecteur
directeur $(u,v,1)$ soit incluse dans $S$. 
% !s!<c>
% --On etudie maintenant la question des 27 droites incluses dans S--
%!s!
% purge(u,v,t);
% M:=normal([xa,ya,0]+t*[u,v,1]);
% restrictionS:=(unapply(P,x,y,z)(op(M))/t);#le numerateur suffit
\squ En d\'eduire
%%\footnote{Dans la question pr\'ec\'edente, on n'a pas pris le vecteur
%%  $(u,v,1)$ pour que les coefficients de $u$ et de $v$ dans $c0$ soient premiers
%%  entre eux. En effet, avec ce vecteur on trouve en commun un facteur de degr\'e 2
%%  correspondant aux cas o\`u $M_a=(0,0,0)$}
que $(u,v)$ doit \^etre solution d'un
syst\`eme de $3$ \'equations $c0,c1,c2$ de degr\'es $1,2,3$ en $u,v$. 
% c0:=coeff(restrictionS,t,0);#de degre 1en u,v
% c1:=coeff(restrictionS,t,1);#de degre 2 en u,v
% c2:=coeff(restrictionS,t,2);#de degre 3 en u,v
\squ R\'esoudre celle de degr\'e 1, et obtenir une \'equation en $a$ nulle lorsque ce
syst\`eme a une solution. Factorisez ce polyn\^ome et remarquez un facteur
irr\'educible\footnote{si votre cubique est  g\'en\'erale} de degr\'e $27$.
% u0:=solve(c0,u);
% c1u0:=normal(unapply(c1,u)(u0));
% c2u0:=normal(unapply(c2,u)(u0));
% !s!<c>
% Puisque l'on doit resoudre c1u0=0 et c2u0=0, on le fait pour le numerateur.
% !s!
% cc1:=numer(c1u0);
% cc2:=numer(c2u0);
% d:=gcd(seq(coeff(cc1,v,i),i=0..2));
% cc1:=quo(cc1,d);
% d:=gcd(seq(coeff(cc1,v,i),i=0..3));
% cc2:=quo(cc2,d);
% Rep1:=resultant(cc1,cc2,v);
\squ Comparez les autres facteurs, avec le coefficient de degr\'e $1$ de $c0$
utilis\'e, et aussi avec le d\'enominateur de $M_a$. On pourrait maintenant
remarquer la droite $(M_a,(u,v,1))_{u,v}$ d\'ecrit toutes les droites passant par
$M_a$ sauf celles du plan $z=0$. On aurait donc du commencer par v\'erifier que le
plan $z=0$ ne contenait pas de droites de $S$. De m\^eme, pour le plan \`a
l'infini. Mais ces hypoth\`eses sont l\'egitimes pour $S$ g\'en\'erale, et les droites
incluses dans $S$ sont bien donn\'ees par le polyn\^ome de degr\'e $27$ trouv\'e.
% factors(Rep1);
% !s!<c>
% Le resultant fait apparaitre un polynome de degre 27, et d'autres facteurs.
% Un premier facteur correspond au numerateur du coefficient de u dans c0 (a la
% puissance 6), ce
% qui est normal car on a divise par ce coefficient pour eliminer u avec
% l'equation c0. L'autre facteur correspond au denominateur de ya (aussi a la
% puissance 6), ce qui est
% normal aussi, car lorsque Ma est a l'infini, le vecteur (u,v,1) choisi pour
% creer un droite passant par Ma peut coincider avec Ma, on n'a donc pas
% travaille avec une droite passant par Ma dans ce cas.
% C'est donc le polynome de degre 27 qui correspond aux droites
% incluses dans S, il y en a donc 27 sur un corps algebriquement clos.  
%!s!
% factor(coeff(c0,u,1));
% Rep1b:=normal(Rep1/numer(coeff(c0,u,1))^6);
% P27:=normal(Rep1b/denom(ya)^6);# les 27 valeurs de a pour lequelles il passe une   droite de S par Ma
%% factor(coeff(cc1,v,2));
%% factor(coeff(cc2,v,3));
%% v0:=solve(c0,v);
%% c1v0:=normal(unapply(c1,v)(v0));
%% c2v0:=normal(unapply(c2,v)(v0));
%% cc1:=numer(c1v0);
%% cc2:=numer(c2v0);
%% d:=gcd(seq(coeff(cc1,u,i),i=0..2));
%% cc1:=quo(cc1,d);
%% d:=gcd(seq(coeff(cc1,u,i),i=0..3));
%% cc2:=quo(cc2,d);
%% Rep2:=resultant(cc1,cc2,u);
%% F:=factors(gcd(Rep1,Rep2));# On a bien fait disparaitre un des facteurs parasites.
%% P27:=F[2][1,1];#les 27 intersections des dtes avec le plan z=0.

\newpage
\end{multicols}

\end{document}
