\documentclass[12pt,a4paper]{article}
\usepackage{url}
\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
\usepackage{listings}
\usepackage{algorithm2e}

\SetKwInput{Donnes}{Donn\'ees}
\SetKwInput{Res}{R\'esultat}
\SetKwInput{Entree}{Entr\'ee}
\SetKwInput{Sortie}{Sortie}
\SetKw{KwA}{ \`a }
\SetKw{Retour}{retourner}
\SetKwBlock{Deb}{d\'ebut}{fin}
\SetKwIF{Si}{SinonSi}{Sinon}{si}{alors}{sinon si}{sinon}{fsi}
%%\SetKwSwitch{Suivant}{Cas}{Autre}{suivant}{faire}{cas o\`u}{autres cas}{fin d'alternative}
\SetKwFor{Pour}{pour}{faire}{fpour}
\SetKwFor{Tq}{tantque}{faire}{ftantque}
%%\SetKwFor{PourCh}{pour chaque}{faire}{finprch}
%%\SetKwFor{PourTous}{pour tous}{faire}{finprts}
\SetKwRepeat{Repeter}{repeter}{jusqu\_a}
%% \eSi{condition}{bloc du alors}{bloc du sinon}

%%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}{14\baselineskip}
\topmargin=-6\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 2016 (F.Han\footnote{\url{http://webusers.imj-prg/frederic.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
  
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 de base, et surtout savoir obtenir ces
fonctions et leurs options via les menus d\'eroulant. Ex  fonctions (param\'etriques,
implicites, statistiques; ex histogrammes) et g\'eom\'etrie (points, droites...) et
options d'affichage via le menu d\'eroulant.

%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% 
\exotitre{D\'ecouverte du logiciel}
NB: Certaines syntaxes d\'ependent de la langue choisie (ou de la version
install\'ee). %%Il se peut que dans nos salles certaines instructions francaises
            %%ne marchent pas.

\def\code{{\sc }}
{\bf Choisir sa configuration}

\danger Lors du premier lancement, les valeurs par d\'efaut ne co\"\i ncident
pas forc\'ement avec vos pr\'ef\'erences. Au premier lancement on r\'epond \`a
quelques questions. Choisissez le mode xcas car c'est celui de r\'ef\'erence par
d\'efaut dans la documentation. (Le mode maple est pour les experts en maple, et
le mode autre est pour le mode tortue logo...)

On peut ensuite modifier/affiner ses choix dans le
menu \code{Cfg}. Ensuite, sauvez vos pr\'ef\'erences 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. (On peut l'obtenir rapidement en cliquant sur
la barre grise entre les boutons SAUVER et STOP)

%%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. (On utilisera donc
%%plutot \verb/subst/) 

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

\noindent{\sc cocher} \code{radians}, et de {\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.
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% 

  {\bf Observez dans le Tutoriel:}\\
Dans le tutoriel (menu Aide$>$D\'ebuter en Calcul Formel) on trouve facilement
comment manier les objets du calcul formel.

Ex: comment affecter une variable, d\'efinir une fonction, substituer

C'est aussi un endroit o\`u l'on trouve facilement la syntaxe compl\`ete de programmation.

\qusqu Comment obtenir de l'aide sur un mot donn\'e que l'on connait \`a peu pr\`es
(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);
% surd(23,3);//c'est plutot celui ci que l'on trouve dans la doc
\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} ou \code{approx}).
%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 (sans que la pr\'ecision par d\'efaut soit
modifi\'ee pour  la suite.) les $1000$ premi\`eres d\'ecimales de $\pi$.  
%evalf(Pi,1000);approx(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? (On pourra utiliser le menu config)
% !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);
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%!s!<c>
%-------------------------------------EXERCICE---------------------------------
%!s!

{\bf L'interface:}
Apprenez \`a supprimer, copier, d\'eplacer une ligne, un dessin, un programme...(ie l'entr\'ee et la r\'eponse)


\exotitre{aide html, bulles, menus}
\qu {\sc Aide bulle sur un mot connu:~}Tapez \verb/seq(/ et \'etudiez les
param\`etres de cette fonction avec l'aide bulle\footnote{Laisser la souris sur la
ligne avec la parenth\`ese ouverte, et attendre que la bulle apparaisse.}. Cette
m\'ethode est utile lorsque l'on connait le mot mais pas tr\`es  bien les arguments
ou les options. 
\qu {\sc Etudier le menu aide. R\'ef\'erence\footnote{C'est le plus utile. \`a retenir} calcul formel}.
Cette m\'ethode est la plus adapt\'ee (avec les menus d\'eroulants, ou bien lorque ces
derniers sont trop succincts) pour trouver une
instruction dont on ne connait pas le mot clef.

Par exemple trouver la fonction pgcd de deux entiers en utilisant ce menu.
\squ Comment ajouter un \'el\'ement \`a une liste? Ex ajoutez l'\'el\'ement $55$ \`a la
liste \verb/l:=[1,33,4]/.
% l:=[1,33,4];
% augment(l,55);
\squ \verb/a:=1111;/. Comment lib\'erer la variable \verb/a/?
% a:=11111;
% purge(a);
% a;
\qu {\sc Les menus d\'eroulants} sont aussi rapides\footnote{mais parfois incomplets} pour obtenir les instructions
selon leur th\`emes. (Notez le menu Scolaire o\`u l'on trouve les instruction par
niveau scolaire).
\squ Quelle est la valeur th\'eorique
de $$44.\arctan(1/57)+7.\arctan(1/239)-12.\arctan(1/682)+24.\arctan(1/12943)$$
Lorsque l'on a de la chance\footnote{ici c'est le cas}, le logiciel peut repondre tout de suite. Il faut
cependant \^etre pr\^et \`a l'aider. Ex: calculer la tangente en demandant de
d\'evelopper au sens trigonom\'etrique.
% pp1:=44*atan(1/57)+7*atan(1/239)-12*atan(1/682)+24*atan(1/12943);
% simplify(pp1); //ou peut etre tsimplify

\squ On pose: \verb/l1:=[1,33,4]/ et
\verb/l2:=[11,133,14]/. Quelle instruction permet de cr\'eer une liste en
juxtaposant $l1$ et $l2$?
% l2:=[11,133,14];
%concat(l1,l2);
\squ Affectez \`a \verb/a/ la valeur $e^{2i\pi/5}$. Calculez/Simplifiez $a^5$. Commentez la r\'eponse et
essayez d'autres exponentielles. Essayez de simplifier $\sqrt[3]{7}+\sqrt{5}$
expliquez la notion de polyn\^ome pour xcas. Quel est l'int\'er\^et de cette
simplification pour des calculs du type $(\sqrt[3]{7}+\sqrt{5})^{100}$?

On peut d\'essiner un point par son affixe complexe. Essayer \verb/p:=point(1)/. On aimerait
avoir ce point en bleu et grosse croix. Il existe une fa\c con int\'eractive
d'ajouter une syntaxe de geom\'etrie. On tape
\verb/point(1,/ et l'on va chercher l'option d'attributs (on remarquera le
racourci clavier pour cette option) dans le menu d\'eroulant pour les
graphiques.
\squ  Tout objet g\'eom\'etrique peut \^etre transform\'e par une
similitude via les op\'erations usuelles sur les complexes (pour une liste
d'objets (\danger elle doit \^etre entre\footnote{$(a,b,c)*6$ a un autre sens} CROCHET) on peut faire aussi la multiplication par un complexe, en revanche,
pour l'addition c'est un peu plus compliqu\'e, il vaut mieux ajouter un vecteur de
m\^eme taille pour translater les \'el\'ements terme \`a terme). Par exemple, en
utilisant \verb/seq/ et le point $p$ et $a$, cr\'eez les sommets d'un pentagone
r\'egulier en utilisant \verb/seq/.
%a:=exp(i*pi/5);
%simplify(a+exp(2*i*pi/3));
%simplify(7^(1/3)+sqrt(5));
% p:=point(1,display=bleu+epaisseur_point_3+point_etoile);
% seq(p*a^j,j=0..4);
% [seq(p*a^j,j=0..4)];[seq(p*a^j,j=0..4)]*2;
% [seq(p*a^j,j=0..4)]+[1$5];//[seq(p*a^j,j=0..4)]+1; ne translate qu'un element.
\qu Cherchez dans les menus d\'eroulants comment utiliser les unit\'es
physiques. Ajoutez $1dm^3$ et $3cl$ via xcas.
%1_(dm^3)+3_cl;//On ajoute 2 volumes.
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
\qu {\sc L'index (ou compl\'etion par tabulation)}. Utile pour obtenir un mot
clef et ses synonymes, mais aussi des intructions connexes non \'equivalentes.

On peut aussi obtenir l'index par le menu aide. Par exemple on d\'efinit le
symbole \verb!P:=x/(x^2+1)! et la fonction \verb!Q(x):=sin(1/x)! (syntaxe
\'equivalente: \verb!Q:=x->sin(1/x)!) 
\squ Etudiez les types de \verb/P/ \verb/Q/  \verb/Q(x)/ \verb/Q(5)/
\verb!Q(6/pi)! (on pourra simplifier). D'une mani\`ere g\'en\'erale, il vaut mieux
effectuer les calculs compliqu\'es avec des symboles plutot qu'avec des
fonctions. Les r\'esultats seront le plus souvent bien plus lisibles et rapides.
% purge(x);// pour etre sur que x est libre.
% x=='x';//vaut 1 si x est libre. Car dans ce cas, x il coincide avec le symbole 'x'
% P:=x/(x^2+1);
% Q:=x->sin(1/x);
% type(P);//un symbole
% type(Q);//une fonction
% type(Q(x));//un symbole
% type(Q(5));//un symbole car sin(1/5) est laisse tel quel
% type(normal(Q(6/pi)));// un rationel car c'est une valeur remarquable (si l'on a simplifie)
\squ Calculer les d\'eriv\'ees de $P$ et $Q$.
% diff(P,x);
% function_diff(Q);
% Q';
%%\squ Calculer la d\'eriv\'ee seconde de $Q\circ Q$. (On factorisera)
%% A1:=factor(diff(Q(Q(x)),x,x));//C'est tout de meme plus leger
%% A2:=factor((function_diff@function_diff)(Q@Q));
%% A3:=factor((function_diff@@2)(Q@Q));
%% simplify(A1-A2(x));//0
%% simplify(A1-A3(x));//0
%%\squ Quel est le symbole de composition des fonctions? Comment obtenir
%%facilement la compos\'ee septi\`eme de $Q$ calcul\'ee en $y$?
%(Q@@7)(y);
\squ (A retenir!) Comment obtenir \`a partir du symbole $P$ d\'efini ci dessus, la fonction $x
\mapsto \frac{x}{x^2+1}$? En d\'eduire la d\'eriv\'ee de $\frac{\sin(1/x)}{(\sin(1/x))^2+1}$
% unapply(P,x);// cr\'ee la fonction P
% simplify(function_diff(unapply(P,x)(Q)));// cr\'ee la fonction P et la compose avec Q
% simplify(diff(sin(1/x)/(sin(1/x)^2+1),x));//verif
\qu {\sc la recherche syst\'ematique dans le html par F12} Cette m\'ethode est la
plus longue (beaucoup d'acc\`es disques), mais elle permet de chercher une chaine
de caract\`ere dans tout le contenu de l'aide html.
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
\exotitre{Composition, valeurs approch\'ees, \'editeur de programmes}
\qu Etudiez la composition des fonctions et trouvez (r\'eviser le tutoriel?) un
symbole pour la compos\'ee $n$-i\`eme d'une fonction  (Attention aux
parenth\`eses). Testez cela en calculant $\sqrt{\sqrt{\sqrt{\sqrt{65536}}}}$
\qusqu D\'efinir la fonction: $f: x \mapsto \frac{1}{2+x}$. On note $u_n(x)$ la
compos\'ee $n$ i\`eme de cette fonction avec elle m\^eme. Affichez $u_n(x)$ pour
quelques valeurs de $n$ par exemple pour pr\'esenter/faire visualiser cette suite \`a quelqu'un.
\squ Conjecturez la valeur de $\lim_{n\to +\infty} u_n(0)$
\squ Affichez une valeur approch\'ee (sous la forme: 4 chiffres et une puissance
de $10$) de la diff\'erence $u_n-l$ pour $n$ allant de
$1$ \`a $150$. On prendra soin de choisir une pr\'ecision suffisante pour ces
calculs pour que les 4 chiffres affich\'es soient corrects.
%f(x):=1/(2+x);u(n):=simplify((f@@n)(0));l:=sqrt(2)-1;
%seq(approx(approx(l-u(n),200),4),n=10..150)
\qusqu 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. Cr\'eez une fonction \verb/best(n)/ qui retourne la fraction
$\frac{a}{b}$ qui approche le mieux $l$ parmis les fractions de d\'enominateur
inf\'erieur ou \'egal \`a celui de l'\'ecriture r\'eduite de $u_n$.  (On pourra r\'eviser la
syntaxe de programmation dans le tutoriel) 
% !s!<p>
% best(n):={
%   local a,b,a0,b0,l,d,m;
%   a0:=1;b0:=1;l:=sqrt(2)-1;
%   d:=denom(u(n));m:=abs(a0/b0-l)
%   for(b:=1;b<=d;b++){
%     for(a:=1;a<b;a++){
%       if(abs(a/b-l)<m){
%         m:=abs(a/b-l);
%         a0:=a;b0:=b;
%         }
%       }
%     }
%    return [a0,b0]; 
%   }
%!s!
%best(4);u(4)
%best(5);u(5)
%best(6);u(6)
%best(7);u(7) // Attention, le denominateur augmente tres tres vite.    
\squ Vous pouvez aussi executer un programme en mode pas \`a pas ou debugger: Ex:
\verb/debug(best(10))/
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% 
\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 x}{2+\sin 3x}$. 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.
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% 
%!s!<c>
% -------------------------------------EXERCICE---------------------------------------------
% !s!
\qu Que se passe t'il avec $\int \frac{\cos(5*x)}{2+\sin(3*x)}$ et $\int
\frac{1}{2+\sin(5*x)}$? Affichez un dessin de la r\'eponse pour v\'erifier la continuit\'e.
%!s!<c>
%La decomposition en elements simples introduit une extension de corps. (Que le
%logiciel ne pourra pas toujours trouver)
%!s!
% I1:=int(cos(5*x)/(2+sin(3*x)));
% plot(I1);
%% PB SAGE 5.2 le retour de I2 n'est pas continu.
% I2:=int(1/(2+sin(5*x)));// Attention a la partie entiere sinon ca n'est pas continu. 
% plot(I2);

%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
\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 (au sens large) 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 de mani\`ere th\'eorique 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\footnote{Une partition de $n$ est une suite
d\'ecroissante d'\'el\'ements de $\nat^*$ de somme $n$.} 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 (utiliser \verb/normal/ pour
d\'evelopper un calcul lourd ). (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{\bf Illustration groupe des nombres complexes de module 1.}
(Illustration d'un lemme utile pour montrer la surjectivit\'e de l'exponentielle sur le
cercle unit\'e)
%%\qu Etudiez la composition des fonctions sous xcas avec le symbole
%%\verb/@@/. (Attention aux parenth\`eses). Calculez
%%$\sqrt{\sqrt{\sqrt{\sqrt{65536}}}}$
% !s!<c>
% -------------------------------------EXERCICE---------------------------------------------
%!s!
%% (sqrt@@4)(65536);//la composee 4ieme calculee en 65368.
\qu Etudiez la fonction \verb/element/. (Particuli\`erement utile en mode
geometrie2d. cf menu deroulant nouvelle figure 2d). Cr\'ees le cercle unit\'e
\verb/C/, et choisissez un point $m0$ sur $C$ d'argument $3$ gr\^ace \`a cette commande.
%!s!<g>
% C:=cercle(0,1);
% m0:=element(C,3);
\qu Affectez \`a \verb/a/ l'affixe de \verb/m0/ et cr\'eez la liste de 10 \'el\'ements
contenant les points $m_0,m_1,\dots,m_9$ d'affixe les it\'er\'es i i\`emes de
\verb/sqrt/ calcul\'es en $a$.
% a:=affixe(m0);
% [seq(point((sqrt@@j)(a),display=bleu+epaisseur_point_3+point_etoile),j=0..9)];
%!s!
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% 
\qu Selectionnez le  mode pointeur dans le menu d\'eroulant de votre fen\^etre de
g\'eom\'etrie et d\'eplacez $m_0$ sur le cercle. Expliquez les choix pour la racine
carr\'ee et pourquoi $m_i$ aura un \'el\'ement dans le domaine de convergence de la
s\'erie $\sum \frac{(z-1)^n}{n}$ et donc que $m_0$ est dans l'image de la fonction exponentielle.
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
\exo
\qu Il existe dans xcas plusieurs fa\c cons de d\'evelopper\footnote{sans compter les
  synonymes}: \verb/ratnormal/, \verb/normal/, \verb/simplify/, \verb/expand/. Lors de calculs
lourds sur les polyn\^omes il faut vraiment pr\'ef\'erer  "ratnormal" ou "normal" qui
optimiseront. "simplify" sera plus lent car il tentera des simplifications plus sophistiqu\'ees. On pourra
l'utiliser apr\`es avoir fait un "normal" non satisfaisant. En fait, "expand"
travaillera avec les objets les plus g\'en\'eraux et pourra \^etre tr\`es
lourd car il ne regroupe pas les d\'enominateurs. Essayez ces intructions sur, \verb!P1:=(x^2-1)/(x-1)!,
\verb!P2:=-cos(5*x)+16*cos(x)*sin(x)^4-12*cos(x)*sin(x)^2+cos(x)! et  \verb!P3:=(a*sqrt(3)+b/sqrt(6))^4!
% P1:=(x^2-1)/(x-1);
% expand(P1);//developpe dans Q(x)
% normal(P1),simplify(P1);//les 2 simplifient
% P2:=-cos(5*x)+16*cos(x)*sin(x)^4-12*cos(x)*sin(x)^2+cos(x);
% expand(P2);
% normal(P2);
% simplify(P2);
\qu 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);
\qu On pose $a=e^{\frac{2i\pi}{12}}$. V\'erifiez que $a^{12}$ vaut bien
$1$ pour xcas. Etudier $e^{\frac{2i\pi}{9}}$.
\qu Factorisez $P=(2x+1)^2(x^5-1)/(x-1)$ dans $\reel[x]$
et dans $\complex[x]$. Peut t'on esp\'erer un r\'esultat exact?
% P:=(2*x+1)^2*(x^5-1)/(x-1);
% 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}]$. (On peut tenter de rajouter une liste d'\'el\'ements en
option de factor)
% !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

%!s!<c>
%-------------------------------------EXERCICE---------------------------------
%!s!
\exo
\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}$$ 
(Il ne s'agit pas de trouver une instruction du logiciel pour  r\'esoudre
directement ce probl\`eme en tenant compte des hypoth\`eses, mais de poser une
question judicieuse pour que la r\'eponse rende la preuve \'evidente.) 
% 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);
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%

%%\newpage
%% \end{multicols}
\exotitre{Tri par d\'enombrement}
\qu 
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. 
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% 
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
% !s!<c>
% -------------------------    Exercice           -------------------
%!s!
\exotitre{g\'eom\'etrie, conjectures et calculs formels}
On acc\`edera aux fonctions graphiques facilement via le menu d\'eroulant.
\qu Cr\'eer une fonction: $M:t \mapsto (\frac{\cos
  t}{\sin^3t},\frac{\sin t}{\sin^3t})$
% M:=t->(cos(t)/sin(t)^3,sin(t)/sin(t)^3);
\qusqu En mode g\'eom\'etrie, dessiner le point $M(\pi/2)$
\squ D\'essiner la courbe $C_1:t\mapsto M(t)$. (Cf menu d\'eroulant pour trouver l'instruction)
%!s!<g>
%C1:=plotparam(M(t),t=0..Pi);
\squ En utilisant la commande \verb/assume(t1:=[0.7,0,Pi]);/ en g\'eom\'etrie
int\'eractive, utilisez le bouton apparu \`a droite pour expliquez ce qu'est une
courbe param\'etr\'ee en affichant le point \verb/point(M(t1))/. On peut ins\'erer des
\verb/attributs/ graphiques via le menu d\'eroulant.
\squ Ajoutez aussi l'\'el\'ement  \verb/t2/ de $]0..\pi[$ et dessiner
$M(t_1),M(t_2),M(-t_1-t_2)$. Afficher ces points avec une grosse croix en taille
un peu plus grande. 
%% t1:=element(0..Pi,0.7);
%assume(t1:=[0.7,0,Pi]);
%%t2:=element(0..Pi,0.6);
%assume(t2:=[0.6,0,Pi]);
%%couleur(point_width_2+point_etoile);//pb les droites ne s'affichent plus?
%M1:=point(M(t1),affichage=point_width_2+point_etoile);
%M2:=point(M(t2),affichage=point_width_2+point_etoile);
%M3:=point(M(-t1-t2),affichage=point_width_2+point_etoile);
%droite(M1,M2,affichage=blue);
%!s!
\squ Dessiner la droite $M(t1),M(t2)$ en bleu. Que conjecturez vous?
\qu D\'emontrez votre conjecture par un calcul formel. (Les vecteurs se notent
simplemenent \verb/[ , , ]/ (et les parenth\`eses ne comptent pas).
%mm:=[[M(-t1-t2)]-[M(t1)],[M(t2)]-[M(t1)]];
%det(mm);
\qusqu Exprimez les coordonn\'ees de $M(t)$ en fonction de $u=\tan(t/2)$. On
pourra utiliser une instruction xcas pour passer en $\tan(t/2)$ puis \verb/subst/ pour subtituer les
\verb|tan(t/2)| par des \verb/u/.  Stockez les dans \verb/xu/ et \verb/yu/.
%xu:=subst(halftan(M(t)[0]),tan(t/2)=u);
%yu:=subst(halftan(M(t)[1]),tan(t/2)=u);
%%mystere:=factors(resultant(x-xu,y-yu,u))[2];
%mystere:=factors(resultant(denom(xu)*x-numer(xu),denom(yu)*y-numer(yu),u))[2];
%mystere2:=eliminate([x=xu,y=yu],u)[0];
\squ On consid\`ere l'\'equation:\\
\verb/mystere:=factors(resultant(denom(xu)*x-numer(xu),denom(yu)*y-numer(yu),u))[2];/ ou bien celle ci: \verb/mystere2:=eliminate([x=xu,y=yu],u)[0];/ Dessinez la.
%C2:=implicitplot(mystere,x,y);
\squ D\'emontrez que $M(t)$ appartient \`a cette courbe. (On pourra utiliser la
fonction \verb/unapply/ pour transformer un symbole en une fonction.)
%f:=unapply(mystere,x,y);
%simplify(f(M(t)));
%!s!<c>
%Pour ajuster le pas d'un trace implicit on utilise xstep et ystep
%pour abscisse et ordonnee, quels que soient les noms de variables.
%!s!
%

%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%


\end{document}
