\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{ 1cm} TP04 (re)D\'ecouverte xcas\hspace{1cm}}\hfill   agreg 2011 (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(0);cas_setup(0,0,0,1,0,1e-10,25,[1,50,0,25],0,0,0);//radians,pas de cmplx, pas de  Sqrt
  
\exo
% !s!<c>
% -------------------------------------EXERCICE---------------------------------------------
%!s!
\qu Trouver un endroit pour d\'ecouvrir rapidement le logiciel \`a partir
d'exemples: Ex pour xmaxima, la page d'accueil, pour maple: \'etudier
dans le menu ``introduction'' de l'aide,  le lien 
``How to perform basic task''. Pour xcas, le menu calcul formel de
l'aide, ou le tutoriel, mais aussi/surtout l'index. 
\qusqu Comment obtenir de l'aide sur un mot donn\'e (par exemple sqrt) on
fait: \code{?sqrt}. Par exemple, comment
fait on $\sqrt[3]{23}$?
% !s!<c>
% Attention pour les utilisateurs de maple, root[3](23) ne marche pas, il fait juste racine carree.
%!s!
% root(3,23);
\squ Donner une valeur approch\'ee des r\'esultats pr\'ec\'edents. (Soit en
for\c cant xcas a \^etre en flottants (Ex \code{23.} ou \code{approx(23)}), soit avec \code{evalf}).
%root(3,23.);evalf(root(3,23.));root(3,approx(23));
\squ Trouver la syntaxe des constantes r\'eelles ou complexes $\pi$, $e$,
$i$ (o\`u $i^2=-1$). Faire afficher les $1000$ premi\`eres d\'ecimales de $\pi$.   
%evalf(Pi,1000);
%maple_mode(0);evalf(E);evalf(e);
%maple_mode(1);evalf(E);evalf(e);evalf(exp(1));
%maple_mode(0);
\squ Faire \code{?digits}. Que faut il faire pour travailler par
d\'efaut avec $1000$ chiffres?
% !s!<c>
% Attention mettre plusieurs Digits:= sur une meme ligne a l'air de poser probleme?
%!s!
% Digits:=1000;
% sqrt(2.0);
% Digits:=10;
% sqrt(3.0);
\qusqu Attribuer \`a la variable $P$ la forme d\'evelopp\'ee du polyn\^ome
suivant $(2x+1)^2\frac{x^5-1}{x-1}$. (On aura peut \^etre aussi besoin
de faire simplifier les r\'esultats)
% P:=expand(simplify((2*x+1)^2*(x^5-1)/(x-1)));
\squ Essayer \code{factor(P);} Sur quel corps xcas a t'il travaill\'e?
\squ Factoriser  $x^{12}-1$ dans $\rela[x]$. En factorisant des polyn\^omes
judicieusement choisis, obtenir la valeur du polyn\^ome cyclotomique $\Phi_{12}$?
% factor(X^12-1);
% !s!<c>
% phi12 est le facteur qui n'apparait pas dans: 
%!s!
% factor(X^6-1);factor(X^4-1);
\qusqu Effectuer un changement de variable pour que les in\'egalit\'es $0<a<b<c$ soient
facile \`a lire.
\squ D\'emontrer en demandant un calcul \'el\'ementaire au logiciel que $$3/2\leq
\frac{a}{b+c} + \frac{b}{a+c} + \frac{c}{a+b}$$ 
% purge(a,u,v);
% b:=a+u;c:=b+v;//on ordonne a,b,c
% F:=a/(b+c)+b/(a+c)+c/(a+b)-3/2;
% !s!<c>
% le numerateur et le denominateur n'ont que des coefficients positifs, donc F>0
% pour 0<a, 0<u , 0<v
%!s!
% numer(F);
%denom(F);
\squ On pose $a=e^{\frac{2i\pi}{12}}$. V\'erifiez que $a^{12}$ vaut bien
$1$ pour xcas. Etudier $e^{\frac{2i\pi}{9}}$.
\squ Factorisez $P$ dans $\reel[x]$
et dans $\complex[x]$. Peut t'on esp\'erer un r\'esultat exact?
% complex_mode:=1;factor(P*1.1);factor(approx(P));
% complex_mode:=0;factor(P*1.0);factor(approx(P,5));factor(P);
\squ Factoriser $X^{12}-1$ sur $\ratio[\sqrt{3}]$ et sur $\ratio[\sqrt{3},i]$ et
sur $\ratio[e^{2i\pi/9}]$.
% !s!<c>
% On peut factoriser en imposant une extension algebrique avec une syntaxe
% comme dans maple.
% Mais je ne le trouve pas dans la doc (c'est rare). Exemples:
%!s!
% factor(X^12-1,sqrt(3)); 
% factor(X^12-1,[sqrt(3),i]);
% factor(X^12-1,exp(2*i*Pi/9));
% !s!<c>
% selon les versions, cFactor(...,a) est plus sur si l'on veut etre sur que i a ete utilise. (en fait ca veut  plutot dire Q[I,a] factor)
% !s!
% cFactor(X^12-1,sqrt(3));//est probablement plus sur
\squ V\'erifiez que $1+i\sqrt{3}$ est bien dans $\ratio(e^{2i\pi/9})$.
% c:=1+i*sqrt(3);
% a:=exp(2*i*Pi/9);
% simplify(2*a^3+2-c);// c est bien dans Q[a]
\exo
% !s!<c>
% -------------------------------------EXERCICE---------------------------------------------
%!s!
\qu Exprimer $\cos 5a$ en fonction de $\cos a$ (o\`u $a$ est une variable formelle).
%purge(a);
% trigexpand(cos(5*a));
\qu Calculer $\int_0^{\frac{\pi}{2}} \frac{\cos 5x}{2+\sin x}dx$,
ainsi qu'une primitive $P$ de $\frac{\cos 5x}{2+\sin x}$. D\'eriver $P$
et v\'erifiez que c'est correct. (Le jury appr\'ecie  l'esprit critique)
% normal(int(cos(5*x)/(2+sin(x)),x=0..Pi/2));//simplify ne marche pas?
%%                     -209 ln(2) + 209 ln(3) - 254/3
% P:=int(cos(5*x)/(2+sin(x)),x);
% !s!<c>
% La forme developpee avant l'integration est plus simple:
% !s!
% P:=int(trigexpand(cos(5*x)/(2+sin(x))),x);
% simplify(diff(P,x)-cos(5*x)/(2+sin(x))); //NB: normal ne suffit pas.
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
\exotitre{\bf D\'enombrement et s\'eries g\'en\'eratrices.}
% !s!<c>
% -------------------------------------EXERCICE---------------------------------------------
%!s!
\qu Afficher le coefficient de $t^3$ dans la s\'erie formelle associ\'ee \`a
$\prod_{i=1}^4\frac{1}{1-a_i.t}$?
%purge(a,b,c,d,e,t);
% P:=((1-a*t)*(1-b*t)*(1-c*t)*(1-d*t))^(-1);
% s:=series(P,t=0,3);
% !s!<c>
%On constate que le coefficient de t^n est la somme de tous les monomes de degre
%n en les 4 variables a,b,c,d. Ces monomes sont en bijections avec les suites
%croissantes de n \'el\'ements de {1,2,3,4}.
%!s!
% coeff(s,t^3);
\qu G\'en\'eraliser l'exemple pr\'ec\'edent pour en d\'eduire le nombre d'\'el\'ements
croissants dans $\{1,2,3,4\}^n$, puis dans $\{1,\dots,k\}^n$
\qu Quel est le cardinal de:

$\{(x_1,\dots,x_5)\in\nat^5 |x_1+3x_2+2x_3+x_4+4x_5=208\}$
% !s!<c>
%Pour r\'esoudre ce Pb on met des poids aux variables. Ex: a,d de degre 1, b: 3, c:
%2, et f: 4. et l'on cherche les monomes de degres 208.
%!s! 
% P:=1/((1-a*t)*(1-b*t^3)*(1-c*t^2)*(1-d*t)*(1-f*t^4));
% s:=series(P,t=0,4):;
% coeff(s,t^4); //Ex on verifie bien que f a un poids de 4
% P:=1/((1-t)*(1-t^3)*(1-t^2)*(1-t)*(1-t^4));
% s:=series(P,t=0,208):;
% coeff(s,t^208);
\qu En adaptant la formule $\sum_{n>0}p_n.t^n=\Pi_{i=1}^\infty \frac{1}{1-t^i}$
o\`u $p_n$ est le nombre de partitions de $n$, calculer $p_{50}$. 
% !s!<c>
%Pour calculer le coefficient de t^n, seuls les termes en 1/(1-t^i) pour i<n+1
%du produit vont contribuer, on n'a donc pas besoin du produit infini pour n fixe
% !s!
% P:=n->mul(1/(1-t^j),j=1..n);
% !s!<c>
% On cherche donc le coefficient de t^50 dans:
%!s!
% series(P(50),t,0,50);
% coeff(series(P(50),t,0,50),t^50);
%%%%%%%%%%%%%%%%%%%%%%%%%% 
\qu Trouver le coefficient de $a^3b^2cd^2$ dans $(a+b+c+d)^8$. V\'erifier votre
r\'eponse th\'eorique avec la forme d\'evelopp\'ee. (On pourra \'etudier l'aide de
\code{coeff} pour recup\'erer le coefficient d'un mon\^ome).
% l:=normal((a+b+c+d)^8);
% coeff(l,[a,b,c,d],[3,2,1,2]);
% binomial(8,3)*binomial(5,2)*binomial(3,1);
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% 
\exotitre{Editeur de programme}
On peut cr\'eer des proc\'edures courtes en ligne, et m\^eme sur plusieurs lignes en
utilisant \code{shift entr\'ee}. En revanche il est
souvent plus clair d'utiliser l'\'editeur de programmes.
\qu {\bf Tri par d\'enombrement}
Cr\'eer une proc\'edure \verb/triD(A)/ qui retourne la suite des \'el\'ements de $A$
tri\'ee  par ordre croissant lorsque $A$ est un tableau d'entiers naturels major\'es
par $k$. On rappelle l'algorithme. Si $n$ est la dimension de $A$, on utilise un
tableau $B$ de dimension $n$, et un tableau $C$ de dimension $k$. On initialise
$C$ \`a $0$ (on pourra utiliser un raccourci de r\'ep\'etition)
\squ Illustrez ce que fait une boucle sur les \'el\'ements de $A$ qui ferait:
$C_{A_j} \leftarrow C_{A_j}+1$. Par exemple avec 2 diagrammes
superpos\'es. Attention, que donne \verb/classes([2.5,2.5,5,6],0,1)/. Pr\'ef\'erez une syntaxe avec o\`u vous
fournissez les intervalles. (on pourra utiliser seq)
% !s!<c>
% ----------------------------Exercice----tri denombrement--------------------------------
%!s!
% k:=50;n:=100;
% A:=[seq(rand(k+1),j=1..n)];
% classes([2.5,2.5,5,6],0,1); //commence \`a la premiere classe non vide et non a 0
% classes([2.5,2.5,5,6],[seq(j..j+1,j=0..7)]);//permet d'imposer les intervalles voulus
% !s!<c>
%rand(k+1) donne un entier de [0,k+1[ on a donc bien k+1 valeurs possibles.
%!s!
% C:=[0$(k+1)];
%for(j:=0;j<n;j++){C[A[j]]:=C[A[j]]+1;};
% clA:=classes(A,[seq(j..j+1,j=0..k)]);
% plotlist(C),diagramme_batons(clA);
\squ Puis une boucle de $1$ \`a $k$ $C_j \leftarrow C_j+C_{j-1}$. Que vaut $C_j$ \`a
cette \'etape? Illustrez.
% for(j:=1;j<k+1;j++){C[j]:=C[j]+C[j-1];};
% cumulated_frequencies(clA);//c'est ramene a 1
% plotlist(C);
\squ Puis pour $j$ de $n-1$ \`a $0$ on fait: $B_{C_{A_j}-1} \leftarrow A_j$ et
$C_{A_j}\leftarrow C_{A_j}-1$
$k$ o\`u $k$ est le nombre d'\'el\'ements de $A$ distincts.
% B:=[NULL$n];
% for(j:=n-1;j>=0;j--){B[C[A[j]]-1]:=A[j];C[A[j]]:=C[A[j]]-1};
%B;//la liste triee
\squ Programmez ce tri et illustrez son fonctionnement en utilisant la fonction
debug  et en affichant les valeurs des tableaux pas \`a pas. 
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% 
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
\exotitre{Initiation \`a la g\'eom\'etrie} 
% !s!<c>
% -------------------------------------EXERCICE---------------------------------------------
%!s!
\qu D\'ecouverte de quelques possibilit\'es.
\squ Ouvrir un \'ecran de g\'eom\'etrie, dessiner  les sommets d'un
pentagone r\'egulier gr\^ace aux affixes de ses sommets. On pourra
utiliser une suite. On pourra deviner les syntaxes en cr\'eant des
objets \`a la souris. Comment supprimer un objet?
% !s!<c>
% Pour supprimer/modifier, il suffit de supprimer/editer la ligne correspondante
%!s!
% !s!<g>
% n:=5;
% zs:=exp(2*i*Pi/n);
% [seq(point(zs^j,affichage=point_width_2),j=0..4)];
\squ Dessiner un cot\'e de ce pentagone.
% segment(point(1),point(zs));
\squ Dessiner une droite $d$ de vecteur directeur d'affixe $e^{2i\pi/3}$
passant par $(3,0)$. D\'essiner la droite d'\'equation cart\'esienne
$2x+3y+1=0$. Modifier la couleur, \`a la souris ou dans la commande. Dessiner le
point  $A$ d'intersection de ces 2 droites.
% d1:=droite(point(3),point(3+exp(2*i*Pi/3)),'affichage'=red);
% d2:=droite(2*x+3*y+1=0);
% A:=inter(d1,d2);
\squ Cr\'eer un param\`etre $t$ de $[-5,3]$ gr\^ace \`a la fonction
\code{element}, et tracer la droite perpendiculaire \`a $d$ passant par $(t,0)$ 
% t:=element(-5..3);
% perpendiculaire(point(t),d1);
% !s!
\qu {\bf Illustration d'un graphe}
\squ On encode un graphe \`a $n$ sommets par une suite de triplets: $[i,j,k]$
o\`u $i\leq j$, exprimants le fait qu'il y ait $k$ chemins entre les sommets $i$ et
$j$. (o\`u $k>0$). Pour dessiner le graphe, on forme avec les sommets un polyg\^one
r\'egulier. On affectera \`a $n$ une certaine valeur que l'on pourra changer ensuite.
\squ D\'efinir l'ensemble $S$ des points repr\'esentants les $n$ sommets. (Ils
doivents \^etre bien marqu\'es).
%n:=5;
%a:=exp(2*i*Pi/n);
%S:=seq(point(a^j,affichage=point_width_3,couleur=blue),j=1..n):;
\squ Cr\'eer une fonction permettant de tracer $k$ chemins entre 2 points: on
pourra prendre des arcs de cercle. On pourra m\^eme les choisirs pour \^etre sur
qu'ils ne passent pas par 3 sommets. (Comment?)
% !s!<c>
%Un cercle  passe par 3 sommets ssi  il coincide avec le cercle 
%unite. Donc si l'angle au centre n'est pas multiple de (2IPi/n) c'est bon. 
%!s!
%f:=(ii,j,k)->if k=1 then segment(a^ii,a^j) else seq(arc(a^ii,a^j,l/k),l=1..k) fi;
%G:=[[1,3,1],[1,2,3],[2,4,2],[2,3,1],[3,5,3],[3,4,1],[4,1,2]]:;
%S;seq(f(op(l)),l=G); //op pour enlever les crochets
%%%%%%%%%%%%%%%%%%%%%% 
\exo Construire 2 cercles  $C_i(O_i,r_i)$, \'etudier comment
trouver le centre d'une homoth\'etie envoyant $C_1$ sur $(C_2)$, et en
d\'eduire comment construire les tangentes communes aux 2
cercles. Pr\'eparer une illustration en vue d'un petit expos\'e.
% !s!<c>
% -------------------------------------EXERCICE-----------------------------------------
% !s!<c>
%Stategie: On cherche le centre o d'une homothetie transformant C1 en
%C2, en suite on recupere le point de contact en exprimant qu'il est  
%le sommet d'un triange rectable de base [oO2]. Attention, inter rend
%un objet de type groupe de points, meme s'il y a unicite, pour 
%choisir un point dans l'intersection on utilise inter_unique
%!s!<g>
% O1:=point(-2);O2:=point(2);r1:=1;
% r2:=element(1.2..5,2);//Attention a ne pas faire de cercles de rayons infinis
% C1:=cercle(O1,r1);
% C2:=cercle(O2,r2);
% m:=point(O1+i);droite(O1,m,affichage=dot_line);//un point de C1 non sur (O1O2)
% dm:=parallele(O2,droite(O1,m),affichage=dot_line);
% n:=inter_unique(dm,C2);
% droite(m,n);o:=inter_unique(droite(m,n),droite(O1,O2));
% C:=cercle(O2,o,affichage=dot_line);t2:=inter_unique(C,C2)
% T:=droite(o,t2,affichage=(red+line_width_2));
% !s!
%

\newpage
\end{multicols}
\end{document}

