\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} TP00 D\'ecouverte xcas\hspace{1cm}}\hfill   agreg 2009 (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,25,[1,50,0,25],0,0,0);#radians,pas de cmplx, pas de  Sqrt
  
Minimum \`a retenir/ r\'eviser avant l'\'epreuve, et donc \`a archiver cette
  annn\'ee:  
  1) Etre habitu\'e  \`a utiliser l'aide.
  
  2) op\'erations classiques en mode exact, approch\'e, alg\`ebre lin\'eaire, calcul
modulaire et polynomial. Notamment, pgcd, couples de Bezout, produit
de matrices, noyau (y compris pour un \'el\'ement de $M_n(\rela/p\rela)$, 

3) Quelques instructions de programmation:
boucles \code{for}, \code{while} , suite: \code{seq}. Cr\'eer une fonction
une proc\'edure, cr\'eer une fonction \`a partir d'un symbole, passer en
mode debug et afficher une variable pas \`a pas.

4) Quelques instructions graphique: fonctions (param\'etriques,
implicites, statistiques; ex histogrammes) et g\'eom\'etrie (points, droites...)

\medskip
\noindent{\bf I Choisir sa configuration}

\danger Le jour de l'\'epreuve les valeurs par d\'efaut ne co\"\i ncidenront
pas forc\'ement avec vos pr\'ef\'erences. Au premier lancement on r\'epond \`a
quelques questions, on peut ensuite modifier/affiner ses choix dans le
menu \code{Cfg}. Puis Sauver les gr\^ace au  menu. Il faut donc choisir
le mode xcas ou maple, et etudier la configuration du "cas" pour ne
pas mal interpr\'eter les r\'eponses.

Les diff\'erences entre les modes xcas et maple:
$i$ et $I$, les tableaux commencent \`a $0$ contre $1$ le symbole \%
est r\'eserv\'e au calcul modulaire pour xcas, au dernier r\'esultat pour
maple. Les commentaires sont \verb|//| resp \verb|#|. L'instruction
\code{subs} prend ses arguments dans des ordres invers\'es. 

Pour la configuration du "cas", je conseille de:

\noindent{\sc cocher} \code{radians}, et de

\noindent{\sc d\'ecocher:} \code{approx}, \code{complex},
  \verb/Cmpx_var/, \code{Sqrt}. On travaillera ainsi en mode exact
  dans le corps engendr\'e par les coefficients de l'expression, alors
  que si l'on coche complex ou Sqrt, on rajoute $I$ et des racines
  carr\'ees ce qui ne permet pas par exemple une factorisation de
  polyn\^ome sur un corps prescrit.
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% 

%%%%%%%%%%%%%%%%%%%%%%%%%%%
\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));
\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);
\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}]$. 
% 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$.
% 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 | 0<x_1\leq x_2\leq
\dots \leq x_5,\linebreak 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 e: 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-e*t^4));
% s:=series(P,t=0,4):
% coeff(s,t^4); #Ex on verifie bien que e 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);
%%%%%%%%%%%%%%%%%%%%%%%%%% 
\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^i,affichage=point_width_2),i=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),d);
% !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^i,affichage=point_width_3,couleur=blue),i=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:=(i,j,k)->if k=1 then segment(a^i,a^j) else seq(arc(a^i,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
%%%%%%%%%%%%%%%%%%%%%% 
\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 Cr\'eer une proc\'edure \verb/puis:=proc(a,n)/ qui calcule $a^n$
ainsi: $A,B,C$ sont initialis\'es respectivement \`a $1,a,n$, et l'on
execute tant que $C>0$:\\
si $C$ est impair \code{A:=A*B;C:=(C-1)/2;B:=B*B;}\\
sinon C:=C/2;B:=B*B;
\noindent et qui retourne $A$ 
% !s!<c>
% -------------------------------------EXERCICE-----------------------------------------
% !s!<c>
% !s!<p>
% puis:=proc(a,n)
% local A,B,C;
% A:=1;B:=a;C:=n;
% while C>0 do
% if irem(C,2)=1 then A:=A*B;C:=(C-1)/2;B:=B*B;
% else C:=(C)/2;B:=B*B;
% fi;
% od;
% A;
% end;
% !s!
% puis(2,7);
\qusqu En utilisant \code{debug(puis(2,71))}, \'etudier les valeurs de
$A,B,C$. (utiliser le bouton \code{watch}, et regarder la valeur de la
variable tout en bas.)
% debug(puis(2,71));)
\squ Comparer les passages dans les 2 cas avec l'\'ecriture en base 2 de
$n$
% convert(71,base,2);
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% 
\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}

