\documentclass[a4paper,10pt]{book}
\textwidth 10,5 cm
%\textwidth 11,8 cm
\textheight 17 cm
%\documentclass[twocolumn,10pt]{book}
%dvips -t landscape -O 0,-0.9 jean2.dvi 
\if@twoside \oddsidemargin 44pt \evensidemargin 82pt \marginparwidth 107pt
\else \oddsidemargin -0.29cm \evensidemargin -0.29cm
 \marginparwidth 0cm
\fi
\marginparsep 0cm
\topmargin 0.26cm 
\headheight 10pt \headsep 10pt \footskip 30pt
%\topmargin 0.36cm
%\baselineskip = 15pt
%\textheight 24.5cm
%\textwidth 17cm 
%\columnsep 30pt \columnseprule 0pt
%\textwidth 25 cm
%\textheight 18 cm
%\def\@evenhead{\thepage\hfill{\footnotesize\textit{\leftmark}}}
%\def\@oddhead{\footnotesize{\textit{\rightmark}}\hfill\thepage}
%\usepackage{hp}
\usepackage[latin1]{inputenc}
\usepackage[T1]{fontenc}
\usepackage[francais]{babel}
\usepackage{latexsym}
\usepackage{amssymb}
\usepackage{makeidx}
\usepackage{times}
\usepackage[colorlinks,pdftex]{hyperref}
\title {Calcul formel \\et \\ Mathématiques\\ avec\\ la {\tt HP40GS}}
\author{Renée De Graeve\\ Version 3.0}
%corrections MarK Howell
\makeindex
\begin{document}
\newcommand{\asinh}{\,\,\mbox{asinh\,}}
\newcommand{\atanh}{\,\,\mbox{atanh\,}}
\maketitle
{\bf \centerline{Remerciements}}

\vspace{1cm}
Tout le monde savait que c'etait impossible d'écrire seul, un logiciel de 
calcul formel performant....Seul, un illuminé, Bernard Parisse ne le savait 
pas...et il l'a fait!!!\\
Voici son logiciel de calcul formel (dit {\tt ERABLE}) implanté pour la deuxième fois
sur une calculatrice {\tt HP}.\\
Cela a amené Bernard Parisse à modifier quelque peu son logiciel de façon à 
ce que les fonctions de calcul formel puissent \^etre éditées et avoir leurs 
réponses dans l'éditeur d'\'equation....\\
A vous de découvrir toutes les performances de cette calculatrice, au fil 
des pages de ce livre.\\
\vspace{0.2cm}

Je  remercie:
\begin{itemize}
\item Bernard Parisse pour ses précieux conseils, ses remarques sur ce texte,
 sa relecture, et  pour sa faculté d'écrire des fonctions à la demande, avec 
efficacité et gentillesse, 
\item Jean Tavenas pour l'int\'er\^et port\'e \`a l'ach\`evement de la 
premi\`ere version de ce guide, 
%\item Jean Yves Avenard pour avoir pris en compte nos suppliques et pour avoir, gr\^ace à son esprit prompt, écrit la commande {\tt PROMPT} de façon impromptue... (cf \ref{sec:prompt}).
\end{itemize}
\vspace{1cm}


\vfill

%\copyright\ 2000 Hewlett-Packard, {\tt http://www.hp.com/calculators}\\ 
\copyright\ 2005, Renée De Graeve \\     
Permission is granted to copy, distribute and/or modify this document
      under the terms of the {\tt GNU Free Documentation License}, Version 1.1
      or any later version published by the Free Software Foundation,
      with no Invariant Sections, with no Front-Cover Texts, 
      and with no Back-Cover Texts.\\
      A copy of the license is included in the section entitled :\\
{\tt GNU Free Documentation License} (chapter \ref{sec:fdl}, p. \pageref{sec:fdl}).

\newpage 
{\bf \centerline{Préface}}

\vspace{0.2cm}

La {\tt HP40GS} va marquer une nouvelle \'etape dans la d\'emocratisation
de l'utilisation du calcul formel d'une part, par son prix 
comp\'etitif, et d'autre part, par le nombre de possibilit\'es d'ex\'ecuter
en pas-\`a-pas les principaux algorithmes enseign\'es en math\'ematiques
au lyc\'ee et dans les premi\`eres ann\'ees \`a l'Universit\'e.

Mais encore fallait-il lui adjoindre une documentation ad\'equate, 
de pr\'ef\'erence \'ecrite par un enseignant de math\'ematiques. 
C'est ce que vous trouverez dans ce guide r\'ealis\'e par 
Ren\'ee De Graeve. 
%maitre de conf\'erences \`a l'Universit\'e de Grenoble I et animatrice \`a l'IREM de Grenoble. 
Il contient, bien s\^ur, une r\'ef\'erence compl\`ete des fonctions de calcul 
formel, mais montre aussi, sur des exemples tir\'es du baccalaur\'eat et du 
brevet, comment tirer parti intelligemment de la puissance de calcul de la 
{\tt HP40GS} et se termine par deux chapitres consacr\'es \`a la 
programmation : le premier pour apprendre \`a programmer et le second qui 
illustre l'algorithmique appliquée au programme d'arithm\'etique de 
sp\'ecialit\'e des Terminales Scientifiques.
Ce guide est une mise \`a jour du guide de la {\tt HP40G} avec des explications
suppl\'ementaires pour les nouvelles fonctions.
{\flushright
  Bernard Parisse\\
\flushright Ma\^itre de Conférences à l'Université de Grenoble I\\
}

%\vfill


\chapter{Pour commencer}
\section{Présentation générale}
\subsection{Mise en route}
Appuyer sur la touche {\tt ON}.\\
Vous \^etes dans l'écran {\tt HOME}.\\
 En cours de travail, cette touche  {\tt ON}
annule l'opération en cours : elle joue le r\^ole de {\tt CANCEL}.\\
Pour éteindre la calculatrice, taper sur {\tt SHIFT} puis sur {\tt ON (OFF)}.\\
Si malgré plusieurs {\tt ON} ({\tt CANCEL}), la calculatrice ne repond pas,
 appuyer simultanément sur {\tt ON} et {\tt F3} pour la réinitialiser.
\subsection{Que voit-on ?}
De haut en bas :\\
1. l'écran de {\tt HOME}

 1.a l'état de la calculatrice 

 1.b un trait horizontal 

 1.c un bandeau contenant des commandes\\
2. le clavier\\

\noindent 1. L'écran :

1.a L'état de la calculatrice décrit les modes mis en {\oe}uvre dans l'écran  
{\tt HOME} :
\begin{itemize}
\item {\tt RAD}, {\tt DEG} ou {\tt GRD} selon que l'on travaille en radians ou 
en degrés ou en grades.
\item {\tt  \{FUNCTION\}} pour indiquer le nom de l'{\tt Aplet} 
sélectionnée ici, l'{\tt Aplet Function}.
\item $\blacktriangle$ pour indiquer que la flèche vers le haut vous permet de
 remonter dans l'historique.
\end{itemize}
1.b Un trait horizontal :\\
- au dessus de ce trait c'est l'historique des calculs faits dans  l'écran 
{\tt HOME}.\\
{\sc Principe} : sur l'écran, le calcul demandé  s'inscrit à 
gauche et le résultat s'inscrit à droite.\\
- en dessous de ce trait c'est la ligne d'édition des commandes.\\ 
On peut, gr\^ace à la flèche vers le haut, remonter dans l'historique 
et recopier, avec {\tt COPY} du bandeau, une commande ou un résultat précédent
dans la ligne de commande.\\
1.c Le bandeau :\\
Les commandes du bandeau sont accessibles par les 6 touches grises sans nom 
que l'on nommera ici :\\
 {\tt F1 F2 F3 F4 F5 F6}.\\
 Le bandeau peut contenir des répertoires contenant un ensemble de commandes, 
ils sont repérables par leur forme de valise.\\
 Pour activer une commande du bandeau, il suffit de 
taper sur la touche {\tt Fi} correspondante. \\
Dans  l'écran {\tt HOME}, le bandeau possède deux commandes :\\
- ${\tt STO \triangleright}$ qui permet de mettre une valeur dans une variable 
et,\\ 
- {\tt CAS} qui permet d'ouvrir l'éditeur d'\'equation pour faire du calcul
formel.\\
2. Le clavier :\\
Vous avez déjà repéré :\\
 la touche {\tt ON} pour la mise en route ou pour arr\^eter un calcul en
 cours et {\tt SHIFT}  {\tt ON} pour éteindre la calculatrice.\\ 
Il faut repérer :
\begin{itemize}
\item les quatres flèches (gauche, droite, haut, bas) qui permettent de 
déplacer le curseur lorsqu'on est dans l'éditeur d'\'equation, dans un menu 
etc... 
\item la  touche {\tt SHIFT} qui permet à une m\^eme touche d'avoir une autre 
fonction. 
\item la touche {\tt ALPHA} pour taper du texte en majuscules et les touches
{\tt SHIFT} puis {\tt ALPHA} pour taper du texte en minuscules.
 Pour rester en mode de saisie alphabétique il faut maintenir la touche
 {\tt ALPHA} appuyée.
\item ${\tt X\ T\ \theta}$ permet de taper selon le contexte directement  
${\tt X,\ T,\ \theta, N}$.
\item la touche {\tt ENTER} sert à valider une commande.
\end{itemize}
\section{Notations}
Les quatre flèches de direction du curseur sont ici représentées par
les quatre triangles :
$$\vartriangle\  \lhd \  \rhd \ \triangledown  $$ \index{\tt $ \vartriangle\  \lhd \  \rhd \ \triangledown$}
Le ${\tt STO\triangleright}$ du bandeau de {\tt HOME} est représenté dans un 
programme par :
$$ {\tt STO\triangleright \mbox{ ou }\triangleright} \mbox{ ou }->$$\index{$\triangleright$} \index{STO$\triangleright$}\index{->}
Dans l'éditeur d'\'equation la position du curseur est représentée par :
$$\blacktriangleleft$$\index{$\blacktriangleleft$}
\section{L'aide en ligne}\index{HELP}
Cette calculatrice possède une aide en ligne en français, ou en anglais 
(cf \ref{sec:cfg}), très pratique et performante.\\
On vous propose la liste, par ordre alphabétique, des fonctions de calcul 
formel. Comme dans chaque menu déroulant, vous pouvez, en appuyant sur une 
lettre, accéder aux fonctions commencant par cette lettre, sans avoir besoin 
de taper sur {\tt ALPHA}.\\ 
L'aide consiste en une description succinte de la commande, d'un exemple et 
de sa réponse. Chaque exemple peut \^etre testé
avec {\tt ECHO} du bandeau et \^etre traité tel quel, ou modifié. On peut aussi
 aller voir l'aide des commandes proches gr\^ace aux  {\tt SEE1 SEE2...} du 
bandeau. Il faut utiliser {\tt EXIT} pour revenir, sans changement,
dans l'éditeur d'\'equation.\\
Pour plus de détails, voir la description des touches 
{\tt SHIFT 2 (SYNTAX)}, sections \ref{sec:syntaxe} et \ref{sec:syntax}.

\chapter{Les Aplets}  
\section{La touche {\tt APLET}}
La touche {\tt APLET} donne accès à la liste des {\tt Aplets} utilisables.\\
 Cette  calculatrice permet en effet de travailler avec des {\tt Aplets}.\\
Mais qu'est-ce qu'une {\tt Aplet} ? \\
Une {\tt Aplet} est un logiciel intégré à la machine qui permet facilement 
d'obtenir 3 vues d'un objet mathématique (une vue symbolique, une vue 
numérique et une vue graphique) et tout est déjà préprogrammé !\\
Les différentes {\tt Aplets} permettent de travailler avec des objets 
mathématiques tels que : fonctions, suites, séries statistiques etc... \\
Certaines {\tt Aplets} sont des logiciels illustrant des parties de cours. 
\section{Les différentes {\tt Aplets}}
Lorsque vous \^etes dans {\tt HOME}, vous pouvez savoir en regardant la ligne 
d'état, le nom de l'{\tt Aplet} s\'electionnée.\\
Voici quelques choix possibles de la touche {\tt APLET} :
\begin{itemize}
\item {\tt Sequence}\\
Cette {\tt Aplet} permet de définir des suites ayant pour noms :\\
{\tt U1, U2 .. U9, U0}\\
On définit {\tt U1(N)} :\\
- soit en fonction de {\tt N},\\
- soit  en fonction de {\tt U1(N-1)},\\
- soit en fonction de {\tt U1(N-1)} et de {\tt U1(N-2)}.\\
On définit par exemple :\\
{\tt U1(N)=N*N+1} \\
et alors les valeurs de {\tt U1(1)} et de {\tt U1(2)} sont calculées et mises
automatiquement.\\
 En cochant {\tt U1}, puis en appuyant sur {\tt NUM} les valeurs de {\tt U1(N)}
s'affichent.\\
On trouvera d'autres exemples utilisant l'{\tt Aplet Sequence} au paragraphe suivant  comme le calcul  du $PGCD$ de deux nombres (cf \ref{sec:pgcd})
et le calcul des coefficients de l'identité de Bézout (cf \ref{sec:bezout}). 
\item {\tt Function}\\
Cette {\tt Aplet} permet de définir des fonctions ayant pour noms :\\
{\tt F1(X), F2(X) .. F9(X), F0(X)}\\
On définit  {\tt F1(X)} :\\
-  soit par une expression fonction de {\tt X} :\\
Par exemple, la formule :\\
{\tt F1(X)=X*LN(X)} définit la fonction :\\
$f_1(x)=x.\ln(x)$\\
-  soit, si la fonction est définie par morceaux en utilisant des booléens 
comme par exemple {\tt X>0} (qui vaut 0 sur $]-\infty;0]$ et 1 sur $]0 ;+\infty[$) etc...\\
Par exemple, une formule de la forme :\\
 {\tt F1(X)=X*(X<0)+2*X*(X>0)}\\
définit la fonction :\\
 $ f_1(x)= \  x$ si  $ x<0 $ et\\
 $ f_1(x)=2 \cdot x $  si $ x \geq 0$ 
\item {\tt Parametric} pour tracer des courbes en coordonées paramétriques.
\item {\tt Polar} pour tracer des courbes en coordonées polaires.
\item {\tt Solve} pour résoudre des équations numériques.
\item {\tt Statistics} pour faire des statistiques.
\item {\tt Inference}  pour faire des statistiques inférentielles.
\item {\tt Quad Explorer} pour faire des exercices sur les fonctions 
du second degr\'e.
\item {\tt Trig Explorer} pour faire des exercices sur les fonctions 
trigonometriques.
\end{itemize}
\section{Exemples utilisant l'{\tt Aplet Sequence}}
\subsection{Écriture en base $b$}
Étant donnés $a$ et $b$, on veut obtenir,  la suite $q_n$ ($  n \geq 1$) et
 $r_n$ ($n \geq 2$) des quotients et
 des restes de la division  par $b$ des $q_i$ définies par :\\
$q_1=a$\\
$q_1=b \cdot q_2+r_2 \ (0 \leq r_2 < b)$\\
$q_2=b \cdot q_3+r_3 \ (0 \leq r_3 < b)$\\
......\\
$q_{n-1}=b \cdot q_n+r_n \ (0 \leq r_n < b)$\\
On remarquera que si $r_{n+1}=0$, le nombre $r_n r_{n-1}.....r_3r_2$ est l'écriture en base $b$ de $a$, lorsqu'on suppose  $2 \leq b \leq 10$.\\
On met dans {\tt B} la valeur de la base, par exemple :\\
 ${\tt 7\ STO\triangleright\ B}$ \\
et dans {\tt A} le nombre à écrire en base {\tt B} (par exemple  
${\tt 1789\ STO\triangleright\ A}$ )\\
On définit ensuite deux suites :\\
{\tt U1(1)=A}\\
{\tt U1(2)=FLOOR(A/B)}\\
{\tt U1(N)=FLOOR(U1(N-1)/B)}\\
puis\\
{\tt U2(1)=0}\\
{\tt U2(2)=A MOD B}\\
{\tt U2(N)=U1(N-1) MOD B }\\
Ainsi $q_n$={\tt U1(N)} et $r_n $={\tt U2(N)}\\
On trouve :\\
 {\tt U2(2)=4 U2(3)=3 U2(4)=1 U2(5)=5 U2(6)=0}\\
 donc l'écriture en base 7 de 1789 est : 5134.
\subsection{Le calcul de $PGCD$} \label{sec:pgcd}
Voici une mise en en \oe uvre de l'algorithme d'Euclide avec la {\tt HP40GS}.\\
Voici la description de cet algorithme :\\
On effectue des divisions euclidiennes successives :
\begin{eqnarray*}
A = &  B \times Q_1+R_1   &  0 \leq R_1 < B \\
B  = & R_1 \times Q_2+R_2  & 0 \leq R_2 < R_1 \\
R_1  = & R_2 \times Q_3+R_3 & 0 \leq R_3 < R_2 \\
.......\\
R_{n-2}  = & R_{n-1} \times Q_n+R_n & 0 \leq R_n < R_{n-1} 
\end{eqnarray*}
Après un nombre fini d'étapes (au plus $B$), il existe un entier $n$ tel que : 
$R_n = 0$. \\
on a alors :\\
$PGCD(A,B )= PGCD(B,R_1) =....$\\
$PGCD(R_{n-1},R_n) = PGCD(R_{n-1},0) = R_{n-1}$\\
À l'aide des suites, on écrit la suite des restes.\\
Avec la HP40GS, on utilise l'\verb|Aplet|  {\tt Sequence} (touche \verb|APLET| puis on sélectionne {\tt Sequence} puis \verb|START|  du bandeau).\\
Si l'on veut déterminer le PGCD(78,56), on définit la suite :

${\tt U1(1)=78} $ 

${\tt  U1(2)=56} $ 

${\tt  U1(N)=U1(N-2)\  MOD \  U1(N-1)}$

On tape sur \verb|NUM| pour avoir la liste  numérique des {\tt  U1(N)} c'est
 à dire la liste des restes des divisions successives...

Le dernier reste non nul est ${\tt 2}$ donc le $PGCD(78,56)=2$.\\
{\sc Remarque}\\
On peut utiliser dans  \verb|HOME| les variables {\tt A} et {\tt B} pour 
stocker les deux nombres et mettre alors
{\tt U1(1)=A} et  {\tt U1(2)=B}.\\
Il faut aussi remarquer que {\tt A MOD 0 = A}.
\subsection{Le calcul des coefficients de l'identité de Bézout}\label{sec:bezout}
L'algorithme d'Euclide permet de trouver un couple $ U$, $V$ vérifiant :

$ A \times U + B \times V= PGCD(A,B) $\\
 Avec les suites :\\
On va définir "la suites des restes" $R_n$ et deux suites $U_n$ et $V_n$, de 
façon qu'à chaque étape on ait :\\
$R_n=U_n \times A+V_n \times B$.

Puisque on a :\\
$R_n=R_{n-2}-Q_n \times R_{n-1}$ , $U_n$ et $V_n$ vont vérifier la m\^eme 
relation de recurrence (o\`u  $Q_n=$ est le quotient entier de $R_{n-2}$ par $R_{n-1}$).

On a au début :

$R_1=A \  R_2=B$

$U_1=1 \ U_2=0$ puisque  $A=1 \times A+0 \times B$

$V_1=0 \ V_2=1$ puisque $B=0 \times A+1 \times B$

 Avec la {\tt HP40GS}, gr\^ace à l'{\tt Aplet Sequence},
 on va définir la suite {\tt U1} des restes et les 
suites {\tt U2} et {\tt U3} qui seront telles que pour tout {\tt N} on ait :
 {\tt U1(N)=A*U2(N)+B*U3(N)}.

Pour cela on a besoin de la suite des quotients que l'on mettra en {\tt U4}.

Les suites {\tt U1}, {\tt U2}, {\tt U3} vérifient la m\^eme relation de 
récurrence :

$U_n=U_{n-2}-Q_n \times U_{n-1} $
avec

$Q_n={\tt U4(N)=FLOOR(U1(N-2)/U1(N-1))}$

On définit donc :

${\tt U1(1)=A} $ 

${\tt U1(2)=B} $ 

${\tt U1(N)=U1(N-2)-U4(N)* U1(N-1)}$

${\tt U2(1)=1} $

${\tt U2(2)=0} $ 

${\tt U2(N)=U2(N-2)-U4(N)* U2(N-1)}$

${\tt U3(1)=0}$

${\tt U3(2)=1 }$

${\tt U3(N)=U3(N-2)-U4(N)* U3(N-1)}$

${\tt U4(1)=0} $

${\tt U4(2)=0} $

${\tt U4(N)=FLOOR(U1(N-2)/U1(N-1))}$

Il faut remarquer que l'on n'utilise {\tt U4(N)} que pour {\tt N > 2},
 on a donc défini les deux premières valeurs (qui sont inutiles!) par zéro.\\
\verb|NUM| va alors afficher les valeurs de ces différentes suites et sur la
 ligne du dernier reste non nul on pourra lire le pgcd et les coefficients de 
l'identité de Bézout.
\section{Les touches {\tt SYMB, NUM, PLOT} et {\tt MODES}}
Une {\tt Aplet} est visible en général de trois façons diffèrentes :\\
- une vue symbolique qui correspond à la touche {\tt SYMB}\\
- une vue numérique qui correspond à la touche {\tt NUM}\\
- une vue graphique qui correspond à la touche {\tt PLOT}\\
Quand les touches  {\tt NUM} et {\tt PLOT} sont SHIFTées ({\tt SETUP}), cela 
correspond au choix des
différents paramètres utilisés (choix  des paramètres de la 
fen\^etre graphique etc...).\\
Le choix de l'unit\'e d'angle se fait depuis {\tt HOME} ou depuis une 
{\tt Aplet} avec les touches : {\tt SHIFT HOME (MODES)}.
%%%% HP40GS BEGIN CAS %%%%%

%%%% CAS INTRO %%%%

%\chapter{{\tt CAS} user's guide}
\chapter{Le guide de l'utilisation du {\tt CAS}} 
\section{Conditions}
\subsection{Terms and Conditions}
{\bf 
Use of the {\tt CAS} Software requires from the user an appropriate 
mathematical knowledge. There is no warranty for the {\tt CAS} Software, 
to the extent permitted by applicable law. Except when otherwise stated 
in writing the copyright holder provides the CAS Software As Is 
without warranty of any kind, either expressed or implied, including, 
but not limited to, the implied warranties of merchantability and fitness 
for a particular purpose. The entire risk as to the quality and performance 
of the {\tt CAS} Software is with you. Should the {\tt CAS} Software prove 
defective, you assume the cost 
of all necessary servicing, repair or correction.

In no event unless required by applicable law will any copyright holder 
be liable to you for damages, including any general, special, incidental 
or consequential damages arising out of the use or inability to use the 
CAS Software (including but not limited to loss of data or data being 
rendered inaccurate or losses sustained by you or third parties or a 
failure of the {\tt CAS} Software to operate with any other programs), even 
if such holder or other party has been advised of the possibility of such 
damages. If required by applicable law the maximum amount payable for 
damages by the copyright holder shall not exceed the royalty amount paid 
by Hewlett-Packard to the copyright holder for the {\tt CAS} Software.
}

Note that a large part of the HP40GS CAS is 
(c) Bernard Parisse, Institut Fourier, Université de Grenoble I, France.
This part is also licensed under the LGPL License as published by the 
Free Software Foundation; either version 2 of the License, or 
(at your option) any later version.\\
For more details, see\\
\verb|http://www-fourier.ujf-grenoble.fr/~parisse|


\subsection{Termes et conditions} 
{\bf 
L'utilisation du logiciel {\tt CAS} implique des connaissances approri\'ees en
 Math\'ematiques. Dans les limites pr\'evues par la l\'egislation, ce logicel 
ne fait l'objet d'aucune garantie. Sauf disposition contraire et expresse, le 
d\'etenteur du copyright fournit le logiciel en "l'\'etat". Le logiciel ne fait
 l'objet d'aucune garantie, expresse ou implicite, notamment, et sans 
restriction, les garanties tacites en mati\`ere de qualit\'e marchande et 
d'ad\'equation \`a un usage particulier. Hewlett-Packard ne garantit ni la 
qualit\'e ni les performances du logiciel {\tt CAS}. S'il s'av\`ere que ce 
logiciel pr\'esente des d\'efauts, l'utilisateur prend \`a sa charge les 
co\^uts aff\'erents au support technique, aux r\'eparations et aux 
rectification.\\ 
Sauf disposition contraire, le d\'etenteur du copyright n'est pas responsable 
envers l'utilisateur des \'eventuels dommages d\'ecoulant de l'utilisation ou 
de l'incapacit\'e \`a utiliser le manuel {\tt CAS} (y compris et sans 
limitation, la perte de donn\'ees ou l'inexactidude des donn\'ees, les 
\'eventuelles pertes subies par l'utilisateur ou par des tiers, ou 
l'incompatibilit\'e du logiciel avec d'autres programmes), quand bien m\^eme 
lui ou des tiers auraient eu connaissance des risques encourus. Si la 
l\'egislation le pr\'evoit, le montant maximal dont pourra \^etre redevable le 
d\'etenteur ne peut exc\'eder la redevance pay\'ee par Hewlett-Packard.
}

Notez qu'une grande partie du  {\tt CAS} de la {\tt HP40GS} est
(c) Bernard Parisse, Institut Fourier, Université de Grenoble I, France.
Cette partie est aussi sous la LGPL License et est publi\'ee par la 
Free Software Foundation; ou la version 2 de la License, ou
(en option) d'autres versions futures.\\
Pour plus de  details, voir\\
\verb|http://www-fourier.ujf-grenoble.fr/~parisse|

\section{Introduction}
Le mot {\tt CAS} est l'abr\'eviation de  Computer Algebra System.
Ce chapitre donne un bref apper\c{c} du {\tt CAS} de la {\tt HP40+}.
\subsection{ Qu'est ce que le {\tt CAS} ?}\label{sec:exarg}
 Le {\tt CAS} permet de faire du calcul formel  ou symbolique.\\ 
%{\tt CAS = Computer Algebra System}.\\
Il faut bien voir la différence entre :\\
\begin{itemize}
\item  calcul formel ou symbolique, c'est le calcul litt\'eral, c'est celui que
l'on fait avec les fonctions du {\tt CAS}. On travaille alors en précision 
infinie, en {\tt mode exact}, et,  
%on a la possibilité de faire les calculs en pas à pas,\\
\item  calcul numérique, c'est celui que l'on fait avec les fonctions du 
répertoire {\tt MTH} de la touche  {\tt MATH}, dans l'écran {\tt HOME} ou 
depuis les  {\tt Aplets} ou en programmation.
On travaille alors avec une précision de $10^{-12}$, en 
{\tt mode approximatif}.\\ 
\end{itemize}
Exemple :\\
Si on est dans {\tt HOME} :\\
{\tt 1/2+1/6} renvoie 0.6666666666667\\
alors que dans le {\tt CAS} :\\
{\tt 1/2+1/6} renverra  {\tt 2/3}.
%Si on est en {\tt Radians} dans {\tt HOME} :\\
%{\tt ARG(1+i)} vaut 0.785398163397\\
% alors que dans le {\tt CAS}, on est toujours en {\tt Radians} et on a :\\
%{\tt ARG(1+i)} vaut ${\tt \frac{\pi}{4}}$
Chaque mode a des avantages et des inconv\'enients, en  mode exact il n'y a pas
d'erreur d'arrondis, mais certains calculs demandent plus de temps et de 
memoire que le mode numerique. Par exemple, calculer la factorielle de
 300 est beaucoup plus rapide en mode numerique qu'en mode exact.

\subsection{Comment faire un calcul symbolique ?}
La {\tt HP40GS} a \'et\'e con\c{c}ue pour utiliser les fonctions du {\tt CAS}
dans un  environment sp\'ecial : l'éditeur d'\'equation. 
Vous pouvez cependant, utiliser les fonctions du {\tt CAS} depuis
l'\'ecran {\tt HOME}, \`a condition de prendre certaines pr\'ecautions
(cf \ref{sec:cashome}), et cela est m\^eme obligatoire si vous voulez faire
de l'alg\`ebre lin\'eaire symbolique, puisque l'éditeur d'\'equation ne
permet pas de manipuler des vecteurs, ni des matrices.

Pour ouvrir  l'éditeur d'\'equation, pressez sur {\tt CAS} du bandeau 
de l'\'ecran {\tt HOME}.\\
Pour quitter l'éditeur d'\'equation, pressez sur {\tt HOME} pour revenir \`a
l'\'ecran {\tt HOME}.

La section \ref{sec:eqw} d\'ecrit comment on utilise les fonctions du
{\tt CAS} depuis l'éditeur d'\'equation, la  section \ref{sec:cashome} 
comment on utilise les fonctions du {\tt CAS} depuis l'\'ecran {\tt HOME}
et le chapitre \ref{sec:cas} d\'ecrit les fonctions du {\tt CAS}.

\subsection{Les variables}
Lorsqu'on utilise des fonctions de calcul formel, on travaille avec des 
variables symboliques (variables ne contenant aucune valeur).\\ 
 Dans l'\'ecran {\tt HOME}, une variable de ce type ne peut avoir comme nom que
{\tt S1..S5,s1..s5,n1..n5}, mais pas {\tt X} qui contient toujours une valeur 
(par d\'efaut {\tt X}  contient 0) et les variables qui contiennent des 
expessions symboliques ont comme nom {\tt E0,E1..E9}. Alors que dans l'éditeur 
d'\'equation, toutes les variables sont, ou ne sont pas,
 symboliques : par exemple {\tt X} est symbolique par d\'efaut, si on tape
 {\tt X+X} cela renvoie {\tt 2X}. De plus, les variables de
l'éditeur d'\'equation peuvent avoir des noms ayant plusieurs caract\`eres
comme  {\tt XY} ou {\tt ABC}, alors que dans {\tt HOME}, {\tt XY} ou {\tt ABC}
sont interpr\'et\'es comme \'etant des multiplications
(par exemple {\tt ABC} devient {\tt A*B*C} dans {\tt HOME}). 
Pour ces raisons, les variables utilis\'ees dans l'éditeur d'\'equation ne 
peuvent pas \^etre utilis\'ees dans {\tt HOME}, et vice versa.\\
\subsection{La variable courante}
Le nom de la variable symbolique contenu dans {\tt VX} s'appelle la variable 
courante : c'est le plus souvent {\tt X}.\\
La variable courante est toujours {\tt S1} dans l'\'ecran {\tt HOME}.\\
L'action de certaines fonctions dépend de la variable courante, par exemple
 la fonction {\tt DERVX} effectue une dérivation par rapport à la variable 
courante.\\
Ainsi dans l'éditeur d'\'equation,\\ 
{\tt DERVX(2*X+Y)=2} si   {\tt VX=X}, mais\\
{\tt DERVX(2*X+Y)=1} si   {\tt VX=Y}, et\\
dans l'\'ecran {\tt HOME},\\ 
{\tt DERVX(2*S1+S2)=2}, mais\\
{\tt DERIV(2*S1+S2,S2)=1}





%%%% EQW CHAPTER %%%%%%
\section{Le CAS dans l'éditeur d'\'equation} \label{sec:eqw}
L'éditeur d'\'equation  va vous permettre d'écrire comme sur le papier les 
expressions que vous voulez simplifier, factoriser, dériver, intégrer etc...\\
La touche {\tt F6} ({\tt CAS}  du bandeau) press\'ee depuis l'\'ecran 
{\tt HOME} ouvre l'éditeur d'\'equation et la touche {\tt HOME} vous en fait 
sortir et ainsi revenir \`a l'\'ecran {\tt HOME}.
Cette section vous dit comment \'ecrire une expression dans 
l'éditeur d'\'equation en utilisant les menus (section \ref{sec:eqwmenu}) et
le clavier (section \ref{sec:eqwkbd}), 
comment s\'electionner une sous-expression (section \ref{sec:eqwsub}), 
comment apeler les fonctions du {\tt CAS} sur une sous-expression (section
\ref{sec:eqwsub}) et comment stoker des valeurs dans des variables de
l'éditeur d'\'equation (section \ref{sec:eqwvar}).
Le chapitre \ref{sec:cas} 
explique toutes les fonctions de calcul symbolique  contenues dans les
diff\'erents  menus, avec des exemples d'utilisation.\\
Vous pouvez consulter l'aide en ligne avec {\tt SHIFT 2 (SYNTAX)} 
(cf \ref{sec:syntaxe}), pour obtenir de l'aide pour les autres fonctions
disponibles, et vous pouvez utiliser {\tt SHIFT {\tt MATH} (CMDS)} (cf \ref{sec:cmds}), pour les taper.


\subsection{Le menu de l'éditeur d'\'equation}\label{sec:eqwmenu} 
C'est un éditeur muni d'un bandeau contenant des répertoires :
\begin{enumerate}
\item Le répertoire {\tt TOOL} contient les commandes :\\
\begin{itemize}
\item {\tt Cursor mode} \index{Cursor mode}
permet de passer en mode curseur (cf \ref{sec:curseur}).
\item {\tt Edit expr.} \index{Edit expr.} permet d'éditer l'expression mise en 
surbril\-lance, ce qui permet de la modifier.
\item  {\tt Change font} \index{Change font} permet de choisir 
d'écrire avec de gros ou de petits caractères (on peut faire ce choix à tous 
 moments).
\item {\tt Cut} \index{Cut} recopie la sélection dans le buffer et l'efface. 
\item {\tt Copy} \index{Copy} recopie la sélection dans le buffer.
\item {\tt Paste} \index{Paste} recopie le buffer  là o\`u se trouve le 
curseur. Le buffer contient, soit ce que {\tt Copy} ou {\tt Cut} a 
sélectionn\'e la derni\`ere fois, soit la ligne de l'historique du CAS
mise dans le buffer avec {\tt COPY} du bandeau de l'historique du CAS.
%\item {\tt View expr.} permet de voir facilement les grandes expressions.\\ 
\end{itemize}
\item Le répertoire {\tt ALGB} contient des fonctions qui permettent de faire 
de l'algèbre : factorisation, développement, simplification, substitution...
\item Le répertoire {\tt DIFF} contient des fonctions qui permettent de 
faire du calcul différentiel : dérivation, intégration, développement limité...
\item Le répertoire {\tt REWRI} contient des fonctions qui permettent de 
réécrire une expression sous une autre forme.
\item Le répertoire {\tt SOLV} contient des fonctions qui permettent de
résoudre des équations, des systèmes linéaires et des équations 
différentielles.
\item Le répertoire {\tt TRIG} contient des fonctions qui permettent de
 transformer des expressions triogonomètriques.
\end{enumerate} 
%Vous trouverez dans le  chapitre 3, comment écrire une expression dans l'éditeur d'\'equation, comment sélectionner une sous-expression et comment appeler les fonctions du {\tt CAS}.\\
%Vous trouverez dans le  chapitre 4, toutes les fonctions de calcul formel contenues dans ces différents répertoires  avec un exemple d'utilisation.\\
%Vous pouvez consulter l'aide en ligne avec {\tt SHIFT 2 (SYNTAX)} (cf \ref{sec:syntaxe}), pour avoir l'aide sur les  autres fonctions disponibles, et utiliser {\tt SHIFT MATH (CMDS)} (cf \ref{sec:cmds}), pour les taper.
\subsection{Le clavier depuis l'{\tt éditeur d'\'equation}} \label{sec:eqwkbd}
Les touches, commentées dans ce paragraphe, n'ont  pas la  m\^eme fonction 
selon qu'on les utilise depuis l'{\tt éditeur d'\'equation} ou depuis l'écran 
{\tt HOME}.
Pour la fonctionnalité de ces touches, en dehors de l'{\ttéditeur d'\'equation},
on se reportera à la section \ref{sec:thome}, ou (et) on consultera le manuel 
général.
\subsubsection{La touche {\tt MATH}}\label{sec:tmath}
La touche {\tt MATH}, pressée depuis l'éditeur d'\'equation, affiche les
 fonctions utiles en calcul formel. 
Ces fonctions sont contenues dans les répertoires :
\begin{itemize}
\item les cinq  répertoires précédents (cf \ref{sec:eqwmenu}) :\\
{\tt Algebra\,(ALGB)},~ {\tt Diff\&Int\,(DIFF)},~  {\tt Rewrite\,(REWRI)},\\
{\tt Solve\,(SOLV)},~{\tt Trig.\,(TRIG)}.
\item le répertoire {\tt Complex} contenant des fonctions qui permettent de
 travailler avec des complexes.
\item le répertoire {\tt Constant} contenant ${\tt e\ i \ \infty \ \ pi}$.
\item le répertoire {\tt Hyperb} contenant les fonctions hyperboliques.
\item le répertoire {\tt Integer} contenant des fonctions qui permettent 
de faire de l'arithmétique entière.
\item le répertoire {\tt Modular} contenant des fonctions qui permettent 
de faire des calculs dans $Z/pZ$ ou dans $Z/pZ[X]$, $p$ étant la valeur contenue
dans la variable {\tt MODULO}.
\item le répertoire {\tt Polynom} contenant des fonctions qui permettent
 de faire des calculs avec des polyn\^omes.
\item le répertoire {\tt Tests} contenant:\\ 
{\tt ASSUME}\index{ASSUME}
{\tt UNASSUME }\index{UNASSUME} (pour faire des hypothèses sur les
paramètres et modifier ainsi la variable {\tt REALASSUME}\index{REALASSUME}  
cf \ref{sec:realassume})\\
${\tt  > \ \geq \ < \ \leq \  == \  \neq }$ {\tt AND \ OR \ NOT}\\
{\tt IFTE}\index{IFTE} (pour écrire une fonction algébrique ayant le m\^eme résultat qu'un IF THEN ELSE) .
\end{itemize}
On se reportera à la section \ref{sec:math}, pour avoir la liste des fonctions
se trouvant dans les différents répertoires.
\subsubsection{Les touches {\tt SHIFT MATH (CMDS)}}\label{sec:cmds}
La combinaison de ces touches ouvre le catalogue de toutes les fonctions de
 calcul formel utilisables depuis l'{\tt éditeur d'\'equation}.\\
 Ainsi les fonctions, qui ne sont pas présentes ailleurs, pourront \^etre
appelées depuis ce menu, ce qui vous évite de les taper en mode {\tt Alpha}.
\subsubsection{La touche {\tt  VARS}}\label{sec:vars}
Cette touche pressée lorsqu'on est dans l'{\tt éditeur d'\'equation} fait 
appara\^itre les noms des variables définies dans le {\tt CAS}.\\
On remarquera {\tt namVX} qui contient le nom de la variable courante.\\
Pour voir le contenu d'une variable il suffit de mettre son nom en surbrillance
et d'appuyer sur {\tt F2} pour {\tt VIEW} du bandeau.\\
Pour modifier le contenu d'une variable il suffit de mettre son nom en 
surbrillance et d'appuyer sur {\tt F3} pour {\tt EDIT} du bandeau.\\
On remarquera aussi dans le bandeau :\\
{\tt PURGE} qui permet de détruire une variable existante,\\
{\tt RENAME} qui permet de changer le nom d'une variable existante,\\ 
{\tt NEW} qui permet de définir une nouvelle variable : il suffit d'entrer le 
contenu ({\tt object}), puis son nom ({\tt name}).
Pour plus de détails, on se reportera à la section \ref{sec:eqwvar}.
\subsubsection{Les touches {\tt SHIFT 2 (SYNTAX)}}\label{sec:syntaxe}\index{HELP}
Lorsque que l'on est dans l'éditeur d'\'equation la combinaison des touches : 
{\tt SHIFT 2 (SYNTAX)} ouvre  le menu {\tt CAS HELP ON}.\\
Pour avoir l'aide en français, choisir {\tt Français} dans le menu  du 
répertoire {\tt CFG} permettant de changer votre configuration 
(cf \ref{sec:cfg}).\\
Si dans l'éditeur il n'y a pas de fonction du {\tt CAS} séléctionnée, ce menu 
 propose la liste des fonctions utilisables depuis
 l'{\tt éditeur d'\'equation}. Il suffit alors de mettre en surbrillance une
fonction et de taper {\tt OK} pour avoir de l'aide sur cette fonction.\\
Si dans l'éditeur il y a une fonction du {\tt CAS} séléctionnée, 
par exemple :\\
 {\tt FACTOR(45)},
le menu {\tt CAS HELP ON} ouvre directement l'aide  à la page de  {\tt FACTOR}.
L'aide consiste en une description succinte de la commande, d'un exemple et 
de sa réponse. Chaque exemple peut \^etre mis dans l'éditeur d'\'equation
avec {\tt ECHO} du bandeau et \^etre traité tel quel, ou modifié.\\
Il faut noter que dans les exemples de l'aide, on a choisi comme variable 
courante {\tt VX=X}. Si ce n'est pas le cas, l'exemple sera automatiquement
transformé, en tenant compte de votre {\tt VX}, lors du transfert par 
{\tt ECHO}.\\
Vous avez aussi la possibilité d'aller directement voir l'aide d'une commande 
signalée dans {\tt See:} avec {\tt SEE1, SEE2...} du bandeau.
\subsubsection{La touche {\tt SYMB}}\label{sec:history}
La touche {\tt SYMB} pressée, depuis l'éditeur d'\'equation, permet un 
accès à l'historique du {\tt CAS}.\\
L'historique des calculs faits dans le  {\tt CAS} et l'historique 
des calculs faits dans {\tt HOME} sont distincts.\\
Comme dans l'historique de l'écran {\tt HOME}, les calculs demandés sont
 inscrits à gauche et les résultats sont inscrits à droite. 
On peut gr\^ace à la flèche vers le haut remonter dans l'historique.\\ 
Appuyer sur {\tt COPY} du bandeau pour recopier le niveau courant
de l'historique du CAS dans le buffer pour pouvoir le recopier ult\'erieurement
avec {\tt TOOL->Paste} dans l'\'editeur d'\'equation.\\
Appuyer sur {\tt ENTER} ou {\tt ECHO} du bandeau, 
pour remplacer la s\'election courante de l'\'editeur d'\'equation
par le niveau courant de l'historique du CAS.\\
Appuyer sur {\tt ON} pour quitter l'historique du CAS sans changements.

\subsubsection{Les touches {\tt SHIFT SYMB} ou {\tt SHIFT HOME}}\label{sec:config}
Lorsque que l'on est dans l'éditeur d'\'equation la combinaison des touches :\\
 {\tt SHIFT SYMB(SETUP)} ou {\tt SHIFT HOME(MODES)} ouvre l'\'ecran
{\tt CAS MODES} qui permet de d\'efinir la configuration du CAS et qui est 
l'analogue du menu 
{\tt CFG} (le premier choix du menu {\tt ALGB} du bandeau, cf \ref{sec:cfg}).\\
Cela vous permet de préciser :\\
- le nom de la variable contenue dans {\tt VX}, en tapant son nom devant 
{\tt Indep var.},\\
- la valeur de {\tt MODULO}, en tapant sa valeur devant {\tt Modulo},\\
- si vous voulez travailler en {\tt mode exact} (ou en {\tt mode approximatif}
 si vous cochez {\tt Approx} avec {\tt CHK} du bandeau),\\
- si vous voulez travailler en {\tt mode réel} (ou en {\tt mode complexe} 
si vous cochez {\tt Complex} avec {\tt CHK} du bandeau),\\
- si vous voulez travailler en mode {\tt Direct} (ou en mode {\tt Step/Step} 
si vous cochez {\tt Step/Step} avec {\tt CHK} du bandeau),\\
- si vos polyn\^omes sont écrits selon les puissances  décroissantes (ou
croissantes si vous cochez {\tt Incr Pow} avec {\tt CHK} du bandeau),\\
- si vous interdisez des facteurs numériques (ou autorisez des facteurs 
numériques si vous cochez 
{\tt Num.Factor} avec {\tt CHK} du bandeau).\\
- si vous voulez travailler en {\tt mode non  rigoureux} (ou en 
{\tt mode rigou\-reux} si vous cochez 
{\tt Rigourous} avec {\tt CHK} du bandeau,
pour ne pas négliger les valeurs absolues !),\\
- si vous voulez que les simplifications  des sous-expressions se trouvant \`a 
l'int\'erieur de fonctions transcendantes se fassent il faut cocher
{\tt Simp Non-Rational}.\\
On valide avec {\tt OK} ou {\tt ENTER}.
\subsubsection{La touche {\tt SHIFT ,}}\label{sec:undo}
Lorsque que l'on est dans l'éditeur d'\'equation les touches :\\
 {\tt SHIFT ,(MEMORY)} jouent le r\^ole de ''undo''.\\
 Cela est très utile quand on s'est trompé, car cela permet d'annuler la 
dernière commande.
\subsubsection{La touche {\tt PLOT}}
Lorsqu'on appuie sur {\tt PLOT} depuis l'éditeur d'\'equation, une boite de 
dialogues vous demande si vous voulez tracer une fonction, une courbe en 
paramètrique ou une courbe en polaire.\\ 
Selon ce que vous sélectionnez, l'expression mise en surbrillance sera recopiée
 vers l'{\tt Aplet} correspondante, à l'endroit que vous spécifiez comme 
destination.\\
{\sc Attention} : cela suppose que la variable courante est aussi la variable
 de la fonction à représenter, car lors de la recopie, l'expression est évaluée
et la variable courante (celle contenue dans {\tt VX}) est changée en {\tt X T}
 ou ${\tt \theta}$, selon la nature du graphique.\\
{\sc Attention} : si la fonction dépend d'un paramètre, il est préférable de
donner une valeur à ce paramètre avant d'appuyer sur {\tt PLOT}. Si toutefois,
vous voulez que l'expression paramètrée soit recopiée avec son paramètre, le 
nom de ce paramètre doit \^etre composé d'une seule lettre différente de 
{\tt X T} ou ${\tt \theta}$, pour qu'il n'y ait pas de confusion.\\
Si l'expression sélectionnée est à valeurs réelles :\\
l'{\tt Aplet Function} ou
l'{\tt Aplet Polar} peut  \^etre sélectionnée, le graphe sera alors du type :
{\tt Function} ou {\tt Polar}.\\ 
Si l'expression sélectionnée est à valeurs complexes : \\
l'{\tt Aplet Parametric}
doit \^etre sélectionnée et le graphe sera du type : {\tt Parametric}.\\
 Si vous choisissez :
\begin{itemize}
\item l'{\tt Aplet Function}, 
l'expression mise en surbrillance sera recopiée dans la fonction {\tt Fi} 
choisie, et la variable courante sera transformée en {\tt X} 
lors de la recopie,
\item l'{\tt Aplet Parametric}, la partie réelle et la partie imaginaire  de
l'expression mise en surbrillance seront  recopiées dans les fonctions 
{\tt Xi, Yi } choisies, et la variable courante sera transformée en {\tt T} lors de la recopie,
\item l'{\tt Aplet Polar}, l'expression mise en surbrillance sera recopiée 
dans la fonction {\tt Ri} choisie, et la variable courante sera transformée en 
${\tt \theta}$ lors de la recopie.
\end{itemize}
\subsubsection{La touche {\tt  NUM}}
Lorsqu'on appuie sur {\tt NUM} depuis l'éditeur d'\'equation  
l'expression mise en surbrillance est remplacée par une approximation
numérique.\\
{\tt  NUM} fait passer en mode approximatif.
\subsubsection{La touche {\tt SHIFT NUM}} 
Lorsqu'on appuie sur {\tt SHIFT NUM} depuis l'éditeur d'\'equation  
l'expression mise en surbrillance est remplacée par un nombre rationnel.\\
{\tt SHIFT NUM} fait passer en mode exact.
\subsubsection{La touche {\tt  VIEWS}}
Lorsqu'on appuie sur {\tt VIEWS} depuis l'éditeur d'\'equation, on peut voir  
entièrement l'expression mise en surbrillance, en faisant bouger le curseur 
gr\^ace aux flèches $\rhd$ et $\lhd$.
Puis, appuyer sur {\tt OK} du bandeau pour revenir à l'éditeur d'\'equation.
\subsubsection{Les raccourcis avec le clavier} 
Il faut noter que depuis l'éditeur d'\'equation on a, avec le clavier,
  les raccourcis suivants :\\
{\tt SHIFT 0} pour ${\tt \infty}$\\
{\tt SHIFT 1} pour ${\tt i}$\\
{\tt SHIFT 2} pour ouvrir le {\tt CAS HELP ON}\\
{\tt SHIFT 3} pour ${\tt \pi}$\\
{\tt SHIFT 5} pour ${\tt <}$\\
{\tt SHIFT 6} pour ${\tt >}$\\
{\tt SHIFT 8} pour ${\tt \leq}$\\
{\tt SHIFT 9} pour ${\tt \geq}$\\
{\tt SHIFT NUM} pour mettre la calculatrce en mode exact\\
{\tt NUM} pour mettre la calculatrce en mode approximatif. 

\subsection{Expressions, sous-expressions, selection} \label{sec:eqwsub}
Lorsque l'on est dans l'\'editeur d'\'equation on peut \'ecrire des 
expressions en sachant que l'opérateur que l'on est en train de taper porte 
toujours sur l'expression adjacente  ou sur l'expression s\'electionn\'ee.\\
On ne se pr\'eoccupe pas de mettre des parenth\`eses, on s\'electionne!!! \\
Il faut voir les expressions math\'ematiques comme un arbre, pas forc\'ement 
binaire, et comprendre que les quatre fl\`eches permettent de parcourir
 l'arbre de fa\c{c}on naturelle :\\
- les fl\`eches droite et gauche permettent d'aller d'un sous-arbre \`a 
l'autre,\\
- les fl\`eches  haut et bas de monter ou de descendre dans l'arbre,\\
- les fl\`eches droite et gauche ``shift\'ees'' 
permettent diverses  s\'elections (cf page \pageref{sec:exemple3} l'exemple 3).
\subsubsection{Comment s\'electionner?}\label{sec:exemple_2}
On peut entrer dans le mode s\'election de deux fa\c{c}ons :
\begin{itemize}
\item
 La fl\`eche $\vartriangle$ vous fait entrer dans le mode s\'election et 
s\'electionne l'\'elément adjacent au curseur.\\
Exemple :
$$1+2+3+4 \ \vartriangle$$
s\'electionne 4, puis $\vartriangle$ s\'electionne l'arbre tout entier 1+2+3+4.
\item
 La fl\`eche $\rhd$ vous fait entrer dans le mode s\'election et 
s\'electionne le sous-arbre adjacent au curseur.\\
Si vous appuyez à nouveau sur  $\rhd$ vous augmentez votre s\'election  du
 sous-arbre contigu, à gauche de votre sélection.\\
Exemple :\\
$$1+2+3+4 \ \rhd$$
s\'electionne $3+4$, puis $\rhd$ s\'electionne $2+3+4$, puis $\rhd$ 
s\'electionne $1+2+3+4$.
\item {\sc Attention} : si on est en train de taper une fonction ayant 
plusieurs arguments (comme par exemple, une $\sum$, ou une $\int$  ou 
{\tt SUBST} etc...), la fl\`eche $\rhd$ permet de progresser dans l'écriture, 
en changeant le curseur d'emplacement. En effet ce sont les fl\`eches $\rhd$ et
$\lhd$ qui permettent le passage d'un argument à l'autre.
Il faut donc toujours dans ce cas sélectionner avec  la
 fl\`eche $\vartriangle$ (cf \ref{sec:sum}). 
 \end{itemize}
Exemples  de fonctionnement de cet \'editeur d'\'equation :\\
On tape sur {\tt CAS} du bandeau pour ouvrir l'\'editeur d'\'equation, puis 
on entre les expressions des exemples.
\begin{itemize}
\item Exemple 1\\
On tape :
 $${\tt 2\ +\ X\  \times \ 3 \ -\ X }$$
et on obtient :
$${\tt 2+X \cdot 3-X}$$ 
$\rhd$ $\rhd$ $\rhd$ pour sélectionner l'expression,\\
puis {\tt ENTER}  donne le r\'esultat :
$${\tt 2+2 \cdot X}$$
On tape :
$${\tt 2\ +\ X \ \rhd\  \times  \ 3 \ -\ X}$$
 et on obtient :
$${\tt (2+X) \cdot 3-X}$$  
$\rhd$ $\rhd$ pour sélectionner l'expression,\\
puis {\tt ENTER} donne le r\'esultat :
$${\tt 6+2 \cdot X}$$
On tape : 
$${\tt 2\ +\ X\  \rhd\  \times \ 3\  \vartriangle\  -\ X }$$
et on obtient :
$${\tt (2+X) \cdot (3-X)}$$ 
$\rhd$ $\rhd$ $\rhd$ pour sélectionner l'expression\\
puis {\tt ENTER}  donne le r\'esultat :
$${\tt-(X^2-X-6)}$$
\item Exemple 2 \label{sec:exemple2}\\
Si on veut taper :
$${\tt X^2-3 \cdot X+1}$$
On tape :
$${\tt X \ x^y \ 2 \ \rhd \ - \ 3 \ X \  + \ 1 }$$
Si on veut taper :
$${\tt -X^2-3 \cdot X+1}$$
On tape :
$${\tt (-)\ X \ x^y \ 2 \ \rhd \rhd\ - \ 3 \ X \ + \ 1 }$$
En effet, il faut sélectionner ${\tt -X^2}$ avant de taper la suite.
\item Exemple 3\label{sec:exemple3}\\
Si on veut taper :
$$\frac{1}{2}+\frac{1}{3}+\frac{1}{4}+\frac{1}{5}$$
Ici, le sommet de l'arbre est un $+$ et il y a 4 sous arbres ; chacun de ces 
sous-arbres a comme sommet un $\div$ et poss\`ede  deux feuilles.

On tape sur {\tt CAS} du bandeau pour ouvrir l'\'editeur d'\'equation, puis 
on écrit le premier sous -arbre :
$${\tt1 \div 2} $$
puis on s\'electionne cet arbre avec 
$$ \rhd$$
puis on tape $$+$$ et le second sous-arbre :
$${\tt 1 \div 3}$$ 
puis on s\'electionne cet arbre avec $$ \rhd$$
puis on tape $$+$$ et le troisi\`eme sous-arbre :
$${\tt 1 \div 4}$$ 
puis on s\'electionne cet arbre avec $$ \rhd$$
puis on tape $$+$$ et le quatri\`eme sous-arbre :
$${\tt 1 \div 5}$$ 
puis on s\'electionne cet arbre avec $$ \rhd$$
Maintenant,  l'expression voulue :
 $${\tt \frac{1}{2}+\frac{1}{3}+\frac{1}{4}+\frac{1}{5}}$$
se trouve écrite dans l'\'editeur d'\'equation et ${\tt \frac{1}{5}}$ est 
s\'electionn\'ee.
 
    Parcourez l'arbre pour s\'electionner :
$${\tt\frac{1}{3}+\frac{1}{4}}$$
Il faut taper  $$ \lhd \ \lhd$$
pour s\'electionner ${\tt \frac{1}{3}}$
puis
$${\tt SHIFT  \rhd}$$  permet de s\'electionner deux sous-arbres
 contigus, le sélectionné et son voisin de droite, ici :
$${\tt \frac{1}{3}+\frac{1}{4}}$$
Int\'er\^et :
On peut demander d'effectuer le calcul de la partie s\'electionn\'ee en tapant
{\tt ENTER}.\\
On obtient : 
$${\tt \frac{1}{2}+\frac{7}{12}+\frac{1}{5}}$$
o\`u la fraction $\frac{7}{12}$ est s\'electionn\'ee.\\
Si on veut effectuer maintenant le calcul partiel $$\frac{1}{2}+\frac{1}{5}$$
il faut tout d'abord faire une permutation pour que ${\tt \frac{1}{2}}$ et 
${\tt \frac{1}{5}}$ soient c\^ote \`a c\^ote en tapant :
$${\tt SHIFT \lhd} $$
qui \'echange l'élément s\'electionn\'e avec son voisin de gauche.\\
On obtient :
$$ {\tt \frac{7}{12}+\frac{1}{2}+\frac{1}{5}}$$
et ${\tt \frac{7}{12}}$ est s\'electionné, puis
$${\tt \rhd SHIFT  \rhd}$$
 s\'electionne :
$${\tt \frac{1}{2}+\frac{1}{5}}$$
On peut alors faire \`a nouveau {\tt ENTER}.
\item En résumé :
${\tt SHIFT \rhd}$ permet de sélectionner l'élément s\'electionn\'e et son 
voisin de droite.\\
${\tt SHIFT \lhd}$ permet d'\'echanger l'élément s\'electionn\'e avec son voisin de gauche.
L'élément s\'electionn\'e a changé de place, mais il reste s\'electionn\'e.  
\end{itemize}
\subsubsection{Comment modifier une expression}
Si vous \^etes en train de taper votre expression, la touche {\tt DEL} vous 
permet d'effacer ce qui vient d'\^etre tapé.

Si vous \^etes en train d'effectuer des sélections vous pouvez :\\ 
- soit supprimer la sélection,  sans supprimer l'expression, en tapant :
$${\tt DEL}$$ 
Le curseur se trouve alors à la fin de l'expression que l'on vient de 
désélectionner.\\
- soit remplacer la sélection par  une expression, il suffit de taper
l'expression voulue, \\
- soit transformer l'expression sélectionnée en lui appliquant une fonction du 
{\tt CAS} : on appelle alors la fonction depuis le menu d'un des 
répertoires du {\tt CAS}.\\
- soit supprimer  l'expression s\'electionnée en tapant :
$${\tt ALPHA\ SHIFT\ DEL \ \ (ALPHA\ CLEAR)}$$ 
- soit supprimer un opérateur unaire, sommet de l'arbre sélectionné, en 
tapant :
$${\tt  SHIFT\ DEL \ \ (CLEAR)} $$  
Par exemple pour remplacer {\tt SIN(expr)} par {\tt COS(expr)}, on efface 
{\tt SIN} en 
sélectionnant {\tt SIN(expr)}, puis {\tt  SHIFT\ DEL}, puis on tape la touche
 {\tt COS}. \\
- soit supprimer un argument et un op\'erateur infix\'e en s\'electionnant 
l'argument \`a supprimer et en tapant 
$${\tt  SHIFT\ DEL \ \ (CLEAR)}$$
Par exemple, si vous avez l'expression 1+2, vous selectionnez 1, puis 
{\tt SHIFT DEL} efface 1+ et  laisse seulement 2.\\
Ainsi, pour enlever {\tt F(X)=} de  l'expression {\tt F(X)=}${\tt X^2-X+1}$ on
sélectionne  {\tt F(X)}, puis on appuie sur {\tt  SHIFT DEL}, et on obtient 
${\tt X=X^2-X+1}$ (on a supprim\'e l'op\'erateur unaire {\tt F}), puis 
{\tt  SHIFT DEL}, et on obtient ${\tt X^2-X+1}$ (on a supprim\'e {\tt X}  et 
l'op\'erateur {\tt =}).\\
- soit supprimer un opérateur binaire en éditant l'expression,
 on sélectionne :
$${\tt Edit\ expr.} $$  
du menu  {\tt TOOL} du bandeau et on fait la correction.\\
- soit recopier un élément de l'historique du CAS accessible en tapant 
{\tt SYMB}.
 La recopie se fait à la place du curseur, ou à la place de la sélection, 
lorsqu'on appuie depuis l'historique du CAS sur {\tt ENTER}, ou sur {\tt ECHO} 
du bandeau.
Vous pouvez aussi utiliser {\tt COPY} du bandeau de l'historique du CAS 
pour mettre la s\'election dans le buffer, ou les commandes 
{\tt Cut, Copy, Paste} du  menu  
{\tt TOOL} du bandeau, pour supprimer, recopier, dupliquer des expressions 
comme dans un traitement de texte (cf. \ref{sec:eqwmenu}). 
\subsubsection{Le mode curseur}\label{sec:curseur}
Le mode curseur permet de sélectionner une grande expression rapidement.
Pour passer en mode curseur,  sélectionner :\\
 {\tt Cursor mode} du menu {\tt TOOL},\\
 puis utiliser les flèches pour inclure votre sélection dans une boite (quand 
vous relachez la touche flèche, l'expression pointée par le curseur est 
encadrée).\\
 Puis tapez sur {\tt ENTER} pour sélectionner le contenu de la boite.
\subsubsection{Pour tout voir}
En  sélectionnant {\tt Change font} du menu {\tt TOOL} du bandeau, on grossit, 
ou on diminue la taille de l'écriture. 
Cela permet dans certains cas, de voir en entier une grande expression.\\
Si cela est insuffisant, il faut utiliser le mode curseur en 
s\'electionnant :\\ 
 {\tt Cursor mode} du menu {\tt TOOL}, puis utiliser la flèche $\rhd$, et 
utiliser {\tt ENTER} pour sortir du mode curseur,\\
ou encore, vous pouvez utiliser :\\
la touche {\tt VIEWS}, puis la flèche $\rhd$ et {\tt OK} du bandeau pour 
quitter l'\'ecran {\tt VIEWS}.
\subsection{La saisie des fonctions du {\tt CAS}}
Lorsque vous \^etes dans l'éditeur d'\'equation, vous pouvez utiliser toutes les
 fonctions du {\tt CAS} et vous pouvez faire la  saisie de différentes façons.\\
Principe général :\\
Quand vous avez écrit une expression dans l'éditeur d'\'equation, il suffit 
d'appuyer sur {\tt ENTER}  pour évaluer ce qui a été sélectionné, ou  pour 
évaluer toute l'expression si rien n'a été sélectionné. 
\subsubsection{Comment \'ecrire  $\int$ et $\sum$} \label{sec:sum}
 $\sum$ se trouvent sur le clavier, il suffit de taper :
$${\tt SHIFT +\ (\sum)}$$.
Le signe $\int$ se trouve aussi sur le clavier, il suffit de taper :
$${\tt SHIFT \ d/dX \ (\int) }$$
Les symboles  ${\tt \int}$ et ${\tt \sum}$ sont considérés comme des fonctions 
préfixées ayant plusieurs arguments.\\
 ${\tt \int}$ et ${\tt \sum}$ se placent automatiquement devant
 (fonctions préfixées) l'élément sélectionné, si il y en a un.\\ 
Le curseur se place aux endroits voulus et se d\'eplace \`a l'aide des 
fl\`eches :
$${\tt \rhd \ \lhd} $$
Les expressions que l'on rentre suivent la loi de la  s\'election expliqu\'ee
pr\'ec\'edemment, mais il faut entrer dans le mode s\'election avec 
$\vartriangle$.\\
{\sc Attention}, ne pas utiliser l'indice $i$ pour d\'efinir la somme car $i$
d\'esigne le nombre complexe solution de $x^2+1=0$.\\
$\sum $ effectue  des calculs exacts si son argument admet une primitive 
discr\'ete et sinon $\sum $ effectue  des calculs approch\'es, m\^eme en mode 
exact.\\
Par exemple en mode exact ou num\'erique :
$$\sum_{k=0}^4 \frac{1}{k!}=2.70833333334$$ 
alors qu'en mode exact :
 $$1+\frac{1}{1!}+\frac{1}{2!}+\frac{1}{3!}+\frac{1}{4!}=\frac{65}{24}$$
Le symbole \ $!$ \  s'obtient en tapant ${\tt SHIFT\ \times}$.\\
Il faut savoir que $\sum $ sait calculer symboliquement les sommes de 
fractions rationnelles et les series hypergéométriques qui admettent une 
primitive discrète.\\
Exemple :\\
On tape :
$${\tt \sum_{K=1}^\infty \frac{1}{K \cdot (K+1)}}$$
On sélectionne le tout, {\tt ENTER} et on obtient :
$${\tt 1}$$

\subsubsection{Comment \'ecrire  les fonctions infixées} \label{sec:and}
Ces fonctions s'écrivent entre leurs arguments, par exemple :\\
{\tt AND | MOD ,} sonr des fonctions infixées.\\
On peut :\\
- soit les écrire en mode {\tt Alpha} (pour {\tt AND  MOD}), puis taper les 
arguments,\\
- soit les appeler depuis le menu d'un répertoire du {\tt CAS} ou à l'aide 
d'une touche du clavier, à condition d'avoir écrit et sélectionné le premier 
argument.\\    
On passe d'un argument à l'autre à l'aide des flèches : $\rhd\ \lhd$.\\
La virgule {\tt ,} permet d'écrire un nombre complexe.\\
On écrit ${\tt 1+2\cdot i}$ ou {\tt (1,2)} et les parenthèses se mettent 
automatiquement quand on tape la virgule.\\
 Si vous voulez taper {\tt (-1,2)} 
il faut bien s\^ur sélectionner  {\tt -1} avant de taper la virgule.   
\subsubsection{Comment \'ecrire  les fonctions préfixées} \label{sec:prefixe}
Ces fonctions s'écrivent avant leurs arguments, c'est le cas général.\\
Dans ce cas tout est possible!!!\\
On peut taper le premier argument, le sélectionner  puis appeler la fonction à l'aide d'un menu,\\
ou bien, on peut appeler la fonction depuis un menu ou la taper en mode 
{\tt Alpha}, puis taper son ou ses arguments.\\
 On va détailler sur l'exemple suivant les différentes saisies possibles.\\
Exemple :\\
Vous voulez factoriser l'expression $x^2-4$ puis, avoir sa valeur pour $x=4$.
Vous savez que {\tt FACTOR} sert à factoriser et que cette fonction se trouve
 dans le menu {\tt ALGB}.\\ 
Vous savez que {\tt SUBST} sert à substituer, dans une expression, une variable 
par une valeur et que cette fonction se trouve aussi dans le menu {\tt ALGB}.
 
{\bf Première possibilité : saisie avant les arguments}\\
Vous appuyez sur la touche {\tt F2} qui active {\tt ALGB} du bandeau, et vous 
mettez en surbrillance {\tt FACTOR} puis {\tt ENTER}.\\
${\tt FACTOR(\ \blacktriangleleft )}$ s'inscrit dans l'éditeur avec le curseur 
entre les parenthèses.\\
Vous entrez votre expression avec les règles de sélection vues précèdemment :
$${\tt X \  X^y\  2\ \rhd - \ 4 \rhd \ \rhd \ \rhd} $$
ce qui sélectionne :
$${\tt FACTOR (X^2-4 )}$$
puis {\tt ENTER} donne le résultat :
$${\tt (X+2) \cdot (X-2)}$$
Le résultat est sélectionné et remplace la commande.\\
On ne le voit pas, mais aprés chaque {\tt ENTER}, il y a sauvegarde dans 
l'historique, ainsi ${\tt \ FACTOR (X^2-4) \ }$ et la r\'eponse
${\tt \ (X+2) \cdot (X-2) \ }$ se sont inscrits dans l'historique (appuyer sur
{\tt SYMB} pour le voir, et sur {\tt ON} pour revenir \`a l'éditeur 
d\'equation).\\
Maintenant vous effacez le résultat précédent avec 
{\tt ALPHA SHIFT DEL (CLEAR)} car ce résultat est sélectionné.\\
Vous appuyez sur la touche qui active {\tt ALGB} du bandeau, et vous mettez
 en surbrillance {\tt SUBST} puis {\tt ENTER}.
$${\tt SUBST (\blacktriangleleft  ,\bullet)}$$
 s'inscrit dans l'éditeur avec le curseur entre les parenthèses à la place du premier argument.\\
Vous entrez votre expression avec les règles de sélection vues précèdemment.\\
{\sc Attention} ! ici {\tt SUBST} a deux arguments il faut donc entrer dans le mode sélection avec $\vartriangle$ :
$${\tt X \  X^y\  2\ \vartriangle \ \vartriangle\ - \ 4 \rhd X=4\ \rhd \ \rhd} $$
ce qui sélectionne :\\
$${\tt SUBST (X^2-4,X=4 )}$$
puis {\tt ENTER} donne le résultat :
 $${\tt 4^2-4}$$
Ce résultat est sélectionné et remplace la commande.
 Enfin {\tt ENTER} donne le résultat simplifié :
$${\tt 12}$$
Bien s\^ur ${\tt \  SUBST (X^2-4,X=4)\ }$, ${\tt \  4^2-4 \ }$ et ${\tt \ 12}$ 
se sont inscrits dans l'historique.\\
{\sc Remarque} :\\
Quand on saisit une fonction du {\tt CAS} avant ses arguments, on peut la 
taper en mode {\tt Alpha} avec ses parenthèses.

{\bf Deuxième possibilité : saisie après les arguments}\\
On tape d'abord l'expression que l'on sélectionne avec les règles de sélection 
vues précèdemment.\\
Ici on tape :\\
$${\tt X \  X^y\  2\ \rhd - \ 4 \rhd \  \rhd } $$
puis on appelle {\tt FACTOR} :\\
 vous appuyez sur la touche {\tt F2} qui active {\tt ALGB} du bandeau, et vous 
mettez en surbrillance {\tt FACTOR}, puis appuyer sur {\tt ENTER}.\\
On obtient :
$${\tt FACTOR (X^2-4 )}$$
puis {\tt ENTER} donne le résultat:
$${\tt (X+2) \cdot (X-2)}$$ 
Ce résultat est sélectionné et remplace la commande.\\ 
Bien s\^ur, ${\tt\  FACTOR (X^2-4)\ }$  et ${\tt \ (X+2) \cdot (X-2)\ }$ se 
sont inscrits dans l'historique.\\
Vous remarquez que le résultat est sélectionné, vous \^etes donc pr\^et à 
appliquer une autre commande à votre résultat.\\
Vous pouvez donc  appeller {\tt SUBST} : vous appuyez sur la touche {\tt F2}
qui active {\tt ALGB} du bandeau, et vous mettez en surbrillance {\tt SUBST} 
puis {\tt ENTER}.\\
$${\tt SUBST ((X+2) \cdot (X-2) , \blacktriangleleft )}$$
s'inscrit dans l'éditeur avec ses parenthèses, avec votre expression comme 
premier argument et avec le curseur à la place du deuxième argument.\\
Il ne vous reste plus qu'à taper :\\
${\tt X=4}$ puis $\rhd \ \rhd$ et {\tt ENTER}.\\
On obtient :
$${\tt (4+2) \cdot (4-2)}$$
Appuyer sur  {\tt ENTER} pour obtenir :
$${\tt 12}$$
Bien s\^ur, ${\tt SUBST (X^2-4,X=4 )}$, ${\tt \  (4+2) \cdot (4-2) \ }$ et 
${\tt \ 12}$ se sont inscrits dans l'historique.\\
{\sc Remarque} :\\
Au cours de l'écriture d'une expression, vous pouvez appeler une fonction du
{\tt CAS}, cette fonction aura comme premier argument ce qui est sélectionné.
Si rien n'a été sélectionné, le curseur se trouve au bon endroit pour 
compléter  les arguments.
\subsection{Les variables de l'éditeur d'\'equation}\label{sec:eqwvar}
Vous pouvez stocker des objets dans des variables, et les réutiliser en 
utilisant le nom de la variable.\\
{\sc Attention!!!}\\
1- Les variables utilisées dans le {\tt CAS} ne sont pas utilisables dans 
{\tt HOME} et réciproquement.\\
2- On  utilise  ${\tt STO\triangleright}$ (on le note dans la suite 
${\tt STO\triangleright}$ ou ${\tt \triangleright}$ ou ->) pour stocker un objet 
dans une variable de {\tt HOME} ou de l'éditeur de programme.\\
3- Dans le {\tt CAS}, il faut utiliser la commande {\tt STORE}
(cf. \ref{sec:store}) pour stocker des valeurs dans des variables.\\
4- La touche {\tt VARS} affiche un menu qui contient toutes les variables qui 
sont à votre disposition.\\
Cette touche pressée lorsque l'on est dans {\tt HOME} fait appara\^itre les 
noms des variables autorisées dans {\tt HOME} et dans les {\tt Aplets}.\\
Cette touche pressée  lorsque l'on est dans l'éditeur d'\'equation  fait 
appara\^itre les noms des variables définies dans le {\tt CAS}.


\subsubsection{L'affectation dans le CAS : {\tt STORE}}\index{STORE}\label{sec:store}
Dans le {\tt CAS}, il faut utiliser la commande {\tt STORE} pour stocker 
un objet dans une variable, ou utiliser la touche {\tt VARS}  depuis l'éditeur 
d'équations (puis {\tt NEW} ou {\tt EDIT} du bandeau cf. \ref{sec:vars}).\\
On a droit à n'importe quel nom de variable.\\
{\tt STORE} se trouve dans le menu {\tt ALGB} du bandeau de l'éditeur 
d'équations. \\
Exemple :\\
On tape :
$${\tt STORE (X^2-4,ABC)}$$
ou on tape :
$${\tt X^2-4}$$
que l'on sélectionne, puis on appelle {\tt STORE},\\
 puis on tape {\tt ABC}, puis, {\tt ENTER} valide la définition de la variable 
{\tt ABC}.\\
Pour détruire la variable, il faut utiliser la touche {\tt VARS} depuis 
l'éditeur d'\'equation (puis {\tt PURGE} du bandeau cf. \ref{sec:vars}), ou 
utiliser la commande {\tt UNASSIGN}\index{UNASSIGN} du menu {\tt ALGB}, 
en tapant (par exemple) :
$${\tt UNASSIGN(ABC)}$$
\subsubsection{Les variables prédéfinies du CAS}\label{sec:realassume}
{\tt VX} contient le nom de la variable symbolique courante.\\
C'est en général {\tt X}, il ne faut donc pas utiliser {\tt X} comme nom de
 variable numérique, ou effacer le contenu de {\tt X} à l'aide de la commande 
{\tt UNASSIGN}\index{UNASSIGN} du menu {\tt ALGB} avant de faire du calcul 
symbolique, en tapant par exemple, {\tt UNASSIGN(X)}.\\
On peut changer le nom de la variable symbolique courante en ouvrant l'\'ecran
{\tt CAS MODES} avec {\tt SHIFT SYMB}  et mettant le nouveau nom
devant {\tt Indep.var}.
  
{\tt EPS} contient la valeur de epsilon utilisé dans la commande 
{\tt EPSX0} (cf. \ref{sec:epsx0}).

{\tt MODULO} contient la valeur de $p$, pour faire du calcul symbolique dans
$Z/pZ$ ou dans $Z/pZ[X]$. On peut changer la valeur de $p$ gr\^ace à la 
commande {\tt MODSTO} du menu {\tt MODULAR} (en tapant par exemple, 
{\tt MODSTO(13)}\index{MODSTO} pour donner à $p$ la valeur $13$), ou utiliser 
{\tt SHIFT SYMB} pour ouvrir l'\'ecran {\tt CAS MODES} et changer la valeur de 
{\tt Modulo}.

{\tt PERIOD} doit contenir la période de la fonction dont on veut les
 coefficients de Fourier (cf. \ref{sec:fourier}).

{\tt PRIMIT} contient la primitive de la dernière fonction intégrée.

{\tt REALASSUME}\index{REALASSUME} contient la liste des noms des variables 
symboliques que l'on considère comme réelles, lorsqu'on a choisi dans le menu 
de configuration {\tt CFG} l'option {\tt Cmplx vars}, ce sont par défaut :\\
 {\tt X, Y, t, S1, S2} et toutes les variables d'intégration utilisées.\\
Bien s\^ur, si dans le menu de configuration {\tt CFG}, vous choisissez 
l'option {\tt Real vars} toutes les variables symboliques sont considérées 
comme réelles (cf. \ref{sec:cfg}).\\
On peut aussi faire des suppositions sur le domaine de définition d'une 
variable comme par exemple {\tt X>1}.
Dans ce cas, il faut utiliser la commande {\tt ASSUME(X>1)}\index{ASSUME} pour 
que {\tt REALASSUME} contienne  {\tt X>1}.
La commande {\tt UNASSUME(X)}\index{UNASSUME} enlèvera toutes les 
hypothèses faites sur {\tt X}.

Pour voir ou modifier ces variables et aussi celles que vous avez définies
 dans le {\tt CAS}, il faut appuyer sur {\tt VARS} depuis l'éditeur 
d'\'equation, puis sur {\tt EDIT} du bandeau 
(cf. \ref{sec:vars}). 

%%% CAS FROM HOME %%%

\section{Le {\tt CAS} depuis l'\'ecran {\tt HOME}}\label{sec:cashome}
On peut utiliser certaines fonctions de calcul formel directement
depuis l'écran {\tt HOME} moyennant quelques précautions.
Les fonctions du {\tt CAS} qui ont comme arguments des matrices ne sont 
utilisables que depuis l'\'ecran {\tt HOME}. Pour la d\'escription de ces 
fonctions on se reportera au chapitre \ref{chap:cashome}.
\subsection{Les variables dans {\tt HOME}}
On ne peut pas utiliser les m\^emes noms de variables dans {\tt HOME}
et dans l'\'editeur d'\'equation.
Par exemple {\tt X} ne peut pas \^etre utilis\'e comme une variable symbolique,
puisque les noms des variables numériques de {\tt HOME} sont les 26 lettres 
{\tt A..Z} de l'alphabet, et qu'elles contiennent 
toujours une valeur réelle qui vaut 0 par d\'efaut.\\
Les noms des variables symboliques de {\tt HOME} sont :\\ 
{\tt S1..S5, s1..s5, n1..n5}.\\
Contrairement \`a ce que l'on peut faire l'\'editeur d'\'equation, il n'est 
pas possible de donner une valeur \`a une variable symbolique de {\tt HOME}.
Il faut savoir que certaines fonctions comme {\tt QUAD} et {\tt ISOLATE}
utilisent quelquefois {\tt s1..s5} et {\tt n1..n5} dans leur r\'eponse : 
{\tt s1..s5} d\'esigne un signe (doit \^etre remplac\'e par $\pm 1$), et 
{\tt n1..n5} d\'esigne
 un entier, par exemple {\tt QUAD(S1*S1-9,S1)} 
renvoie {\tt s1*6/2} et {\tt ISOLATE(SIN(S1),S1)} renvoie 
{\tt 3.14..+n1}.\\
Si vous voulez stocker des expressions symboliques de {\tt HOME}, il faut les 
stocker dans  des variables ayant pour  noms {\tt E0..E9}.
Si vous voulez stocker des listes contenant des expressions symboliques de 
{\tt HOME}, il faut les 
stocker dans  des variables ayant pour  noms {\tt L0..L9}.
\subsection{L'affectation dans HOME : ${\tt STO\triangleright}$}\index{STO}
${\tt STO\triangleright}$ permet de stocker un objet dans une variable de 
{\tt HOME}. ${\tt STO\triangleright}$ est obtenu en appuyant sur {\tt F1} 
du bandeau de l'\'ecran {\tt HOME}.\\
Une variable ne peut stocker qu'une type d'objet, ce type est d\'etermin\'e par le nom de la variable (voir ci-dessus).\\
Par exemple, on tape:\\
${\tt S1^2+2 \times S1\ STO\triangleright E1}$, puis,\\ 
 ${\tt DERIV(E1,S1)}$ \\
et on obtient :\\
 ${\tt 2*S1+2}$.

\subsection{Quelques astuces et exemples} 
Les fonctions du CAS sont accessibles depuis l'écran {\tt HOME}, soit depuis
le sous-menu {\tt CAS} (touche {\tt F4}) du bandeau  de la touche {\tt MATH}, 
soit directement (il suffit de taper le nom de la fonction en mode alpha).
Bien voir que :
\begin{itemize}
\item  Certains calculs seront effectués en mode approximatif
en raison de l'ambiguité entre réels et entiers dans {\tt HOME}.
Vous devez utiliser la commande {\tt XQ} qui convertit un argument
approximatif en un argument exact. Par exemple, si on travaille en 
{\tt Radians} :
$${\tt  ARG(XQ(1+i))= \frac{\pi}{4}}$$
$${\tt  ARG(1+i)=0.7853...}$$
$${\tt FACTOR(XQ(45))=3^2*5}$$
$${\tt FACTOR(45)=45}$$
\item La variable symbolique {\tt S1} de {\tt HOME} sert de variable courante
lorsqu'on utilise certaines fonctions du CAS depuis {\tt HOME}.
Par exemple :
$${\tt DERVX(S1^2+2 \times S1)= 2*S1+2}$$
Le r\'esultat ${\tt 2*S1+2}$ ne d\'epend pas de la variable {\tt VX} de 
l'\'editeur d'\'equation. Les fonctions du CAS qui n\'ecessite le changement de la variable
 courante ne peuvent donc pas \^etre utilis\'ees. 
\item Rappelez vous que vous devez utiliser  les variables :\\
{\tt S1,S2,..S5,s1,s2,..s5,n1,n2,..n5} comme variables symboliques et 
{\tt E0,E1, .. E9} pour stocker des expressions symboliques.
Par exemple, si on tape :
$${\tt S1^2-4\times S2\ STO\triangleright E1}$$
alors on a :
$${\tt DERVX(E1)=S1*2}$$
$${\tt DERIV(E1,S2)=-4}$$
$${\tt INTVX(E1)=1/3*S1^3-4*(S2*S1)}$$

\item Si vous voulez travailler avec des matrices symboliques, il faut les 
stocker dans {\tt L0, L1,...L9}, car ces matrices seront interprétées  
en tant que listes de listes (alors que les matrices numériques sont stockées 
dans {\tt M0, M1,...M9}). 
Les instructions d'alg\`ebre lin\'eaire du CAS accepte une liste de listes
comme arguments.
On écrira par exemple dans {\tt HOME} :
$${\tt XQ(\{ \{ S2+1, 1 \}, \{ \sqrt2,1 \} \}) \ STO\triangleright\ L1}$$
%${\tt [S1+1,XQ(\sqrt2)]\ STO\triangleright\ L1}$\\ 
On a alors 
$${\tt TRAN(L1)=\{\{S2+1,\sqrt2\},\{1,1\}\}}$$ 
Quelques instructions num\'erique d'alg\`ebre lin\'eaire n'accepte pas une
 liste de listes, il faut alors faire une conversion avec {\tt AXL}, par 
exemple:\\
${\tt DET(AXL(L1)) ) \ STO\triangleright\ E1}$\\
On obtient :\\
${\tt S2-(-1+\sqrt2)}$\\

Le chapitre \ref{chap:cashome} décrit les instructions
utilisables uniquement depuis HOME (parce qu'elles utilisent
ou renvoient des listes ou matrices). On y trouvera en particulier
la d\'escription de certaines instructions d'alg\`ebre lin\'eaire symbolique.
Vous pouvez aussi consulter l'aide en ligne 
 le cadre de ce manuel, pour plus d'informations
utilisez l'aide en ligne ({\tt HELP} ou par exemple {\tt HELPWITH TRAN})
ou vous reporter \`a la  documentation du CAS de la HP49G, HP49G+
ou HP48GII disponible à l'URL~:\\
\verb|http://www-fourier.ujf-grenoble.fr/~parisse|\\
\end{itemize}


\subsection{Envoyer des expressions de {\tt HOME} dans l'historique du {\tt CAS} : {\tt PUSH}}\index{PUSH}
Vous pouvez envoyer, depuis l'écran {\tt HOME}, des expressions dans 
l'historique du {\tt CAS} gr\^ace à la commande {\tt PUSH}.\\
On tape depuis l'écran {\tt HOME}:\\
 {\tt PUSH(S1+1)}\\
et {\tt S1+1} s'inscrit dans l'historique du {\tt CAS}.
\subsection{Récupérer des expressions de l'historique du {\tt CAS} dans {\tt HOME} : {\tt POP}}\index{POP}
Vous pouvez récupérer dans {\tt HOME} et depuis l'écran {\tt HOME}, la 
dernière expression écrite dans l'historique du {\tt CAS} gr\^ace à la 
commande {\tt POP}.\\
On tape depuis l'écran {\tt HOME}:\\
{\tt POP}\\
et, par exemple, {\tt S1+1} s'inscrit dans l'historique de l'écran {\tt HOME}
et {\tt S1+1} est enlev\'e de l'historique du {\tt CAS}.

\subsection{Le clavier depuis {\tt HOME}} \label{sec:thome}
\subsubsection{La touche {\tt MATH}}\label{sec:tmathh}
Cela ouvre le menu des fonctions mathématiques.\\
Cette touche pressée depuis l'écran {\tt HOME} ouvre une fen\^etre contenant 
des fonctions mathématiques (numériques) classées par thèmes, car l'option 
{\tt MTH} (touche {\tt F1}) du bandeau de la touche {\tt MATH} est cochée par 
défaut.\\ 
Si on coche {\tt CAS} du bandeau  de cette fen\^etre (touche {\tt F4}), on 
trouve les m\^emes répertoires que lorsqu'on appuie sur la touche {\tt MATH} 
depuis l'éditeur d'\'equation : on a ainsi accés aux fonctions de calcul formel 
 classées par thèmes et utilisables à partir de l'écran {\tt HOME}. 
\subsubsection{La touche {\tt SHIFT F6}}
La combinaison des touches  {\tt SHIFT F6(CAS du bandeau)} ouvre l'écran
{\tt CAS MODES} de configuration du {\tt CAS} ce qui permet de
changer la configuration du {\tt CAS} depuis l'écran {\tt HOME} 
(cf \ref{sec:config}).
\subsubsection{La touche {\tt SHIFT 2 (SYNTAX)}}\label{sec:syntax}\index{HELP}\index{HELPWITH}
La combinaison des touches  {\tt SHIFT 2 (SYNTAX)} place {\tt HELPWITH}  dans la ligne de commande.
Il suffit de compléter cette ligne par le nom de la commade ou par le nom de 
la fonction du {\tt CAS} pour laquelle vous voulez de l'aide. On peut rentrer 
le nom d'une fonction du {\tt CAS} avec {\tt MATH} et  {\tt CAS} du bandeau de 
cette fen\^etre (touche {\tt F4}), mais il faut prendre garde à enlever la 
parenthèse. \\
Par exemple : {\tt HELPWITH DERVX} vous ouvre l'aide du {\tt CAS} à la page 
 {\tt DERVX}.\\
Si on veut avoir l'aide générale du {\tt CAS} depuis l'écran {\tt HOME} il faut
 taper {\tt HELP}, puis {\tt ENTER} : on a ainsi l'aide sur les fonctions du 
{\tt CAS} utilisables depuis l'écran {\tt HOME}.\\
Pour avoir l'aide en français, choisir {\tt Français} dans le menu  du 
répertoire {\tt CFG} permettant de changer votre configuration : on est obligé 
de le faire depuis l'éditeur d'\'equation (cf \ref{sec:cfg}).\\
Chaque exemple peut \^etre mis dans l'historique de l'écran {\tt HOME} 
avec {\tt ECHO} du bandeau et donc \^etre traité tel quel, ou modifié, et
bien s\^ur la variable {\tt X} de l'exemple sera remplacée automatiquement 
par {\tt S1}.\\ 
De plus, les exemples seront aussi quelquefois modifiés automatiquement pour 
changer dans {\tt HOME} les réels en entiers gr\^ace à la fonction {\tt XQ}.\\
Par exemple, on tape dans l'\'ecran {\tt HOME} :\\
$${\tt HELPWITH\  PROPFRAC}$$
ou
$${\tt HELP} \mbox{ puis s\'election de } {\tt PROPFRAC} \mbox{ du } {\tt CAS\ HELP\ ON}$$
On obtient l'exemple  pour {\tt PROPFRAC} : 
 $${\tt PROPFRAC(XQ(\frac{43}{12}))=3+\frac{7}{12}}$$
alors que si, dans l'\'editeur d'\'equation, on s\'electionne 
{\tt PROPFRAC} du {\tt CAS HELP ON}, l'exemple  est :
$${\tt PROPFRAC(\frac{43}{12})}$$
mais si, dans {\tt HOME}, on tape : 
$${\tt PROPFRAC(\frac{43}{12})}$$
On obtient :
$${\tt 3.5833..}$$

\chapter{Les fonctions du {\tt CAS} valides uniquement dans HOME}\label{chap:cashome}
Il s'agit des fonctions qui ont comme argument des matrices ou des vecteurs 
et qui renvoient des matrices ou des vecteurs.
\section{Les syst\`emes lin\'eaires}
Dans tout ce paragraphe, on appelle "matrice augmentée"  du système A.X=B (ou
 matrice représentant le système A.X=B), la matrice formée par la matrice A 
bordée à droite par le vecteur colonne  B.   

\subsection{R\'esolution d'un syst\`eme d'\'equations lin\'eaires : {\tt REF}}\index{REF}
{\tt REF} permet de r\'esoudre un syst\`eme d'\'equations lin\'eaires que l'on écrit sous forme matricielle :
 $${\tt A\cdot X=B}$$
Le paramètre de {\tt REF} est la  matrice augmentée du système (celle formée 
par la matrice {\tt A} du système bordée à droite par le second membre {\tt B}).\\ 
Le résultat est une matrice {\tt [A1,B1]} : {\tt A1} a des zéros sous sa
 diagonale et les solutions de :  $${\tt A1\cdot X=B1}$$ sont les m\^emes que 
celles de :  $${\tt A\cdot X=B}$$
Par exemple, soit à résoudre le système :
$$\left \{\begin{array}{lcr} 3 \cdot x + y & = &-2 \\3 \cdot x +2 \cdot y & =& 2 \end{array}\right.$$ 
On tape  :
$${\tt REF([[3,  1, -2] [3, 2, 2]])}$$
On obtient :
$$\left [ \begin{array}{rrr}1 & \frac{1}{3} & \frac{-2}{3}\\0 & 1 & 4 \end{array} \right]$$
Ainsi, $y=4$ et $x=-2/3-4/3=-2$
\subsection{R\'esolution d'un syst\`eme d'\'equations lin\'eaires : {\tt rref}}\index{rref}
{\tt rref} permet de r\'esoudre un syst\`eme d'\'equations lin\'eaires que l'on écrit sous forme matricielle :
 $${\tt A\cdot X=B}$$
Le paramètre de {\tt rref} est la  matrice augmentée du système (celle formée 
par la matrice {\tt A} du système et ayant comme dernier vecteur colonne le 
second membre {\tt B}).\\     
Le résultat est une matrice {\tt [A1,B1]} : {\tt A1} a des zéros de part et 
d'autre de sa diagonale et les solutions de :
  $${\tt A1\cdot X=B1}$$ 
sont les m\^emes que celles de :  $${\tt A\cdot X=B}$$
Il est intéressant d'utiliser {\tt rref} en mode  pas à pas en cochant
{\tt Step/Step (MODE cas chk)}.\\
Par exemple, soit à résoudre le système :
$$\left \{
\begin{array}{lcr} 3 \cdot x + y & = &-2 \\3 \cdot x +2 \cdot y & =& 2 \end{array}\right.$$ 
On tape :
$${\tt rref([[3,  1, -2][3, 2, 2]])}$$
On obtient :
$${\tt \left\{\{1\  1.\}\left [ \begin{array}{rrr}3 & 0 & -6\\0 & 1 & 4 \end{array} \right]\right\}}$$
On tape :
$${\tt rref([[1,  S1][S1, 1]])}$$
On obtient:
$${\tt \left\{\{S1^2-1 ,1\}\left [ \begin{array}{rr} S1^2-1 & 0\\0
& -(S1^2-1) \end{array} \right]\right\}}$$
\section{Les polyn\^omes}
\subsection{Liste des facteurs : {\tt FACTORS}}\index{FACTORS}
{\tt FACTORS} a pour argument un polyn\^ome ou une liste de polyn\^omes.\\
{\tt FACTORS } donne la liste des facteurs du polyn\^ome avec leur 
multiplicité.\\
On tape :
 $${\tt FACTORS(S1^2-2*S1+1)}$$
On obtient :
$${\tt \{S1-1,2\}}$$
On tape :
 $${\tt FACTORS(S1^4-2*S1^2+1)}$$
On obtient :
$${\tt \{S1-1,2.\ ,\ S1+1 ,2.\}}$$
On tape :
 $${\tt FACTORS(\{S1^3-2*S1^2+1,S1^2-S1\})}$$
On obtient :
$${\tt \{\{S1-1,1\ ,\ 2*S1+-1+\sqrt5 ,1\ ,
\ 2*S1-(1+\sqrt5) ,1\ ,\ 4, -1\},}$$
$${\tt \{S1, 1\ ,\ S1-1,1\}\}}$$
\subsection{Fraction rationnelle donn\'ee par ses z\'eros et ses p\^oles : {\tt FCOEF}}\index{FCOEF}
{\tt FCOEF} a comme argument un vecteur de composantes les racines  et les 
p\^oles d'une fraction rationnelle $F[x]$ suivis de leur multiplicit\'e.\\
{\tt FCOEF} renvoie la fraction rationnelle  $F[x]$.\\
On tape :
$${\tt FCOEF([1,2,0,3,2,-1]) }$$
On obtient :
$${\tt S1^3*(S1-1)^2/(S1-2)}$$
\subsection{Racines et p\^oles d'une fraction rationnelle: {\tt FROOTS}}\index{FROOTS}
{\tt FROOTS} a comme argument une fraction rationnelle $F[x]$.\\
{\tt FROOTS}  renvoie  un vecteur de composantes les racines  et les p\^oles de $F[x]$ suivis de leur multiplicit\'e.\\
On tape :
$${\tt FROOTS(\frac{S1^5-2 \cdot S1^4+S1^3}{S1-2}) }$$
On obtient :
$${\tt [2,-1,0,3,1,2]}$$
ce qui signifie que : $2$ est un p\^ole d'ordre 1,  $0$ est racine triple et $1$ est racine double de $F[x]=\frac{x^5-2.x^4+x^3}{x-2}$
puisque  $(x-1)^2 \cdot x^3=x^5-2 \cdot x^4+x^3$.

\subsection{Base de Gr{\oe}bner : {\tt GBASIS}}\index{GBASIS}
{\tt GBASIS} a deux  arguments :  un vecteur constitué de polyn\^omes de 
plusieurs variables et le vecteur constitué du nom de ces variables.\\
{\tt GBASIS} renvoie une base de Gr{\oe}bner de l'idéal polynomial engendré
par les polyn\^omes donnés dans le premier argument.\\
On choisit d'ordonner les polyn\^omes selon l'ordre donné par le dernier 
argument et selon les puissances décroissantes. Si $I$ est un idéal et si 
$(G_k)_{k \in K}$ est une base de Gr{\oe}bner de l'idéal $I$ alors si $F$ est 
 un polyn\^ome non nul de $I$, le terme dominant de $F$ est divisible par le terme 
 dominant d'un $G_k$. \\
Propriété : Si on fait la division eUclidienne de $F$ par le $G_k$ 
correspondant puis si on recommence avec le reste obtenu, on  finit par obtenir un reste nul.\\  
On tape :
$${\tt GBASIS([2\cdot S1\cdot S2-S2^2,S1^2-2\cdot S1\cdot S2],[S1,S2])}$$
On obtient :
$${\tt [S1^2-S2^2,2\cdot S1\cdot S2-S2^2,S2^3]}$$
\subsection{Réduction de Gr{\oe}bner : {\tt GREDUCE}}\index{GREDUCE}
{\tt GREDUCE} a trois arguments : un  polyn\^ome de 
plusieurs variables, un vecteur  constitué de polyn\^omes formant une base de
Gr{\oe}bner  dépendant des m\^emes variables et le vecteur constitué du nom de
ces variables.\\
{\tt GREDUCE} renvoie la réduction (à une constante près) du polyn\^ome donné 
dans le premier argument
par rapport à la base de Gr{\oe}bner donnée dans le deuxième argument.\\
On tape :
$${\tt GREDUCE(S1*S2-1,[S1^2-S2^2,2*S1*S2-S2^2,S2^3],[S1,S2])}$$
On obtient :
$${\tt (S2^2-2)/2}$$
ce qui veut dire que ${\tt Y^2-2}$ et le polyn\^ome réduit de 
${\tt 2\cdot X\cdot Y-2}$ (${\tt Y^2-2}$ est le reste de la division euclidienne de ${\tt 2\cdot (X\cdot Y-1)}$ par ${\tt G_2=2\cdot X\cdot Y-Y^2}$).
\subsection{Polyn\^ome de Lagrange : {\tt LAGRANGE}}\index{LAGRANGE}
{\tt LAGRANGE} a comme argument une matrice de deux lignes et $n$ colonnes :\\
la premi\`ere ligne correspond à des valeurs d'abscisses $x_i$, et la 
deuxième ligne correspond à des valeurs d'ordonnées $y_i$ ($i=1..n$).\\
{\tt LAGRANGE} renvoie le polyn\^ome $P$ de degré $n-1$ tel que $P(x_i)=y_i$.\\
On tape :
$${\tt LAGRANGE([[1,3],[0,1]])}$$
On obtient :
$${\tt \frac{S1-1}{2}}$$
en effet $\frac{x-1}{2}=0 $ pour $x=1$ et $\frac{x-1}{2}=1$ pour $x=3$ 

\subsection{PGCD d'une liste :{\tt LGCD}}\index{LGCD}
{\tt LGCD} désigne le PGCD d'une liste de nombres entiers ou d'une liste de 
polyn\^omes.\\
On tape :
$${\tt  LGCD(\{18,15,21,36\}) }$$
On obtient :
$${\tt 3}$$
On tape :
$${\tt LGCD(\{S1^2+2*S1+1,S1^3+1 ,S1^2-1,S1^2+S1 \})}$$
On obtient :
$${\tt S1+1}$$
\subsection{Résultant de deux polyn\^omes : {\tt RESULTANT}}\index{RESULTANT}
{\tt RESULTANT} a comme arguments deux polyn\^omes.\\
{\tt RESULTANT} renvoie le résultant des deux polyn\^omes.\\
Le résultant est non nul si et seulement si les deux polynômes sont
premiers entre eux. C'est
le d\'eterminant de la matrice $S$ de Sylvester.\\
Pour les deux polyn\^omes $A[X]=\sum_{i=0}^{i=n} a_iX^i$ et 
$B[X]=\sum_{i=0}^{i=n}b_iX^i$ la  matrice $S$ de Sylvester est une matrice carrée de dimensiom $m+n$ dont les $m$ premières lignes sont  composées à partir des coefficients de $A[X]$ :
$$\left(\begin{array}{ccccccc}
s_{11}=a_n & s_{12}=a_{n-1}& \cdots & s_{1(n+1)}=a_0 & 0 & \cdots & 0\\
s_{21}=0 & s_{22}=a_{n}& \cdots & s_{2(n+1)}=a_1 & s_{2(n+2)}=a_0 & \cdots & 0\\
\vdots &\vdots &\vdots &\ddots &\vdots &\ddots &\vdots\\
s_{m1}=0 & s_{m2}=0& \cdots & s_{m(n+1)}=a_{m-1} & s_{m(n+2)}=a_{m-2} & \cdots&a_0 
\end{array}\right)$$
et les $n$ lignes  suivantes sont composées de la m\^eme façon à partir des coefficients de $B[X]$ :
$$\left(\begin{array}{ccccccc}
s_{(m+1)1}=b_m & s_{(m+1)2}=b_{m-1}& \cdots & s_{(m+1)(m+1)}=b_0 & 0 & \cdots & 0\\
\vdots &\vdots &\vdots &\ddots &\vdots &\ddots &\vdots\\
s_{(m+n)1}=0 & s_{(m+n)2}=0& \cdots & s_{(m+n)(m+1)}=b_{n-1}  & b_{n-2}  &\cdots&b_0 
\end{array}\right)$$
On tape :
$${\tt RESULTANT(S1^3-S2*S1+S3,3*S1^2-S2)}$$
On obtient :
$${\tt -(4*S2^3-27*S3^2)}$$
\subsection{Division par le PGCD : {\tt SIMP2}}\index{SIMP2}
{\tt SIMP2} a comme paramètre deux entiers (ou deux listes d'entiers).
Ces deux entiers sont considérés comme représentants d'une fraction. 
{\tt SIMP2} renvoie la fraction simplifiée sous la forme d'une liste de deux 
entiers.\\  
 On tape :
$${\tt SIMP2(18,15) }$$
On obtient :
$${\tt \{6,5\}}$$ 
On tape :
$${\tt SIMP2(\{18,28\},\{15,21\}) }$$
On obtient :
$${\tt \{6,5,4,3\}}$$ 
{\tt SIMP2} a comme paramètre deux polyn\^omes (ou deux listes de polyn\^omes de m\^eme longueur).
Ces deux  polyn\^omes  sont considèrés comme représentant une fraction rationnelle.\\ 
{\tt SIMP2} renvoie la fraction rationnelle simplifiée sous la forme d'une liste de deux polyn\^omes.\\ 
On tape :
$${\tt SIMP2(S1^3-1,S1^2-1) }$$
On obtient :
$${\tt \{S1^2+S1+1,S1+1\}}$$
\subsection{Suites de Sturm :{\tt STURM}}\index{STURM}
{\tt STURM} a comme paramètre un polyn\^ome $P$.\\
{\tt STURM} renvoie la liste des suites de Sturm et de leur multiplicité.\\
La suite de Sturm $R_1,R_2,...$ est obtenue à partir d'un facteur $F$
sans carré de $P$ :
$R_1$ est l'opposé du  reste de la division euclidienne de $F$ par $F'$\\
puis $R_2$ est l'opposé du reste de la division euclidienne de $F'$ par $R_1$\\
et ainsi de suite jusqu'à ce que $R_k=0$.\\
On tape :
$${\tt STURM(S1^3+1)}$$
On obtient :
$${\tt \{[1],\ -1,\ [S1^3+1,\ -3\cdot S1^2 -1],\ 1.\}}$$
Le premier terme indique que le dénominateur (l'élément de puissance -1) 
vaut 1.
\subsection{Z\'eros d'un polyn\^ome : {\tt ZEROS}}\index{ZEROS}
{\tt ZEROS} a deux param\`etres : un polyn\^ome $P$ et le nom de la variable.\\
{\tt ZEROS} renvoie la liste des z\'eros {\sc sans} leur multiplicit\'e.\\
On tape :
$${\tt ZEROS(S1^4-1,S1)}$$
On obtient :\\
- en mode r\'eel (on change le mode avec {\tt SHIFT F6} puis,
 {\tt UNCHK Complex}) 
$${\tt \{-1, 1\}}$$
- en mode complexe (on change le mode avec {\tt SHIFT F6} puis,
 {\tt CHK Complex}) 
$${\tt \{ i,-1, -i ,1\}}$$

\section{Les fractions rationnelles}
\subsection{Num\'erateur et d\'enominateur d'une fraction : {\tt FXND}}\index{FXND}
{\tt FXND} a comme argument une fraction et renvoie, la liste form\'ee par le 
num\'erateur et le d\'enominateur de cette fraction simplifi\'ee.\\
On tape :
$${\tt  FXND(42/12)}$$
On obtient :
$${\tt \{7,2\}}$$
\section{Le calcul modulaire}
\subsection{R\'esolution d'un syst\`eme d'\'equations lin\'eaires : {\tt RREFMOD}}\index{RREFMOD}
{\tt RREFMOD} permet de résoudre un système d'équations linéaires de la forme
$AX=B$ dans  $Z/pZ$.\\
L'argument est une matrice formée par $A$ bordée avec  $B$ comme dernier 
vecteur colonne. Le résultat est une matrice formée de $A1$ et de $B1$ o\`u 
$A1$ a des zéros de part et d'autre de la diagonale et le système $A1X=B1$ est 
équivalent à  $AX=B$.\\ 
On tape :
$${\tt RREFMOD([[1, 2, 9][3,10,0]])}$$ 
pour résoudre, dans $Z/13Z$ :
$$\left \{\begin{array}{lcr}\ \  x\ +\ \  2 \cdot y & = &9 \\3 \cdot x +10 \cdot y & =& 0 \end{array}\right.$$
On tape :
$${\tt MODSTO(13)}$$
$${\tt RREFMOD([[1, 2, 9][3,10,0]])}$$
On obtient :
$${\tt [[2, 0, 6],[0, 4, -1 ]]}$$ 
ce qui veut dire que ${\tt 2.X=6} $ et ${\tt 4.Y=-1}$ ou encore 
${\tt X=3 \ \ Y=3}$ (puisque $-4*3=1 \ (\bmod 13)$).
\section{Variables}
\subsection{Les variables symboliques d'une expression : {\tt LNAME}}\index{LNAME}
{\tt LNAME} a comme paramètre une expression et renvoie un vecteur de 
composantes le nom des variables symboliques utilisées dans cette expression.\\
On tape :
$${\tt LNAME(S1*S2*SIN(S1))}$$
On obtient :
$${\tt [S1,S2]}$$

\subsection{Les variables d'une expression : {\tt LVAR}}\index{LVAR}\label{sec:lvar}
{\tt LVAR} a  comme paramètre une expression et renvoie une liste composée de 
l'expression et d'un vecteur tel que l'expression originale
soit une fraction rationnelle des composantes de ce vecteur.\\
On tape :
$${\tt LVAR(S1*S2*SIN(S1))}$$
On obtient :
$${\tt  [SIN(S1),S1,S2]}$$

\section{Calcul num\'erique}
\subsection{N\'egliger les valeurs inf\'erieures \`a EPS : {\tt EPSX0}}\index{EPSX0}\label{sec:epsx0}
{\tt EPSX0} a  comme paramètre une expression  de {\tt X} et renvoie 
l'expression o\`u les valeurs plus petites que {\tt EPS} ont été remplacées 
par zéro.\\
On tape :
$${\tt EPSX0(0.001+S1)}$$
On obtient (avec {\tt EPS=0.01}) :
$${\tt 0+S1}$$
On obtient (avec {\tt EPS=0.0001}) :
$${\tt .001+S1}$$
\subsection{Résoudre numèriquement des systèmes : {\tt MSLV}}\index{MSLV}
{\tt MSLV} permet de résoudre numèriquement des systèmes d'équations non 
polynomiales.\\
{\tt MSLV} a trois vecteurs comme arguments : le vecteurs des équations, le 
vecteur des variables, et le vecteur d'une solution approchée.\\
{\tt MSLV} renvoie un vecteur dont les coordonnées sont les solutions approchées des équations données.\\
Pendant le déroulement du programme, la ligne 1 affiche la dernière estimation 
$\overrightarrow V$, et la ligne 2 la norme de $\Delta \overrightarrow V$\\
On tape :
$${\tt MSLV([SIN(S1)+S2,S1+SIN(S2)-1],[0,0])}$$
On obtient :
$${\tt [1.82384112611,\  -.968154636174]}$$
\subsection{Tableau de valeurs : {\tt TABVAL}}\index{TABVAL}
{\tt TABVAL} a comme paramètres une expression et une liste de nombres.\\
{\tt TABVAL} renvoie une liste form\'ee de la liste de nombres et de la 
liste des valeurs prises par l'expression lorsqu'on remplace la variable 
{\tt S1}  par la liste de nombres.\\
On tape :
$${\tt TABVAL(S1^2+S1,\{1,2,3,XQ(\sqrt5\})}$$
On obtient : 
$${\tt  \{\{1,2,3,\sqrt5\},\{2,6,12,5+\sqrt5\}\}}$$
\subsection{Temps pour \'evaluer la r\'eponse : {\tt TEVAL}}\index{TEVAL}
{\tt TEVAL} a comme argument une commande.\\
{\tt TEVAL} renvoie la liste form\'ee de la r\'eponse et du temps 
 mis pour \'evaluer la r\'eponse (unit\'e=la seconde).\\
Par exemple, on tape :
$${\tt TEVAL(FACTOR(S1^2-1))}$$
On obtient : 
$${\tt \{(S1-1)*(S1+1),0.2991\}}$$
\subsection{Valeur numérique : {\tt XNUM}}\index{XNUM}
{\tt XNUM} a comme paramètre une expression ou un tableau.\\
{\tt XNUM} fait passer en mode approximatif et renvoie la valeur numérique de
l'expression ou du tableau.\\
 On tape :
$${\tt XNUM(\sqrt2)}$$ 
On obtient :
$${\tt 1.41421356237}$$
\subsection{Valeur exacte : {\tt XQ}}\index{XQ}
{\tt XQ} a comme paramètre une expression numérique réelle.\\
{\tt XQ} fait passer en mode exact et donne une approximation rationnelle ou réelle de l'expression.\\
On tape :
$${\tt XQ(1.41421)}$$
On obtient :
$${\tt \frac{66441}{46981}}$$
On tape :
$${\tt XQ(1.414213562)}$$
On obtient :
$${\tt \sqrt2}$$

\section{Les listes}
\subsection{Concat\'enation : {\tt AUGMENT}}\index{AUGMENT}
{\tt AUGMENT} a comme argument deux vecteurs, ou deux listes, ou une liste et 
un élément.\\
{\tt AUGMENT} concatène ses deux arguments.\\
On tape :
$${\tt AUGMENT(\{1,2\},3)}$$
On obtient :
$${\tt \{ 1,2,3 \}}$$
On tape :
$${\tt AUGMENT(\{1,2\},\{3,4\})}$$
On obtient :
$${\tt \{ 1,2,3,4 \}}$$
\subsection{Appliquer une fonction \`a une liste : {\tt MAP}}\index{MAP}
{\tt MAP} a deux arguments: une liste et une fonction definissant une
fonction holomorphe.\\
{\tt MAP} applique cette fonction \`a la liste, et renvoie le resultat.\\
On tape :
$${\tt MAP({1,0,2},EXP(S1))}$$
On obtient :
$${\tt \{EXP(1),EXP(0),EXP(2)\}}$$

\section{Les formes quadratiques}
\subsection{Matrice en forme quadratique : {\tt AXQ}}\index{AXQ}
{\tt AXQ} a deux arguments : une matrice symétrique $A$ repr\'esentant une 
forme quadratique $q$ et le vecteur de composantes les variables utilis\'ees.\\
{\tt AXQ} renvoie la forme quadratique $q$.\\   
On tape :
$${\tt AXQ([[0,1],[1,0]]\ ,\ [S1,S2])}$$
On obtient :
$${\tt 2*S2*S1}$$
\subsection{D\'ecomposition de Gauss : {\tt GAUSS}}\index{GAUSS}
{\tt GAUSS} a deux arguments : une forme quadratique $q$ et le vecteur de 
composantes les variables utilis\'ees.\\ 
{\tt GAUSS} renvoie la d\'ecomposition de $q$ en somme de carr\'es.\\      
On tape :
$${\tt GAUSS(2 \cdot S1 \cdot S2\ ,\ [S1,S2])}$$
On obtient :
$${\tt  -2\cdot(\frac{S2-S1}{2})^2+\frac{1}{2}\cdot (S2+S1)^2}$$
\subsection{Matrice d'une forme quadratique : {\tt QXA}}\index{QXA} 
{\tt QXA} a deux arguments : une forme quadratique $q$ et le vecteur de 
composantes les variables utilis\'ees.\\ 
{\tt QXA} renvoie la matrice $A$ associ\'ee \`a $q$.\\ 
On tape :
$${\tt QXA(2*S1*S2\ ,\ [S1,S2])}$$
On obtient :
$${\tt[[0,1],[1,0]]}$$
et avec {\tt SHOW}
$${\tt  \left[\begin{array}{cc} 0& 1\\ 1&0 \end{array}\right]}$$

\subsection{D\'ecomposition de Sylvester : {\tt SYLVESTER}}\index{SYLVESTER}
{\tt SYLVESTER} a un seul argument : une matrice symétrique $A$ repr\'esentant 
une forme quadratique $q$.\\
{\tt  SYLVESTER} renvoie une liste de 2 termes :
 les termes diagonaux d'une matrice diagonale $B$  (obtenus par la 
d\'ecomposition de $q$ en somme de carr\'es) et la matrice $Q$ de 
changement de base.\\
On a :
 $$ ^tQ \cdot B \cdot Q=A$$
On tape :
$${\tt SYLVESTER([[0,1],[1,0]])}$$
On obtient :
$${\tt \{[\frac{1}{2},-2]\ ,\ \left[\begin{array}{cc} 1& 1\\-\frac{1}{2} &\frac{1}{2} \end{array}\right]\}}$$

\section{Les fonctions de plusieurs variables}
\subsection{Le rotationnel : {\tt CURL}}\index{CURL}
Ici $n=3$.\\
{\tt CURL} a deux param\`etres :la valeur [$E1,E2,E3$] d'une fonction 
vectorielle (application de $R^3 $ dans $R^3$) et un vecteur de $R^3$ indiquant
le nom des variables.\\
{\tt CURL} d\'esigne le rotationnel de [$E1,E2,E3$].
$${\tt CURL([E1,E2,E3],[S1,S2,S3])=[\frac{\partial E3}{\partial S2}-\frac{
\partial E2}{\partial S3},\frac{\partial E1}{\partial S3}-\frac{\partial E3}
{\partial S1},\frac{\partial E2}{\partial S1}-\frac{\partial E1}{\partial S2}]}$$
On tape :
$${\tt CURL([S1*S3,-S2^2,2*S1*S2],[S1,S2,S3])}$$
On obtient :
$${\tt [2*S1,S1-S2*2,0]}$$
\subsection{Le gradient : {\tt DERIV}}\index{DERIV}\label{sec:deriv}
{\tt DERIV} a deux paramètres la valeur  $E1$ d'une  application de $R^n $ dans $R$ et un 
vecteur de $R^n$ indiquant le nom des variables.\\
{\tt DERIV} renvoie le gradient de $E1$ ($[\frac{\partial E1}{\partial S1},
\frac{\partial E1}{\partial S2},\frac{\partial E1}{\partial S3}]$ si $n=3$).\\
On tape :
$${\tt DERIV(2*S1^2*S2-S1*S3^3,[S1,S2,S3])}$$
On obtient après simplification :
$${\tt [4*S2*S1-S3^3,2*S1^2,-(3*S3^2*S1)]}$$
\subsection{La divergence : {\tt DIV}}\index{DIV}
{\tt DIV} a deux param\`etres : la valeur [$E1,E2,E3$] d'une fonction 
vectorielle (application 
de $R^n $ dans $R^n$) et un vecteur de $R^n$ indiquant le nom des variables.\\
{\tt DIV} d\'esigne la divergence de [$E1,E2,E3$].
 $${\tt DIV([E1,E2,E3],[S1,S2,S3])=\frac{\partial E1}{\partial S1}+\frac{\partial E2}{\partial S2}+\frac{\partial E3}{\partial S3}} \mbox{  (ici } n=3)$$\\
On tape :
$${\tt DIV([S1* S3,-S2^2,2*S1*S2],[S1,S2,S3])}$$
On obtient :
$${\tt S3-2*S2}$$
\subsection{La hessienne : {\tt HESS}}\index{HESS}
{\tt HESS} a deux param\`etres :  la valeur  $E1$ d'une application de $R^n $ 
dans $R$ et un vecteur de $R^n$ indiquant le nom des variables.\\
{\tt HESS} renvoie une liste constitu\'ee de la hessienne de $E1$, du gradient
de $E1$ et de la liste des variables.\\
On tape :
$${\tt HESS(2*S1^2*S2-S1*S3\ ,\ [S1,S2,S3])}$$
On obtient :
$$ \{ \left[\begin{array}{ccc} 
{\tt 2 \cdot2\cdot S2}& {\tt 2 \cdot2\cdot S1}&-1 \\  
{\tt2\cdot2\cdot S1}&0&0 \\
-1&0&0 \end{array}\right]{\tt \ ,\ [4\cdot S1\cdot S2-S3,2\cdot S1^2,-S1]\ ,
\ [S1,S2,S3]\}}$$
Pour avoir maintenant les points critiques, il suffit de taper :\\
$${\tt SOLVE( [4*S1*S2-S3,2*S1^2,-S1],\  [S1,S2,S3])}$$\\
\subsection{Le laplacien : {\tt LAPL}}\index{LAPL}
{\tt LAPL} a deux param\`etres : la valeur  $E1$ d'une  application de $R^n $ 
dans $R$ et un vecteur de $R^n$ indiquant le nom des variables.\\
{\tt LAPL} renvoie le laplacien de $E1$ ($\frac{\partial^2 E1}{\partial S1^2}
+\frac{\partial^2 E1}{\partial S2^2}+\frac{\partial^2 E1}{\partial S3^2}$ 
si $n=3$).\\
On tape :
$${\tt LAPL(2*S1^2*S2-S1*S3^3\ ,\ [S1,S2,S3])}$$
On obtient :
$${\tt 4*S2-6*S1*S3}$$

\section{Équations}
\subsection{Membres d'une équation : {\tt EXLR}}\index{EXLR}
{\tt EXLR} a comme paramètre une équation (il faut mettre {\tt ==}).\\
{\tt EXLR} renvoie une liste composée des deux membres de l'équation.\\
On tape :\\
$${\tt EXLR(2\cdot S1+1==3/2)}$$
On obtient :\\
$$\{2\cdot S1+1 ,3/2\}$$
\section{Matrices}
\subsection{Matrice en liste : {\tt AXL}}\index{AXL}
{\tt AXL} a comme argument une matrice.\\
{\tt AXL} renvoie cette matrice écrite sous la forme d'une liste de listes.\\
Et réciproquement {\tt AXL} transforme une liste de listes en une matrice.\\
On tape :
$${\tt AXL(XQ([[1,1/2],[3,4]]))}$$
On obtient :
$${\tt \{\{1,1/2\}\{3,4\}\}}$$
On tape :
$${\tt AXL(XQ(\{\{1,1/2\},\{3,4\}\}))}$$
On obtient :
$${\tt[[1,1/2],[3,4]]}$$
Mais en tapant:
$${\tt AXL([[1,1/2],[3,4]])}$$
On obtient :
$${\tt \{\{1,0.5\},\{3,4\}\}}$$
et en tapant
$${\tt AXL(\{\{1,1/2\},\{3,4\}\})}$$
On obtient:
$${\tt [[1,0.5,[3,4]]}$$

\subsection{Matrice symbolique en matrice numérique : {\tt AXM}}\index{AXM}
Si {\tt AXM} a comme argument une matrice symbolique, {\tt AXM} renvoie une 
matrice numérique.\\ 
%et réciproquement.\\
On tape :
$${\tt AXM([[1/2,2],[3,4]])}$$
On obtient :
$${\tt[[0.5,2],[3,4]]}$$

\subsection{Vecteurs de base : {\tt BASIS}}\index{BASIS}
{\tt BASIS} a comme argument la liste des vecteurs qui engendrent un sous 
espace vectoriel de $R^n$.\\
{\tt BASIS} renvoie une liste constituée des vecteurs d'une base de ce sous 
espace vectoriel.\\
On tape :
$${\tt BASIS(\{[1,2,3],[1,1,1],[2,3,4]\})}$$
On obtient :
$${\tt \{[1,0,-1],\ [0,1,2]\}}$$

\subsection{Matrice de Cholesky : {\tt CHOLESKY}}\index{CHOLESKY}
{\tt CHOLESKY} a pour argument une matrice carrée {\tt M} definie positive.\\
{\tt CHOLESKY} renvoie une matrice {\tt P} triangulaire supérieure telle 
que :\\
${\tt ^tP*P=M}$\\
On tape :
$${\tt CHOLESKY([[1,1],[1,5]])}$$
On obtient :
$${\tt \left[\begin{array}{rr}1 & 1\\0&2\end{array}\right]}$$
\subsection{Application d'un opérateur \`a une matrice diagonalisable : {\tt DIAGMAP}}\index{DIAGMAP}
{\tt DIAGMAP} a comme argument une matrice diagonalisable et une expression 
définissant un opérateur holomorphe.\\
{\tt DIAGMAP} applique cet opérateur holomorphe  à la
matrice.\\
Attention !!! la matrice doit \^etre diagonalisable.\\
On tape :
$${\tt DIAGMAP([[1,1],[0,2]], EXP(S1))}$$
On obtient :
$${\tt \left[\begin{array}{cc}{\tt EXP}(1)& -{\tt EXP}(1)+{\tt EXP}(2)\\0&{\tt EXP}(2)\end{array}\right]}$$
\subsection{Produit de Hadamard : {\tt HADAMARD}}\index{HADAMARD}
{\tt HADAMARD} a comme arguments deux matrices $A$ et $B$ de m\^eme ordre.\\
{\tt HADAMARD} renvoie la matrice constituée par le produit terme à terme des éléments de  $A$ et $B$.\\ 
On tape :
$${\tt HADAMARD(XQ([[ 1/2, 2],[3,4]]),XQ([[ 5, 6],[7,8]]))}$$
ou
$${\tt HADAMARD(XQ(\{\{ 1/2, 2\},\{3,4\}\}),XQ(\{\{ 5, 6\},\{7,8\}\})}$$
On obtient :
$${\tt [[ 5/2, 12],[21,32]]}$$
mais
$${\tt HADAMARD([[ 1/2, 2],[3,4]],[[ 5, 6],[7,8]])}$$
ou
$${\tt HADAMARD(\{\{ 1/2, 2\},\{3,4\}\},\{\{ 5, 6\},\{7,8\}\}}$$
On obtient :
$${\tt [[ 2.5, 12],[21,32]]}$$
\subsection{Matrice de Hilbert : {\tt HILBERT}}\index{HILBERT}
{\tt HILBERT} a comme argument un entier $n$.\\
{\tt HILBERT} renvoie la matrice de Hilbert carrée d'ordre $n$ d'éléments :\\
 $$a_{i,j}=\frac{1}{i+j-1}$$
On tape :
$${\tt HILBERT(4)}$$
On obtient , en appuyant sur {\tt ENTER}, puis $\uparrow$, et {\tt SHOW} :
$${\tt \left[\begin{array}{cccc} 1&\frac{1}{2}&\frac{1}{3} &\frac{1}{4}\\
\frac{1}{2}&\frac{1}{3}&\frac{1}{4} &\frac{1}{5}\\\frac{1}{3}&\frac{1}{4}
&\frac{1}{5} &\frac{1}{6}\\\frac{1}{4}&\frac{1}{5}&\frac{1}{6} &\frac{1}{7}\\ 
\end{array}\right] }$$

\subsection{Base d'une intersection : {\tt IBASIS}}\index{IBASIS}
{\tt IBASIS} a comme argument deux listes de vecteurs qui engendrent deux
sous espaces vectoriels.\\
{\tt IBASIS} renvoie une liste constituée des vecteurs de base de 
l'intersection de ces sous espaces vectoriels.\\
On tape :
$${\tt IBASIS(\{[1,2]\},\{[2,4]\})}$$
On obtient :
$${\tt \{[1,2]\}}$$
\subsection{Base de l'image : {\tt IMAGE}}\index{IMAGE}
{\tt IMAGE} a comme argument la matrice d'une application linéaire $f$ dans 
la base canonique.\\
{\tt IMAGE} renvoie la liste des vecteurs d'une base de l'image de $f$.\\
On tape :
$${\tt IMAGE([[1,2,3],[2,1,3],[3,1,4]])}$$
On obtient :
$${\tt \{[1,0,-1/3],[0,1,5/3] \}}$$
\subsection{Matrice de Jordan : {\tt JORDAN}}\index{JORDAN}
{\tt JORDAN} a comme argument une matrice $A$ d'ordre $n$.\\
{\tt JORDAN} renvoie une liste composée du polyn\^ome minimal $M $ de $A$, 
du polyn\^ome 
caractéristique $P $ de $A$, de la liste des vecteurs propres (eigen) et caractéristiques (char) (chaque vecteur est précédé par sa valeur propre ou 
caractéristique) et  d'un vecteur constitué par les  $n$ valeurs propres.\\  
On tape :
$${\tt JORDAN([[4,1,-2],[1,2,-1],[2,1,0]])}$$
ou
$${\tt JORDAN(\{\{4,1,-2\},\{1,2,-1\},\{2,1,0\}\})}$$

On obtient, en appuyant sur {\tt ENTER}, puis $\uparrow$, et {\tt SHOW} :
\begin{eqnarray*}
{\tt \{S1^3-6\cdot S1^2+12\cdot S1-8, S1^3-6\cdot S1^2+12\cdot S1-8,}\\
{\tt \{[1,0,0],[2,1,2],[1,0,1]\}, [2,2,2]\} }
\end{eqnarray*}

\subsection{Base du noyau : {\tt KER}}\index{KER}
{\tt KER} a comme argument la matrice d'une application linéaire $f$ dans la
base canonique.\\
{\tt KER} renvoie la liste des vecteurs d'une base du noyau de $f$\\
On tape :
$${\tt KER([[1,2,3],[2,1,3],[3,1,4]])}$$
On obtient :
$${\tt \{[1,1,-1] \}}$$
\subsection{Construction d'une matrice : {\tt LCXM}}\index{LCXM}
{\tt LCXM} a comme arguments deux entiers $n$ et $p$ 
et une expression de {\tt S1} (un numéro de ligne) et de {\tt S2} (un numéro 
de colonne) et qui donne la valeur de $a_{i,j}$.  \\
{\tt LCXM} renvoie la matrice de coefficients $a_{i,j}$ de dimension $n\cdotp$\\
On tape :
$${\tt LCXM(2,3, S1+S2 )}$$
On obtient :
$${\tt [[1+1,1+2,1+3],[2+1,2+2,2+3]]}$$
et apr\`es simplification : 
$${\tt [[2,3,4],[3,4,5]]}$$

\subsection{Liste de differents \'el\'ements : {\tt MAD}}\index{MAD}
{\tt MAD } a comme argument  une matrice carrée $A$ d'ordre $n$.\\
{\tt MAD } renvoie une liste composée du déterminant de $A$, de l'inverse 
de $A$, d'une liste contenant les coefficients matriciels d'un polyn\^ome $Q$,
 et du  polyn\^ome  caractéristique $P$ de $A$.\\
On a :
$$P(x)=(-1)^n.\det(A-x.I)$$
Le polyn\^ome à coefficients matriciels $P(A)-P(x).I $ est divisible par $A-x.I$ (puisqu'il s'annule pour $x=A$). Soit  $Q(x)$  leur quotient.\\
 Puisque $P(A)=0$, on a $\ P(A)-P(x).I\ =\ -P(x).I\ =\ (A-x.I).Q(x)$.\\
$Q(x)$ est donc aussi la comatrice de $A-x.I$ et on a :\\
$Q(x)\ =\ I.x^{n-1}+...+B_0 $ o\`u $B_0=$ la comatrice de $A$
(au signe près si $n$ est pair!).\\
On tape :
$${\tt MAD([[ 1, 1/2],[1,3]])}$$
ou
$${\tt MAD(\{\{ 1, 1/2\},\{1,3\}\})}$$
On obtient :
$${\tt \{5/2,[[6/5,-1/5],[-2/5,2/5]],\{[[1,0],[0,1]],[[-3,1/2],[1,-1]]\},S1^2-4*S1+5/2\}}$$
ou en appuyant sur {\tt ENTER}, puis $\uparrow$, et{\tt SHOW} on a :
$${\tt \left\{\frac{5}{2}, 
\left[
\begin{array}{cc} 
\frac{6}{5}&-\frac{-1}{5}\\
\frac{-2}{5}&\frac{2}{5}\\ 
\end{array}
\right],
\{\left[
\begin{array}{cc} 
1&0\\0&1 
\end{array}
\right], 
\left[\begin{array}{cc} 
-3&1/2\\1&-1 \end{array}\right]
\right\},S1^2-4 \cdot S1+\frac{5}{2}\}}$$

\subsection{Polyn\^ome caractéristique : {\tt PCAR}}\index{PCAR}
{\tt PCAR} a comme argument une matrice $A$ d'ordre $n$.\\
{\tt PCAR} renvoie le polyn\^ome caractéristique $P $ de $A$ 
($P[x]=(-1)^n.\det(A-x.I))$
On tape :
$${\tt PCAR([[4,1,-2],[1,2,-1],[2,1,0]])}$$
ou
$${\tt PCAR(\{\{4,1,-2\},\{1,2,-1\},\{2,1,0\}\})}$$
On obtient :
$${\tt S1^3-6*S1^2+12*S1-8}$$
\subsection{Polyn\^ome minimal : {\tt PMINI}}\index{PMINI}
{\tt PMINI} a comme argument une matrice $A$.\\
{\tt PMINI} renvoie une matrice dont "la première ligne nulle" se termine par
le polyn\^ome minimal de $A$.\\
On tape :
$${\tt PMINI([[1,0],[0,1]])}$$
On obtient en pas à pas :\\
{\tt L2=L2-L1}\\
$\left[\begin{array}{rrrrr}1&0&0&1&1\\1&0&0 & 1&X\\1&0&0&1&X^2\end{array}\right]$\\

{\tt L3=L3-L1}\\
$\left[\begin{array}{rrrrr}1&0&0&1&1\\0&0&0 & 0&X-1\\1&0&0&1&X^2\end{array}\right]$\\

{\tt Reduction result}\\
$\left[\begin{array}{rrrrr}1&0&0&1&1\\0&0&0 & 0&X-1\\0&0&0&0&X^2-1\end{array}\right]$\\
La ligne :\\
{\tt 0,0,0,0,S1-1} donne le polyn\^ome minimal de $A$.
Donc, le polyn\^ome minimal de  $A$ :
$\left[\begin{array}{rr}1&0\\0 & 1\end{array}\right]$
est donc :
$${\tt S1-1}$$
\subsection{D\'ecomposition Q*R : {\tt qr}}\index{qr}
{\tt qr} a comme argument une matrice carrée.\\
{\tt qr} factorise cette matrice sous la forme Q*R : Q est une matrice 
orthogonale et R est triangulaire.\\
On tape :
$${\tt qr([[3, 5],[4,5]])}$$
On obtient :
$${\tt \{\left[\begin{array}{rr}\frac{3}{5} & \frac{4}{5}\\\frac{4}{5}&-\frac{3}{5}\end{array}\right],\left[\begin{array}{rr}5 & 7\\0&1\end{array}\right]\}}$$
\subsection{Système en matrice : {\tt SYST2MAT}}\index{SYST2MAT}
{\tt SYST2MAT} a comme argument un vecteur contenant un système d'équations 
linéaires ({\tt =} ou {\tt==} n'est pas autoris\'e et donc {\tt =0} est 
sous-entendu) et un vecteur contenant les variables.\\
{\tt SYST2MAT} écrit le système sous la forme d'une matrice.\\
On tape :\\
$${\tt SYST2MAT([S1+S2,S1-S2-2],[S1,S2])}$$
On obtient :
$${\tt \left[\begin{array}{rrr}1 & 1&0\\1&-1&-2\end{array}\right]}$$

\subsection{Matrice transposée : {\tt TRAN}}\index{TRAN}
{\tt TRAN} a comme argument une matrice $A$.\\
{\tt TRAN} renvoie la matrice transposée de $A$.\\
On tape :
$${\tt TRAN(XQ([[ 1, 1/2],[3,4]]))}$$
On obtient :
$${\tt [[ 1, 3],[1/2,4]]}$$
On tape :
$${\tt TRAN(XQ(\{\{ 1, 1/2\},\{3,4\}\}))}$$
On obtient :
$${\tt \{\{ 1, 3\},\{1/2,4\}\}}$$
Mais si on tape :
$${\tt TRAN([[ 1, 1/2],[3,4]]))}$$
On obtient :
$${\tt [[ 1, 3],[0.5,4]]}$$

\subsection{Matrice de Vandermonde : {\tt VANDERMONDE}}\index{VANDERMONDE}
{\tt VANDERMONDE} a comme argument un vecteur de composantes $x_i$ pour 
$i=0..n-1$.\\
{\tt VANDERMONDE} renvoie la matrice de Vandermonde correspondante(la kième ligne est le vecteur de composantes $x_i^{k}$ pour 
$i=0..n-1$ et $k=0..n-1$).\\
On tape :
$${\tt VANDERMONDE([1,2,3])}$$
On obtient :
$${\tt  [[1,1,1],[1,2,4],[1,3,9]] }$$
Supposons que {\tt E1=6},  {\tt E2=2*S1+S1*S2} et que l'on tape :
$${\tt VANDERMONDE([E1,E2,E3])}$$
On obtient , en appuyant sur {\tt ENTER}, puis $\uparrow$, et {\tt SHOW} :
$${\tt  \left[\begin{array}{ccc} 1& 6&36\\ {\tt 1}&{\tt 2\cdot S1+S1\cdot S2}&{\tt (2\cdot S1+S1\cdot S2)^2}\\{\tt 1}&{\tt E3}&{\tt E3^2} \end{array}\right]}$$

%\section{Autres fonctions matricielles}

\section{Les permutations}
Les permutations sont données par la liste des images $\{P(1),P(2)...P(n)\}$.\\
Par exemple la permutation $P =\{3,2,1\}$ veut dire que :\\
$P(1)=3,\ P(2)=2,\  P(3)=1$.\\
Un cycle est donné par une liste, et une décomposition en cycles par une liste 
de listes.\\
 Par exemple $C=\{3,2,1\}$ veut dire que :\\ 
$C(3)=2,\ C(2)=1,\ C(1)=3$.\\ 
Donc une d\'ecomposition en cycles est une liste de listes.\\
\subsection{Cycles en permutation : {\tt C2P}}\index{C2P}
{\tt C2P} a comme argument une liste de cycles.\\
{\tt C2P} renvoie la  permutation ayant comme décomposition en cycles la liste
donnée en argument (voir {\tt P2C}).\\
On tape :
$${\tt C2P(\{\{1,3,5\},\{2,4\}\})}$$
On obtient :
$${\tt\{3,4,5,2,1\}}$$
\subsection{Composition : {\tt CIRC}}\index{CIRC}
{\tt CIRC} a comme arguments deux permutations.\\
{\tt CIRC} renvoie la  permutation obtenue par composition 
($1^{\mbox{er}}\mbox{arg} \circ 2^{\mbox{i\`eme}} \mbox{arg}$).\\ 
On tape :
$${\tt CIRC(\{3,4,5,2,1\},\{2,1,4,3,5\})}$$
On obtient :
$${\tt \{4,3,2,5,1\}}$$
\subsection{Décomposition en cycles : {\tt P2C}}\index{P2C}
{\tt P2C} a comme argument une permutation.\\
{\tt P2C} renvoie sa décomposition en cycles et sa signature.\\
On tape :
$${\tt P2C(\{3,4,5,2,1\})}$$
On obtient :
$${\tt\{\{\{1,3,5\},\{2,4\}\},-1\}}$$

\section{Les isom\'etries}
\subsection{\'Eléments caractéristiques d'une isométrie : {\tt ISOM}}\index{ISOM}
{\tt ISOM} a comme argument la matrice d'une isométrie linéaire en dimension 2
 ou 3.\\
{\tt ISOM} renvoie la liste des éléments caractéristiques et {\tt +/-1} selon 
que l'isométrie est directe ou indirecte.\\
On tape :
$${\tt ISOM([[0,0,1],[0,1,0],[1,0,0]])}$$
On obtient :
$${\tt \{[1, 0, -1], -1\}}$$
ce qui veut dire que cette isométrie est une symétrie par rapport au plan 
$x\ -\ z\ =\ 0$.\\ 
On tape :
$${\tt ISOM(\frac{\sqrt2}{2}\cdot \left[\begin{array}{rr}1 & -1\\1&1\end{array}\right])}$$
On obtient :
$${\tt \{ACOS(\sqrt(1/2),1\}}$$
cette isométrie est donc une rotation d'angle $ \displaystyle \frac{\pi}{4}$
radians.
\subsection{Matrice d'une isométrie : {\tt MKISOM}}\index{MKISOM}
En dimension 3, {\tt MKISOM}  a comme argument la liste des éléments 
caractéristiques et +/-1 (+pour les isométries directes et - pour les indirectes) .\\ 
En dimension 2, {\tt MKISOM}  a comme argument l'élément caractéristique (un angle ou un vecteur) et +/-1 (+ pour les isométries directes et - pour les indirectes) .\\
{\tt MKISOM} donne la matrice de l'isométrie correspondant aux arguments.\\ 
On tape :
$${\tt MKISOM(\{[-1,2,-1],\pi \},1)}$$
On simplifie la r\'eponse en tapant :\\
{\tt XQ(} puis $\uparrow$ et {\tt COPY}, puis {\tt ) ENTER}\\
On obtient la matrice d'une rotation d'axe $[-1,2,-1]$ et d'angle $\pi$ :
$${\tt \left[\begin{array}{rrr}\frac{-2}{3} & \frac{-2}{3}&\frac{1}{3}\\\frac{-2}{3}&\frac{1}{3}&\frac{-2}{3}\\\frac{1}{3}&\frac{-2}{3}&\frac{-2}{3}\end{array}\right]}$$
On tape :
$${\tt MKISOM(\{\pi \},-1)}$$
On obtient la matrice d'une symétrie par rapport à O :
$${\tt [[-1,0,0],[0,-1,0],[0,0,-1]]}$$
On tape :
$${\tt MKISOM(\{[1,1,1],\frac{\pi}{3} \},-1)}$$
On obtient la matrice produit  d'une rotation d'axe $[1,1,1]$ et d'angle 
$\frac{\pi}{3}$ et d'une symétrie par rapport au plan $x+y+z=0$:
$${\tt \left[\begin{array}{rrr}0 & -1&0\\0&0&-1\\-1&0&0\end{array}\right]}$$
On tape :
$${\tt MKISOM( \frac{\pi}{2},1)}$$
On obtient la matrice en dimension 2, de la rotation d'angle $\frac{\pi}{2}$ :
$${\tt  [[0, -1],[1,0]]}$$
On tape :
$${\tt MKISOM([1,1],-1)}$$
On obtient la matrice en dimension 2, de la symétrie par rapport à $y+x=0$ :
$${\tt [[0, -1],[-1,0]]}$$
%%% CAS FUNCTIONS %%%
\chapter{Les fonctions du {\tt CAS} depuis l'éditeur d'\'equation}\label{sec:cas}
Lorsqu'on appuie sur {\tt CAS} du bandeau de {\tt HOME}, on ouvre l'éditeur 
d'équations dans lequel on peut faire du calcul formel. Nous allons d\'ecrire
dans ce chapitre les fonctions de calcul formel. lorsque celles-ci sont
utilis\'ees depuis l'éditeur d'\'equation (voir section \ref{sec:cashome} et
chapitre \ref{chap:cashome} si vous voulez utilser les fonctions du {\tt CAS} depuis 
{\tt HOME}).

\section{Le bandeau du {\tt CAS}}
L'éditeur d'\'equation poss\'ede un bandeau ; c'est le bandeau du {\tt CAS}.\\
{\tt TOOL}, {\tt ALGB}, {\tt DIFF}, {\tt REWRI}, {\tt SOLV} et {\tt TRIG} 
composent le bandeau du {\tt CAS}.\\
Seul le menu {\tt TOOL} contient des commandes, les autres menus contiennent
des fonctions  algébriques que l'on peut taper en mode {\tt Alpha} et ont 
sur leur premi\`ere ligne le sous menu {\tt CFG} qui permet 
de changer de configuration.

\subsection{Pour changer v\^otre configuration : {\tt CFG}}\index{CFG}\label{sec:cfg}
Tous les menus, sauf {\tt TOOL}, affichent l'état de votre configuration et
 vous avez la possibilité d'en changer.\\
Par exemple vous voyez en premi\`ere ligne d'un menu :
$${\tt CFG :\ R\ =\ X \  S}$$
cela veut dire que vous \^etes :\\
(1) en mode réel exact,\\
(2) {\tt X} est la variable courante et\\
(3) vous \^etes en mode pas à pas ({\tt S}).\\
On  met en surbrillance {\tt CFG} et on appuie sur {\tt OK}.\\
Il apparait un menu d'en t\^ete :
$${\tt CFG :\ R\ =\ STEP\ \uparrow\ X \ 13\ ||}$$
Cela veut dire que vous \^etes :\\
(1) en mode réel exact,\\
(2) le mode pas à pas est sélectionné,\\
(3) les polyn\^omes sont écrits selon les puissances croissantes,\\ 
(4) {\tt X} est la variable courante,\\
(5) les calculs modulaires se feront dans {\tt Z/13Z} ($p=13$), et\\
(6) vous \^etes en mode {\tt rigourous} (on met des valeurs absolues).\\
Vous pouvez changer cette configuration en sélectionnant ce qui vous convient
parmi :\\
{\tt Quitter config} (lorsqu'on a fini les changements),\\
{\tt Complex } (ou {\tt Real}),\\
{\tt Approx} (ou {\tt Exact}),\\
{\tt Direct} (ou {\tt Step/Step} si on veut \^etre en mode pas à pas),\\
${\tt  1+x+x^2...}$ (ou ${\tt ...x^2+x+1}$) pour l'écriture des polyn\^omes,\\
{\tt Sloppy} (ou {\tt Rigorous} pour  mettre les valeurs absolues)\\
{\tt Num. factor} (ou {\tt Symb factor}),\\
{\tt Cmplx  vars} (ou {\tt Real vars} pour que toutes les variables symboliques
 soient considérées comme réelles cf. \ref{sec:realassume}),\\
{\tt English} (ou {\tt Français} pour avoir l'aide en ligne en français)\\
{\tt Default cfg} (configuration ${\tt R\ =\ STEP\ \downarrow\ X \ 13\ ||}$).\\
Appuyer sur {\tt OK} pour valider chacun de vos choix.\\
On sort du menu {\tt CFG} en appuyant sur {\tt CANCEL} ou en validant 
{\tt Quitter config} et en confirmant avec {\tt OK}.\\ 
Le nom de la  variable courante  contenu dans {\tt VX} et la valeur de la 
variable {\tt MODULO} peuvent se changer à l'aide des touches 
{\tt SHIFT SYMB (SETUP)} ou l'aide de la touche {\tt VARS} 
(cf. \ref{sec:config} et \ref{sec:vars}).\\ 
{\sc Remarques} :\\
- Vous pouvez aussi changer la configuration du {\tt CAS} en tapant,
depuis l'éditeur d'\'equation ,sur les touches 
{\tt SHIFT SYMB (SETUP)} ou {\tt SHIFT HOME (MODES)} (se reporter pour cela à 
la section \ref{sec:config}).\\
- Dans le {\tt CAS} les angles sont toujours exprimés en {\tt Radians}.\\
Quand vous \^etes dans l'\'ecran {\tt HOME}, vous pouvez utiliser le menu
{\tt MODES} (touches {\tt SHIFT  HOME}) pour ouvrir l'\'ecran 
{\tt HOME MODES} et changer {\tt ANGLE MEASURE} ou ouvrir l'\'ecran 
{\tt CAS MODES}  en tapant {\tt SHIFT F6(CAS du bandeau)} pour changer la 
configuration du {\tt CAS}
\subsection{Le mode {\tt Step/Step}}
Le mode pas à pas ({\tt Step/Step} ou en abrégé {\tt S}) est choisi 
quand on veut avoir le détail des calculs.\\
Le détail des calculs s'affiche sur un écran et il faut appuyer sur {\tt OK}
du bandeau pour avoir le "pas" suivant.\\
 Mais quelquefois, l'écran n'est pas assez grand pour afficher toutes les 
informations : on le voit gr\^ace à 
une flèche qui se trouve soit en bas ($\blacktriangledown$), soit en haut
($\blacktriangle$) de l'écran.
Il faut alors se servir des flèches $\triangledown\ \vartriangle$ pour faire 
dérouler l'écran et voir ainsi ce qui manque.\\
Si on ne veut pas le détail des calculs, il faut choisir le mode {\tt Direct}
(en abrégé {\tt D}). 

\subsection{Le menu {\tt TOOL}}
On se reportera à la section \ref{sec:eqwmenu} pour la description des 
fonctions qui se trouvent dans le répertoire {\tt TOOL}.\\
{\tt Cursor mode}\index{Cursor mode}\\
{\tt Edit expr.}\index{Edit expr.}\\
{\tt Change font}\index{Change font}\\
{\tt Cut}\index{Cut}\\
{\tt Copy}\index{Copy}\\
{\tt Paste}\index{Paste}

\subsection{Le menu {\tt ALGB}}
\noindent{\tt COLLECT}\index{COLLECT}\\
{\tt DEF}\index{DEF}\\
{\tt EXPAND}\index{EXPAND}\\
{\tt FACTOR}\index{FACTOR}\\
{\tt PARTFRAC}\index{PARTFRAC}\\
{\tt QUOTE}\index{QUOTE}\\
{\tt STORE}\index{STORE}\\
{\tt |}\index{$\mid$}\\
{\tt SUBST}\index{SUBST}\\
{\tt TEXPAND}\index{TEXPAND}\\
{\tt UNASSIGN}\index{UNASSIGN}

\subsection{Le menu {\tt DIFF}}
\noindent{\tt DERIV}\index{DERIV}\\
{\tt DERVX}\index{DERVX}\\
{\tt DIVPC}\index{DIVPC}\\
{\tt FOURIER}\index{FOURIER}\\
{\tt IBP}\index{IBP}\\
{\tt INTVX}\index{INTVX}\\
{\tt lim}\index{LIMIT}\\
{\tt PREVAL}\index{PREVAL}\\
{\tt RISCH}\index{RISCH}\\
{\tt SERIES}\index{SERIES}\\
{\tt SIGNTAB}\index{SIGNTAB}\\
{\tt TABVAR}\index{TABVAR}\\
{\tt TAYLOR0}\index{TAYLOR0}\\
{\tt TRUNC}\index{TRUNC}

\subsection{Le menu {\tt REWRI}}
\noindent{\tt DISTRIB}\index{DISTRIB}\\
{\tt EPSX0}\index{EPSX0}\\
{\tt EXPLN}\index{EXPLN}\\
{\tt EXP2POW}\index{EXP2POW}\\
{\tt FDISTRIB}\index{FDISTRIB}\\
{\tt LIN}\index{LIN}\\
{\tt LNCOLLECT}\index{LNCOLLECT}\\
{\tt POWEXPAND}\index{POWEXPAND}\\
{\tt SINCOS}\index{SINCOS}\\
{\tt SIMPLIFY}\index{SIMPLIFY}\\
{\tt XNUM}\index{XNUM}\\
{\tt XQ}\index{XQ}

\subsection{Le menu {\tt SOLV}}
\noindent{\tt DESOLVE}\index{DESOLVE}\\
{\tt ISOLATE}\index{ISOLATE}\\
{\tt LDEC}\index{LDEC}\\
{\tt LINSOLVE}\index{LINSOLVE}\\
{\tt SOLVE}\index{SOLVE}\\
{\tt SOLVEVX}\index{SOLVEVX}

\subsection{Le menu {\tt TRIG}}
\noindent{\tt ACOS2S}\index{ACOS2S}\\
{\tt ASIN2C}\index{ASIN2C}\\
{\tt ASIN2T}\index{ASIN2T}\\
{\tt ATAN2S}\index{ATAN2S}\\
{\tt HALFTAN}\index{HALFTAN}\\
{\tt SINCOS}\index{SINCOS}\\
{\tt TAN2CS2}\index{TAN2CS2}\\
{\tt TAN2SC}\index{TAN2SC}\\
{\tt TAN2SC2}\index{TAN2SC2}\\
{\tt TCOLLECT}\index{TCOLLECT}\\
{\tt TEXPAND}\index{TEXPAND}\\
{\tt TLIN}\index{TLIN}\\
{\tt TRIG}\index{TRIG}\\
{\tt TRIGCOS}\index{TRIGCOS}\\
{\tt TRIGSIN}\index{TRIGSIN}\\
{\tt TRIGTAN}\index{TRIGTAN}

\subsection{La touche {\tt MATH}}\label{sec:math}
En plus des répertoires d\'ecrits ci-dessus 
({\tt Algebra}, {\tt Diff\&Int}, {\tt Rewrite}, 
{\tt Trig.}, {\tt Solve}), on trouve :\\ 
{\tt Complex}
({\tt i}\index{i}
{\tt ABS}\index{ABS}
{\tt ARG}\index{ARG}
{\tt CONJ}\index{CONJ}
{\tt DROITE}\index{DROITE}
{\tt IM}\index{IM}
{\tt -}\index{-}
{\tt RE }\index{RE}
{\tt SIGN}\index{SIGN})\\
{\tt Constant} 
(${\tt e\ i \ \infty \pi}$)\\
 {\tt Hyperb.} 
({\tt ACOSH ASINH ATANH COSH SINH TANH})\\
{\tt Integer}
({\tt DIVIS}\index{DIVIS}
{\tt EULER}\index{EULER}
{\tt FACTOR}\index{FACTOR}
{\tt GCD}\index{GCD}
{\tt IDIV2}\index{IDIV2}
{\tt IEGCD}\index{IEGCD}
{\tt IQUOT}\index{IQUOT}
{\tt IREMAINDER}\index{IREMAINDER}
{\tt ISPRIME?}\index{ISPRIME?}
{\tt LCM}\index{LCM}
{\tt MOD}\index{MOD}
{\tt NEXTPRIME}\index{NEXTPRIME}
{\tt PREVPRIME}\index{PREVPRIME})\\
{\tt Modular}
({\tt ADDTMOD}\index{ADDTMOD}
{\tt DIVMOD}\index{DIVMOD}
{\tt EXPANDMOD}\index{EXPANDMOD}
{\tt FACTORMOD}\index{FACTORMOD}
{\tt GCDMOD}\index{GCDMOD}
{\tt INVMOD}\index{INVMOD}
{\tt MODSTO}\index{MODSTO}
{\tt MULTMOD}\index{MULTMOD}
{\tt POWMOD}\index{POWMOD}
{\tt SUBTMOD}\index{SUBTMOD})\\
{\tt Polynom.}
({\tt EGCD}\index{EGCD}
{\tt FACTOR}\index{FACTOR}
{\tt GCD}\index{GCD}
{\tt HERMITE}\index{HERMITE}
{\tt LCM}\index{LCM}
{\tt LEGENDRE}\index{LEGENDRE}
{\tt PARTFRAC}\index{PARTFRAC}
{\tt PROPFRAC}\index{PROPFRAC}
{\tt PTAYL}\index{PTAYL}
{\tt QUOT}\index{QUOT}
{\tt REMAINDER}\index{REMAINDER}
{\tt TCHEBYCHEFF}\index{TCHEBYCHEFF})\\
{\tt Reals}
({\tt CEILING}\index{CEILING}
{\tt FLOOR}\index{FLOOR}
{\tt FRAC}\index{FRAC}
{\tt INT}\index{INT}
{\tt MAX}\index{MAX}
{\tt MIN}\index{MIN})\\
{\tt Tests} 
({\tt ASSUME}\index{ASSUME}
{\tt UNASSUME }\index{UNASSUME}
${\tt  > \ \geq \ < \ \leq \  == \  \neq }$ {\tt AND OR NOT}
{\tt IFTE}\index{IFTE})\\
On pourra se reporter aux sections \ref{sec:eqwmenu} et \ref{sec:tmath}, pour 
avoir la description des différents répertoires.

%\section{Écriture normale}


\section{Les entiers (et les entiers de Gauss)}
Toutes les fonctions de ce paragraphe se trouve dans le menu {\tt Integer} de 
la touche {\tt MATH}, \`a l'exception de {\tt IABCUV ICHINREM PA2B2}, qui se 
trouve dans le menu de la touche {\tt  SHIFT MATH (CMDS)}.\\
Pour certaines  fonctions, on peut utiliser des entiers de Gauss, nom\-bres
 de la forme $a+ib$ avec $a$ et $b$ entiers, à la place des 
entiers. 
\subsection{Precision infinie}
La calculatrice peut g\'erer des nombres entiers en pr\'ecision infinie, 
essayez :
$$100!$$
\indent Le symbole \ $!$ \  s'obtient en tapant : ${\tt SHIFT\ \times}$\\
L'écriture décimale de $100!$  étant tr\`es longue, on peut  voir le r\'esultat
  gr\^ace \`a  la touche {\tt VIEWS}. 

\subsection{Les diviseurs d'un entier : {\tt DIVIS}}\index{DIVIS}
{\tt DIVIS} donne les diviseurs d'un entier.\\
On tape :
$${\tt DIVIS(12) }$$
On obtient :\\
$${\tt 12 \ OR\  6\ OR\ 3\ OR\  4\ OR\  2\ OR\ 1 }$$
{\sc Attention} : ${\tt DIVIS(0)= 0 \ OR\  1}$
\subsection{Indicatrice d'Euler : {\tt EULER}}\index{EULER}
{\tt EULER} désigne l'indicadrice d'EULER d'un entier.\\
{\tt EULER(n)} est égale au cardinal de l'ensemble des nombres inférieurs à 
$n$ et premiers avec $n$.\\
On tape :
$${\tt EULER(21)}$$
On obtient :
$${\tt 12}$$
En effet l'ensemble :\\
 E=\{2,4,5,7,8,10,11,13,15,16,17,19\}  correspond aux nombres, plus petits que
 21, premiers avec 21, et E a comme cardinal 12.
\subsection{Factoriser un entier : {\tt FACTOR }}\index{FACTOR}
{\tt FACTOR} décompose l'entier en produit de facteurs premiers.\\
On tape :
$${\tt FACTOR(90)}$$
On obtient :
$${\tt 2\cdot3^2\cdot5}$$
\subsection{Le PGCD : {\tt GCD}}\index{GCD}
{\tt GCD} désigne le PGCD de deux entiers.\\
On tape :
$${\tt GCD(18,15) }$$
On obtient :
$${\tt 3}$$ 
En mode pas à pas, on tape :
$${\tt GCD(78,24) }$$
On obtient :\\
${\tt 78\ \bmod \ 24 \ = \ 6}$\\
${\tt 24\ \bmod \ 6 \ = \ 0}$\\
{\tt Result 6}\\
{\tt ENTER} renvoie {\tt 6} dans l'éditeur d'\'equation.
%Nouveau
\subsection{R\'esolution de $au+bv=c$ : {\tt IABCUV}}\index{IABCUV}
{\tt IABCUV(A,B,C)} donne {\tt U \ AND \ V} vérifiant {\tt AU+BV=C}.\\
Il faut bien s\^ur que {\tt C} soit un multiple de {\tt GCD(A,B)} pour obtenir
 une solution.\\
On tape :
$${\tt IABCUV(48,30,18) }$$
On obtient :
$${\tt 6 \ AND\  -9}$$

%Nouveau
\subsection{Restes chinois :{\tt ICHINREM}}\index{ICHINREM}
{\tt ICHINREM(A AND  P,B AND Q)} renvoie {\tt C AND R}.\\
Les nombres ${\tt X=C+k \cdot R}$ o\`u ${\tt k}\in \mathbb Z$ vérifient :\\
${\tt X=A \bmod P}$ et ${\tt X=B \bmod Q}$.\\
Il existe toujours une solution 
{\tt X} si {\tt P} et {\tt Q} sont premiers entre eux, et toutes les solutions
 sont alors congrues modulo ${\tt R=P \cdot Q}$\\
On tape :
$${\tt ICHINREM(7 \ AND\  10,12 \ AND\  15)}$$
On obtient :
$${\tt -3 \ AND\  30}$$
ce qui veut dire que les solutions sont telles que :\\
${\tt X=-3 \bmod 30}$\\
{\sc Exemple} : \\
Trouver les solutions de :
$${\tt \left \{ \begin{array}{rl} X=&3\ (\bmod\ 5)\\ X=&9\ (\bmod\ 13) \end{array}\right.}$$
On tape :
$${\tt ICHINREM(3 \ AND\  5,9 \ AND\  13)}$$
On obtient :
$${\tt -147 \ AND\  65}$$
ce qui veut dire que les solutions sont telles que :\\
${\tt X=-147 \bmod 65}$

%Nouveau
\subsection{Quotient et reste de deux entiers : {\tt IDIV2}}\index{IDIV2}
{\tt IDIV2} donne le quotient et le  reste entier de la division euclidienne de
 deux entiers.\\  
On tape :
$${\tt IDIV2(148,5) }$$
On obtient :
$${\tt 29\ AND\ 3}$$
En mode pas à pas, la division se fait comme à l'école, avec l'algorithme dit 
de la "potence".

\subsection{Identit\'e de B\'ezout : {\tt IEGCD}}\index{IEGCD}
{\tt IEGCD(A,B)} désigne le PGCD étendu (identité de Bézout) de deux  entiers.\\
{\tt IEGCD(A,B)} renvoie {\tt U AND V = D} avec {\tt U, V, D} vérifiant :\\
 {\tt AU+BV=D} et {\tt D=PGCD(A,B)}.\\
On tape :
$${\tt IEGCD(48,30) }$$
On obtient :
$${\tt 2 \ AND\ -3=6}$$
En effet :
$2 \cdot 48+ (-3) \cdot 30 =6$ et pgcd(48,30)=6\\
En mode pas à pas on obtient :\\
{\tt [z,u,v]:z=u*48+v*30}\\
{\tt [48,1,0]}\\
{\tt [30,0,1]*-1}\\
{\tt [18,1,-1]*-1 }\\
{\tt [12,-1,2]*-1}\\ 
{\tt [6,2,-3]*-2}\\
{\tt Resultat : [6,2,-3]}\\
puis {\tt ENTER} ou {\tt OK},\\
 $${\tt 2 \ AND\ -3=6}$$
s'écrit dans l'éditeur d'\'equation.

\subsection{Le quotient de la division euclidienne : {\tt IQUOT}}\index{IQUOT}\label{sec:iquot}
{\tt IQUOT} désigne le quotient entier de la division euclidienne de deux entiers.\\ 
On tape :
$${\tt IQUOT(148,5) }$$
On obtient :
$${\tt 29}$$
En mode pas à pas, la division se fait comme à l'école :
$$\begin{array}{rcl} 148 & | &\ 5\\ 48 & |&---\\ 3 &| &29 \end{array}$$
{\tt OK} pour exécuter la division au pas à pas, puis {\tt ENTER} et {\tt 29}  
s'inscrit dans l'éditeur d'\'equation. 
\subsection{Le reste de la division euclidienne : {\tt IREMAINDER}}\index{IREMAINDER}
{\tt IREMAINDER} désigne le reste entier de la division euclidienne de deux 
entiers.\\
{\tt IREMAINDER} se trouve dans le menu {\tt Integer} de la touche {\tt MATH}.\\
On tape :
$${\tt IREMAINDER(148,5)}$$
On obtient :
$${\tt 3}$$
{\tt IREMAINDER} travaille avec des entiers ou des entiers de Gauss, c'est ce qui le différencie de {\tt MOD}.\\
{\sc Exemple}  
$${\tt IREMAINDER(2+3 \cdot i,1+i)}$$
 renvoie {\tt i}\\ 
Essayer de calculer :
$${\tt IREMAINDER(148!,5!+2 )}$$
(Le symbole $!$ s'obtient avec ${\tt SHIFT \ \times}$).

En mode pas à pas, la division se fait comme à l'école, avec l'algorithme dit 
de la "potence" (cf \ref{sec:iquot} pour avoir un exemple).

\subsection{Test de primalit\'e : {\tt ISPRIME?}}\index{ISPRIME?}
{\tt ISPRIME?(N)}  renvoie {\tt 1.} (vrai) si {\tt N} est pseudo-premier  et  renvoie {\tt 0.} (faux) si {\tt N} n'est pas premier.\\
{\sc Définition} : Pour les nombres inférieurs à $10^{14}$ \^etre pseudo-premier et 
premier c'est la m\^eme chose ! ...mais au delà de $10^{14}$  un nombre 
pseudo-premier est premier avec une probabilité très forte (cf l'algorithme de Rabin section\ref{sec:rabin}).\\ 
On tape :
$${\tt ISPRIME?(13) }$$
On obtient :
$${\tt 1.}$$
On tape :
$${\tt ISPRIME?(14) }$$
On obtient :
$${\tt 0.}$$
\subsection{Le PPCM : {\tt LCM}}\index{LCM}
{\tt LCM} désigne le PPCM de deux entiers.\\
On tape :
$${\tt LCM(18,15) }$$
On obtient :
$${\tt 90}$$
\subsection{Le reste de la division euclidienne : {\tt MOD}}\index{MOD}
{\tt MOD} est une fonction infixée ayant comme arguments deux nombres 
entiers.\\
{\tt MOD} renvoie le reste de la division euclidienne des arguments.\\ 
On tape :
$${\tt 3\ MOD\ 2}$$
On obtient :
$${\tt 1}$$
 {\tt MOD} accepte des réels ($7.5 \ \bmod \ 2 \ =\ 1.5$), mais pas des 
entiers de Gauss (cf section \ref{sec:mod}). 
\subsection{Nombre pseudo-premier apr\`es {\tt N} : {\tt NEXTPRIME}}\index{NEXTPRIME}
{\tt NEXTPRIME(N)} désigne le premier nombre pseudo-premier trouvé après 
{\tt N}.\\
On tape :
$${\tt NEXTPRIME(75)}$$
On obtient :
$${\tt 79}$$
%Nouveau
\subsection{R\'esolution enti\`ere de $a^2+b^2=p$ : {\tt PA2B2}}\index{PA2B2}
{\tt PA2B2} décompose un entier $p$ premier et congru à 1 modulo 4, en la
somme de deux carr\'es : $p= a^2+b^2$. \\
La calculatrice donne le résultat sous la forme $a+b \cdot i$\\
On tape :
$${\tt PA2B2(17)}$$
On obtient :
$${\tt 4+i }$$
en effet $17=4^2+1^2$\\
On tape :
$${\tt PA2B2(29)}$$
On obtient :
$${\tt 5+2 \cdot i }$$
en effet $29=5^2+2^2$

\subsection{Nombre pseudo-premier avant {\tt N} : {\tt PREVPRIME}}\index{PREVPRIME}
{\tt PREVPRIME(N)} désigne le premier nombre pseudo-premier trouvé avant 
{\tt N}.\\
On tape :
$${\tt  PREVPRIME(75)}$$
On obtient :
$${\tt 73}$$

\section{Le calcul modulaire }
Toutes les fonctions de ce paragraphe se trouve dans le menu {\tt Modular} de 
la touche {\tt MATH}, \`a l'exception de {\tt DIV2MOD}, qui se 
trouve dans le menu de la touche {\tt  SHIFT MATH (CMDS)}.\\
On peut faire des calculs modulo {\tt p} c'est à dire dans ${\tt Z/pZ}$ ou 
dans  ${\tt Z/pZ[X]}$.\\
{\sc Attention},\\
pour certaines commandes il faut choisir un nombre {\tt p} 
premier.\\
{\sc Dans la suite, les exemples seront tra\^ités avec {\tt p=13}}.\\
On suppose donc que l'on a tapé : 
$${\tt MODSTO(13)}$$ 
ou que l'on a  changé {\tt MODULO} dans la fen\^etre ouverte avec les touches 
{\tt SHIFT SYMB (SETUP)}.\\
La représentation choisie est la représentation symétrique (-5 au lieu de 8 
modulo 13).
\subsection{Addition dans Z/pZ ou dans  Z/pZ[x] : {\tt ADDTMOD}}\index{ADDTMOD}
{\tt ADDTMOD} réalise une addition  dans  $Z/pZ$.\\
On tape :
$${\tt ADDTMOD(2,18)}$$
On obtient :
$${\tt -6}$$

{\tt ADDTMOD} réalise une addition  dans  $Z/pZ[X]$.\\
On tape :
$${\tt ADDTMOD(11X+5,8X+6)}$$
On obtient :
$${\tt 6X-2}$$
%Nouveau
\subsection{Quotiient et reste dans Z/pZ[X] : {\tt DIV2MOD}}\index{DIV2MOD}
Les arguments de {\tt DIV2MOD} sont deux polyn\^omes {\tt A[X]} et {\tt B[X]}.\\
Le résultat est le quotient et le reste  de la division euclidienne de 
{\tt A[X]} par {\tt B[X]} dans  $Z/pZ[X]$.\\
On tape :
$${\tt DI2VMOD(X^3+X^2+1,2\cdot X^2+4)}$$
On obtient dans $Z/13Z$ :
$${\tt -(6X+6)\ AND\  -(2X+1)}$$
puisque $X^3+X^2+1=(2\cdot X^2+4) \cdot \frac{X+1}{2}+\frac{5\cdot X-4}{4}$\\
$2*(-6)=1 \bmod 13$ et \\
$4*(-3)=1 \bmod 13$


\subsection{Division dans Z/pZ ou dans Z/pZ[x] : {\tt DIVMOD}}\index{DIVMOD}
Les arguments sont deux entiers $A$ et $B$. Lorsque $B$ est inversible dans 
$Z/pZ$, le résultat est $\frac{A}{B}$ simplifié dans $Z/pZ$, et sinon cela 
renvoie une erreur.\\
On tape :
$${\tt DIVMOD(5,3)}$$
On obtient :
$${\tt 6}$$

Les arguments sont deux polyn\^omes $A[X]$ et $B[X]$. Le résultat est la 
fraction rationnelle $\frac{A[X]}{B[X]}$ simplifiée dans $Z/pZ[X]$.\\
On tape :
$${\tt DIVMOD(2X^2+5,5X^2+2X-3)}$$
On obtient :
$${\tt -\frac{4X+5}{3X+3}} $$

\subsection{D\'evelopper et r\'eduire dans Z/pZ ou dans  Z/pZ[x] : {\tt EXPANDMOD}}\index{EXPANDMOD}
{\tt EXPANDMOD} a comme argument une expression enti\`ere.\\
{\tt EXPANDMOD} développe cette expression dans $Z/pZ$.\\
On tape :
$${\tt EXPANDMOD(2*3+5*4)}$$
On obtient :
$${\tt 0}$$

{\tt EXPANDMOD} a comme argument une expression polynomiale.\\
{\tt EXPANDMOD} développe cette expression dans $Z/pZ[X]$.\\
On tape :
$${\tt EXPANDMOD(( 2X^2+12).( 5X-4))}$$
On obtient :
$${\tt -(3X^3-5X^2+5X-4)}$$
\subsection{Factorisation dans Z/pZ[x] : {\tt FACTORMOD}}\index{FACTORMOD}
{\tt FACTORMOD} a comme argument un  polyn\^ome.\\
{\tt FACTORMOD} factorise ce  polyn\^ome dans  $ Z/pZ[X]$ à condition que 
l'on ait ${\tt p \leq 97}$ et $p$ premier.\\
On tape :
$${\tt FACTORMOD(-(3X^3-5X^2+5X-4))}$$
On obtient :
$${\tt -((3X-5)(X^2+6))}$$
\subsection{PGCD dans Z/pZ[x] : {\tt GCDMOD}}\index{GCDMOD}
{\tt GCDMOD} a deux polyn\^omes comme arguments.\\
{\tt GCDMOD} calcule le PGCD des deux  polyn\^omes dans $Z/pZ[X]$.\\
On tape :
$${\tt GCDMOD(2X^2+5,5X^2+2X-3)}$$
On obtient :
$${\tt -(6X-1)}$$
\subsection{Inverse dans Z/pZ : {\tt INVMOD}}\index{INVMOD}
{\tt INVMOD} a comme argument un  entier.\\
{\tt INVMOD} calcule l'inverse de cet entier dans $Z/pZ$.\\
On tape :
$${\tt INVMOD(5)}$$
On obtient (car $5\times-5=-25=1\ (\bmod\ 13)$) :
$${\tt -5}$$
\subsection{Mettre une valeur dans la variable {\tt MODULO} : {\tt MODSTO}}\index{MODSTO}
On met dans la variable {\tt MODULO},
  la valeur de {\tt p} de $Z/pZ$ ou de $Z/pZ[X]$ gr\^ace à la commande 
{\tt MODSTO}.\\
{\sc Ici, les exemples sont tra\^ités avec {\tt p=13}} qui est la valeur
par défaut, sinon on suppose  que l'on a tapé :
$${\tt MODSTO(13)}$$ 
\subsection{Multiplication dans Z/pZ ou dans Z/pZ[x] : {\tt MULTMOD}}\index{MULTMOD}
{\tt MULTMOD} réalise une multiplication  dans $Z/pZ$.\\
On tape :
$${\tt MULTMOD(11,8)}$$
On obtient :
$${\tt -3}$$

{\tt MULTMOD} réalise une multiplication dans $Z/pZ[X]$.\\
On tape :
$${\tt MULTMOD(11X+5,8X+6)}$$
On obtient :
$${\tt -(3X^2-2X-4)}$$
\subsection{Puissance dans Z/pZ et dans Z/pZ[x] : {\tt POWMOD}}\index{POWMOD}
{\tt POWMOD(A,N)} calcule {\tt A} \`a la puissance {\tt N} dans $Z/pZ$, et 
{\tt POWMOD(A(X),N)} calcule {\tt A(X)} \`a la puissance {\tt N} dans 
$Z/pZ[X]$.\\
 Le contenu ${\tt p}$ de {\tt MODULO} doit \^etre un nombre premier inf\'erieur \`a 100.\\
On tape :
$${\tt POWMOD(11,195)}$$
On obtient si ${\tt p=13}$ :
$${\tt 5}$$
En effet : $11^{12}=1 \ \bmod \ 13$ donc $11^{195}=11^3=5 \ \bmod \ 13$\\
On tape :
$${\tt POWMOD(2X+1,5)}$$
On obtient :
$${\tt 6 \cdot X^5+2 \cdot X^4+2 \cdot X^3+X^2-3 \cdot X+1}$$
car :\\
 $10=-3 \ (\bmod\ 13) \ \  40=1\ (\bmod\ 13)\ \   80=2 \ (\bmod\ 13)$\\
$ 32=6\ (\bmod\ 13)$. 
\subsection{Soustraction dans Z/pZ ou dans Z/pZ[x] : {\tt SUBTMOD}}\index{SUBTMOD}
{\tt SUBTMOD} réalise une soustraction dans $Z/pZ$.\\
On tape :
$${\tt SUBTMOD(29,8)}$$
On obtient :
$${\tt -5}$$

{\tt SUBTMOD} réalise une soustraction dans $Z/pZ[X]$.\\
On tape :
$${\tt SUBTMOD(11X+5,8X+6)}$$
On obtient :
$${\tt 3X-1}$$
\section{Les rationnels}
Essayez :
$$\frac{123}{12}+\frac{57}{21}$$
 Vous sélectionnez puis {\tt ENTER} la r\'eponse est :
$$\frac{363}{28}$$
Si on applique la fonction {\tt XNUM}\index{XNUM} du menu {\tt REWRITE}, ou si 
on appuie sur la touche {\tt NUM}, la r\'eponse est :
$$12.9642857143$$
Si on m\'elange les deux repr\'esentations, par exemple :
$$\frac{1}{2}+0\ .\ 5$$
la caculatrice demande \`a passer en mode {\tt approx} pour faire le calcul ; 
il faut alors r\'epondre {\tt yes} pour obtenir :
$$1.$$ 
Revenez ensuite en mode exact ({\tt CFG}  etc... ou en appuyant sur 
{\tt SHIFT NUM}).
\subsection{Le $n$-i\`eme nombre de Bernoulli : {\tt IBERNOULLI}}\index{IBERNOULLI}
{\tt IBERNOULLI} a comme argument un entier $n$.\\
{\tt IBERNOULLI} renvoie le $n^{ième}$ nombre de Bernoulli $B(n)$.\\
On a :
$$\frac{t}{e^t-1}=\sum_{n=0}^{+\infty} \frac{B(n)}{n!}t^n$$
On rappelle que les polyn\^omes de Bernoulli $B_k$ sont définis par :
$$B_0=1$$
$$B_k{'}(x)=kB_{k-1}(x)$$
$$\int_0^1B_k(x)dx=0$$
On a alors :\\
$B(n)=B_n(0)$\\
On tape :
$${\tt IBERNOULLI(6)}$$
On obtient :
$${\tt \frac{1}{42}}$$
\subsection{Partie enti\`ere et fractionnaire : {\tt PROPFRAC}}\index{PROPFRAC}
{\tt PROPFRAC} se trouve dans le menu {\tt Polynom.} de la touche {\tt MATH}.\\
${\tt PROPFRAC(\frac{A}{ B})}$ écrit la fraction $\frac{A}{B}$ sous la 
forme :
$$Q+\frac{R}{B}\ \ avec \ \ 0\leq R<B$$
On tape :
$${\tt  PROPFRAC(\frac{43}{ 12})}$$
On obtient :
$${\tt 3+\frac{7}{12}}$$
\subsection{Somme discr\'ete : ${\tt \sum}$}\index{$\sum$}
Pour calculer symboliquement les sommes de 
fractions rationnelles et les s\'eries hypergéométriques qui admettent une 
primitive discrète, on utilise le symbole $\sum$ que l'on obtient en tapant
{\tt  SHIFT +} (voir aussi \ref{sec:sum}).\\
Exemple :\\
On tape :
$${\tt \sum_{K=1}^\infty \frac{1}{K \cdot (K+1)}}$$
On sélectionne le tout, {\tt ENTER} et on obtient :
$${\tt 1}$$
On tape :
$${\tt \sum_{K=1}^5 \frac{1}{K \cdot (K+1)}}$$
On sélectionne le tout, {\tt ENTER} et on obtient :
$${\tt \frac{5}{6}}$$
\section{Les r\'eels}
Essayez :
$${\tt EXP(\pi \times \sqrt{20})}$$
Vous sélectionnez,  puis {\tt ENTER} la r\'eponse est :
$${\tt EXP(2 \times \sqrt5 \times \pi)}$$
Si on applique la fonction {\tt XNUM}\index{XNUM} du menu {\tt REWRITE} la 
r\'eponse est :
$$1263794.7537$$
Vous trouverez dans le menu {\tt Real} de la touche {\tt MATH}, la 
fonction {\tt FLOOR} et dans le menu {\tt Integer} de la touche {\tt MATH}, la 
fonction {\tt MOD}. 
\subsection{La partie enti\`ere : {\tt FLOOR}}\index{FLOOR}
{\tt FLOOR} a comme argument un nombre réel, et renvoie sa partie entière.\\
On tape :
$${\tt  FLOOR(3.53)}$$
On obtient :
$${\tt 3}$$
\subsection{La fonction $\Gamma$ : {\tt GAMMA}}\index{GAMMA}
{\tt GAMMA} calcule les valeurs de la fonction $\Gamma$ en un point.\\
On a par définition :\\
$$\Gamma(x)=\int_0^{+\infty}e^{-t}t^{x-1}dt$$
On a : $$\Gamma(1)=1$$
$$ \Gamma(x+1)=x \cdot \Gamma(x)$$
On tape :
$${\tt GAMMA(5)}$$
On obtient :
$${\tt 24}$$
On tape :
$${\tt GAMMA(\frac{1}{2})}$$
On obtient :
$${\tt \sqrt\pi}$$

\subsection{Le reste de la division euclidienne : {\tt MOD}}\index{MOD}\label{sec:mod}
{\tt MOD} est une fonction infixée ayant comme arguments deux nombres entiers 
ou r\'eels $a$ et $b$.\\
{\tt MOD} renvoie le reste de la division euclidienne des arguments $a$ et $b$
ou le r\'eel $r$ v\'erifiant $a=b*q+r$ avec $q$ entier et 
$0\leq r<b$ ou $b<r\geq 0$.\\ 
On tape :
$${\tt 3\ MOD\ 2}$$
On obtient :
$${\tt 1}$$
On tape :
$${\tt 3.2\ MOD\ 2.1}$$
On obtient :
$${\tt 1.1}$$
car on a $3.2=2.1+1.1$ et $0\leq 1.1<2.1$\\
On tape :
$${\tt 3.2\ MOD\ -2.1}$$
On obtient :
$${\tt -1.}$$
car on a $3.2=(-2.1)*(-2)-1$ et $-2.1<-1.\leq 0$\\
On tape :
$${\tt 7.5\ MOD\ 2.15}$$
On obtient :
$${\tt 1.05}$$
car on a $7.5=2.13*3+1.05$ et $0\leq 1.05<2.15$

\subsection{Les dérivées de la fonction Digamma :{\tt PSI}}\index{PSI}
{\tt PSI} a comme arguments un nombre $a$ et un entier $n$.\\ 
{\tt PSI} est la valeur de la $n$-ième  dérivée de la fonction Digamma
au point $a$. La fonction Digamma est la dérivée de $\ln(\Gamma(x))$.\\
On tape :
$${\tt PSI(3,1)}$$
On obtient :
$${\tt -\frac{5}{4}+\frac{1}{6} \cdot \pi^2}$$
\subsection{La fonction Digamma : {\tt Psi}}\index{Psi}
{\tt Psi} a comme paramètre un nombre $a$.\\
{\tt Psi} renvoie la valeur de la fonction Digamma au point $a$.\\ 
La fonction Digamma est la dérivée de $\ln(\Gamma(x))$, on a donc 
{\tt PSI(a,0)=Psi(a)}.\\
On tape :
$${\tt Psi(3)}$$
On obtient en appuyant sur {\tt NUM} :
$${\tt .922784335098}$$

\section{Les complexes}
{\sc Notation} : les complexes de la forme $a+b \cdot i$, avec $a$ et $b$ réels, peuvent \^etre notés $(a,b)$ ou $a+b \cdot i$.\\
Les opérations {\tt +,-,*,/,\circonflexe} sont aussi valables pour des nombres 
complexes.\\
On tape :
$${\tt (1+2 \cdot i)^2}$$
Vous sélectionnez, puis {\tt ENTER}.\\
Si on n'est pas en mode {\tt complex}, la caculatrice demande \`a changer de 
mode, il faut alors r\'epondre {\tt YES} pour obtenir la r\'eponse :
$${\tt -(3-4 \cdot i)}$$
Il faut noter que cette expression ne sera pas simplifi\'ee davatange (les
 r\'esultats mettront toujours en évidence un nombre complexe de partie
 r\'eelle positive en mode exact).\\
Vous trouverez dans le menu {\tt Complex} de la touche {\tt MATH}, les 
fonctions  suivantes ayant comme paramètre une expression à valeur complexe :\\
{\tt ABS}\index{ABS} pour déterminer le module du paramètre,\\
{\tt ARG}\index{ARG} pour déterminer l'argument du paramètre,\\
{\tt CONJ}\index{CONJ} pour déterminer le conjugué du paramètre,\\
{\tt DROITE}\index{DROITE} a comme paramètre deux nombres complexes 
$z_1,\ z_2$, et renvoie l'équation de la droite passant par les deux points
d'affixe $z_1,\ z_2$.\\
{\tt IM}\index{IM} pour déterminer la partie imaginaire du paramètre,\\
{\tt -}\index{-} pour déterminer l'opposé du paramètre,\\
{\tt RE}\index{RE} pour déterminer la partie réelle du paramètre,\\
{\tt SIGN}\index{SIGN} pour déterminer le quotient du paramètre par son module.
\subsection{L'argument d'un nombre complexe : {\tt ARG}}\index{ARG}
On tape :
$${\tt ARG(3+4 \cdot i)}$$
On obtient (car dans le {\tt CAS}, on est en {\tt Radians}):
$${\tt ATAN(\frac{4}{3})}$$
{\sc Remarque} :\\
Vous pouvez faire le m\^eme calcul dans {\tt HOME} mais vous obtenez un
 résultat numérique ({\tt 0.64250...},si vous \^etes en {\tt Radians}).\\
Dans {\tt HOME} il faut taper :
$${\tt ARG(XQ(3+4 \cdot i))}$$
pour obtenir :
$${\tt ATAN(\frac{4}{3})}$$
\subsection{Le conjugu\'e d'un nombre complexe : {\tt CONJ}}\index{CONJ}
On tape :
$${\tt CONJ(1+2 \cdot i)}$$
On obtient :
$${\tt 1-2 \cdot i}$$
{\sc Attention} si vous  choisissez {\tt Real vars} dans le menu de 
configuration {\tt CFG} vous aurez {\tt CONJ(Z)=Z}, et  si vous choisissez 
{\tt Cmplx vars}, {\tt CONJ(Z)} sera  différent de {\tt Z} à condition que 
{\tt Z} ne figure pas dans la liste que contient la variable 
{\tt REALASSUME}\index{REALASSUME}.
Il est souvent préférable d'écrire l'expression quotée :\\
{\tt QUOTE(expression)}\index{QUOTE}, pour éviter 
une réécriture de cette expression, par exemple, si on a séléctionné 
{\tt Real vars} et si on tape :\\
$${\tt SUBST(QUOTE(CONJ(Z)),Z=1+i)}$$
On obtient :
$${\tt CONJ(1+i)}$$
alors que :
$${\tt SUBST(CONJ(Z),Z=1+i)}$$
donne :
$${\tt 1+i}$$
Bien s\^ur,  si on a séléctionné {\tt Cmplx vars} et que {\tt Z} ne figure pas 
dans la liste que contient la variable {\tt REALASSUME} :
$${\tt SUBST(CONJ(Z),Z=1+i)}$$
donne :
$${\tt CONJ(1+i)}$$
\subsection{L'\'equation d'une droite : {\tt DROITE}}\index{DROITE}
{\tt DROITE} a comme paramètre deux nombres complexes $z_1,\ z_2$.\\
{\tt DROITE} renvoie l'équation de la droite passant par les deux points
d'affixe $z_1,\ z_2$.\\
On tape :
$${\tt DROITE((1,2),(0,1))}$$
Ou on tape :
$${\tt DROITE(1+2 \cdot i,i)}$$
On obtient :
$${\tt Y=X-1+2}$$
puis {\tt ENTER} donne :
$${\tt Y=X+1}$$
\section{Les expressions alg\'ebriques }
Toutes les fonctions de ce paragraphe se trouve dans le menu {\tt ALGB} du
bandeau.
\subsection{Factorisation sur les entiers : {\tt COLLECT}}\index{COLLECT}
{\tt COLLECT} a comme paramètre une expression.\\
{\tt COLLECT} factorise cette expression sur les entiers.\\
Exemples :\\
Factoriser sur les entiers : 
$$x^2-4$$
On tape :
$${\tt COLLECT(X^2-4)}$$
On trouve en mode réel :
$${\tt (X+2) \cdot (X-2)} $$
Factoriser sur les entiers : 
$$x^2-2$$
On tape :
$${\tt COLLECT(X^2-2)}$$
On trouve :
$${\tt X^2-2} $$
\subsection{Distributivit\'e : {\tt EXPAND}}\index{EXPAND}
{\tt EXPAND} a comme paramètre une expression.\\
{\tt EXPAND} développe et simplifie  cette expression.\\ 
On tape :
 $${\tt EXPAND((X^2+\sqrt2 \cdot X+1) \cdot (X^2-\sqrt2 \cdot X+1))}$$ 
On obtient :
$${\tt X^4+1}$$ 

\subsection{Factorisation : {\tt FACTOR}}\index{FACTOR}
{\tt FACTOR} a comme paramètre une expression.\\
{\tt FACTOR}  factorise cette expression.\\
Exemple :\\
Factoriser 
$$x^4+1$$
On tape :
$${\tt FACTOR(X^4+1)}$$
On trouve {\tt FACTOR} dans le menu de {\tt ALGB}.\\ 
On trouve en mode réel :
$${\tt (X^2+\sqrt2 \cdot X+1) \cdot (X^2-\sqrt2 \cdot X+1)} $$
On trouve en mode complexe (pour cela  utiliser {\tt CFG}) : 
$${\tt \frac{(2 \cdot X+(1+i) \cdot \sqrt 2) \cdot (2 \cdot X-(1+i) \cdot \sqrt 2) \cdot (2 \cdot X+(1-i) \cdot \sqrt 2) \cdot (2 \cdot X-(1-i) \cdot \sqrt 2)}{16}}$$
\subsection{Changer l'ordre des variables : {\tt REORDER}}\index{REORDER}
{\tt REORDER}  a deux paramètres : une expression et les noms des variables
s\'epar\'es par des {\tt AND}.\\
{\tt REORDER} développe l'expression selon l'ordre des variables donné dans
le second paramètre.\\
On tape :
$${\tt REORDER(X^2+2 \cdot X \cdot A+A^2+Z^2-X \cdot Z,A \ AND \ X \ AND \ Z)}$$
On obtient :
$${\tt A^2+2 \cdot X \cdot A+X^2-Z \cdot X+Z^2}$$

%Nouveau
\subsection{Simplifications partielles : {\tt SEVAL}}\index{SEVAL}
{\tt SEVAL} a comme paramètre une expression.\\
{\tt SEVAL} effectue les simplifications sauf celles situées au niveau le plus
élevé.\\
On tape :
$${\tt SEVAL(SIN(3 \cdot X-X)+SIN(X+X))}$$
On obtient :
$${\tt SIN(2 \cdot X)+SIN(2 \cdot X)}$$

\subsection{Remplacer une variable par une valeur : {\tt |}}\index{$\mid$}
{\tt |} est un opérateur infixé  utile pour remplacer une variable dans une 
expression (un peu comme la fonction {\tt SUBST}).\\
{\tt |} a deux paramètres : une expression dépendant d'un paramètre et
une égalité (paramètre=valeur de substitution).\\
{\tt |} effectue la substitution demandée dans l'expression.\\
On tape :
$${\tt  X^2-1\ |_{\displaystyle X=2}}$$
On obtient :
$${\tt 2^2-1}$$
\subsection{Substituer une valeur \`a une variable : {\tt SUBST}}\index{SUBST}
{\tt SUBST} a deux paramètres : une expression dépendant d'un paramètre et
une égalité (paramètre=valeur de substitution).\\
{\tt SUBST} effectue la substitution demandée dans l'expression.\\
On tape :
$${\tt SUBST(A^2+1,A=2)}$$ 
On obtient :
$${\tt 2^2+1}$$ 

\section{Les polyn\^omes}
Toutes les fonctions de ce paragraphe se trouve dans le menu {\tt Polynom.}
 de la touche {\tt MATH}.
\subsection{R\'esolution de {\tt A[X]U[X]+B[X]V[X]=C[X]} : {\tt ABCUV}}\index{ABCUV}
Il s'agit encore de l'identit\'e de B\'ezout. Les paramètres sont trois 
polyn\^omes,
{\tt A, B, C} ({\tt C} doit \^etre un multiple de {\tt GCD(A,B)}): \\
{\tt ABCUV(A[X],B[X],C[X])} renvoie  {\tt U[X] AND  V[X]} avec 
{\tt U,V} v\'erifiant :
$${\tt {C[X]=U[X]*A[X]+V[X]*B[X]}}$$  
On tape :
$${\tt ABCUV(X^2+2 \cdot X+1 ,X^2-1,X+1 )}$$
On obtient :
$${\tt \frac{1}{2}\ AND\ \frac{-1}{2}}$$
On tape :
$${\tt ABCUV(X^2+2 \cdot X+1 ,X^2-1,X^3+1 )}$$
On obtient :
$${\tt \frac{X^2-X+1}{2}\ AND\ -\frac{X^2-X+1}{2}\}}$$
\subsection{Restes chinois : {\tt CHINREM}}\index{CHINREM}
{\tt CHINREM} a comme argument deux {\tt AND} ayant chacun comme composantes
 deux  polyn\^omes.\\
{\tt CHINREM(A[X] AND R[X],B[X] AND Q[X])} renvoie un {\tt AND} de composantes
 deux polyn\^omes {\tt P[X]} et {\tt S[X]}. Ces  polyn\^omes  
{\tt P[X]} et {\tt S[X]} vérifient lorsque {\tt GCD(R[X],Q[X])=1} :\\
 ${\tt S[X]=R[X] \cdot Q[X]}$,\\  
 ${\tt P[X]=A[X] \bmod R[X]}$ et ${\tt P[X]=B[X] \bmod Q[X]}$. \\
Il existe toujours une solution 
{\tt P[X]}, si {\tt R[X]} et {\tt Q[X]} sont premiers entre eux, et toutes les 
solutions sont congrues modulo ${\tt S[X]=R[X] \cdot Q[X]}$.\\
Trouver les solutions $P[X]$ de :
$${\tt \left \{ \begin{array}{rl} P[X]=&X\ (\bmod\ X^2+1)\\ P[X]=&X-1\ (\bmod\ X^2-1) \end{array}\right.}$$
On tape :
$${\tt CHINREM(X \ AND\ X^2+1,X-1\ AND\ X^2-1)}$$
On obtient :
$${\tt -\frac{X^2-2 \cdot X+1}{2}\ AND\ -\frac{X^4-1}{2}}$$
donc $P[X]=-\frac{X^2-2 \cdot X+1}{2} \ \bmod-\frac{X^4-1}{2}$

\subsection{Polyn\^ome cyclotomique : {\tt CYCLOTOMIC}}\index{CYCLOTOMIC}
{\tt CYCLOTOMIC} a comme paramètre un entier $n$.\\
{\tt CYCLOTOMIC} renvoie le polyn\^ome cyclotomique d'ordre $n$.
C'est le polyn\^ome dont les  zéros sont toutes les racines $n$-{i\`eme} primitives de l'unité.\\
Par exemple pour $n=4$, les racines quatrième de l'unité sont :
$\{ 1,i,-1,-i\}$,\\ 
et les racines primitives sont : $\{i,-i\}$.\\
Donc le polyn\^ome cyclotomique d'ordre $4$ est $(X-i) \cdot (X+i)=X^2+1$.\\
On tape :
$${\tt CYCLOTOMIC(20)}$$
On obtient :
$${\tt X^8-X^6+X^4-X^2+1}$$

\subsection{Degr\'e d'un polyn\^ome : {\tt DEGREE}}\index{DEGREE}
{\tt DEGREE} a comme argument un polyn\^ome de la variable courante.\\
{\tt DEGREE} renvoie le degré de ce polyn\^ome.\\
{\sc Attention} : le degré d'un polyn\^ome nul est égal à {\tt -1}.\\
 On tape :
$${\tt DEGREE(X^2+X+1)}$$
On obtient :\\
$${\tt 2}$$ 

\subsection{Quotiient et reste : {\tt DIV2}}\index{DIV2}
Les arguments de {\tt DIV2} sont deux polyn\^omes $ A[X]$ et $ B[X]$.\\
{\tt DIV2} donne le quotient et du reste de la division selon les puissances 
d\'ecroissantes  des deux polyn\^omes $ A[X]$ et $ B[X]$.\\
 On tape :
$${\tt DIV2(X^2+2\cdot X+1 ,X )}$$
On obtient :
$${\tt X+2 \ AND \ 1}$$
Le mode pas \`a pas est ici int\'eressant car il donne les restes successifs...


%Nouveau

\subsection{Idendit\'e de B\'ezout : {\tt EGCD}}\index{EGCD}
Il s'agit de l'identit\'e de B\'ezout (Extended Greatest Common Divisor).
{\tt EGCD(A(X),B(X))} renvoie  {\tt U(X)  AND  V(X)= D(X)} avec {\tt D,U,V}
 v\'erifiant :
$${\tt {D(X)=U(X)\cdot A(X)+V(X)\cdot B(X)}}$$ 
 On tape :
$${\tt EGCD(X^2+2 \cdot X+1 ,X^2-1 )}$$
On obtient :
$${\tt 1 \ AND \ -1\ =\ 2 \cdot X+2}$$
On tape :
$${\tt EGCD(X^2+ 2 \cdot X+1 ,X^3+1)}$$
On obtient :
$${\tt -(X-2) \ AND \ 1\ =\ 3 \cdot X+3}$$

\subsection{Factorisation d'un polyn\^ome : {\tt FACTOR}}\index{FACTOR}
 {\tt FACTOR} a pour argument un polyn\^ome.\\
{\tt FACTOR} factorise ce polyn\^ome.\\
On tape :
 $${\tt FACTOR(X^2-2)}$$
On obtient :
$${\tt (X+ \sqrt2) \cdot (X- \sqrt2)}$$
On tape :
 $${\tt FACTOR(X^2+2\cdot X+1)}$$
On obtient :
$${\tt (X+1)^2}$$
On tape :
 $${\tt FACTOR(X^4-2 \cdot X^2+1)}$$
On obtient :
$${\tt (X-1)^2 \cdot (X+1) ^2}$$
On tape :
 $${\tt FACTOR(X^3-2 \cdot X^2+1)}$$
On obtient :
$${\tt \frac{(X-1) \cdot (2 \cdot X-1+\sqrt5) \cdot (2 \cdot X-(1+\sqrt5))}{4}}$$
\subsection{Le PGCD de deux polyn\^omes : {\tt GCD}}\index{GCD}
{\tt GCD} désigne le PGCD (plus grand commun diviseur) de deux polyn\^omes.\\
 On tape :
$${\tt GCD(X^2+2 \cdot X+1 ,X^2-1 )}$$
On obtient :
$${\tt X+1 }$$
\subsection{Polyn\^ome de Hermite : {\tt HERMITE}}\index{HERMITE}
{\tt HERMITE} a comme argument un entier $n$.\\
{\tt HERMITE} renvoie le polyn\^ome de Hermite de degré $n$.\\
Il s'agit du polyn\^ome :
$$H_n(x)=(-1)^n \cdot e^{\frac{x^2}{2}}\frac{d^n}{dx^n}e^{\frac{-x^2}{2}}$$
On a :\\
pour $n \geq 0$
$$H_n^{''}(x)-xH_n^{'}(x)+nH_n(x)=0$$
et pour $n \geq 1$
$$H_{n+1}(x)-xH_n(x)+nH_{n-1}(x)=0$$
$$H_n^{'}(x)=nH_{n-1}(x)$$
On tape :
$${\tt HERMITE(6)}$$
On obtient :
$${\tt 64 \cdot X^6-480 \cdot X^4+720 \cdot X^2-120}$$
 %Nouveau
\subsection{\'Evaluer un polyn\^ome : {\tt HORNER}}\index{HORNER}
{\tt HORNER}  a deux param\`etres : un  polyn\^ome {\tt P[X]} et un nombre 
{\tt a}.\\
{\tt HORNER(P[X],a)} renvoie un {\tt AND} d'arguments le polyn\^ome 
{\tt Q[X]} (quotient de {\tt P[X]} par {\tt X-a}) et la valeur de {\tt P[a]}.\\
On tape :
$${\tt HORNER(X^3+1,2)}$$
On obtient :
$${\tt X^2+2 \cdot X+4 \ AND\  9}$$
On tape :
$${\tt HORNER(X^4+2 \cdot X^3-3 \cdot X^2+X-2,1)}$$
On obtient :
$${\tt X^3+3 \cdot X^2+1 \ AND\  -1}$$
\subsection{Le PPCM de deux polyn\^omes : {\tt LCM}}\index{LCM}
{\tt LCM} désigne le PPCM (plus petit commun multiple) de deux polyn\^omes.\\
On tape :
$${\tt LCM(X^2+2 \cdot X+1 ,X^2-1 )}$$
On obtient :
$${\tt (X^2+2 \cdot X+1) \cdot (X-1)}$$
\subsection{Polyn\^ome de Legendre : {\tt LEGENDRE}}\index{LEGENDRE}
{\tt LEGENDRE} a comme argument un entier $n$.\\
{\tt LEGENDRE} renvoie le polyn\^ome $L_n$ non nul solution de l'équation
 différentielle :
$$(x^2-1) \cdot y''-2 \cdot x \cdot y'-n(n+1) \cdot y=0$$ 

Pour $n \geq 0$, on a  la formule de Rodriguès :
$$L_n(x)=\frac{1}{n!2^n}\frac{d^n}{dx^n}(x^2-1)^n $$
 et  pour $n \geq 1$, on a :
$$(n+1)L_{n+1}(x)=(2n+1)xL_n(x)-nL_{n-1}(x)$$
On tape :
$${\tt LEGENDRE(4)}$$
On obtient :
$${\tt \frac{35 \cdot X^4-30 \cdot X^2+3}{8}}$$

\subsection{D\'ecomposition en \'el\'ements simples : {\tt PARTFRAC}}\index{PARTFRAC}
{\tt PARTFRAC} a comme argument une fraction rationnelle.\\
{\tt PARTFRAC} renvoie la d\'ecomposition en \'eléments simples de cette 
fraction rationnelle.\\ 
Exemple :\\
D\'ecomposer en \'eléments simples la fraction rationnelle :
$$\frac{x^5-2 \times x^3+1}{x^4-2\times x^3+2\times x^2-2\times x+1}$$
On utilise la commande {\tt PARTFRAC}.\\
On tape :
$${\tt PARTFRAC(\frac{X^5-2*X^3+1}{X^4-2*X^3+2*X^2-2*X+1})}$$
On obtient en mode réel sans \^etre en pas \`a pas :
$${\tt X+2+\frac{X-3}{2 \cdot X^2+2}+\frac{-1}{2 \cdot X-2}}$$
On obtient en mode complexe :
$${\tt X+2+\frac{\frac{1-3 \cdot i}{4}}{X+i}+\frac{\frac{-1}{2}}{X-1}+\frac{\frac{1+3 \cdot i}{4}}{X-i} }$$
\subsection{Partie enti\`ere et fractionnaire : {\tt PROPFRAC}}\index{PROPFRAC}
{\tt PROPFRAC} a comme argument une fraction  rationnelle.\\
{\tt PROPFRAC} renvoie cette fraction rationnelle \'ecrite de mani\`ere \`a mettre en \'evidence sa partie enti\`ere.\\
{\tt PROPFRAC(A(X)/ B(X))} écrit la fraction rationnelle $\frac{A[X]}{B[X]}$ 
sous la forme :
$$Q[X]+\frac{R[X]}{B[X]}$$
 avec  $R[X]=0$ ou  $0\leq deg(R[X])< deg(B[X])$.\\
On tape :
$${\tt  PROPFRAC(\frac{(5 \cdot X+3) \cdot (X-1)}{X+2})}$$
On obtient :
$${\tt 5 \cdot X-12+\frac{21}{X+2}}$$
\subsection{\'Ecriture selon les puissances de ($X-a$) : {\tt PTAYL}}\index{PTAYL}
{\tt PTAYL} a deux param\`etres : un  polyn\^ome $P[X]$ et un nombre $a$.\\
{\tt PTAYL} r\'e\'ecrit le polyn\^ome $P[X]$ selon les puissances de $X-a$.\\
On tape :
$${\tt PTAYL(X^2+2\cdot X +1 , 2)}$$
On obtient le polyn\^ome Q[X]:
$${\tt X^2+6\cdot X +9 }$$
{\sc Attention}, on a :
$${\tt P(X)=Q(X-2)}$$
\subsection{Quotient euclidien : {\tt QUOT}}\index{QUOT}
Les arguments de {\tt QUOT} sont deux polyn\^omes $ A[X]$ et $ B[X]$.\\
{\tt QUOT} donne le quotient des deux polyn\^omes $ A[X]$ et $ B[X]$
dans la division selon les puissances d\'ecroissantes.\\
 On tape :
$${\tt QUOT(X^2+2\cdot X +1 ,X )}$$
On obtient :
$${\tt X+2}$$
\subsection{Reste euclidien : {\tt REMAINDER}}\index{REMAINDER}
Les arguments de {\tt REMAINDER} sont deux polyn\^omes $ A[X]$ et $ B[X]$.\\
{\tt REMAINDER} donne le reste de la division des deux polyn\^omes $ A[X]$ et 
$B[X]$ selon les puissances d\'ecroissantes.\\
On tape :
$${\tt REMAINDER(X^3-1 ,X^2-1 )}$$
On obtient :
$${\tt X-1}$$

%Nouveau
\subsection{Nombre de z\'eros sur $[a;b[$ : {\tt STURMAB}}\index{STURMAB}
{\tt STURMAB} a trois paramètres : un polyn\^ome $P(X)$ et deux nombres $a$ et 
$b$\\
{\tt STURMAB} renvoie le nombre de z\'eros de 
 de $P$ sur $[a;b[$.\\
On tape :
$${\tt STURMAB(X^2 \cdot(X^3+2),-2,0)}$$
On obtient :
$${\tt 1}$$
On tape :
$${\tt STURMAB(X^2 \cdot(X^3+2),-2,1)}$$
On obtient :
$${\tt 3}$$

\subsection{Polyn\^omes de Tchebychev de 1-i\`ere et 2-nde esp\`ece : {\tt TCHEBYCHEFF}}\index{TCHEBYCHEFF}
{\tt TCHEBYCHEFF} a comme argument un entier $n$.\\
Si $n>0$, {\tt TCHEBYCHEFF} renvoie le polyn\^ome $T_n$ tel que :\\
$$T_n[x]= \cos(n \cdot \arccos(x))$$
Pour $n \geq 0$, on a  :
$$T_n(x)=\sum_{k=0}^{[n/2]}C_n^{2k}(x^2-1)^kx^{n-2k}$$
pour $n \geq 0$, on a aussi :
$$(1-x^2)T_n^{''}(x)-xT_n^{'}(x)+n^2T_n(x)=0$$
pour $n \geq 1$, on a  :
$$T_{n+1}(x)=2xT_n(x)-T_{n-1}(x)$$
Si $n<0$ {\tt TCHEBYCHEFF} renvoie le polyn\^ome de Tchebycheff de seconde 
espèce :
$$T_n[x]=\frac{\sin(n \cdot \arccos(x))}{\sin(\arccos(x))}$$
On tape :
$${\tt TCHEBYCHEFF(4)}$$
On obtient :
$${\tt 8 \cdot X^4-8 \cdot X^2+1}$$
en effet :\\
$\cos( 4 \cdot x)=Re((\cos(x)+i \cdot \sin(x))^4)$\\
$\cos( 4 \cdot x)=\cos(x)^4-6 \cdot \cos(x)^2 \cdot (1-\cos(x)^2)+((1-\cos(x)^2)^2$\\
$\cos(4 \cdot x)=T_4(\cos(x))$\\
On tape :
$${\tt TCHEBYCHEFF(-4)}$$
On obtient :
$${\tt 8 \cdot X^3-4 \cdot X}$$
en effet :\\
$\sin(4 \cdot x)=\sin(x) \cdot (8 \cdot \cos(x)^3-4 \cdot \cos(x))$.
\section{Les fonctions }
Toutes les fonctions de ce paragraphe se trouve dans le menu {\tt DIFF} du
bandeau, sauf {\tt DEF} qui se trouve dans le menu {\tt ALGB},
et {\tt IFTE} qui se trouve dans le menu {\tt Tests} de la touche {\tt MATH}.
\subsection{Pour d\'efinir une fonction : {\tt DEF}}\index{DEF}
{\tt  DEF} a comme argument une égalité entre, (1) le nom d'une fonction (avec 
entre parenthèses le nom de la  variable), et (2) une expression définissant la
fonction.\\
{\tt  DEF} définit cette fonction et renvoie l'égalité.\\
On tape :
$${\tt DEF(U(N)=2^N+1)}$$
On obtient :
$${\tt U(N)=2^N+1}$$
Puis on tape :
$${\tt U(3)}$$
On obtient :
$${\tt  9}$$

\subsubsection{Un autre  exemple avec {\tt DEF}}\index{DEF}
%\subsection{Pour d\'efinir une fonction : {\tt DEF}}\index{DEF}
Soit l'exercice suivant :\\
Calculer les six premiers nombres de Fermat $F_1..F_6$ et 
dire s'ils sont premiers.\\
On veut donc calculer  $F(k)=2^{2^k}+1$ pour $k=1..6$.\\
On tape l'expression :
$$2^{2^2}+1$$
On trouve 17, puis on lance la commande 
{\tt ISPRIME?()}\index{ISPRIME?}. 
Cette commande  se trouve 
dans le menu {\tt Integer} de la touche {\tt MATH}.\\
La r\'eponse est {\tt 1.}, ce qui veut dire {\tt vrai}.
Gr\^ace \`a l'historique (touche {\tt SYMB}) on recopie
l'expression $2^{2^2}+1$ dans l'éditeur d'\'equation avec {\tt ECHO},
et on la modifie en  $$2^{2^3}+1$$
Ou bien, et c'est la meilleure méthode, on définit la fonction {\tt F(K)} à 
l'aide de {\tt DEF}  du menu {\tt ALGB} du bandeau en tapant : 
$${\tt DEF(F(K)=2^{2^K}+1)}$$
La réponse est ${\tt 2^{2^K}+1}$ et {\tt F} s'inscrit parmi les variables 
(appuyer sur {\tt VARS} pour le vérifier).\\
Pour $K=5$ on tape :
$${\tt F(5)}$$
On obtient :
$${\tt 4294967297}$$
On peut factoriser $F(5) $ avec {\tt FACTOR} que l'on trouve dans le menu
{\tt ALGB} du bandeau.\\
On tape :
$${\tt FACTOR(F(5))}$$
On obtient :
$$641 \cdot 6700417$$
On tape :
$${\tt F(6)}$$
on trouve :
$$18446744073709551617$$
On  factorise avec {\tt FACTOR},  on trouve :
$$274177\cdot67280421310721$$
{\sc Attention} \`a la diff\'erence entre :
$$2\ .\ 5 \verb|la repr\'esentation num\'erique de| \frac{5}{2}$$
et $$2\cdot5=10$$

\subsubsection{Pour d\'efinir une fonction par morceaux : {\tt IFTE}}\index{IFTE}
{\tt IFTE} a trois arguments, un boolèen (attention au {\tt ==} pour le test !) et deux expressions $expr1,\ expr2$.\\
{\tt IFTE} évalue le test, renvoie $expr1$ si le test est vrai,
 et renvoie $expr2$ si le test est faux.\\
On tape :
$${\tt STORE(2,N)}$$
$${\tt  IFTE(N==0,1,\frac{N+1}{N})}$$
On obtient :
$$ {\tt \frac{3}{2}}$$
On peut, bien s\^ur, définir une fonction à l'aide de {\tt IFTE} par exemple :
$${\tt  DEF(F(X)=IFTE(X==0,1,\frac{SIN(X)}{X}))}$$
définit la fonction $f$ par :
$$f(x)=\left\{
\begin{array}{rl}
1 &\mbox{si } x=0\\
\displaystyle \frac{\sin(x)}{x}&\mbox{si } x \neq 0
\end{array}\right.$$

\subsection{Deriv\'ee et deriv\'ee partielle : {\tt DERIV}}\index{DERIV}
{\tt  DERIV} a deux arguments : une expression (ou une fonction) et 
une variable.\\
{\tt  DERIV} renvoie la dérivée de l' expression (ou de la fonction) par 
rapport à  la  variable donnée comme deuxième paramètre (utile pour calculer 
des dérivées partielles!).\\
Exemple : \\
Soit à calculer :
$$\frac {\partial (x \cdot y^2 \cdot z^3+x \cdot y)}{\partial z}$$
On tape :
$${\tt  DERIV(X \cdot Y^2 \cdot Z^3+X \cdot Y\ ,\ Z)}$$
On obtient :
$${\tt 3 \cdot X \cdot Y^2 \cdot Z^2}$$

\subsection{Deriv\'ee : {\tt DERVX}}\index{DERVX}
{\tt DERVX} a un argument une expression.\\
{\tt DERVX} calcule la d\'eriv\'ee de l'expression par rapport à la  variable 
contenue dans {\tt VX}.\\
Soit par exemple :
$$f(x)=\frac {x}{x^2-1}+\ln(\frac {x+1}{x-1})$$
Calculer la d\'eriv\'ee de $f$.\\
On tape :
$${\tt DERVX(\frac {X}{X^2-1}+LN(\frac {X+1}{X-1}))} $$
ou si on a stock\'e l'expression de $ f(x)$ dans {\tt F} c'est à dire si on a 
tapé :
$${\tt STORE(\frac {X}{X^2-1}+LN(\frac {X+1}{X-1}),F)}$$
puis on tape :
$${\tt DERVX(F) }$$ 
ou si on a défini  $ F(X)$ à l'aide de {\tt DEF} c'est à dire si on a 
tapé :
 $${\tt DEF(F(X)=\frac {X}{X^2-1}+LN(\frac {X+1}{X-1}))}$$
puis on tape :
$${\tt DERVX(F(X)) }$$ 
On trouve une expression compliquée que l'on simplifie avec {\tt ENTER}.\\
On obtient :
$${\tt -\frac {3 \cdot X^2-1}{X^4-2 \cdot X^2+1}} $$ 
\subsection{Les coefficients de Fourier : {\tt FOURIER}}\index{FOURIER}\label{sec:fourier}
{\tt FOURIER} a deux paramètres : une expression $f(x)$ et un entier $N$.\\
{\tt FOURIER} renvoie le coefficient de Fourier $c_N$ de $f(x)$ considérée 
comme une fonction définie sur $[0,T]$ et périodique de période $T$ ($T$ étant
égale au contenu de la variable {\tt PERIOD}).\\
On a si $f$ est continue par morceaux :
$$f(x)=\sum_{N=-\infty}^{+\infty} c_N e^\frac{2iNx\pi}{T}$$

Exemple :\\
Déterminer les coefficients de Fourier de la fonction $f$ périodique de période
 $2 \cdot \pi$ et définie sur $[0\ 2 \cdot \pi[$ par $ f(x)=x^2$.\\ 
On tape :
$${\tt STORE(2 \cdot \pi\ , \ PERIOD)}$$
$${\tt FOURIER(X^2,N)}$$
On obtient après simplification (\`a la main!):
$${\tt \frac{2 \cdot i \cdot N \cdot \pi+2}{N^2}}$$
En effet on ne sait pas dire \`a la machine que {\tt N} est un entier et donc
la machine ne simplifiera pas ${\tt EXP(2*i*N*\pi)}$. Si l'expression \`a 
simplifier est {\tt A} on peut taper :
${\tt SUBST(A,EXP(2 \cdot i \cdot \pi \cdot N)=1)}$\\

\noindent Donc si $N \neq 0$ on a :
$$c_N=\frac{2 \cdot i \cdot N \cdot \pi+2}{N^2}$$ 
Puis on tape :
$${\tt FOURIER(X^2,0)}$$
On obtient :
$${\tt \frac{4 \cdot {\pi}^2}{3} }$$
Donc si $N= 0$ on a :
$$c_0=\frac{4 \cdot {\pi}^2}{3}$$ 
\subsection{Int\'egration par parties : {\tt IBP}}\index{IBP}
{\tt IBP} a deux paramètres : une expression de la forme $u(x) \cdot v'(x)$ et $v(x)$.\\
{\tt IBP} renvoie le {\tt AND} de $u(x) \cdot v(x)$ et de $-v(x) \cdot u'(x)$,  c'est à 
dire les termes que l'on doit calculer quand on fait une intégration par 
parties.\\
 Il reste alors à calculer l'intégrale du deuxième terme du {\tt AND}, puis à 
faire la somme avec le premier terme du {\tt AND} pour obtenir une primitive de $u(x) \cdot v'(x)$.\\ 
On tape :
$${\tt IBP(LN(X),X) }$$
On obtient :
$${\tt X \cdot LN(X)\ AND  \ -1}$$
On termine l'intégration en appelant {\tt INTVX} :
$${\tt  INTVX(X \cdot LN(X) AND -1)}$$
on obtient alors :
$${\tt X\cdot LN(X)-X}$$
{\sc Remarque} : Si le premier paramètre de {\tt IBP} ou de {\tt INTVX}
est le {\tt AND} de deux éléments,
 {\tt IBP} n'agit que sur le dernier élément de {\tt AND} et ajoute le terme
 intégré au premier élément de {\tt AND} (de façon à pouvoir faire plusieurs
{\tt IBP} à la suite).

\subsection{Int\'egrales d\'efinies et g\'en\'eralis\'ees : ${\tt \int}$}\index{$\int$}
Pour calculer une int\'egrale d\'efinie on utilise le symbole $\int$ qui se
trouve sur la touche shift\'ee {\tt d/dx}. Il suffit de donner les arguments
en remplissant les diff\'erents champs (on passe d'un champ \`a l'autre avec 
les fl\`eches $\rhd$ et $\lhd$). Pour plus de d\'etails  cf. \ref{sec:sum}.\\
Pour une int\'egrale g\'en\'eralis\'ee, on peut mettre $+\infty$ ou $-\infty$
comme borne de l'int\'egrale.\\ 
{\sc Exemple}\\
D\'eterminer la limite quand $a$ tend vers plus l'infini de :
$$  \int _2^a (\frac {x}{x^2-1}+\ln(\frac {x+1}{x-1}))\ dx$$
On tape dans l'éditeur d'\'equation :
$${\tt \int _2^{+\infty} (\frac {X}{X^2-1}+LN(\frac {X+1}{X-1}))\ dX} $$
{\sc Attention}, ${\tt {+\infty}}$ s'obtient en tapant :
$${\tt  {(-) \ (-) \ \infty}\ (SHIFT\ 0)\ }$$ 
On obtient :
$${\tt +\infty-\frac{7 \cdot LN(3)}{2} }$$
et après simplification :
$$+\infty$$
\subsection{Primitive et intégrale d\'efinie : {\tt INTVX}}\index{INTVX}
{\tt INTVX} a un argument : une expression.\\
{\tt INTVX} calcule une primitive of son argument par rapport \`a la variable 
contenue dans {\tt VX}.\\
Exercice 1\\
Calculer une primitive  de $\sin(x) \times \cos(x)$.\\
On tape :
$${\tt INTVX(SIN(X) \cdot COS(X))}$$
On obtient en pas à pas :
$${\tt COS(X) \cdot  SIN(X)}$$
$${\tt Int[u'*F(u)]\ with\ u=SIN(X)}$$
puis {\tt OK} et le résultat s'inscrit dans l'éditeur d'\'equation :
$${\tt \frac{SIN(X)^2}{2}}$$
Exercice 2\\
Soit :
$$f(x)=\frac {x}{x^2-1}+\ln(\frac {x+1}{x-1})$$
Calculer une primitive  de $f$.\\
On tape :
$${\tt INTVX(\frac {X}{X^2-1}+LN(\frac {X+1}{X-1}))} $$
Ou si on a stock\'e l'expression de $ f(x)$ dans {\tt F} en tapant :
$${\tt STORE(F,\frac {X}{X^2-1}+LN(\frac {X+1}{X-1}))}$$
puis on tape :
$${\tt INTVX(F)} $$ 
Ou si on a défini  $f(x)$ à l'aide de {\tt DEF} en tapant :
$${\tt DEF(F(X)=\frac {X}{X^2-1}+LN(\frac {X+1}{X-1}))}$$
puis on tape:
$${\tt INTVX(F(X)) }$$ 
On trouve : 
$$ {\tt X \cdot LN(\frac {X+1}{X-1})+ \frac{3}{2} \cdot LN(|X-1|)+\frac{3}{2} \cdot LN(|X+1|)} $$
On obtient des valeurs absolues seulement quand on a choisi la configuration 
avec le mode {\tt Rigourous}.\\
Exercice 3\\
Calculer :
$$\int \frac {2}{x^6+2 \cdot x^4+x^2} \ dx $$
On tape :
$${\tt INTVX(\frac {2}{X^6+2 \cdot X^4+X^2})}$$
On trouve une primitive :
$${\tt -3 \cdot ATAN(X)-\frac {2}{X}-\frac {X}{X^2+1}} $$
{\sc Remarque} :\\
On peut aussi taper :
$${\tt \int_1^X \frac {2}{X^6+2 \cdot X^4+X^2} \ dX} $$
qui donne la primitive qui s'annule en $X=1$ : 
$${\tt -3\cdot ATAN(X)-\frac {2}{X}-\frac {X}{X^2+1}+\frac{3\cdot \pi+10}{4}}$$
Exercice 4\\
Calculer :
$$\int \frac {1}{\sin(x)+\sin(2 \cdot x )} \ dx $$
On tape :
$${\tt INTVX(\frac {1}{SIN(X)+SIN(2 \cdot X )})}$$
On trouve :
 $${\tt \frac {1}{6}\cdot LN(|COS(X)-1|)+\frac {1}{2}\cdot LN(|COS(X)+1|)+}$$
$${\tt \frac {-2}{3} \cdot LN(|2\cdot COS(X)+1|)} $$ 
{\sc Remarque} : si le paramètre de {\tt INTVX} est le {\tt AND} de deux 
éléments, {\tt INTVX} n'agit que sur le deuxième élément du {\tt AND}, et 
ajoute le r\'esultat obtenu au premier argument.

\subsection{Calcul de limites : {\tt LIMIT} or {\tt lim}}\index{LIMIT}\index{lim}\label{sec:limit}
{\tt LIMIT} ou {\tt lim}
a comme arguments une expression dépendant d'une variable et une 
égalité (variable = la valeur o\`u l'on veut calculer la limite).\\ 
Le nom de la variable et le signe {\tt =} peuvent \^etre omis quand il s'agit de la 
variable courante (celle dont le nom se trouve dans {\tt VX}).\\
Il est souvent préférable d'écrire l'expression quotée :\\
{\tt QUOTE(expression)}\index{QUOTE}, pour éviter 
une réécriture de cette expression sous forme normale (pour ne pas avoir une
simplification rationnelle des arguments) avant l'exécution de la commande 
{\tt LIMIT}.\\   
On tape par exemple :
$${\tt LIMIT(QUOTE((2X-1) \cdot EXP(\frac{1}{X-1})),X=+\infty)}$$
On obtient :
$$+\infty$$
Pour calculer une limite \`a droite 
on tape par exemple :
$${\tt LIMIT(\frac{1}{X-1},QUOTE(1+0))}$$
On obtient si {\tt X} est la variable courante :
$$+\infty$$
Pour calculer une limite \`a gauche
on tape par exemple :
$${\tt LIMIT(\frac{1}{X-1},QUOTE(1-0))}$$
On obtient si {\tt X} est la variable courante :
$$-\infty$$
Il n'est pas n\`ecessaire de quoter le deuxi\`eme argument quand il est 
\'ecrit avec le signe {\tt =} par exemple :\\
$${\tt LIMIT(\frac{1}{X-1},X=1+0)}$$
On obtient :
$$+\infty$$
{\sc Exercices}\\
Trouver pour $n>2$, la limite quand $x$ tend vers 0 de :
$$ \frac{n\cdot \tan(x)-\tan(n\cdot x)}{\sin(n\cdot x)-n\cdot \sin(x)}$$
On utilise la commande {\tt LIMIT}.\\
On tape :
$${\tt LIMIT \left( \frac{N \cdot TAN(X)-TAN(N \cdot X)}{SIN(N \cdot X)-N \cdot SIN(X)}, 0 \right)}$$
On obtient :
$${\tt 2 }$$
{\sc Attention}!!!\\
Pour trouver une limite quand $x$ tend vers $a^+$ (resp $a^-$), le deuxi\`eme
 argument s'\'ecrit :\\
${\tt X=A+0}$ (resp ${\tt X=A-0}$), voir aussi \ref{sec:limit}.\\

Trouver la limite quand $x$ tend vers $+\infty$ de:
$$\sqrt{x+\sqrt{x+\sqrt x}}-\sqrt x$$ 
On tape :
$${\tt LIMIT (\sqrt{X+\sqrt{X+\sqrt{X}}}-\sqrt{X}, +\infty)} $$
On obtient au bout d'un moment :
$$\frac{1}{2}$$
{\sc Attention}!!!\\
$\infty$ peut s'obtenir gr\^ace au raccourci clavier : {\tt SHIFT 0}\\
 ${\tt {-\infty}}$ s'obtient alors en tapant :
$${\tt  (-)\ \infty}$$
${\tt {+\infty}}$ s'obtient alors en tapant :
$${\tt (-) \ (-)\ \infty}$$
On trouve aussi ${\tt \infty}$  dans le menu {\tt Constant}
de la touche {\tt MATH}.
%Nouveau
\subsection{Graphe d'une expression : {\tt PLOT}}\index{PLOT}
{\tt PLOT} a comme paramètre une expression.\\ 
{\tt PLOT} demande de s\'electionner une {\tt Aplet} puis stocke cette 
expression dans une variable de l'{\tt Aplet}.\\
On tape :
$${\tt PLOT(X^2+X)}$$
On  s\'electionne l'{\tt Aplet} {\tt Function}, on choisit de sauver 
l'expression ${\tt X^2+X}$ dans {\tt F2}. Dans l'historique la r\'eponse est :
$${\tt X^2+X}$$
On obtientra le graphe de la courbe 
correspondant à l'équation contenue  dans {\tt F2} en sortant du {\tt CAS}
(en appuyant sur {\tt HOME})
et en ouvrant l'{\tt Aplet} {\tt Function}, en  s\'electionnant la fonction 
{\tt F2}, puis en utilisant la touche {\tt PLOT} 

%Nouveau
\subsection{Ajouter le graphe d'une expression : {\tt PLOTADD}}\index{PLOTADD}
{\tt PLOTADD} a comme paramètre une expression.\\ 
{\tt PLOTADD} demande de s\'electionner une {\tt Aplet} puis stocke cette 
expression dans une variable de l'{\tt Aplet}.\\
On tape :
$${\tt PLOTADD(X^2-X)}$$
On  s\'electionne l'{\tt Aplet} {\tt Function}, on choisit de sauver 
l'expression ${\tt X^2-X}$ dans {\tt F3}. Dans l'historique la r\'eponse est :
$${\tt X^2-X}$$
On obtientra le graphe des courbes 
correspondant à l'équation contenue  dans {\tt F2} et {\tt F3} en sortant du 
{\tt CAS} (appuyer sur  {\tt HOME}), en ouvrant l'{\tt Aplet} {\tt Function}, en s\'electionnant les
 fonctions {\tt F2} et {\tt F3}, puis en utilisant la touche {\tt PLOT}.

\subsection{\'Evaluer une primitive : {\tt PREVAL}}\index{PREVAL}
{\tt PREVAL} a trois paramètres : une expression {\tt F(VX)} dépendant de la 
variable contenue dans {\tt VX}  et deux expressions {\tt A} et {\tt B}.\\
Par exemple, si {\tt VX} contient {\tt X}, et si {\tt F} est une fonction, 
{\tt PREVAL(F(X),A,B)}  renvoie {\tt F(B)-F(A)}.\\
 {\tt PREVAL} est utile pour calculer une intégrale définie à partir 
d'une primitive : on évalue cette primitive entre les deux bornes de l'intégrale.\\
On tape :
$${\tt PREVAL(X^2+X,2,3)} $$
On obtient :
$${\tt 6}$$
\subsection{Primitive et intégrale d\'efinie : {\tt RISCH}}\index{RISCH}
{\tt RISCH} a deux paramètres : une expression et un nom de variable.\\
{\tt RISCH} renvoie une primitive du premier paramètre par rapport à la 
variable spécifiée en deuxième paramètre.\\
On tape :
$${\tt RISCH((2 \cdot X^2+1) \cdot EXP(X^2+1),X) }$$
On obtient :
$${\tt X \cdot EXP(X^2+1)}$$
{\sc Remarque} : si le paramètre de {\tt RISCH} est le {\tt AND} de deux 
éléments, {\tt  RISCH} n'agit que sur le deuxième élément du {\tt AND},
et ajoute le r\'esultat obtenu au premier argument.

%Nouveau
\subsection{Primitive discrète : {\tt SIGMA}}\index{SIGMA}
{\tt SIGMA} a comme premier argument une fonction $f$ d'une variable qui est 
donnée comme deuxième argument.\\
{\tt SIGMA} renvoie la primitive discrète de cette fonction, c'est à dire 
la fonction $G$ verifiant $G(x+1)-G(x)=f(x)$.\\ 
On tape :
$${\tt SIGMA(X \cdot X!,X)}$$
On obtient :
$${\tt X!}$$
car $(X+1)!-X!=X\cdot X!$
%Nouveau
\subsection{Primitive discrète : {\tt SIGMAVX}}\index{SIGMAVX}
{\tt SIGMAVX} a comme argument une fonction $f$ de la variable contenue dans 
{\tt VX}.\\
{\tt SIGMAVX} renvoie la primitive discrète de cette fonction, c'est à dire 
la fonction $G$ verifiant $G(x+1)-G(x)=f(x)$.\\ 
On tape :
$${\tt SIGMAVX(X^2)}$$
On obtient :
$${\tt \frac{2 \cdot X^3-3 \cdot X^2+X}{6}}$$
car $2(X+1)^3-3(X+1)^2+X+1-2X^3+3X^2-X=6X^2$
\subsection{Tableau de variations : {\tt TABVAR}}\index{TABVAR}
{\tt TABVAR} a comme paramètre une expression ayant une derivée rationnelle.\\
{\tt TABVAR} renvoie (en mode pas \`a pas) le tableau de variations de 
l'expression, en fonction de la variable courante.\\
On tape :
$${\tt TABVAR(LN(X)+X)} $$
On obtient en mode pas à pas :\\
${\tt F=:(LN(X)+X)}$\\
${\tt F'=:(\frac{1}{X}+1}$\\
${\tt \rightarrow :\frac{X+1}{X}} $\\
{\tt Variation table } :
$$\left[\begin{array}{cccccc}
-\infty & ?  & 0 & + & +\infty & X\\
? & ?  & -\infty & \uparrow & +\infty & F \end{array}\right]$$


\section{Développements limit\'es et asymptotiques }
Toutes les fonctions de ce paragraphe se trouve dans le menu {\tt DIFF} du
bandeau.\\
Il est d'usage d'écrire les développements selon les puissances croissantes 
de la variable, on fera donc le choix ${\tt 1+x+x^2...}$ dans {\tt CFG}. 
\subsection{Division selon les puissances croissantes : {\tt DIVPC}}\index{DIVPC}
{\tt DIVPC} a trois arguments : deux polyn\^omes {\tt A(X)} et {\tt B(X)} 
(avec {\tt B(0)}$\neq 0$) et un entier {\tt n}.\\
{\tt DIVPC} renvoie le quotient {\tt Q(X)} de la division de  {\tt A(X)}
 par {\tt B(X)} selon les puissances croissantes avec  deg{\tt (Q)$\leq$ n} 
ou {\tt Q=0}. \\
{\tt Q[X]} est donc le
d\'eveloppement limit\'e d'ordre $n$ de ${\tt \frac{A[X]}{B[X]}}$ au 
voisinage de {\tt X=0}. \\ 
On tape :
$${\tt DIVPC(1+X^2+X^3,1+X^2,5)}$$
On obtient :
$${\tt 1+X^3-X^5}$$
{\sc Attention} : la machine demande à passer en "puissances croissantes",
 r\'epondre {\tt yes}.

\subsection{D\'eveloppement limit\'e : {\tt SERIES}}\index{SERIES} 
{\tt SERIES} a trois arguments : une expression dépendant d'une variable,
une égalité (la variable $x$ = la valeur $a$ o\`u l'on veut calculer le 
d\'eveloppement limit\'e) et un entier $n$ (l'ordre du d\'eveloppement 
limit\'e).\\
On peut omettre le nom de la variable et le signe {\tt =}, quand le nom de
la variable est dans {\tt VX}.\\
{\tt SERIES} renvoie le d\'eveloppement limit\'e d'ordre $n$ de l'expression au
 voisinage de $x=a$.\\
\begin{itemize}
\item  développement au voisinage de {\tt x=a}\\
Exemple :\\
Donner un développement limit\'e  \`a l'ordre 4 au voisinage de 
$x=\frac{\pi}{6}$ de $\cos(2\times x)^2$.\\
On utilise la commande {\tt SERIES}.\\
On tape :
$${\tt SERIES( COS(2 \cdot X)^2 , X=\frac{\pi}{6} , 4 )}$$
On obtient :
$${\tt \ (\frac{1}{4}-\sqrt 3 h+2h^2+\frac {8 \sqrt {3}}{3}h^3- \frac {8}{3}h^4 +O(\frac{h^5}{4})|_{\ \displaystyle h=X- \frac{ \pi}{6}}}$$
\item  développement au voisinage de {\tt x=+$\infty$} ou  {\tt x=-$\infty$}\\
Exemple 1 :\\
Donner un développement de $\arctan(x)$ à l'ordre 5 au voisinage de
 {\tt x=+$\infty$} en prenant comme infiniment petit $h=\frac{1}{x}$.\\
On tape :
$${\tt SERIES(ATAN(X),X=+\infty,5)}$$
On obtient  :
$${\tt (\frac{\pi}{2}-h+\frac{h^3}{3}-\frac{h^5}{5}+O(\frac{\pi \cdot h^6}{2})|_{\ \displaystyle h=\frac{1}{X}}}$$
Exemple 2 :\\
Donner un développement de $(2x-1)e^\frac{1}{x-1}$ à l'ordre 2 au voisinage de
 {\tt x=+$\infty$} en prenant comme infiniment petit $h=\frac{1}{x}$.\\
On tape :
$${\tt SERIES((2X-1) \cdot EXP(\frac{1}{X-1}),X=+\infty,3)}$$
On obtient  :
$${\tt (\frac{12+6h+12h^2+17h^3}{6 \cdot h}+O(2 \cdot h^3)|_{\ \displaystyle h=\frac{1}{X}}}$$
Exemple 3 :\\
Donner un développement de $(2x-1)e^\frac{1}{x-1})$ à l'ordre 2 au voisinage de
 {\tt x=-$\infty$} en prenant comme infiniment petit $h=-\frac{1}{x}$.\\
On tape :
$${\tt SERIES((2X-1) \cdot EXP(\frac{1}{X-1}),X=-\infty,3)}$$
On obtient  :
$${\tt (\frac{-12+6h-12h^2+17h^3}{6h}+O(-(2h^3))|_{\displaystyle h=-\frac{1}{X}}}$$
\item  développement unidirectionnel\\
Il faut \^etre en mode {\tt Rigourous} (Press {\tt DIFF}, puis {\tt CFG}, puis 
choisir {\tt Rigourous} et ensuite {\tt Quit config.}).\\
Pour les param\`etres, il faut utiliser :\\
- un réel positif, pour l'ordre, par exemple 4. ou 4.0, pour faire un 
développement au voisinage de $x=a$ avec $ \ x>a$ et\\
- un  réel négatif,  pour l'ordre, par exemple -4. ou -4.0, pour faire un développement au voisinage de $x=a$ avec $ \ x<a$.\\
Exemple 1 :\\
Donner un développement de $\ \frac{(1+X)^\frac{1}{X}}{X^3}\ $ à l'ordre 2, au
 voisinage de $X=0^+$.\\
On tape :
$${\tt SERIES(\sqrt{X^2+X^3} ,X=0,3.0)}$$
On obtient :
$${\tt \frac{1}{16}\cdot h^4+\frac{-1}{8}\cdot h^3+\frac{1}{2}\cdot h^2+ h+O(h^5)|_{\displaystyle h=X}}$$
Exemple 2 :\\
Donner un développement de $\ \frac{(1+X)^\frac{1}{X}}{X^3}\ $ à l'ordre 2,
 au voisinage de $X=0^-$.\\
On tape :
$${\tt SERIES(\sqrt{X^2+X^3} ,X=0,-3.0)}$$
On obtient  :
$${\tt  (\frac{-1}{16}\cdot h^4+\frac{-1}{8}\cdot h^3+\frac{-1}{2}\cdot h^2+ h+O(h^5)|_{\displaystyle h=-X}}$$
Exemple 3 :\\
Donner un développement de $\ \frac{(1+X)^\frac{1}{X}}{X^3}\ $ à l'ordre 2, au voisinage de $X=0$.\\
On tape :
$${\tt SERIES(\sqrt{X^2+X^3} ,X=0,3)}$$
On obtient :
$${\tt SERIIES Erreur : ne peut d\'eterminer le signe }$$
\end{itemize}
{\bf Remarque} :\\
Si vous \^etes en mode {\tt Sloppy} les troIs exemples pr\'ec\'edents donnent 
la m\^eme r\'eponse qu'au voisinage de $X=0+$.
\subsection{D\'eveloppement limit\'e au voisinage de 0 : {\tt  TAYLOR0}}\index{TAYLOR0} 
{\tt  TAYLOR0} a un seul argument : la fonction de $x$  à développer, et 
renvoie son développement limité à l'ordre relatif 4 au voisinage de $x=0$ 
(si $x$ est la variable courante).\\ 
On tape :
$${\tt TAYLOR0(\frac{TAN(P \cdot X)-SIN(P \cdot X)}{TAN(Q \cdot X)-SIN(Q \cdot X)}) }$$
On obtient :
$${\tt \frac{P^3}{Q^3}+\frac{P^5-Q^2 \cdot P^3}{4 \cdot Q^3} \cdot X^2}$$
{\sc Attention} : l'ordre 4 veut dire que l'on d\'eveloppe \`a l'ordre relatif 
4 le num\'erateur et le d\'enominateur (ici ordre absolu 5 pour le num\'erateur
 et le d\'enominateur, ce qui donne en fin de compte, un ordre 2 (5-3) puisque
 la valuation du d\'enominateur est égale à 3).
\subsection{Troncature d'ordre $n-1$ : {\tt TRUNC}}\index{TRUNC}
{\tt TRUNC} permet de tronquer un polyn\^ome à un ordre donné (utile quand on fait des 
développements limités).\\
{\tt TRUNC} a deux arguments : un polyn\^ome et  $ X^n$.\\ 
{\tt TRUNC} renvoie le polyn\^ome tronqué à l'ordre $n-1$ : on n'a pas de 
termes  de degré $\geq n$.\\
On tape :
$${\tt TRUNC({(1+X+\frac{1}{2} \cdot X^2)}^3\ ,\ X^4)}$$
On obtient :
$${\tt 1+3 \cdot X+\frac{9}{2} \cdot X^2+4 \cdot X^3}$$
\section{Les Fonctions de réécriture}
Toutes les fonctions de ce paragraphe se trouvent dans le menu {\tt REWRITE}
du bandeau.
\subsection{Distributivité de la multiplication : {\tt DISTRIB}}\index{DISTRIB}
{\tt DISTRIB} permet d'appliquer la distributivité de la multiplication par 
rapport à l'addition une fois.\\
{\tt DISTRIB} permet, quand on l'applique plusieurs fois, d'effectuer la 
distributivité pas à pas.\\
On tape :
$${\tt DISTRIB((X+1)\cdot(X+2)\cdot(X+3))}$$
On obtient :
$${\tt X\cdot(X+2)\cdot(X+3)+1\cdot(X+2)\cdot(X+3) }$$
\subsection{N\'egliger les petites valeurs : {\tt EPSX0}}\index{EPSX0}\label{sec:epsx0_}
{\tt EPSX0} a  comme paramètre une expression  de {\tt X} et renvoie 
l'expression o\`u les valeurs plus petites que {\tt EPS} ont été remplacées par zéro.\\
On tape :
$${\tt EPSX0(0.001+X)}$$
On obtient (avec {\tt EPS=0.01}) :
$${\tt 0+X}$$
Ou, on obtient (avec {\tt EPS=0.0001}) :
$${\tt .001+X}$$
\subsection{Transformer $\exp(n*\ln(x))$ en $x^n$ : {\tt EXP2POW}}\index{EXP2POW}
{\tt  EXP2POW} permet de transformer une expression de la forme :\\
 $\exp(n \times \ln(x))$ en une puissance de $x$.\\
On tape :
$${\tt  EXP2POW(EXP(N\cdot LN(X))) }$$
On obtient :
$${\tt X^N}$$
Bien voir la différence avec {\tt  LNCOLLECT} on a :\\
${\tt  LNCOLLECT(EXP(N\cdot LN(X))) = EXP(N\cdot LN(X)) }$\\
${\tt  LNCOLLECT(EXP(LN(X)/3))\ =\ EXP(LN(X)/3) }$\\
${\tt  EXP2POW(EXP(LN(X)/3))\ = \sqrt[3]{X}}$
\subsection{Transformer  une expression trigonométrique en des exponentielles complexes : {\tt EXPLN}}\index{EXPLN}
{\tt EXPLN} a comme argument une expression trigonométrique.\\
{\tt EXPLN} transforme les fonctions trigonométriques en exponentielles et
logarithmes {\sc sans} linéariser.\\ 
{\tt EXPLN} fait passer en {\tt mode complexe}.\\
On tape :
$${\tt EXPLN(SIN(X))}$$
On obtient :
$${\tt \frac{EXP(i \cdot X)-\frac{1}{EXP(i \cdot X)}}{2 \cdot i}}$$
\subsection{Distributivité : {\tt FDISTRIB}}\index{FDISTRIB}
{\tt FDISTRIB} a comme argument une expression.\\
{\tt FDISTRIB} permet d'effectuer la distributivité de la multiplication par 
rapport à l'addition en une seule fois.\\
On tape :
$${\tt FDISTRIB((X+1)\cdot(X+2)\cdot(X+3))}$$
On obtient :
$${\tt X \cdot X \cdot X+3 \cdot X \cdot X+X \cdot 2 \cdot X+3 \cdot 2 \cdot X+X \cdot X \cdot 1+3 \cdot X \cdot 1+X \cdot 2 \cdot 1+3 \cdot 2 \cdot 1}$$
et apr\`es simplification ({\tt ENTER}) :
$${\tt X^3+6\cdot X^2+11\cdot X+6 }$$
\subsection{Lin\'eariser les exponentielles : {\tt LIN}}\index{LIN}
{\tt LIN} a comme argument une expression contenant des exponentielles et des 
fonctions trigonométriques.\\
{\tt LIN} convertit les expressions trigonometriques en exponentielles 
complexes, puis linéarise ces exponentielles 
complexe (l'exprime en fonction de $\exp(n \cdot x)$).\\
{\tt LIN} fait passer en {\tt mode complexe} quand il y a des fonctions
 trigonométriques.\\ 
Exemple 1 :\\
On tape :
$${\tt LIN((EXP(X)+1)^3)}$$
On obtient :
$${\tt 3 \cdot EXP(X)+1+3 \cdot EXP(2 \cdot X)+EXP(3 \cdot X)}$$
Exemple 2 :\\
On tape :
$${\tt LIN(SIN(X))}$$
On obtient :
$${\tt -(\frac{i}{2} \cdot EXP(i \cdot X))+\frac{i}{2} \cdot EXP(-(i \cdot X))}$$
Exemple 3 :\\
On tape :
$${\tt LIN(COS(X)^2)}$$
On obtient :
$${\tt \frac{1}{4} \cdot EXP(-(2 \cdot i \cdot X))+\frac{1}{2}+\frac{1}{4} \cdot EXP(2 \cdot i \cdot X)}$$
\subsection{Regrouper les logarithmes : {\tt LNCOLLECT}}\index{LNCOLLECT}
{\tt LNCOLLECT} a comme argument une expression contenant des logarithmes.\\
{\tt LNCOLLECT} regroupe les termes en logarithmes. Il est donc préférable
de l'utiliser sur une expression factorisée (en utilisant {\tt FACTOR}).\\
On tape :
$${\tt  LNCOLLECT(LN(X+1)+LN(X-1))}$$
On obtient :
$${\tt LN((X+1)(X-1))}$$
\subsection{Transformer une puissance : {\tt POWEXPAND}}\index{POWEXPAND}
{\tt POWEXPAND} écrit une puissance sous la forme d'un produit. \\
On tape :
$${\tt  POWEXPAND((X+1)^3)}$$
On obtient :
$${\tt (X+1)\cdot (X+1)\cdot (X+1)}$$
Cela permet ainsi de faire le développement de $(x+1)^3$ en pas à pas actif,
en appliquant {\tt DISTRIB} plusieurs fois au résultat précédent.
\subsection{Simplifier : {\tt SIMPLIFY}}\index{SIMPLIFY}
{\tt SIMPLIFY} simplifie  l'expression de façon automatique.\\
Comme toute simplification automatique, il ne faut pas s'attendre à des miracles et pourtant...\\ 
On tape :
$${\tt SIMPLIFY(\frac{SIN(3 \cdot X)+SIN(7 \cdot X)}{SIN(5 \cdot X)})}$$
On obtient après simplification :
$${\tt 4 \cdot COS(X)^2-2}$$
\subsection{\'Evaluation des r\'eels : {\tt XNUM}}\index{XNUM}
{\tt XNUM} a comme paramètre une expression.\\
{\tt XNUM} fait passer en mode approximatif et renvoie la valeur numérique de
l'expression.\\
 On tape :
$${\tt XNUM(\sqrt2)}$$ 
On obtient :
$${\tt 1.41421356237}$$
\subsection{Approximation rationnelle : {\tt XQ}}\index{XQ}
{\tt XQ} a comme paramètre une expression numérique réelle.\\
{\tt XQ} fait passer en mode exact et donne une approximation rationnelle ou réelle de l'expression.\\
On tape :
$${\tt XQ(1.41421)}$$
On obtient :
$${\tt \frac{66441}{46981}}$$
On tape :
$${\tt XQ(1.414213562)}$$
On obtient :
$${\tt \sqrt2}$$
\section{Équations}
Toutes les fonctions de ce paragraphe se trouve dans le menu {\tt SOLV} du
bandeau.
\subsection{Les z\'eros d'une expression {\tt ISOLATE}}\index{ISOLATE}
{\tt ISOLATE} renvoie les valeurs 
d'une variable qui annulent une expression ou une équation.\\
{\tt ISOLATE} a deux paramètres  une expression ou une équation et le nom de la
variable \`a isoler (sans tenir compte de {\tt REALASSUME}).\\
 On tape :
$${\tt  ISOLATE(X^4-1=3,X)}$$
On obtient en mode r\'eel~:
$${\tt (X=\sqrt2)\ OR\ (X=-\sqrt2)}$$
et en mode complexe~:
$${\tt (X=\sqrt2 \cdot i)\ OR\ (X=-\sqrt2)\ 
OR\ (X=-(\sqrt2 \cdot i))\ OR\ (X=\sqrt2) }$$

\subsection{R\'esolution d'\'equations : {\tt SOLVE}}\index{SOLVE}
{\tt SOLVE} a comme arguments une équation entre deux 
expressions ou une expression ({\tt =0}~est alors sous-entendu), 
et le nom d'une variable. \\
{\tt SOLVE} résout l'\'equation dans $\mathbb{R}$ en mode réel et dans 
$\mathbb{C}$ en mode complexe (sans tenir compte de {\tt REALASSUME}).\\
 On tape :
$${\tt  SOLVE(X^4-1=3,X)}$$
On obtient en mode réel :
$${\tt (X=-\sqrt{2}) \ OR \ (X=\sqrt{2})}$$
On obtient en mode complexe (m\^eme si {\tt X} est r\'eelle voir {\tt REALASSUME}):
$${\tt (X=-\sqrt{2})\ OR \ (X=\sqrt{2})\ OR \ (X=-i \cdot \sqrt{2})\ OR\ (X=i\sqrt{2})}$$

\subsection{R\'esolution d'\'equations : {\tt SOLVEVX}}\index{SOLVEVX}
{\tt SOLVEVX} a comme paramètre  une équation entre deux 
expressions de la variable contenue dans {\tt VX} ou une 
expression ({\tt =0 } est alors sous-entendu). \\
{\tt SOLVEVX} résout l'équation dans $\mathbb{R}$ en mode réel et dans 
$\mathbb{C}$ en mode complexe (sans tenir compte de {\tt REALASSUME}).\\
 Exemple 1 :\\
On tape :
$${\tt  SOLVEVX(X^4-1=3)}$$
On obtient en mode réel :
$${\tt (X=-\sqrt{2}) \ OR \ (X=\sqrt{2})}$$
On obtient, en mode complexe, m\^eme si vous avez choisi {\tt X} r\'eelle :\\
$${\tt (X=-\sqrt{2})\ OR \ (X=\sqrt{2})\ OR \ (X=-i \cdot \sqrt{2})\ OR\ (X=i\sqrt{2})}$$
 Exemple 2 :\\
On tape :
$${\tt  SOLVEVX((X-2) \cdot SIN(X))}$$
On obtient en mode réel:
$${\tt (X=-2 \cdot \pi \cdot n_1)\ OR\ (X=2 \cdot \pi \cdot n_1)\ OR \ (X=2)}$$

\section{Les syst\`emes}
Toutes les fonctions de ce paragraphe se trouve dans le menu {\tt SOLV} du
bandeau.
\subsection{R\'esolution d'un syst\`eme lin\'eaire : {\tt LINSOLVE}}\index{LINSOLVE}
{\tt LINSOLVE} permet de r\'esoudre un syst\`eme d'\'equations lin\'eaires.\\
On suppose les différentes équations écrites sous la forme $expression=0$.\\
{\tt LINSOLVE} a deux  arguments :\\
 les premiers membres des différentes équations séparés par {\tt AND}  et
les noms des différentes variables séparés par {\tt AND}.\\
Exemple 1:\\
On tape :
$${\tt LINSOLVE(X+Y+3\ AND\ X-Y+1,X\ AND\ Y)}$$
On obtient :
$${\tt (X=-2)\ AND\ (Y=-1)}$$
On obtient si on est en mode pas à pas  ({\tt CFG} etc...) :\\
{\tt L2=L2-L1}\\
$ \left[\begin{array}{ccc}1&1&3\\1&-1&1 \end{array}\right] $\\
 {\tt ENTER}\\
{\tt L1=2L1+L2}\\
$ \left[\begin{array}{ccc}1&1&3\\0&-2&-2 \end{array}\right] $\\
 {\tt ENTER}\\
{\tt Reduction  Result}\\
$ \left[\begin{array}{ccc}2&0&4\\0&-2&-2 \end{array}\right] $\\
 {\tt ENTER}\\
Il s'écrit alors dans l'éditeur :\\
$${\tt (X=-2)\ AND\ (Y=-1)}$$
Exemple 2 :\\
On tape :
$${\tt (2 \cdot X+Y+Z=1)\ AND\ (X+Y+ 2 \cdot Z=1)\ AND \ (X+2 \cdot Y+Z=4)}$$
puis on appelle  {\tt LINSOLVE}\\
puis, on tape les inconnues :
$${\tt X \ AND \ Y \ AND\ Z}$$
et appuyer sur {\tt ENTER}\\
On obtient si on est en mode pas à pas  ({\tt CFG} etc...) :\\
{\tt L2=2L2-L1}\\

$ \left[\begin{array}{cccc}2&1&1&-1\\1&1&2 &-1\\1&2&1&-4 \end{array}\right] $\\

puis {\tt ok}\\

{\tt L3=2L3-L1}\\

$ \left[\begin{array}{cccc}2&1&1&-1\\0&1&3 &-1\\1&2&1&-4 \end{array}\right] $\\

etc...à la fin

{\tt Reduction Result}\\

$ \left[\begin{array}{cccc}8&0&0&4\\0&8&0 &-20\\0&0&-8&-4 \end{array}\right] $\\

puis  {\tt ENTER} et \\
$${\tt (X=-\frac{1}{2})\ AND\ (Y=\frac{5}{2})\ AND\ (Z=-\frac{1}{2})}$$ 
s'écrit dans l'éditeur.
\subsection{R\'esolution d'un syst\`eme non lin\'eaire : {\tt SOLVE}}\index{SOLVE}
{\tt SOLVE} permet de r\'esoudre un syst\`eme d'\'equations non lin\'eaires \`a
condiion qu'elles soient polynomiales.\\
Pour d'autres \'equations, il faut  utiliser{\tt MSLV} dans {\tt HOME} pour 
avoir une solution num\`erique.\\
On suppose les différentes équations écrites sous la forme $expression=0$.\\
{\tt SOLVE} a deux  arguments :\\
 les premiers membres des différentes équations séparés par {\tt AND}  et
les noms des différentes variables séparés par {\tt AND}.\\
On tape :
$${\tt SOLVE(X^2+Y^2-3\ AND\ X-Y^2+1,X\ AND\ Y)}$$
On obtient :
$${\tt (X=1)\ AND\ (Y=-\sqrt2)\  OR\ (X=1)\ AND\ (Y=\sqrt2)}$$

\section{Les \'equations diff\'erentielles}
Toutes les fonctions de ce paragraphe se trouve dans le menu {\tt SOLV} du
bandeau de l'\'editeur d'\'equation.
\subsection{R\'esolution d'\'equations diff\'erentielles : {\tt DESOLVE}}\index{DESOLVE}
{\tt DESOLVE} permet de  r\'esoudre des \'equations diff\'erentielles m\^eme 
non lin\'eaires (pour les \'equations diff\'erentielles lin\'eaires  à
coefficients constants utiliser plut\^ot la fonction {\tt LDEC}).\\
{\tt DESOLVE} a deux param\`etres : l'\'equation diff\'erentielle o\`u 
$y'$ s'\'ecrit {\tt d1Y(X)} (ou l'\'equation diff\'erentielle et ses 
conditions initiales séparées par {\tt AND}), et l'inconnue {\tt Y(X)}. \\
On doit \^etre en mode r\'eel.\\
Exemple 1 :\\
Résoudre :
$$y''+y=\cos (x)$$
$$ y(0)=c_0 \; \; y'(0)=c_1$$
On tape : 
$${\tt DESOLVE(d1d1Y(X)+Y(X)=COS(X),Y(X))}$$
On trouve :
$${\tt Y(X)=cC0\cdot COS(X)+ \frac {X+2 \cdot cC1}{2}\cdot SIN(X)}$$
{\tt cC0} et {\tt cC1} sont les constantes d'intégration 
(${\tt y(0)=cC0 \ y\prime(0)=cC1}$).\\
On peut ensuite donner une valeur aux constantes en utilisant la commande
{\tt SUBST}\index{SUBST}.\\
On écrit, si veut les solutions vérifiant $y(0)=1$ :
$${\tt SUBST ( Y(X)=cC0\cdot COS(X)+ \frac {X+2 \cdot cC1}{2}\cdot SIN(X), cC0=1)}$$
On obtient :
$${\tt Y(X)=\frac {2\cdot COS(X)+  (X+2 \cdot cC1)\cdot SIN(X)}{2}} $$
Exemple 2 :\\
Résoudre :
$$y''+y=\cos (x)$$
$$ y(0)=1 \; \; y'(0)=1$$
Pour avoir les solutions vérifiant $y(0)=1$ et $y'(0)=1$ on peut aussi taper 
directement : 
$${\tt DESOLVE((d1d1Y(X)+Y(X)=COS(X)) AND (Y(0)=1) AND (d1Y(0)=1),Y(X))}$$
On trouve alors :
$${\tt Y(X)=COS(X)+ \frac {X+2}{2}\cdot SIN(X)}$$

%Nouveau
\subsection{Transform\'ee de Laplace et transform\'ee de Laplace inverse : {\tt LAP} et {\tt ILAP}}\index{LAP}\index{ILAP}
{\tt LAP} est la transform\'ee de Laplace de l'expression donn\'ee en argument.
Cette expression est consid\'er\'ee comme la valeur d'une fonction de la 
variable contenue dans {\tt VX}.\\
{\tt ILAP} est la transform\'ee de Laplace inverse de l'expression donn\'ee en 
argument. Cette expression est consid\'er\'ee comme la valeur d'une fonction de
 la variable contenue dans {\tt VX}.\\
On utilise les transform\'ees de Laplace (${\tt LAP}$) et les transform\'ees 
de Laplace inverses (${\tt ILAP}$) pour r\'esoudre des \'equations 
diff\'erentielles linéaires à coefficients constants, par exemple :
$$y'' +p \cdot y'+q \cdot y \ =\ f(x)$$
$$ y(0)=a \; \; y'(0)=b$$
On a :
$${\tt LAP(Y)(X)=\int_0^{+\infty}e^{-X \cdot T}Y(T)dT} $$
$${\tt ILAP(F)(X)=\frac{1}{2 \cdot i \cdot \pi}\int_C e^{Z \cdot X}F(Z)dZ}$$
${\tt C}$ etant une courbe ferm\'ee contenant les p\^oles de ${\tt F}$\\
On utilise la propri\'et\'e suivante :
$${\tt LAP(Y')(X)=-Y(0)+X \cdot LAP(Y)(X)}$$
La solution  {\tt Y} de\\
${\tt Y''+P \cdot Y'+Q \cdot Y \ =\ F(x),\; \;  Y(0)=A, \; \; Y'(0)=B}$ est 
alors :
$${\tt ILAP(\frac{LAP(F(X))+(X+P) \cdot A +B}{X^2+P \cdot X+Q})}$$
Exemple :\\
R\'esoudre :
$$y'' -6 \cdot y'+9 \cdot y \ =\ x. e^{3 \cdot x}$$
$$y(0)=a$$
$$ y'(0)=b$$
On tape :
$${\tt LAP(X \cdot EXP(3 \cdot X))\ ENTER}$$
On obtient :
$${\tt \frac {1}{X^2-6 \cdot X+9}}$$
On tape :
$${\tt ILAP(\frac {\frac {1}{X^2-6 \cdot X+9}+(X-6) \cdot A+B}{X^2-6 \cdot X+9})}$$
On obtient la solution $y$ :
$${\tt ( \frac{X^3}{6}-(3 \cdot A-B) \cdot X+A) \cdot EXP(3 \cdot X)}$$
\subsection{\'Equations diff\'erentielles lin\'eaires \`a coefficients constants: {\tt LDEC}}\index{LDEC}
{\tt LDEC} permet de r\'esoudre directement les \'equations lin\'eaires à
coefficients constants.\\
Les param\`etres sont le second membre et l'\'equation caract\'eristique.\\
Résoudre :\\
$$y\prime \prime -6 \cdot  y\prime+9 \cdot  y \ =\ x \cdot  e^{3 \cdot  x}$$
On tape :
$${\tt LDEC(X \cdot EXP(3 \cdot X),X^2-6 \cdot X+9)}$$
On trouve :
$${\tt -(\frac{(18 \cdot X-6)\cdot cC0-(6\cdot X\cdot cC1+X^3)}{6} \cdot EXP(3 \cdot X))}$$
{\tt cC0} et {\tt cC1} sont les constantes d'intégration 
(${\tt y(0)=cC0}$ et ${\tt \ y\prime(0)=cC1}$).

\section{Les expressions trigonométriques}
Toutes les fonctions de ce paragraphe se trouve dans le menu {\tt TRIG} du
bandeau du {\tt CAS}.
\subsection{Transformer les arccos en arcsin : {\tt ACOS2S}}\index{ACOS2S}
{\tt ACOS2S} a comme argument une expression trigonométrique.\\
{\tt ACOS2S}  transforme cette expression en remplaçant :\\
 $\arccos(x)$ par $\displaystyle \frac{\pi}{2}-\arcsin(x)$.\\
On tape :
$${\tt ACOS2S(ACOS(X)+ASIN(X))}$$
On obtient apr\`es simplification :
$${\tt \frac{\pi}{2}}$$
\subsection{Transformer les arcsin en arccos : {\tt ASIN2C}}\index{ASIN2C}
{\tt ASIN2C} a comme argument une expression trigonométrique.\\
{\tt ASIN2C} transforme cette expression en remplaçant :\\
$\arcsin(x)$ par 
$\displaystyle \frac{\pi}{2}-\arccos(x)$.\\
On tape :
$${\tt ASIN2C(ACOS(X)+ASIN(X))}$$
On obtient apr\`es simplification :
$${\tt \frac{\pi}{2}}$$
\subsection{Transformer les arcsin en arctan : {\tt ASIN2T}}\index{ASIN2T}
{\tt ASIN2T} a comme argument une expression trigonométrique.\\
{\tt ASIN2T} transforme cette expression en remplaçant :\\
 $\arcsin(x)$ par 
$\displaystyle \arctan(\frac{x}{\sqrt{1-x^2}})$.\\
On tape :
$${\tt ASIN2T(ASIN(X))}$$
On obtient :
$${\tt ATAN(\frac{X}{\sqrt{1-X^2}})}$$
\subsection{Transformer les arctan en arcsin : {\tt ATAN2S}}\index{ATAN2S}
{\tt ATAN2S} a comme argument une expression trigonométrique.\\
{\tt ATAN2S} transforme cette expression en remplaçant :\\
$\arctan(x)$ par $\displaystyle \arcsin(\frac{x}{\sqrt{1+x^2}})$.\\
On tape :
$${\tt ATAN2S(ATAN(X))}$$
On obtient :
$${\tt ASIN(\frac{X}{\sqrt{X^2+1}})}$$
%Nouveau
\subsection{\'Ecriture des exponentielles en fonctions hyperboliques : {\tt EXP2HYP}}\index{EXP2HYP}
{\tt EXP2HYP} a comme argument une expression contenant des exponantielles.\\
{\tt EXP2HYP} transforme cette expression en utilisant la relation :\\
$\exp(a)=\sinh(a)+\cosh(a)$.\\
On tape :
$${\tt EXP2HYP(EXP(A))}$$
On obtient :
$${\tt SINH(A)+COSH(A)}$$
On tape :
$${\tt EXP2HYP(EXP(-A)+EXP(A))}$$
On obtient :
$${\tt 2 \cdot COSH(A)}$$

\subsection{Transformer en fonction de tan(x/2) : {\tt HALFTAN}}\index{HALFTAN}
{\tt HALFTAN} a comme argument une expression trigonométrique.\\
{\tt HALFTAN} transforme les $\sin(x)$, les $\cos(x)$ et les $\tan(x)$ 
contenus dans l'expression en fonction de $\displaystyle \tan(\frac{x}{2})$.\\
On tape :
$${\tt HALFTAN(\frac{SIN(2 \cdot X)}{1+COS(2 \cdot X)})}$$
On obtient  après simplification :
$${\tt TAN(X)}$$
On tape :
$${\tt HALFTAN( SIN(X)^2+COS(X)^2)}$$
On obtient (${\tt SQ(X)=  X^2}$):
$${\tt {\left(\frac{2 \cdot TAN(\frac{X}{2})}{SQ(TAN(\frac{X}{2}))+1}\right)}^2+ {\left(\frac{1-SQ(TAN(\frac{X}{2}))}{SQ(TAN(\frac{X}{2}))+1}\right)}^2 }$$
On obtient après simplification:\\
$${\tt 1}$$
\subsection{Transformer les exponentielles complexes en sin et en cos : {\tt SINCOS}}\index{SINCOS}
{\tt SINCOS} a comme argument une expression contenant des exponentielles
 complexes.\\
{\tt SINCOS} transforme cette expression en fonction de $\sin(x)$ et de $\cos(x)$.\\
On tape :
$${\tt SINCOS(EXP(i \cdot X))}$$
On obtient apr\`es le passage au mode complexe :
$${\tt COS(X)+i \cdot SIN(X)}$$
\subsection{Transformer tan(x) avec sin(2x) et cos(2x) : {\tt TAN2CS2}}\index{TAN2CS2}
{\tt TAN2CS2} a comme argument une expression trigonométrique.\\
{\tt TAN2CS2} transforme cette  expression en remplaçant :\\
$\tan(x)$ par   $\displaystyle  \frac{1-\cos(2 \cdot x)}{\sin(2 \cdot x)}$\\
On tape :
$${\tt TAN2CS2(TAN(X))}$$
On obtient :
$${\tt \frac{1-COS(2 \cdot X)}{SIN(2 \cdot X)}}$$
\subsection{Transformer tan(x) en sin(x)/cos(x) : {\tt TAN2SC}}\index{TAN2SC}
{\tt TAN2SC} a comme argument une expression trigonométrique.\\
{\tt TAN2SC} transforme cette expression en remplaçant :\\
 $\tan(x)$ par $\displaystyle \frac{\sin(x)}{\cos(x)}$.\\
On tape :
$${\tt TAN2SC(TAN(X))}$$
On obtient :
$${\tt \frac{SIN(X)}{COS(X)}}$$
\subsection{Transformer tan(x) avec sin(2x) et cos(2x) : {\tt TAN2SC2}}\index{TAN2SC2}
{\tt TAN2SC2} a comme argument une expression trigonométrique.\\
{\tt TAN2SC2} transforme cette  expression en remplaçant :\\
$\tan(x)$ par $\displaystyle \frac{\sin(2 \cdot x)}{1+\cos(2 \cdot x)}$.\\
On tape :
$${\tt TAN2SC2(TAN(X))}$$
On obtient :
$${\tt \frac{SIN(2 \cdot X)}{1+COS(2 \cdot X)}}$$
\subsection{Rassembler les sinus et les cosinus de m\^eme angle~: {\tt TCOLLECT}}\index{TCOLLECT}
{\tt TCOLLECT} a comme argument une expression trigonométrique.\\
{\tt TCOLLECT} linéarise cette expression en fonction de $\sin(n \cdot x)$ et 
$\cos(n \cdot x)$  puis rassemble ({\tt en mode réel}) les sinus et les cosinus de 
m\^eme angle.\\
On tape :
$${\tt TCOLLECT(SIN(X)+COS(X))}$$
On obtient :
$${\tt \sqrt2 \cdot COS(X-\frac{\pi}{4})}$$
\subsection{D\'evelopper les expressions transcendentales : {\tt TEXPAND}}\index{TEXPAND}
{\tt TEXPAND} a comme argument une expression transcendentale (une expression 
contenant des fonctions trigonométriques ou contenant des exponentielles et 
des logarithmes).\\
{\tt TEXPAND} développe cette expression en fonction de $\sin(x)$, $\cos(x)$, 
$\exp(x)$ ou $\ln(x)$.\\
Exemple 1 :\\
On tape :
$${\tt TEXPAND( EXP(X+Y))}$$
On obtient :
$${\tt EXP(X)\cdot EXP(Y)}$$
Exemple 2 :\\
On tape :
$${\tt TEXPAND( LN(X*Y))}$$
On obtient :
$${\tt LN(Y)\cdot LN(X)}$$
Exemple 3 :\\
On tape :
$${\tt TEXPAND( COS(X+Y))}$$
On obtient :
$${\tt COS(Y) \cdot COS(X)-SIN(Y) \cdot SIN(X)}$$
Exemple 4 :\\
On tape :
$${\tt TEXPAND( COS(3 \cdot X))}$$
On obtient :
$${\tt 4 \cdot {COS(X)}^3-3 \cdot COS(X)}$$
Exemple 5 :\\
On tape :
$${\tt TEXPAND( \frac{SIN(3 \cdot X)+SIN(7 \cdot X)}{SIN(5 \cdot X)})}$$
On obtient après une simplification ({\tt ENTER}) :
$${\tt 4 \cdot {COS(X)}^2-2}$$
\subsection{Lin\'eariser une  expression trigonom\'etrique : {\tt TLIN}}\index{TLIN}
{\tt TLIN} a comme argument une expression trigonométrique.\\
{\tt TLIN} linéarise cette expression en fonction de $\sin(n \cdot x)$ et $\cos(n \cdot x)$.\\
Exemple 1 :\\
On tape :
$${\tt TLIN(COS(X) \cdot  COS(Y))}$$
On obtient :
$${\tt \frac{1}{2} \cdot COS(X-Y)+\frac{1}{2} \cdot COS(X+Y)}$$
Exemple 2 :\\
On tape :
$${\tt TLIN({COS(X)}^3)}$$
On obtient :
$${\tt \frac{1}{4} \cdot COS(3 \cdot X)+\frac{3}{4} \cdot COS(X)}$$
Exemple 3 :\\
On tape :
$${\tt TLIN(4 \cdot {COS(X)}^2-2)}$$
On obtient :
$${\tt 2 \cdot COS(2 \cdot X)}$$
\subsection{Simplifier en utilisant $\sin(x)^2+\cos(x)^2=1$ : {\tt TRIG}}\index{TRIG}
{\tt TRIG} a comme argument une expression trigonométrique.\\
{\tt TRIG} simplifie cette expression à l'aide de $\sin(x)^2+\cos(x)^2=1$.\\ 
On tape :
$${\tt TRIG(SIN(X)^2+COS(X)^2+1)}$$
On obtient :
$${\tt 2}$$
\subsection{Simplifier en privil\'egiant les cosinus : {\tt TRIGCOS}}\index{TRIGCOS}
{\tt TRIGCOS} a comme argument une expression trigonométrique.\\
{\tt TRIGCOS} simplifie cette expression, en
privilégiant les cosinus,  à l'aide de $\sin(x)^2+\cos(x)^2=1$.\\ 
On tape :
$${\tt TRIGCOS(SIN(X)^4+COS(X)^2+1)}$$
On obtient :
$${\tt COS(X)^4-COS(X)^2+2}$$
\subsection{Simplifier en privil\'egiant les sinus : {\tt TRIGSIN}}\index{TRIGSIN}
{\tt TRIGSIN} a comme argument une expression trigonométrique.\\
{\tt TRIGSIN} simplifie cette expression, en
privilégiant les sinus,  à l'aide de $\sin(x)^2+\cos(x)^2=1$.\\ 
On tape :
$${\tt TRIGSIN(SIN(X)^4+COS(X)^2+1)}$$
On obtient :
$${\tt SIN(X)^4-SIN(X)^2+2}$$
\subsection{Simplifier en privil\'egiant les tangentes : {\tt TRIGTAN}}\index{TRIGTAN}
{\tt TRIGTAN} a comme argument une expression trigonométrique.\\
{\tt TRIGTAN} simplifie cette expression, en
privilégiant les tangentes, à l'aide de $\sin(x)^2+\cos(x)^2=1$.\\ 
On tape :
$${\tt TRIGTAN(SIN(X)^4+COS(X)^2+1)}$$
On obtient :
$${\tt \frac{2 \cdot TAN(X)^4+3 \cdot TAN(X)^2+2}{TAN(X)^4+2 \cdot TAN(X)^2+1}}$$
%Nouveau
\subsection{Simplification avec des exponentielles complexes : {\tt TSIMP}}\index{TSIMP}
{\tt TSIMP} a comme argument une expression.\\
{\tt TSIMP} simplifie toutes les expressions en les transformant en
 exponentielles complexes, puis en 
réduisant le nombre de variables (fait passer en {\tt mode complexe}).\\
On n'utilise {\tt TSIMP} qu'en dernier ressort.\\ 
On tape :
$${\tt TSIMP(\frac{SIN(3 \cdot X)+SIN(7 \cdot X)}{SIN(5 \cdot X)})}$$
On obtient après simplification (en recopiant 2 fois le résultat) :
$${\tt \frac{EXP(i \cdot X)^4+1}{EXP(i \cdot X)^2}}$$

%Nouveau
\section{Num\'ero de version du CAS : {\tt VER}}\index{VER}\index{VERSION}
{\tt VER} indique le numéro de la version de votre {\tt CAS}.\\
On tape :\\
{\tt VER}\\
On obtient :
$${\tt 4.20050219}$$
ce qui veut dire c'est la quatrième version qui date du 18 f\'evrier 2005.\\
Alors que {\tt VERSION} indique le numéro de la version de la {\tt ROM}.\\
On tape depuis l'\'ecran {\tt HOME}:\\
{\tt VERSION}\\
On obtient :
$${\tt Version \ HP39-E \ Copyright\ HP \ 1993 2004}$$ 

\chapter{Exercices traités avec la HP40}
\section{Introduction }
Commencez par sélectionner le {\tt CAS} :\\
 pour cela appuyer sur {\tt F6} pour {\tt CAS} du bandeau. \\
%Si {\tt CAS} n'apparait pas dans le bandeau appuyer sur {\tt F2} cela le fera appara\^itre.\\
Les différentes commandes utilisées dans ce chapitre se trouvent :\\
- dans les menus de l'éditeur d'\'equation :\\ 
{\tt ALGB (CFG  DEF FACTOR SUBST TEXPAND)}\\
{\tt DIFF (DERIVX DERIV INTVX LIMIT TABVAR)}\\
%{\tt GRAPH (SIGNTAB TABVAR)}\\
{\tt REWRITE (DISTRIB LIN POWEXPAND XNUM)}\\
{\tt SOLV (LINSOLV)}\\
- et dans le menu de la touche {\tt MATH} :\\
{\tt Complex   (DROITE RE IM) },\\
{\tt Integer (IEGCD ISPRIME? PROPFRAC)}.\\ 
Puis mettre la calculatrice en mode algébrique réel exact :\\
pour cela appuyer sur 
%{\tt SHIFT SYMB (SETUP)}
 {\tt ALGB} du bandeau et mettre en surbrillance {\tt CFG}, puis {\tt OK} du 
bandeau. \\
Il suffit alors de choisir {\tt Default cfg} puis {\tt OK} du bandeau, vous 
pouvez aussi choisir le mode {\tt Direct} ou le mode pas à pas 
({\tt Step/Step}), puis 
quitter ce menu de configuration avec {\tt CANCEL} du bandeau.\\
Après chaque commande, il faut taper {\tt ENTER}, on oubliera souvent de le 
spécifier!!!\\
Dans ce qui suit, vous trouverez une partie de l'épreuve de mathématiques 1999 
 du Brevet d'Amiens et de l'épreuve de mathématiques 1999 (série S)  du Bac.\\
 On a essayé de faire faire le plus de choses possibles à la {\tt HP40GS}...\\
On remarquera, qu'il reste quand m\^eme à l'élève le soin de justifier les 
calculs et de connaitre la démarche à suivre lorsqu'il utilise le pas à pas 
actif....  
\section{Exercices donnés au Brevet}
\subsection{Exercice 1}
On pose $A$ :\\
$$\frac{\frac{3}{2}-1}{\frac{1}{2}+1}$$
Vous ferez appara\^itre chaque étape de calcul et vous donnerez le résultat 
de $A$ sous la forme d'une fraction irréductible.\\

Dans l'éditeur d'\'equation on entre la valeur de A,  on tape :\\
${\tt 3 \ \div \ 2\ \rhd \ -\ 1\ \rhd \rhd \ \div \ 1 \ \div \ 2\ \rhd \ +\ 1}$\\
$ \rhd$ sélectionne le dénominateur.\\ 
{\tt ENTER} fait la simplification du dénominateur, on obtient :
 $${\tt \frac{\frac{3}{2}-1}{\frac{3}{2}}}$$
puis on sélectionne le numérateur avec $\lhd$, \\
{\tt ENTER} fait la simplification du numérateur, on obtient :
$${\tt \frac{\frac{1}{2}}{\frac{3}{2}}}$$
$\bigtriangleup$ sélectionne la fraction entière et {\tt ENTER} fait la 
simplification de la fraction, on obtient :
$${\tt \frac{1}{3}}$$
\subsection{Exercice 2}
On considère le nombre $C$ :
$$C = 2\sqrt{45}+3\sqrt{12}-\sqrt{20}-6\sqrt3$$
Écrire $C$ sous la forme $d \sqrt5$ o\`u $d$ est un nombre entier.\\

Dans l'éditeur d'\'equation on entre la valeur de $C$, on tape :\\
${\tt 2\sqrt{\ }\ 45\ \rhd \rhd\ +\ 3\sqrt{\ }\ 12\ \rhd \rhd\ -\ \sqrt{\ }\ 20 \ \rhd \rhd\ -\ 6\sqrt{\ }\ 3}$\\
$\ \rhd \rhd \rhd $ sélectionne ${\tt -6\sqrt3}$ et\
$\lhd$ sélectionne ${\tt -\ \sqrt{20}}$\\
$\triangledown \triangledown$ sélectionne ${\tt 20}$\\
On appelle la commande {\tt FACTOR} qui se trouve dans le menu {\tt ALGB},\\
puis {\tt ENTER} effectue la factorisation de 20 en ${\tt 2^2 \cdot 5}$,\\
$\bigtriangleup$ sélectionne ${\tt \sqrt{2^2\cdot 5}}$ et {\tt ENTER} renvoie 
${\tt 2\sqrt5}$\\
$\rhd$ sélectionne ${\tt - 2\sqrt{5}}$\\
 ${\tt SHIFT \lhd}$ échange
 ${\tt 3 \sqrt{12}}$ et ${\tt -2 \sqrt{5}}$\\
$\lhd$ sélectionne ${\tt \ 2 \sqrt{45}}$\\
$\triangledown \rhd \triangledown$ sélectionne ${\tt 45}$.\\
On appelle la commande {\tt FACTOR} qui se trouve dans le menu {\tt ALGB},\\
puis {\tt ENTER} effectue la factorisation de 45 en ${\tt 3^2 \cdot 5}$,\\
$\bigtriangleup$ sélectionne ${\tt \sqrt{3^2\cdot 5}}$ et {\tt ENTER} remplace
${\tt \sqrt{3^2\cdot 5}}$ par  ${\tt 3\sqrt5}$,\\
$ \bigtriangleup$ sélectionne ${\tt 2 \cdot 3\sqrt5}$,\\
${\tt SHIFT \rhd}$ sélectionne 
 ${\tt 2 \cdot 3 \sqrt{5}}$ et ${\tt -2 \sqrt{5}}$
puis {\tt ENTER} effectue l'opération et on obtient :\\
 ${\tt 4\sqrt{5}}$.\\
Il reste à transformer ${\tt 3 \sqrt{12}}$ et voir que ce terme se simplifie
 avec ${\tt -6 \sqrt 3}$. \\
Le résultat est donc :\\
$C=4 \sqrt5$
\subsection{Exercice 3}
On considère l'expression $D=(3x-1)^2-81$.\\
1.Développer et réduire $D$.\\
2.Factoriser $D$.\\
3.Résoudre l'équation : $(3x-10)(3x+8)=0$.\\
4.Calculer $D$ pour $x=-5$.\\

1. On écrit $D$ dans l'éditeur d'\'equation.\\
On tape :\\
${\tt 3\ X \ - \ 1 \rhd \rhd \   x^y \ 2 \rhd \ - \ 81}$\\
On sélectionne ${\tt (3X-1)^2}$ ($\rhd \ \lhd$) puis {\tt ENTER} développe 
cette expression.\\
 On obtient :\\
${\tt 9X^2-6X+1-81}$\\
Pour faire du pas à pas actif, appuyer sur  {\tt MEMORY (SHIFT ,)}
pour retrouver l'expression pr\'ec\'edente, puis on applique :\\
{\tt POWEXPAND} à ${\tt (3 \cdot X-1)^2}$
puis on applique {\tt DISTRIB} au résultat obtenu pour obtenir :\\
${\tt 9X^2-6X+1}$\\
$\bigtriangleup$ sélectionne toute l'expression et {\tt ENTER} la réduit en :\\
${\tt 9X^2-6X-80}$\\
2. On va chercher $D$ dans l'historique (touche {\tt SYMB}), on met en 
surbrillance
$D$ puis on valide avec {\tt ENTER}.\\
On appelle {\tt FACTOR} et on obtient :\\
${\tt (3X+8)(3X-10)}$\\
On aurait pu aussi sélectionner {\tt 81} pour le factoriser en ${\tt 3^4}$ et 
reconnaitre la diffèrence de deux carrés...\\
3. On appelle la commande {\tt SOLVEVX}, puis {\tt ENTER} renvoie :
$${\tt (X=-\frac{8}{3})\ OR\ (X=\frac{10}{3})}$$
4. On va chercher $D$ dans l'historique (touche {\tt SYMB}),  
on met en surbrillance $D$ puis on valide avec {\tt ENTER}.\\
 On appelle la fonction {\tt SUBST}, on complète le deuxième argument :\\
{\tt X=-5}\\
 Puis on appuie sur $\rhd \rhd \rhd$ pour sélectionner le tout,
 puis {\tt ENTER}.\\
On obtient :\\
${\tt (3 \cdot (-5)-1)^2-81}$
puis {\tt ENTER} donne le résultat :\\
{\tt 175}\\  
Donc $D=175$ quand $X=-5$.
\subsection{Exercice 4}
Un confiseur prépare deux sortes de boites contenant des tuiles et des
 macarons.\\
Dans le paquet de la  première sorte, il place 17 tuiles et 20 macarons.\\
Dans le paquet de la deuxième sorte, il place 10 tuiles et 25 macarons.\\
Ces paquets sont vendus 90F.\\
Calculer le prix d'une tuile et celui d'un macaron.\\

Soit $x$ le prix en Francs d'une tuile et $y$ celui d'un macaron.\\
On a à résoudre :
$$\left\{
\begin{array}{rl}
17x+20y&=90\\
10x+25y&=90
\end{array}
\right.
$$

On tape dans l'éditeur d'\'equation :\\
${\tt LINSOLVE(17 \cdot X+20 \cdot Y-90\ AND\ 10 \cdot X+25 \cdot Y-90\ ,\ X\ AND\ Y)}$\\
Si on est en mode pas à pas on obtient :\\

${\tt L_2=17L_2-10L_1}$\\
$\left[
\begin{array}{ccc}
17& 20& -90\\
10& 25 & -90
\end{array}
\right]$\\

${\tt L_1=45L_1-4L_2}$\\
$\left[
\begin{array}{rrr}
17& 20& -90\\
0& 225 & -630
\end{array}
\right]$\\

{\tt Reduction  Result}\\
$\left[
\begin{array}{rrr}
765& 0& -90\\
0& 225 & -630
\end{array}
\right]$\\

puis {\tt ENTER} donne le résultat :
$${\tt (X=2)\ AND\ (Y=\frac{14}{5})}$$
En mettant en surbrillance ${\tt \displaystyle \frac{14}{5}}$, et en appuyant
sur la touche {\tt NUM}, (ou en appellant {\tt XNUM}), on obtient :
 $${\tt (X=2)\ AND\ (Y=2.8)}$$ 
Le prix d'une tuile est donc de 2 francs et celui d'un macaron de 2.80 francs.\\
{\sc Attention} ! vous \^etes passer en mode {\tt Approx}, repasser en mode
{\tt Exact} avec {\tt CFG}. 
\subsection{Exercice 5}\index{DROITE}
Le plan muni d'un repère orthonormal (O,i,j) et l'unité de longueur est le 
centimètre. On appelle $A$ et $B$ les points dont les coordonnées sont :\\
$A$(-1 ; 3) et $B$(-3 ; -1).\\
1/ Calculer $AB$, en donnant sa valeur exacte en centimètres.\\
2/ Determiner l'équation de la droite $AB$.\\
Première façon :\\
On tape :\\
{\tt STORE((-1,3),A)}\\
si necessaire, il faut accepter de passer en mode {\tt Complexe}.\\
{\tt STORE((-3,-1),B)}\\
Le vecteur $\overrightarrow{AB}$ a pour coordonnées ${\tt B-A}$.\\
1/ On tape :
$${\tt ABS(B-A)}$$
On obtient :
$${\tt 2\sqrt5}$$
2/ On tape ({\tt DROITE} se trouve dans le menu {\tt Complex}de la touche 
{\tt MATH} :
$${\tt DROITE(A,B)}$$
On obtient :
$${\tt Y=2 \cdot X+5}$$
OU deuxième façon :\\
1/ On tape directement :
$${\tt (-3,-1)-(-1,3)}$$
On obtient :
$${\tt -2-4 \cdot i}$$
On applique au r\'esultat la commande {\tt ABS} :
$${\tt ABS(-2-4i)}$$
On obtient :
$${\tt 2\sqrt5}$$
2/ On tape :
$${\tt DROITE((-1,3),(-3,-1))}$$
On obtient :
$${\tt Y=2 \cdot (X--1)+3}$$
puis {\tt ENTER} donne :
$${\tt Y=2 \cdot X+5}$$
\section{Exercices donnés au  Bac}
\subsection{Exercice 1}
\subsubsection{L'\'enonc\'e de l'exercice 1}
Le plan $P$ est rapport\'e au rep\`ere orthonormal direct 
(O; $\overrightarrow u,\overrightarrow v$).\\
On prendra 4 cm comme unit\'e sur les deux axes.\\
On consid\`ere l'application $F$ du plan dans lui-m\^eme qui, \`a tout point 
$m$ d'affixe $z$ associe le point $M$ d'affixe $\frac{1}{2}z^2-z$.
L'objet de cet exercice est de tracer la courbe $\Gamma$ décrite par $M$
 d'affixe $\frac{1}{2}z^2-z $, lorsque $m$ d'affixe $z$ décrit le cercle 
 \textit{C} de centre $O$ et de rayon 1.
Soit $t$ un réel de $[-\pi , \pi]$ et $m$ le point de \textit{C} d'affixe 
$z=e^{i \cdot t}$.

1/ Montrer que l'image $M$ de $m$ par $F$ est le point de coordonn\'ees :\\
$x(t)=1/2\cos(2t)-\cos(t)$\\
$y(t)=1/2\sin(2t)-\sin(t)$\\
lorsque $t \in [-\pi , \pi]$\\
Ces relations constituent une repr\'esentation param\'etrique de
la courbe $\Gamma$.

2/ Comparer $x(-t)$ et $x(t)$ d'une part,  $y(-t)$ et $y(t)$ d'autre part.\\
En d\'eduire que $\Gamma$ admet un axe de sym\'etrie que l'on pr\'ecisera.

3/ Montrer que $x'(t)=\sin(t)(1-2\cos(t))$.\'Etudier les variations de $x$ sur 
$[0,\pi]$.

4/ Montrer que $y'(t)=(\cos(t)-1)(1+2\cos(t))$.\'Etudier les variations de $y$ 
sur $[0,\pi]$.

5/ Dans un m\^eme tableau faire figurer les variations de $x$ er de $y$ 
sur $[0,\pi]$.

6/ Placer les points de $\Gamma$ correspondant aux valeurs 0, $\frac{\pi}{3}$, 
$\frac{2\pi}{3}$ et $\pi$ du param\`etre $t$ et tracer les tangentes en ces 
points.
Tracer la partie de $\Gamma$ obtenue lorsque $t$ d\'ecrit  $[0,\pi]$, puis
tracer $\Gamma$ compl\'etemment.
\subsubsection{Correction} 
\begin{enumerate}
\item Calcul des coordonnées de $M$ :\\
On entre tout d'abord l'expression $\frac{1}{2}\cdot z^2-z $ dans l'\'editeur d'\'equation.\\
On tape dans l'\'editeur d'\'equation :\\
$${\tt \ ALPHA \ Z \ x^y \ 2 \ \rhd\ \div\  2\ \rhd\ -\ ALPHA \ Z \ \rhd\ 
\rhd\ }$$
L'expression ${\tt \displaystyle \frac{Z^2}{2}-Z}$ est sélectionnée.\\
Puisque $z=e^{i \cdot t}$, on appelle  {\tt SUBST} et on complète le deuxième 
argument :
$${\tt SUBST(\frac{Z^2}{2}-Z,Z=EXP(i\times t))}$$
la réponse est :
$${\tt \frac{EXP(i\cdot t)^2}{2} - EXP(i\cdot t)} $$
On linéarise ensuite l'expression avec l'appel de :\\
{\tt LIN}\\
la réponse est :
$${\tt \frac{1}{2} \cdot EXP(2\cdot i\cdot t)+-1\cdot EXP(i\cdot t) }$$
\begin{itemize}
\item
Puis on appelle {\tt STORE} que l'on compléte pour avoir :\\
$${\tt STORE(\frac{1}{2} \cdot EXP(2\cdot i\cdot t)+-1\cdot EXP(i\cdot t),M)}$$
puis {\tt ENTER}.\\
On cherche maintenant la partie réelle de cette expression avec l'appel de :
$${\tt RE} $$ 
la réponse est :
$${\tt \frac {COS ( t\cdot 2)-2\cdot COS(t)}{2}}$$
Pour d\'efinir la fonction $x(t)$, il faut changer le contenu de {\tt VX}:\\
{\tt SHIFT HOME (MODES)} puis {\tt Indep var : t}.\\
On définit alors la fonction $x(t)$, on appelle  {\tt DEF} :\\
{\sc Attention}!!!
Il faut taper {\tt = X(t)}, puis échanger {\tt X(t)} et l'expression 
${\tt \frac {COS ( t\cdot 2)-2\cdot COS(t)}{2}}$. Pour cela, mettre en
surbrillance {\tt X(t)} avec $\rhd$, puis taper ${\tt SHIFT \lhd}$ pour 
l'échange.\\
On obtient :\\ 
$${\tt DEF\ (X(t) = \frac {COS ( t\cdot 2)-2\cdot COS(t)}{2})}$$
puis {\tt ENTER}
\item
On cherche ensuite la partie imaginaire on tape :
$${\tt IM(M)} $$ 
la réponse est :
$${\tt \frac {SIN ( t\cdot 2)-2\cdot SIN(t)}{2}}$$
On définit alors la fonction $y(t)$ (de la m\^eme façon que $x(t)$) :
$${\tt DEF( Y(t) =\frac {SIN ( t\cdot 2)-2\cdot SIN(t)}{2}}$$
puis {\tt ENTER}
\end{itemize}
\item On cherche un axe de symétrie de $\Gamma$, pour cela on calcule $x(-t)$ 
et $y(-t)$ en tapant :
$${\tt X(-t)\ ENTER}$$
la réponse est :
$${\tt \frac {COS ( t\cdot 2)-2\cdot COS(t)}{2}}$$
On a donc : $x(-t)\ =\ x(t)$\\
puis :
$${\tt Y(-t)\ ENTER}$$
la réponse est :
$${\tt \frac {-SIN ( t\cdot 2)+2\cdot SIN(t)}{2}}$$
On a donc : $ y(-t)\ =\ -y(t)$\\
Si $M_1 (x(t), y(t))$ est sur $\Gamma$, amors $ M_2 (x(-t),y(-t))$ est aussi 
sur $\Gamma$.\\
On vient de monter que $M_1 $ et $M_2$ sont symétriques par rapport 
à $Ox$, donc on en déduit que l'axe  $Ox$ est  un axe de symétrie de $\Gamma$.
\item Calcul de $x'(t)$ :\\
On tape :
$${\tt DERVX (X(t))}$$
la réponse est :
$${\tt \frac {2 \cdot (-2 \cdot SIN ( t\cdot 2)-2\cdot(- SIN(t)))}{4}}$$
 après simplification ({\tt ENTER}), la réponse est :
 $${\tt -SIN ( t)\cdot (2 \cdot COS(t)- 1)}$$
On peut alors définir la fonction $x'(t)$ en appelant {\tt DEF}.\\
Il faut taper {\tt = X1(t)} puis,\\
 échanger {\tt X1(t)} et l'expression 
${\tt -SIN ( t)\cdot (2 \cdot COS(t)- 1)}$. Pour cela mettre en surbrillance 
{\tt X1(t)}  ($\rhd$) puis,
taper ${\tt SHIFT \ \lhd}$ pour l'échange.\\
On  obtient :\\ 
$${\tt DEF(\ X1(t)= -SIN ( t)\cdot (2 \cdot COS(t)- 1)) }$$
puis {\tt ENTER}\\
\item Calcul  de $y'(t)$ :\\
On tape :
$${\tt DERVX (Y(t))}$$
la réponse est :
$${\tt \frac {2 \cdot (2 \cdot COS( t\cdot 2)-2\cdot COS(t))}{4}}$$
  après simplification ({\tt ENTER}) la réponse est :
$${\tt  2 \cdot COS(t)^2- COS(t)-1}$$
puis on factorise :
$${\tt FACTOR(2 \cdot COS(t)^2- COS(t)-1)} $$
puis {\tt ENTER}\\
la réponse est :
 $${\tt (COS ( t)-1)\cdot (2 \cdot COS(t)+1)}$$
On peut alors définir la fonction $y'(t)$, on tape (comme pour $x'(t)$:
$${\tt DEF(\ Y1(t)=(COS ( t)-1)\cdot (2 \cdot COS(t)+1))}$$
%debut
\item Variations de $x(t)$ et de $y(t)$\\
Pour cela on trace sur le m\^eme graphique $x(t)$ et $y(t)$.\\
V\'erifier que {\tt t} est la variable contenue dans {\tt VX} (touches 
{\tt SHIFT SYMB (SETUP)}).
 Puis, on tape dans l'éditeur d'\'equation {\tt X(t)} puis {\tt ENTER}.\\
On appuie alors sur la touche {\tt  PLOT}.\\
On sélectionne {\tt Function} à l'aide de la boite de dialogues et {\tt F1} 
comme destination.\\
Puis on fait la m\^eme chose avec {\tt Y(t)} en chosissant {\tt F2} 
comme destination.\\
Puis on quitte le {\tt CAS} avec la touche {\tt HOME}, pour faire le 
graphe des fonctions ainsi recopiées, on se place dans
 l'{\tt Aplet Function}, et on coche {\tt F1} et  {\tt F2}. 
Il faut régler les paramètres de la fen\^etre ({\tt  SHIFT PLOT}), puis 
{\tt  PLOT} pour avoir le graphique.
\item Tracé de la courbe $\Gamma$ :
\begin{itemize}
\item Valeurs de $x(t)$ et de $y(t)$\\
On trouve les valeurs de $x(t)$ et de $y(t)$ pour 
$t=0,\frac{\pi}{3},\frac{2 \cdot \pi}{3},\pi$ en tapant successivement :
$${\tt X(0) \ ENTER}$$
réponse : $\frac{-1}{2}$
$${\tt X(\frac{\pi}{3}) \ ENTER\ ENTER}$$
réponse : $\frac{-3}{4}$
$${\tt X(2 \times \frac{\pi}{3}) \ ENTER\ ENTER}$$
réponse : $\frac{1}{4}$
$${\tt X(\pi) \ ENTER\ ENTER}$$
réponse : $\frac{3}{2}$
$${\tt Y(0) \ ENTER}$$
réponse : $0$
$${\tt Y(\frac{\pi}{3}) \ ENTER\ ENTER}$$
réponse : $\frac{-\sqrt3}{4}$
$${\tt Y(2 \times \frac{\pi}{3}) \ ENTER\ ENTER}$$
réponse : $\frac{-3 \cdot \sqrt 3}{4}$
$${\tt Y(\pi) \ ENTER\ ENTER}$$
réponse : $0$
\item Pente des tangentes ($m=\frac{y'(t)}{x'(t)}$)\\
On trouve les valeurs  de $\frac{y'(t)}{x'(t)}$ pour 
$t=0,\frac{\pi}{3},\frac{2 \cdot \pi}{3},\pi$ en tapant successivement :
$${\tt LIMIT(\frac{Y1(t)}{X1(t)},t=0) \ ENTER}$$
réponse : $0$
$${\tt  LIMIT(\frac{Y1(t)}{X1(t)},t=\pi \div 3) \ ENTER}$$
La machine nous dit :\\
{\tt UNSIGNE INF. SOLVE?} c'est \`a dire qu'elle a trouv\'e l'infini sans 
signe et elle demande si il faut chercher ce signe  : r\'epondre {\tt NO}.\\
réponse : $\infty$
$${\tt  LIMIT(\frac{Y1(t)}{X1(t)},t=2 \times \pi \div 3) \ ENTER}$$
réponse : $0$
$${\tt LIMIT(\frac{Y1(t)}{X1(t)},t=\pi) \ ENTER}$$
La machine nous dit :\\
{\tt UNSIGNE INF. SOLVE?} c'est \`a dire qu'elle a trouv\'e l'infini sans signe et elle demande si il faut chercher ce signe  : r\'epondre {\tt NO}.\\
réponse : $\infty$\\
Voici les variations de $x(t)$ et de $y(t)$
$$\begin{array}{|c|ccccccc|}\hline t & 0 & & \frac{\pi}{3} & & \frac{2\pi}{3} & &\pi \\\hline
x'(t)&0&-&0&+&\sqrt3&+&0\\\hline
x(t)&\frac{-1}{2} & \downarrow & \frac{-3}{4} & \uparrow &\frac{1}{4} & \uparrow &\frac{3}{2}\\\hline
y(t)&0&\downarrow & -\frac{\sqrt3}{4} &\downarrow & \frac{-3\sqrt3}{4} & \uparrow & 0\\\hline
y'(t)&0&-&-1&-&0&+&2\\\hline
m &0&&\infty&&0&&\infty\\\hline
\end{array}$$
%debut
\item Courbe $\Gamma $ :\\
On fait ensuite le tracé de la courbe en paramétrique.\\
On tape ${\tt X(t)+i \times Y(t)}$ dans l'éditeur d''équations puis 
{\tt ENTER}.\\ 
 On tape ensuite :\\ 
{\tt PLOT} et
on sélectionne {\tt Parametric}, à l'aide de la boite de dialogues et
  {\tt X1,Y1} comme destination.
Puis on quitte le {\tt CAS} avec la touche {\tt HOME}, et pour faire le 
graphe de la courbe  $\Gamma $  on lance l'{\tt Aplet Parametric}. 
\end{itemize}
\end{enumerate}
\subsection{Exercice 2 (de spécialité)}
\subsubsection{L'\'enonc\'e de l'exercice 2}
Pout tout entier naturel $n$ non nul, on consid\`ere les nombres :\\
$a_n=4\times 10^n-1,\ \  b_n=2\times 10^n-1,\ \  c_n=2\times 10^n+1$.

1/ \\
a) Calculer $a_1,b_1,c_1,a_2,b_2,c_2,a_3,b_3$ et $c_3$.\\
b) Combien les \'ecritures d\'ecimales des nombres $a_n$ et $c_n$ ont-elles de 
chiffres ? Montrer que  $a_n$ et $c_n$ sont divisibles par 3.\\
c) Montrer en utilisant la liste des nombres premiers inf\'erieurs \`a 100
qur $b_3$ est premier.\\
d) Montrer que pour tout entier naturel non nul $n$, $b_n\times c_n=a_{2n}$.\\
En d\'eduire la d\'ecomposition en produit de facteurs premiers de $a_6$.\\
e) Montrer que PGCD($b_n,c_n$)=PGCD($c_n,2$). En d\'eduire que $b_n$ et $c_n$
sont premiers entre eux.

2/ On consid\`ere l'\'equation :\\
 $$(1)\ \ b_3x+c_3y=1$$
d'inconnues les entiers relatifs $x$ et $y$.\\
a) Justifier le fait que (1) poss\`ede au moins une solution.\\
b) Appliquer l'algorithme d'Euclide aux nombres $c_3$ et $b_3$ ; en d\'eduire une solution particuli\`ere de (1).\\
c) R\'esoudre l'\'equation (1). 

\subsubsection{Correction}
On définit pour n entier naturel :
$$a_n=4 \times 10^n-1,\  b_n=2 \times 10^n-1 \mbox{ et } c_n=2 \times 10^n+1$$
On tape donc :
$${\tt DEF(A(N)=4 \cdot 10^N-1)} $$
$${\tt DEF(B(N)=2 \cdot 10^N-1)} $$
$${\tt DEF(C(N)=2 \cdot 10^N+1)} $$
\begin{enumerate}
\item
\begin{itemize}
\item a) Calcul de $a_1, b_1, c_1, a_2, b_2, c_2, a_3, b_3, c_3$ :\\
Il suffit de taper :
$${\tt A(1)}$$
réponse 39
$${\tt B(1)}$$
réponse 19
$${\tt C(1)}$$
réponse 21
$${\tt A(2)}$$
réponse 399
$${\tt B(2)}$$
réponse 199
$${\tt C(2)}$$
réponse 201
$${\tt A(3)}$$
réponse 3999
$${\tt B(3)}$$
réponse 1999
$${\tt C(3)}$$
réponse 2001
\item b) nombre de chiffres et divisibilité\\
Ici, la calculatrice n'est l\`a que pour faire des essais pour différentes
 valeurs de $n$...\\
On sait que les entiers $k$ vérifiant :
$$10^n \leq k < 10^{n+1} $$
ont $(n+1)$ chiffres dans l'écriture décimale.\\
On a :
$$10^n\ <\ 3 \cdot 10^n\ <\ a_n\ < \ 4 \cdot 10^n\ <\  10^{n+1}$$
$$ 10^n\ <\ b_n\ < \ 2 \cdot 10^n\ < \ 10^{n+1}$$
$$10^n\ <\ 2 \cdot 10^n\ <\ c_n\ < \ 3 \cdot 10^n\ <\  10^{n+1}$$
donc $a_n,\ b_n,\ c_n$ ont $(n+1)$ chiffres dans l'écriture décimale.\\
De plus $d_n=10^n-1$ est divisible par 9, car son écriture décimale ne
comporte que des 9.\\
 On a 
$$a_n=3 \cdot 10^n\ +\ d_n$$
et $$c_n=3 \cdot 10^n\ -\ d_n$$
donc $a_n$ et $c_n$ sont divisibles par 3. 
\item c) $b_3$ est premier\\
On tape :
$${\tt ISPRIME? (B(3))}$$
On obtient :
$${\tt 1.}$$
ce qui veut dire {\tt vrai}\\
Pour montrer que $b_3=1999$ est premier, il suffit de tester si 1999 est
 divisible par tous les nombres premiers inférieurs ou égaux à $\sqrt{1999}$.\\
Comme on a $1999<2025=45^2$, on teste la divisibilité de 1999 avec :\\
$n=2, 3, 5, 7, 11, 13, 17, 19, 23, 29, 31, 37, 41$. \\
1999 n'étant divisible par aucun de ces nombres on en déduit que 1999 est 
premier.
\item d)  $a_{2n}=b_n \times c_n$\\
On tape :
$${\tt B(N)\cdot C(N)}$$
On obtient :
$${\tt 4 \cdot {(10^N)}^2-1}$$
qui est bien la valeur de $a_{2n}$\\
Décomposition en facteur premier de $a_6$\\
On tape :
$${\tt FACTOR(A(6))}$$
On obtient :
$${\tt 3 \cdot 23 \cdot 29 \cdot 1999}$$
\item e) $b_n \mbox{ et } c_n $ sont premiers entre eux.\\
Ici, la calculatrice n'est l\`a que pour faire des essais pour différentes
 valeurs de $n$... \\
Pour montrer que $c_n$ et $b_n$ sont premiers entre eux il suffit de remarquer
 que :
$$c_n=b_n+2$$
Ainsi, les diviseurs communs à $c_n$ et $b_n$ sont les diviseurs communs à
$b_n $ et $2$ et sont aussi, les diviseurs communs à $c_n$ et $2$.
$b_n $ et $2$ sont premiers entre eux car $b_n$ est un nombre
 premier différent de $2$. Donc 
$$PGCD(c_n,\ b_n)=PGCD(c_n,\ 2)=PGCD(b_n,\ 2)=1$$ 
\end{itemize}
\item On considère l'équation :
$$b_3 \cdot x + c_3 \cdot y =1$$
\begin{itemize}
\item a) Il y a au moins une solution car il s'agit de l'identité de Bézout.\\
En effet, le théorème de Bézout dit :\\
 Si $a$ et $b$ sont premiers entre eux, il existe $x$ et $y $ vérifiant :
$$a \cdot x + b \cdot y =1$$
 Donc, l'équation :
$$b_3 \cdot x + c_3 \cdot y =1$$ 
a au moins une solution.\\
\item b) On tape :
$${\tt IEGCD(B(3),C(3))}$$
On obtient :
$${\tt 1000\ AND\ -999 =1}$$
Cela veut dire que l'on a :
$$b_3 \times 1000 +c_3 \times (- 999)=1$$
on a donc une solution particulière : \\
$x=1000, \ y=-999$.\\
\`A la main, on écrit :\\
$ c_3\ =\ b_3\ +\ 2$ et $b_3\ =\ 999\ \times \ 2 \ +\ 1$\\
donc,  $b_3\ =\ 999\ \times \ (c_3 \ -\ b_3) \ +\ 1$
ainsi :
$$b_3 \times 1000 +c_3 \times (- 999)\ =\ 1$$
\item c)
Ici, la calculatrice ne peut pas trouver la solution générale.\\
On a :
$$b_3 \cdot x + c_3 \cdot y\ =\ 1$$
et 
$$b_3 \times 1000 +c_3 \times (- 999)\ =\ 1$$
donc par soustraction, on a :
$$b_3 \cdot (x-1000 )+ c_3 \cdot (y+999)\ =\ 0$$
ou encore :
$$b_3 \cdot (x-1000 )\ =\ - c_3 \cdot (y+999)\ $$
D'après le théorème de Gauss : $c_3$ est premier avec $b_3$ donc, $c_3$ divise 
$(x-1000)$.\\
Il existe donc $ k\ \in Z$ tel que :
$$(x-1000)=k \times c_3 $$
et
$$-(y+999)=k \times b_3$$
Réciproquement, soit
 $$x\ =\ 1000\ +\ k \times\ c_3$$
et
$$y\ =\ -999\ -\ k \times\ b_3 \ \mbox{   pour   }\ k\ \in Z$$
On a :
$$b_3 \cdot x+ c_3 \cdot y =b_3 \times 1000 +c_3 \times (- 999)\ =\ 1$$
La solution générale est donc :\\
$\mbox{pour tout } k\ \in Z$,\\
$$x\ =\ 1000\ +\ k \times\ c_3$$
$$y\ =\ -999\ -\ k \times\ b_3$$
\end{itemize}
\end{enumerate}
\subsection{Exercice 3 (pas de spécialité)}
\subsubsection{L'\'enonc\'e de l'exercice 3}
Dans cet exercice, $n$ est un entier naturel. \\
On considère la suite $u_n$ d\'efinie par :
$$u_n=\int _0 ^2\ \frac{2x+3}{x+2}\ e^\frac{x}{n}\ dx$$
1/\\
a) Soit $g$ la fonction d\'efinie sur [0,2] par 
$\displaystyle g(x)=\frac{2x+3}{x+2}$.\\
\'Etudier les variations de $g$ sur [0,2]. En d\'eduire que, pour tout r\'eel 
$x$ dans [0,2], $\displaystyle\frac{3}{2} \leq g(x) \leq \frac{7}{4}$.\\
b) Montrer que, pour tout r\'eel $x$ dans [0,2], on a
$\displaystyle\frac{3}{2} e^\frac{x}{n}\leq g(x)e^\frac{x}{n} \leq \frac{7}{4}e^\frac{x}{n}$.\\
c) Par int\'egration en d\'eduire que :
$$\frac{3}{2}n (e^\frac{2}{n}-1)\leq u_n \leq \frac{7}{4} n (e^\frac{2}{n}-1)$$
d) On  rappelle que $\displaystyle \lim_{h \rightarrow 0}\frac{e^h-1}{h}=1$.\\
Montrer que, si $u_n$ poss\`ede une limite $L$, alors 
$\displaystyle 3 \leq L \leq  \frac{7}{2}$.\\
2/\\
a) V\'erifier que, pour tout $x$ dans [0,2], on a 
$\displaystyle \frac{2x+3}{x+2}=2-\frac{1}{x+2}$.\\
En d\'eduire l'integrale $I=\int _0 ^2\ \frac{2x+3}{x+2}\ dx$.\\
b) Montrer que, pour tout $x$ dans [0,2], on a 
$\displaystyle 1 \leq e^\frac{x}{n}\leq e^\frac{2}{n}$.\\
En d\'eduire que $\displaystyle 1 \leq u_n \leq e^\frac{2}{n}I$.\\
c) Montrer que ($u_n$) est convergente et d\'eterminer sa limite $L$
\subsubsection{Correction}
Vérifiez avant de commencer que vous \^etes bien en mode réel exact avec 
{\tt X} comme variable courante, sinon sélectionnez {\tt Default cfg} de 
{\tt CFG}.\\
On considère la suite $$u_n=\int _0 ^2\ \frac{2x+3}{x+2}\ e^\frac{x}{n}\ dx$$
\begin{enumerate}
\item Faire ce qui suit :
\begin{itemize}
\item a) Variation de $g(x)=\frac{2x+3}{x+2} \mbox{ pour } x\in [0,2]$\\
On tape :
$${\tt DEF(G(X)=\frac{2X+3}{X+2})}$$
puis :
$${\tt TABVAR(G(X))}$$
On obtient :
$$\begin{array}{cccccc} -\infty & + & -2 & + & +\infty & X\\
 2 & \uparrow & \infty & \uparrow & 2 & F
\end{array}$$
La première ligne donne le signe de {\tt g'(x)} selon {\tt x}, et la deuxième 
ligne les variations de {\tt g(x)}. On remarquera que pour {\tt TABVAR} la 
fonction s'appelle toujours {\tt F}.\\
On en déduit donc que $g(x)$ est croissante sur $[0,2]$.\\
Si on est en mode pas à pas (pour cela il faut valider 
{\tt Step/Step} avec {\tt OK}  du bandeau de {\tt CFG}), 
on obtient alors (quoiqu'il arrive la fonction est notée {\tt F}):
$${\tt F=: \frac{2 \cdot X+3}{X+2}}$$
puis appuyer sur {\tt ENTER} :
$${\tt F':=\frac{2 \cdot (X+2)-(2 \cdot X+3)}{SQ(X+2)}}$$
puis en se servant de la flèche $\triangledown$ pour faire défiler l'écran :
$${\tt \rightarrow \frac{1}{(X+2)^2}}$$
puis {\tt ENTER} pour obtenir le tableau de variations.\\
Si on n'est pas en mode pas à pas, on peut aussi demander le calcul de la 
dérivée en tapant :
$${\tt DERVX(G(X))}$$ 
ce qui donne le calcul ci-dessus.\\
On calcule $g(0)$ et $g(2)$, pour cela on tape :
$${\tt G(0)}$$ 
réponse $\frac{3}{2}$
$${\tt G(2)}$$ 
réponse $\frac{7}{4}$\\
d'o\`u, l'encadrement 
$$\frac{3}{2} \leq g(x) \leq \frac{7}{4} \ \mbox{ pour } x\in [0,2]$$.
\item b) L\`a, la calculatrice ne peut rien ...il suffit de dire que 
$$e^\frac{x}{n} \geq 0 \ \mbox{   pour } x\in [0,2] $$ 
pour montrer que, pour $x\in [0,2]$, on a :
$$\frac{3}{2}e^\frac{x}{n}\leq g(x)e^\frac{x}{n}\leq \frac{7}{4}e^\frac{x}{n}$$
\item c) On intègre l'inégalité ci-dessus, on tape :
$${\tt \int _0^2\  e^\frac{X}{N}\ dX} $$
On obtient :
$${\tt N \cdot e^\frac{2}{N} -N } $$
On en déduit donc :
$$\frac{3}{2}(n e^\frac{2}{n}-n) \leq u_n \leq \frac{7}{4}(ne^\frac{2}{n}-n)$$
Pour justifier le calcul précédent, il faut dire qu'une primitive de
$ e^\frac{x}{n}$ est $n \cdot e^\frac{x}{n}$.\\
Si on ne le sait pas, on peut toujours taper :
$${\tt INTVX(EXP(\frac{X}{N}))}$$
la réponse est : ${\tt N \cdot e^\frac{X}{N}}$
\item d)
On cherche la limite de $(n e^\frac{2}{n}-n)$ quand $n \rightarrow +\infty$ :
$${\tt LIMIT(N \cdot EXP(\frac{2}{N}) -N\ ,\ N=+\infty)}$$
On obtient :
$${\tt 2}$$
{\sc Attention} :\\
La variable {\tt VX} est maintenant égale à {\tt N}, utiliser les touches
 {\tt SHIFT SYMB (SETUP)} pour remettre {\tt VX} à {\tt X}.\\
Pour justifier ce résultat, il faut dire que :
$$\lim_{x \rightarrow 0}\frac{e^x-1}{x}=1$$
et donc que :
$$\lim_{n \rightarrow +\infty}\frac{e^\frac{2}{n}-1}{\frac{2}{n}}=1$$
ou encore :
$$\lim_{n \rightarrow +\infty}(e^\frac{2}{n}-1)\cdot n=2$$
Si quand $n$ tend vers $+\infty$, la limite $L$ de $u_n$ existe, on obtient 
en faisant tendre $n$ vers $+\infty$ dans les inégalités de 1b) :
$$\frac{3}{2} \cdot 2 \leq L \leq \frac{7}{4} \cdot 2$$
\end{itemize}
\item
\begin{itemize}
\item a) $g(x)=2-\frac{1}{x+2}$ et calcul de $I= \int _0 ^2 g(x)dx$\\
On tape :
$${\tt PROPFRAC(G(X))}$$
On obtient :
$${\tt 2-\frac{1}{X+2}}$$
Pour le calcul de l'intégrale $I$, on tape :
$${\tt \int _0 ^2 G(X)dX}$$
On doit tout d'abord \'evaluer {\tt G(X)} en le mettant en surbrillance et
en appuyant sur {\tt ENTER}. Puis on enl\`eve la surbrillance ({\tt DEL} et
on appuie sur {\tt ENTER}.\\
On obtient :
$${\tt -(LN(2)-4)}$$
\`A la main, on a $2x+3=2(x+2)-1$ donc :
$$g(x)=2-\frac{1}{x+2}$$
On intègre ensuite terme à terme entre $0 $ et $2$, on obtient :
$$\int_0^2 g(x)dx=[2x-\ln(x+2)]_{x=0}^{x=2}$$
c'est à dire, puisque $\ln4=2\ln2$ :
$$\int_0^2 g(x)dx=4- \ln2$$ 
\item b) L\`a, la calculatrice ne peut rien...il suffit de dire que
 $e^\frac{x}{n}$ est croissante pour $x \in [0,2]$, pour obtenir l'inégalité :
$$1 \ \leq \ e^\frac{x}{n} \ \leq e^\frac{2}{n} $$
puis par multiplication,  $g(x)$ étant positif sur $[0,2]$, on a  :
$$g(x)\ \leq \ g(x)e^\frac{x}{n}\ \leq g(x)e^\frac{2}{n}  $$ 
puis en intégrant on a  :
$$I \ \leq u_n \ \leq \ e^\frac{2}{n}I $$
\item c) Convergence de $u_n$\\
On cherche la limite de $e^\frac{2}{n}$ quand $n \rightarrow +\infty$ :
$${\tt LIMIT(EXP(\frac{2}{N})\ , \ N=+\infty)}$$
On obtient :
$${\tt 1}$$
En effet, $\frac{2}{n}$ tend vers 0 lorsque $n$ tend vers $+\infty$,  donc
$e^\frac{2}{n}$  tend vers $e^0=1$ lorsque $n$ tend vers $+\infty$.\\
Lorsque $n$ tend vers $+\infty$, $u_n$ reste compris entre $I$ et une 
quantité qui tend vers $I$ (cf in\'egalit\'es 2b)).\\
 Donc $u_n$ converge et sa limite vaut $I$.\\ 
On a donc montr\'e que :
$$L=I=4- \ln2$$
\end{itemize}
\end{enumerate}
\section{Conclusion}
On voit qu'un bon maniement de la calculatrice  {\tt HP40GS} permet de faire une
 bonne partie des questions...\\
Il faut cependant noter, qu'en arithmétique il faut faire plus de
 raisonnements : la calculatrice permet alors de faire des vérifications....  

%%%%% HP40GS END CAS %%%%%
\chapter{Programmation}
\section{Implémentation}\label{sec:programme}
\subsection{Comment éditer et sauver un programme}
Pour avoir accès au catalogue de programmes, on appuie sur les touches
 {\tt SHIFT 1 (PROGRAM)} depuis l'écran {\tt HOME}.\\
 Il apparait alors un écran contenant la liste des programmes disponibles et un bandeau ({\tt EDIT NEW SEND RECV RUN}).\\
Pour taper un nouveau programme, on appuie sur {\tt F2 (NEW)}.\\
On vous demande le nom du programme.\\
{\sc Attention} ! \\
Vous n'\^etes pas en
 mode {\tt Alpha} appuyer sur {\tt F4 (A..Z)} pour y \^etre.\\
Tapez son nom puis {\tt F6 (OK)}.\\
Vous entrez votre programme, et votre travail est automatiquement sauvegardé 
lorsque vous sortez de l'éditeur en appuyant sur {\tt HOME} ou sur
  {\tt SHIFT 1 (PROGRAM)}.  
\subsection{Comment corriger un programme} 
Si la syntaxe est mauvaise, la machine vous  dit :\\
{\tt Invalid Syntax Edit program?} Vous répondez {\tt F6 (YES)}.\\
La machine vous met automatiquement le curseur l\`a
o\`u le compilateur a détecté l'erreur. Il suffit donc de corriger!!!
\subsection{Comment exécuter un programme}
Pour exécuter un programme, on ouvre le catalogue de program\-mes, en appuyant 
sur les touches  {\tt SHIFT 1 (PROGRAM)}.\\
 Il apparait alors un écran contenant la 
liste des programmes disponibles et le bandeau {\tt EDIT NEW SEND RECV RUN}.\\
On met le nom du programme à exécuter en surbrillance et on appuie sur 
{\tt F6 (RUN)}.
 \subsection{Comment modifier un programme}
Pour modifier un programme (sans vouloir garder l'ancien) on ouvre le 
catalogue de programmes, en appuyant sur
 les touches {\tt SHIFT 1 (PROGRAM)}. Il apparait alors un écran contenant la 
liste des programmes disponibles et le bandeau {\tt EDIT NEW SEND RECV RUN}.\\
On met le nom du programme à modifier en surbrillance et on appuie sur 
{\tt F1 (EDIT)}.\\
Si vous voulez avoir à la fois l'ancien et le nouveau programme il faut :\\
- ouvrir le catalogue de programmes ({\tt SHIFT 1 (PROGRAM)}).\\
- appuyer sur {\tt F2 (NEW)} et taper le nom du programme modifié puis 
{\tt F6 (OK)}.\\
- appuyer sur {\tt VARS}, l'éditeur s'ouvre, on appuie alors sur la lettre 
{\tt P}  pour mettre {\tt Program} en surbrillance.\\ 
- avec les fl\`eches mettre le nom du programme \`a modifier en surbrillance et
 appuyer sur {\tt F4 (VALUE)} (pour cocher {\tt VALUE} du bandeau) puis 
{\tt F6 (OK)}.\\
 Cela recopie le texte du programme dans l'\'editeur. 
\section{Les commentaires}
Il faut prendre l'habitude de commenter ses programmes.\\ 
En algorithmique un commentaire commence par
{\tt // } et se termine par un passage à la ligne.\\
Pour la {\tt HP40GS}, un commentaire commence par {\tt @} et se termine par un 
passage à la ligne ou est entouré de deux {\tt @}.\\
{\sc Attention} !!! \\
Ne pas oublier de mettre un espace après  {\tt @}.\\
Le caractère {\tt @} est obtenu en tapant {\tt shift VAR (CHARS)}, puis on met 
ce caractère en surbrillance, puis {\tt ECHO} du bandeau (ou {\tt ECHO1 ECHO1 OK} pour avoir deux caract\`eres {\tt @}).
\subsection{La touche {\tt SHIFT 1 (PROGRAM)}}
La combinaison de ces touches pressée lorsqu'on est dans {\tt HOME}  ouvre 
l'écran :\\
{\tt PROGRAM CATALOG}.\\
 On voit appara\^itre :\\
- la liste des progammes que vous avez écrits,\\
- un bandeau contenant les commandes :\\
{\tt EDIT} {\tt NEW} {\tt RUN} {\tt SEND} {\tt RECV}.\\
{\tt EDIT} permet d'éditer  le programme mis en surbrillance,\\
{\tt NEW}  permet de créer un nouveau programme,\\
{\tt RUN}  permet d'exécuter le programme mis en surbrillance 
(cf \ref{sec:programme}),\\
{\tt SEND} et {\tt RECV} sont les fonctions qui permettent de faire dialoguer 
votre calculatrice avec votre ordinateur ou une autre calculatrice.\\
Par exemple :\\
Si on tape sur {\tt SEND} du bandeau on vous demande :\\
{\tt HP39/40 (Wire)} ou {\tt Disk drive} \\
vous mettez en surbrillance {\tt HP39/40 (Wire)} pour envoyer un programme 
vers une autre {\tt HP40GS} ou vous mettez en surbrillance {\tt Disk drive} 
pour envoyer un programme vers un ordinateur.\\ 
Puis {\tt OK} du bandeau.\\ 
Pour les utilisateurs de Windows, le logiciel de connexion se trouve  à l'URL
 {\tt www.hp.com/calculators/france}.\\
 Pour les utilisateurs de Linux on utilisera 
le programme C-Kermit version 7
(que l'on trouve à l'URL {\tt www.columbia.edu/kermit} ou que l'on peut 
télécharger 
par ftp anonyme sur le site {\tt kermit.columbia.edu}) :\\
-On branche la calculatrice au cordon de transfert.\\
-Sur l'ordinateur on tape :\\
{\tt kermit}\\
{\tt set line /dev/ttyS0} (ou {\tt S1..} selon votre numéro de port 
série, attention {\tt S0} correspond à {\tt COM1} sous MS-DOS)
\\
Il se peut que cette commande provoque l'erreur "access to device denied".
Dans ce cas, vous devrez exécuter en tant que {\tt root} la commande
suivante:
\\ {\tt chmod 666 /dev/ttyS0} (ou {\tt/dev/ttyS1} ... selon votre numéro
de port série)\\
Il se peut aussi que cette commande provoque l'erreur "write 
access to UUCP lockfile directory denied", 
dans ce cas vous devrez exécuter en tant que {\tt root} la commande
suivante :
\\ {\tt chmod 1777 /var/lock}\\
Puis tapez les commandes suivantes~:
\\ {\tt set speed 9600} 
\\ {\tt set carrier-watch off} \\{\tt serv}\\
-Sur la {\tt HP40GS} :\\
on met en surbrillance le programme de nom {\tt NOM} puis on appuie sur
 {\tt SEND} du bandeau et on met en surbrillance {\tt Disk drive}.
Puis {\tt OK} du bandeau, pour que le programme de nom {\tt NOM} qui se 
trouve dans votre {\tt HP40GS} soit recopié sur votre ordinateur.\\
-Ou\\
Sur la {\tt HP40GS} :\\
on appuie sur {\tt RECV} du bandeau et on met en surbrillance {\tt Disk drive}.\\
Puis {\tt OK} du bandeau : la calculatrice affiche alors la liste des
 programmes qui sont sur votre ordinateur (bien s\^ur il faut avoir créer un 
répertoire sur votre ordinateur o\`u des programmes de {\tt HP40GS} sont stockés).\\
 On met alors en surbrillance {\tt PGCD} pour que le  programme de nom 
{\tt PGCD} qui se trouve sur votre  ordinateur soit recopié sur votre 
{\tt HP40GS}. \\
Notez qu'on peut automatiser l'exécution des commandes de {\tt kermit} en les
plaçant dans le fichier {\tt .kermrc} du répertoire racine {\tt ~}
de l'utilisateur, par exemple créez le fichier suivant~:
\begin{verbatim}
set line /dev/ttyS0
set speed 9600
set carrier-watch off
set file names literal
\end{verbatim}
et sauvegardez-le sous le nom {\tt \tild /.kermrc}\\
Pour en savoir plus sur l'utilisation de Kermit avec les calculatrices
HP, vous pouvez consulter l'URL :\\
{\tt http://www.columbia.edu/kermit/hp48.html}

\section{Les variables}
\subsection{Leurs noms}
Ce sont les endroits o\`u l'on peut stocker des valeurs, des nombres, des 
expressions, des objets.\\
Avec la {\tt HP40GS}, on n'a droit en progammation qu'aux 26 lettres de 
l'alphabet et \`a la lettre grecque ${\tt \theta}$ pour stocker des nombres 
réels.

\subsection{Notion de variables locales}\index{PUSH}\index{POP}
Les variables locales sont utilis\'ees pour prot\'eger les variables 
utilisateurs des modifications faites pendant l'ex\'ecution d'un programme.\\
Cette notion n'existe pas pour la calculatrice {\tt HP40GS}.
On ne peut utiliser que des variables globales.\\
Pour les utilisateurs experts, il est cependant possible de mimer 
le m\'ecanisme 
des variables locales en utilisant l'historique du {\tt CAS} et les commandes
 {\tt PUSH} et {\tt POP}.
Supposons par exemple que votre programme utilise les variables 
{\tt A, B, C}.
Au d\'ebut vous pouvez faire {\tt PUSH A} puis {\tt PUSH B} puis {\tt PUSH C}.
Cela sauvera les valeurs de {\tt A}, {\tt B} et {\tt C} dans l'historique du
{\tt CAS}. \`A la fin du programme vous r\'ecup\'erez les valeurs
de {\tt A}, {\tt B} et {\tt C} en utilisant {\tt POP} et vous stockez
les valeurs dans {\tt C}, {\tt B} et {\tt A}, cela doit \^etre fait dans
{\bf  l'ordre inverse} puisque l'historique du {\tt CAS}
est une pile (LIFO=Last In First Out).

\subsection{Notion de paramètres}\index{PUSH}\index{POP}
Quand on écrit un programme sur la {\tt HP40GS}, il n'est pas possible  de lui 
passer des paramètres.
On ne peut donc pas écrire de fonctions ayant des paramètres, avec le langage 
de programmation de la {\tt HP40GS}.\\
Pour les experts, il est possible de mimer les param\'etres en
utilisant l'historique du {\tt CAS}. La personne ou la fonction appelant
le programme doit mettre avec {\tt PUSH} 
une liste de  
param\'etres dans l'historique du CAS, puis ex\'ecute le programme qui a comme 
premi\`ere instruction une instruction {\tt POP}.
Ce m\'ecanisme ne marche pas avec des variables locales (voir ci-dessus).
Si vous voulez combiner les deux concepts, vous pouvez
choisir une liste de variables pour transmettre les param\`etres \`a
la fonction et r\'ecup\'erer une valeur de retour, et on utilise
{\tt PUSH} et {\tt POP} comme ci-dessus pour les variables locales.

\section{Les Entrées}
\subsection{Traduction en Algorithmique}
Pour que l'utilisateur puisse entrer une valeur dans la variable {\tt A} au 
cours de l'exécution d'un programme, on écrira, en algorithmique :\\
{\tt saisir A}  \\
Et pour entrer des valeurs dans {\tt A} et {\tt B} on écrira :\\
{\tt saisir A,B}
\subsection{Traduction {\tt HP40GS}}\index{PROMPT}\index{PROMPTSTO}\label{sec:prompt} 
\noindent{\tt INPUT A;"TITRE";"A=";;0:}\\
Si le fait d'avoir à écrire tous ces points virgule dans {\tt INPUT} vous
 rebute, il est préférable d'utiliser la commande {\tt PROMPT} ou 
{\tt PROMPTSTO} (Merci Jean Yves!!!).\\
{\tt PROMPTSTO(A)} ou  {\tt PROMPT A} ouvre une fen\^etre vous demandant d'entrer la valeur de 
{\tt A}.\\
Dans ce qui suit, les programmes écrits avant l'existence de  {\tt PROMPT}, 
utilisent le sous-programme {\tt IN} qui permet d'entrer deux valeurs dans 
{\tt A} et {\tt B}.  
\section{Les Sorties}
\subsection{Traduction en Algorithmique}
En algorithmique on écrit:\\
{\tt Afficher "A=",A}
\subsection{Traduction {\tt HP40GS}}
\noindent{\tt DISP 3;"A="A:} 3 représente le numéro de la ligne o\`u {\tt A} 
sera affiché \\
Ou :\\
{\tt MSGBOX "A="A:}
\section{La séquence d'instructions ou "action"}
Une action est une séquence d'une ou plusieurs instructions.
\subsection{Traduction en Algorithmique}
En langage algorithmique, on utilisera l'espace ou le passage à la ligne pour 
terminer une instruction.
\subsection{Traduction {\tt HP40GS}}
\noindent {\tt:} indique la fin d'une instruction.
\section{L'instruction d'affectation}
L'affectation est utilisée pour stocker une valeur ou une expression dans une variable.
\subsection{Traduction en Algorithmique} 
En algorithmique on écrira par exemple :\\
{\tt 2*A->B}\\
pour stocker {\tt 2*A} dans {\tt B}.
\subsection{Traduction {\tt HP40GS}}
La flèche est obtenue à l'aide de la touche ${\tt STO\triangleright}$ du 
bandeau.\\
On écrira par exemple :\\
{\tt 2*A-> B} ce qui veut dire :\\
taper {\tt 2*A} puis appuyer sur ${\tt STO\triangleright}$ du bandeau puis taper {\tt B}.
\section{Les instructions conditionnelles}
\subsection{Traduction en Algorithmique} 
\noindent Les instructions conditionnelles ont deux syntaxes :\\
{\tt Si \emph{condition} alors\\
\emph{action}\\
fsi}\\
et aussi :\\
{\tt Si \emph{condition} alors\\
\emph{action1} sinon\\
\emph{action2}\\
fsi}\\ 
Exemple :\\
{\tt Si A = 10 ou A < B alors \\
B-A->B sinon \\A-B->A \\fsi}
\subsection{Traduction {\tt HP40GS}}
\noindent{\tt IF \emph{condition} THEN\\ 
\emph{action} : \\
END:}\\
et aussi :\\
{\tt IF \emph{condition} THEN\\ 
\emph{action1} : ELSE\\
\emph{action2}:\\
END:}\\
  {\sc Attention} au {\tt ==} pour traduire la condition d'égalité.\\
Exemple :\\
{\tt IF A==10 OR A<B THEN}\\ 
{\tt B-A->B : ELSE}\\
{\tt A-B-> A}\\
{\tt END:}
\section{Les instructions ``Pour'' }
\subsection{Traduction en Algorithmique} 
\noindent{\tt Pour I de A à B faire \emph{action} fpour}\\
et aussi :\\
{\tt Pour I de A à B (pas P) faire \emph{action} fpour}
\subsection{Traduction {\tt HP40GS}}
\noindent{\tt FOR I = A TO B STEP 1 ; \emph{action} : END:}\\
{\tt FOR I = A TO B STEP P ; \emph{action} : END:} 
\section{L'instruction ``Tant que''}
\subsection{Traduction en Algorithmique} 
\noindent{\tt Tant que \emph{condition} faire
\emph{action}
ftantque}
\subsection{Traduction {\tt HP40GS}}
\noindent{\tt WHILE \emph{condition} REPEAT 
\emph{action} : 
END:}
\section{Les expressions booléennes }
Une condition est une fonction qui a comme valeur un booléen, à savoir elle
est soit {\tt vraie} soit {\tt fausse}.
\subsection{Traduction en Algorithmique} 
Pour exprimer une condition simple on utilise les opérateurs:

{\tt = > > $\leq$  $\geq$  $\neq$}
\subsection{Traduction {\tt HP40GS}} 
{\sc Attention}, pour la calculatrice {\tt HP40GS}, l'égalité se traduit par :\\
{\tt ==}\\
sinon les autres opérateurs sont les m\^emes.
\section{Les opérateurs logiques}
\subsection{Traduction en Algorithmique}
Pour traduire des conditions complexes, on utilise les opérateurs logiques :

{\tt ou et non} 
\subsection{Traduction {\tt HP40GS}}
{\tt ou et non} se traduisent sur la {\tt HP40GS} par {\tt OR AND NOT} 
\section{Les listes}
\subsection{Traduction en Algorithmique}
En algorithmique, on utilise les {\tt \{ \}} pour délimiter une liste.\\
 Par exemple {\tt \{\}} désigne la liste vide et \{1, 2, 3\} est une liste de 3 
éléments.\\
Le {\tt +} sera utilis\'e pour concaténer 2 listes, ou une liste et un élément,
 ou un élément et une liste :\\
{\tt \{1, 2, 3\}->TAB}\\
{\tt TAB + 4 ->TAB}  (maintenant {\tt TAB} désigne {\tt \{1, 2, 3, 4\}}) \\
{\tt TAB[2]} désigne le deuxième élément de {\tt TAB} ici {\tt 2}.
\subsection{Traduction {\tt HP40GS}} 
Les variables listes ont pour noms : {\tt L0, L1, L2,... L9}.\\
On utilise les {\tt \{ \}} pour délimiter une liste.\\
Par exemple {\tt \{1, 2, 3\}} est une liste de 3 éléments.\\
Mais {\tt \{\}} ne désigne pas la liste vide, il faut utiliser la commande 
{\tt CLRVAR}\index{CLRVAR}, par exemple~:\\
{\tt CLRVAR L0}\\
initialise la liste {\tt L0} à vide.
On peut aussi utiliser la commande {\tt SUB} qui permet d'extraire une 
sous liste (si {\tt L1=\{1,2,3,4\}} alors {\tt SUB L2;L1;2;3} cr\'ee la liste 
{\tt L2=\{2,3\}}) et donc  en \'ecrivant : {\tt SUB L1;L1;2;1} on met dans 
 {\tt L1} la liste vide !\\ 
Voici quelques commandes utiles :\\
{\tt MAKELIST(I*I, I , 1, 10, 2)}  désigne la liste des carrés des 5 premiers 
entiers impairs ( 2 indique le pas de {\tt I}). \\
{\tt L1(I)}  désigne le {\tt I}ème élément de la liste.\\
{\tt CONCAT (L1, \{5\})} désigne une liste ayant l'élément {\tt 5} en plus des 
éléments de la liste {\tt L1}.\\
On peut aussi utiliser :\\
{\tt AUGMENT(L1,5)} qui désigne une liste ayant l'élément {\tt 5} en plus des 
éléments de la liste {\tt L1}.\\
{\tt SUB L2;L1;2;4} est une commande qui met dans {\tt L2} les éléments de 
{\tt L1} ayant des indices allant de 2 à 4.\\
 {\sc Attention} ! à la diffèrence entre fonctions et commandes :\\
les fonctions renvoient une valeur, elles ont des parenthèses et leurs
 arguments se situent dans les parenthèses, et sont séparés par des virgules alors que\\
les commandes ne renvoient pas de valeurs, et leurs arguments s'écrivent après
 le nom de la commande, et sont séparés par des points virgules.  
\section{Un exemple : le crible d'Eratosthène}
\subsection{Description}
Pour trouver les nombres premiers inférieurs ou égaux à $N$ :
\begin{enumerate}
\item On écrit les nombres de 1 à $N$ dans une liste.

\item On barre 1 et on met 2 dans la case $P$.

Si $P* P \leq N$ il faut traiter les éléments de $P$ à $N$. 

\item On barre tous les multiples de $P$ à partir de $P* P$.

\item On augmente $P$ de 1.\\
Si $P*P$ est inférieur ou égal à $N$, il reste à traiter les éléments non 
barrés de $P$ à $N$. 

\item On appelle $P$ le plus petit élément non barré de la liste.

\item On refait les points 3 4 5 tant que $P*P$ reste inférieur ou égal à
 $N$.
\end{enumerate}
\subsection{Écriture de l'algorithme}
\begin{verbatim}
Fonction crible(N)
local TAB PREM I P
// TAB et PREM sont des listes
{} ->TAB
{} ->PREM
pour I de 2 à N faire 
  TAB+I -> TAB
fpour
0 +TAB -> TAB
2 -> P
// On a fait les points 1 et 2
//barrer 1 a été réalisé en le remplaçant par 0
//TAB est la liste 0 2 3 4 ...N \end{verbatim}
{\tt tant que P*P $\leq$ N faire}\begin{verbatim}
  // On barre tous les multiples de P à partir de P*P
  pour I de P à E(N/P) faire
    //E(N/P) désigne la partie entière de N/P
   0 -> TAB[I*P]
  fpour
  P+1 -> P
//On cherche le plus petit nombre <= N non barré,
// entre P et N
\end{verbatim}
 {\tt {\  }  tant que (P*P $\leq$ N) et (TAB[P]=0) faire}
\begin{verbatim}
    P+1 -> P
  ftantque
ftantque
//on écrit le résultat dans une liste PREM
pour I de 2 à N faire\end{verbatim}
 {\tt {\  } si TAB[I]  $\neq$ 0 alors} 
\begin{verbatim}      
    PREM +I -> PREM
  fsi
fpour
résultat: PREM
\end{verbatim}
\subsection{Traduction {\tt HP40GS}}
Voici le programme {\tt CRIBLE} :\\
L'utilisateur doit entrer la valeur de {\tt N}.\\
A la fin la liste {\tt L2} contient les nombres premiers inférieurs ou égaux à 
{\tt N}.
\begin{verbatim}
INPUT N;"CRIBLE";"N=";;10:
ERASE:
MAKELIST(I,I,1,N,1) -> L1:
0 -> L1(1):
2->P:\end{verbatim}
{\tt WHILE P*P $\leq$ N REPEAT}\begin{verbatim}
  FOR I = P TO INT(N/P) STEP 1;
    0->L1(I*P):
  END: 
  DISP 3;""L1:
  P+1->P:\end{verbatim}
{\tt {\  } WHILE P*P $\leq $ N AND L1(P) == 0 REPEAT}\begin{verbatim}
    P+1->P:
  END:
END:
{2}->L2:
@ on sait que 2 est premier
FOR I=3 TO N  STEP 1;\end{verbatim}
{\tt {\  }IF L1(I) $\neq$ 0 THEN}\begin{verbatim}
  CONCAT(L2,{I}) ->L2:
  END:
END:
DISP 3 ;"PREM" L2:
FREEZE:
\end{verbatim}
\chapter{Programmes d'arithmétique} 
\section{Le PGCD et l'algorithme d'Euclide}
Soient $A$ et $B$ deux entiers positifs dont on cherche le $PGCD$.\\
L'algorithme d'Euclide est basé sur la définition récursive du $PGCD$ :
\begin{eqnarray*}
PGCD(A,0) & = & A \\
PGCD(A,B) & = & PGCD(B,A \ \bmod \  B) \  si \  B \neq 0
\end{eqnarray*}
o\`u $A\ \bmod \ B$ désigne le reste de la division euclidienne de $A$ par 
$B$.\\
Voici la description de cet algorithme :\\
on effectue des divisions euclidiennes successives :
\begin{eqnarray*}
A=& B \times Q_1+R_1  &  0 \leq R_1 < B \\
B=& R_1 \times Q_2+R_2  & 0 \leq R_2 < R_1 \\
R_1=& R_2 \times Q_3+R_3 & 0 \leq R_3 < R_2 \\
.......
\end{eqnarray*}
Après un nombre fini d'étapes, il existe un entier n tel que : 
$R_n = 0$. \\
on a alors :\\
$PGCD(A,B)= PGCD(B,R_1) =...$\\
$PGCD(R_{n-1},R_n) = PGCD(R_{n-1},0) = R_{n-1}$
\subsection{Traduction algorithmique}
- Version itérative\\
Si $B \neq 0$ on calcule $R=A \bmod B$, puis   avec $B$ dans le r\^ole 
de $A$ (en mettant  $B$ dans $A$ ) et $R$ dans le r\^ole de $B$ ( en mettant 
$R$ dans $B$)
on recommence jusqu'à ce que $B=0$, le $PGCD$ est alors $A$.
\begin{verbatim}
Fonction PGCD(A,B)
Local R\end{verbatim}
{\tt tant que B $\neq$ 0 faire}\begin{verbatim}
  A mod B->R
  B->A
  R->B
ftantque
résultat A
ffonction
\end{verbatim}
- Version récursive\\
On écrit simplement la définition récursive vue plus haut.
\begin{verbatim}
Fonction PGCD(A,B)\end{verbatim}
{\tt Si B $\neq$ 0 alors}\begin{verbatim}
  résultat PGCD(B,A mod B) 
sinon
  résultat A
fsi
ffonction
\end{verbatim}
\subsection{Traduction {\tt HP40GS}}\label{sec:pgcdc}
- Version itérative pour deux entiers\\
On écrit tout d'abord le sous-programme {\tt IN} qui permet d'entrer deux 
nombres {\tt A} et {\tt B} :
\begin{verbatim}
INPUT A;"A";;;1:
INPUT B;"B";;;1:
ERASE:\end{verbatim}
puis on écrit le programme {\tt PGCD} :
\begin{verbatim}RUN IN:
DISP 3;"PGCD "{A,B}:\end{verbatim}
{\tt WHILE B $\neq$ 0 REPEAT }
\begin{verbatim}A MOD B ->R:
B ->A:
R ->B:
END:
DISP 4;"PGCD "A:
FREEZE:\end{verbatim}
- Version récursive pour deux entiers {\tt A} et {\tt B}\\
Avec la {\tt HP40GS} on ne peut pas écrire des programmes récursifs...
mais on peut écrire le programme {\tt PGCDR}: 
\begin{verbatim}DISP 3;"PGCD "{A,B}:
FREEZE:\end{verbatim}
{\tt IF B $\neq$ 0 THEN}
\begin{verbatim}A MOD B ->R:
B ->A:
R ->B:
PGCDR:
ELSE
DISP 3;"PGCD "A:
FREEZE:
END:\end{verbatim}
On stocke tout d'abord   les valeurs dans {\tt A} et {\tt B}.\\
Le programme {\tt PGCDR} affiche le  PGCD qu'il est en train de calculer.\\ 
L'appel récursif  {\tt PGCDR} renvoie  au programme {\tt PGCDR} qu'il 
 faut faire exécuter en appuyant sur \verb|RUN| du bandeau.\\
Le programme {\tt PGCDR} affiche ainsi les  PGCD intermédiaires calculés.\\
On peut aussi  remplacer {\tt PGCDR} dans le programme précédent par 
{\tt RUN PGCDR}, pour ne pas avoir à appuyer sur \verb|RUN| du bandeau, et 
supprimer les affichages intermédiaires, pour utiliser ce programme dans un 
programme effectuant les entrées et les sorties :\\
le programme récursif  {\tt PGCDR} devient le programme récursif {\tt PR} :\\

\noindent{\tt IF B $\neq$ 0 THEN}
\begin{verbatim}A MOD B ->R:
B ->A:
R ->B:
RUN PR:
END:\end{verbatim}
On ins\`ere le programme {\tt PR} dans un programme effectuant les entrées et 
les sorties :
\begin{verbatim}
PROMPT A:
PROMPT B:
RUN PR:
ERASE:
MSGBOX A:
\end{verbatim}
-Version itérative pour deux complexes\\
Si on utilise la fonction du calcul symbolique {\tt IREMAINDER} à la place de
{\tt MOD} dans les programmes précédents, {\tt PGCD} (ou {\tt PR}) peut alors avoir comme paramètres des entiers de Gauss à condition de remplacer les noms des variables {\tt A, B, R} par {\tt Z1, Z2, Z3} et de changer le test d'arr\^et.\\
Voici la version itérative :
 \begin{verbatim}PROMPT Z1:
PROMPT Z2:
ERASE:
DISP 3;"PGCD "{Z1,Z2}:\end{verbatim}
{\tt WHILE ABS(Z2) $\neq$ 0 REPEAT }
\begin{verbatim}XNUM(IREMAINDER(XQ(Z1),XQ(Z2)) ->Z3:
Z2 ->Z1:
Z3 ->Z2:
END:
DISP 4;"PGCD "Z1:
FREEZE:\end{verbatim}
-Version itérative pour deux polyn\^omes\\
Les variables {\tt E1, E2,...} permettent de stocker des expressions, c'est 
ce qu'il nous faut pour y mettre des polyn\^omes !!! 
Si on utilise la fonction du calcul symbolique {\tt REMAINDER} à la place de
{\tt MOD} dans les programmes précédents, {\tt PGCD} (ou {\tt PR}) peut alors 
avoir comme paramètres des polyn\^omes\ à condition de remplacer les noms des 
variables {\tt A, B, R} par {\tt E1, E2, E3} et de changer le test d'arr\^et.
\begin{verbatim}
PROMPT E1:
PROMPT E2:
ERASE:\end{verbatim}
{\tt WHILE DEGREE(E2) $\neq$ -1 REPEAT }
\begin{verbatim}REMAINDER(E1,E2) ->E3:
E2 ->E1:
E3 ->E2:
END:
DISP 4;"PGCD "E1:
FREEZE:\end{verbatim}
Vous entrez par exemple :\\
${\tt E1=S1^2-1}$ et ${\tt E2=S1^2-2*S1+1}$
pour trouver le PGCD égal à {\tt 2*S1-2}.
\section{Identité de Bézout}
 Dans ce paragraphe la fonction Bezout(A,B) renvoie la liste 
$\{U, V, PGCD(A,B)\}$ o\`u $U$ et $V$ vérifient :\\
$ A \times U + B \times V = PGCD(A,B)$. 
\subsection{Version it\'erative sans les listes}
L'algorithme d'Euclide permet de trouver un couple $U$ et $V$ vérifiant :\\
$ A \times U + B \times V= PGCD(A,B) $\\
En effet, si on note $ A_0$ et$ B_0 $ les valeurs de $A$ et de $B$ du début 
on a :
\begin{eqnarray*}
 A & =A_0 \times U+B_0 \times V \ \mbox{ avec }\  U=1 \ \mbox{ et }\  V=0 \\ 
 B & =A_0 \times W+B_0 \times X  \ \mbox{ avec }\  W=0 \ \mbox{ et } \  X=1 
\end{eqnarray*}
 Puis on fait évoluer $A,\ B,\ U,\ V,\ W,\ X$ de façon que les deux relations
 ci-dessus soient toujours vérifiées.\\
Si :\\
$ A=B \times Q+R \ \ \  0 \leq R < B \ \ ( R = A \ mod \ B \ et \  Q = E(A / B )) $\\
On écrit alors :
\begin{eqnarray*}
R=A-B \times Q=A_0 \times (U-W \times Q)+B_0 \times (V-X \times Q)=\\
A_0 \times S+B_0 \times T \ \mbox{ avec } \ S=U-W \times Q \  \mbox{ et } \   T=V-X \times Q
\end{eqnarray*}
Il reste alors à recommencer avec :\\
$B$ dans le r\^ole de $A$ ({\tt B->A\  W->U \ X->V}) et,\\
$R$ dans le r\^ole de $B$ ({\tt R->B \ S->W \ T->X})\\
 d'o\`u l'algorithme  :
\begin{verbatim}
fonction Bezout (A,B)
local U,V,W,X,S,T,Q,R
1->U 0->V 0->W 1->X\end{verbatim}
{\tt tant que B $\neq$ 0 faire}\begin{verbatim}
 A mod B->R 
 E(A/B)->Q
 //R=A-B*Q
 U-W*Q->S
 V-X*Q->T
 B->A 
 W->U 
 X->V
 R->B 
 S->W 
 T->X
ftantque
résultat {U, V, A}
ffonction
\end{verbatim}
\subsection{Version it\'erative avec les listes}
On peut simplifier l'écriture de l'algorithme ci-dessus en utilisant moins de
 variables : pour cela on utilise des listes {\tt LA, LB, LR} pour mémoriser 
les triplets {\tt \{U, V, A\}}, {\tt \{W, X, B\}} et {\tt \{S, T, R\}}.
Ceci est très commode car les calculatrices savent ajouter des listes de m\^eme
 longueur (en ajoutant les éléments de m\^eme indice) et savent aussi 
multiplier une liste par un nombre (en multipliant chacun des éléments de la 
liste par ce nombre).\\
\begin{verbatim}
fonction Bezout (A,B)
local LA LB LR
{1, 0, A}->LA
{0, 1, B}->LB\end{verbatim}
{\tt tant que  LB[3] $\neq$ 0 faire}\begin{verbatim}
LA-LB*E(LA[3]/LB[3])->LR 
LB->LA 
LR->LB 
ftantque
résultat : LA
ffonction
\end{verbatim}
\subsection{Version récursive avec les listes}
On peut définir récursivement la fonction Bézout par:

$ Bezout(A,0)=\{1,\ 0,\ A\} $  
   
Si $ B \neq 0 $ il faut définir $ Bezout(A,B)$ en fonction de $ Bezout(B,R)$ lorsque

$ R=A-B \times Q \ \mbox{ et } \  Q=E(A/B).$

On a:
\begin{eqnarray*} Bezout(B,R)=LT=\{W, X, pgcd(B,R)\} \\
\mbox{ avec }\  W \times B+X \times R=pgcd(B,R)
\end{eqnarray*}
Donc:
\begin{eqnarray*}
 W \times B+X \times (A-B \times Q) & = & pgcd(B,R) \ \mbox{ ou  encore} \\ 
X \times A+(W-X \times Q) \times B & = & pgcd(A,B).
\end{eqnarray*}
D'o\`u si $B \neq 0$ et si $ Bezout(B,R)=LT$ on a :

$ Bezout(A,B)=\{LT[2],\ LT[1]-LT[2] \times Q,\ LT[3]\}.$\\
\begin{verbatim}
fonction Bezout (A,B)
local LT Q R\end{verbatim}
{\tt Si B $\neq$ 0 faire}
\begin{verbatim}E(A/B)->Q
A-B*Q->R
Bezout(B,R)->LT
Résultat {LT[2], LT[1]-LT[2]*Q, LT[3]}
sinon Résultat {1, 0, A} 
fsi
ffonction
\end{verbatim}
\subsection{Version récursive sans les listes}\label{sec:recsl}
Si on utilise des variables globales pour {\tt A, B, D, U, V, T}, on peut voir 
la fonction {\tt Bezour} comme calculant à partir de {\tt A, B}, des valeurs 
qu'elle met dans {\tt U, V, D (AU+BV=D)}  gr\^ace à une variable locale 
{\tt Q}.\\
On \'ecrit donc une fonction sans param\`etre : seule la variable {\tt Q} doit \^etre locale \`a la foncton alors que les autres variables {\tt A, B ...} 
peuvent \^etre  globales.\\
{\tt  Bezour} fabrique {\tt U, V, D}  v\'erifiant  {\tt A*U+B*V=D} \`a partir de {\tt A} et {\tt B}.
Avant l'appel r\'ecursif (on pr\'es\'erve {\tt E(A/B)=Q} et on  met {\tt A} et 
{\tt B} \`a jour ( nouvelles valeurs), apr\`es l'appel les variables  {\tt U, V, D}  v\'erifient 
 {\tt A*U+B*V=D} (avec {\tt A} et {\tt B} les nouvelles valeurs), il suffit 
alors de revenir aux premi\`eres valeurs de
{\tt A} et {\tt B} en \'ecrivant :   
{\tt B*U+(A-B*Q)*V=A*V+B*(U-V*Q)}\\  
On écrit alors :
\begin{verbatim}
Programme Bezour
local  Q \end{verbatim}
{\tt Si B $\neq$ 0 faire}\begin{verbatim}
E(A/B)->Q
A-B*Q->T
B->A
T->B
Bezour
U-V*Q->T
V->U
T->V
sinon 
1->U
0->V
A->D 
fsi
\end{verbatim}
\subsection{Traduction {\tt HP40GS}}
\noindent- Version itérative avec les listes

On utilise ici aussi le programme {\tt  IN} qui permet de rentrer deux entiers 
{\tt A} et {\tt B} :
\begin{verbatim}INPUT A;"A";;;1:
INPUT B;"B";;;1:
ERASE:\end{verbatim}
Puis on tape le programme {\tt BEZOUT} :\\
\begin{verbatim}
RUN IN:
DISP 3;"BEZOUT "{A,B}:
{1,0,A} ->L1:
{0,1,B} ->L2:\end{verbatim}
{\tt WHILE L2(3) $\neq$ 0 REPEAT} 
\begin{verbatim}L1-L2*FLOOR(L1(3)/L2(3)) ->L3:
L2 ->L1:
L3 ->L2:
END:
DISP 4;"U V PGCD "L1:
FREEZE:
\end{verbatim} 
-Version récursive sans les listes\\
On écrit le programme {\tt BEZOUR}, gr\^ace aux commandes (Merci Bernard!!!):\\
{\tt PUSH}\index{PUSH} ({\tt PUSH(A)} pour mettre le contenu de {\tt A} dans 
l'historique du {\tt CAS})\\
 et {\tt POP}\index{POP} (pour récupérer les valeurs mises dans l'historique du
 {\tt CAS})\\ 
{\tt PUSH} et {\tt POP} permettent de simuler la variable locale {\tt Q}
On a remplac\'e dans la  traduction (cf \ref{sec:recsl}) les variables {\tt R} et {\tt W} par la variable temporaire {\tt T}.\\
\noindent{\tt  PROGRAM BEZOUR}\\
{\tt IF B $\neq$ 0 THEN}\begin{verbatim}
PUSH (FLOOR(A/B)):
A MOD B->T:
B->A:
T->B:
RUN BEZOUR:
U-V*POP->T:
V->U:
T->V:
ELSE
 1->U:
 0->V:
 A->D: 
END:
\end{verbatim}

{\tt PUSH (FLOOR(A/B))} a pour effet de mettre les différentes valeurs de 
{\tt FLOOR(A/B)} sur une pile, et {\tt POP} de les récuperer.\\
{\tt T} est une variable auxillaire.\\
{\tt  BEZOUR} prend comme entrée les valeurs des variables globales {\tt A} et
 {\tt B} et remplit les variables globales {\tt U} et {\tt V} de façon que :\\
${\tt A\cdot U+B\cdot V=PGCD(A,B)}$. \\
On écrit ensuite le programme final {\tt BEZOURT} permettant l'entrée de 
{\tt A} et {\tt B} et la sortie de {\tt \{U, V, D\}} :\\

\noindent{\tt  PROGRAM BEZOURT}
\begin{verbatim}
PROMPT A:
PROMPT B:
RUN BEZOUR:
ERASE:
MSGBOX {U,V,D}:
\end{verbatim}


\noindent{\sc Remarque} : Pour deux complexes on se reportera \`a la  version 
iterative  section\ref{sec:pgcdc}.\\
Si on utilise la fonction de calcul symbolique {\tt IREMAINDER} à la place de
{\tt MOD} et {\tt IQUOT(A,B)} à la place de {\tt FLOOR(A/B)} dans les 
programmes précédents, {\tt BEZOUT} ou {\tt BEZOUR} peut alors avoir comme 
paramètres des entiers de Gauss à condition de remplacer les noms des variables
 {\tt A, B, R...} par {\tt Z1, Z2, Z3...}.\\  
{\sc Remarque} :\\
Si on utilise la fonction du calcul symbolique {\tt REMAINDER} à la place de
{\tt MOD} dans les programmes précédents, {\tt BEZOUT} (ou {\tt BEZOUR}) peut
 alors avoir comme paramètres des polyn\^omes\ à condition de remplacer les 
noms des variables {\tt A, B, R...} par {\tt E1, E2, E3...} et de changer le 
test d'arr\^et.
\section{D\'ecomposition en facteurs premiers}
\subsection{Les algorithmes et leurs traductions}
- Premier algorithme\\
Soit $N$ un entier.\\
On teste, pour tous les nombres $D$ de 2 à $N$, la divisibilité de $N$ par 
$D$.\\
Si $D$ divise $N$, on cherche alors les diviseurs de $N/D$ etc...$N/D$ joue le 
r\^ole de $N$ et on s'arr\^ete quand $N=1$ \\
On met les diviseurs trouvés dans la liste {\tt FACT}.

\begin{verbatim}
fonction facprem(N)
local D FACT 
2 -> D
{} -> FACT\end{verbatim}
{\tt tant que N $\neq$ 1 faire}\begin{verbatim}
  si N mod D = 0 alors
    FACT + D -> FACT
    N/D -> N
   sinon
    D+1 -> D
 fsi
ftantque
résultat FACT
ffonction
\end{verbatim}
- Première amélioration\\
On ne teste que les diviseurs D entre 2 et $E(\sqrt N)$.\\
En effet si $N=D1*D2$ alors on a :\\
soit $D1 \leq E(\sqrt N)$, soit $D2 \leq E(\sqrt N)$ car sinon on aurait :\\
$D1*D2 \geq  (E(\sqrt N)+1)^2 >N$.

\begin{verbatim}
fonction facprem(N)
local D FACT
2 -> D
{} -> FACT\end{verbatim}
{\tt tant que D*D $\leq$ N faire}
\begin{verbatim}  si N mod D = 0 alors
    FACT + D -> FACT
    N/D-> N
   sinon
    D+1 -> D
 fsi
ftantque
FACT + N -> FACT
résultat FACT
ffonction
\end{verbatim}
- Deuxième amélioration\\
On cherche si 2 divise $N$, puis on teste les diviseurs impairs $D$ entre 3 et 
$E(\sqrt N)$.\\
Dans la liste {\tt FACT}, on fait suivre  chaque diviseur par son exposant :\\
 decomp(12)=\{2,2,3,1\}.
\begin{verbatim}
fonction  facprem(N)
local K D FACT
{}->FACT
0 -> K
tant que N mod 2 = 0 faire
    K+1 -> K
    N/2 -> N
ftantque\end{verbatim}
 {\tt  si K $\neq$ 0 alors}
\begin{verbatim}    FACT + {2 K} -> FACT
fsi
3 ->D \end{verbatim}
{\tt tant que D*D $\leq$ N faire}
\begin{verbatim}  0 -> K
  tant que N mod D = 0 faire
    K+1 -> K
    N/D -> N
  ftantque\end{verbatim}
 {\tt \ \  si K $\neq$ 0 alors}
\begin{verbatim}    FACT + {D K} -> FACT
  fsi
  D+2 -> D
ftantque\end{verbatim}
{\tt si N $\neq 1$ alors}
\begin{verbatim}FACT + {N 1} -> FACT
fsi
résultat FACT
ffonction
\end{verbatim}
\subsection{Traduction {\tt HP40GS}}
On traduit le dernier algorithme.\\
La {\tt HP40GS} ne connait pas la liste \{\}, donc pour initialiser {\tt L1}
 avec la liste vide on écrit : 
{\tt CLRVAR L1}\\
ou {\tt SUB L1;L1;2;1}.\\
Voici le programme {\tt FACTPREM} :
\begin{verbatim}
INPUT N;"N";;;1:
ERASE:
0 ->K:
CLRVAR L1:
WHILE N MOD 2 == 0 REPEAT
1+K -> K:
N/2 -> N:
END:\end{verbatim}
{\tt IF K $\neq$ 0 THEN}\begin{verbatim}
{2,K} ->L1:
END:
3 ->D:\end{verbatim}
{\tt WHILE D*D $\leq$ N REPEAT}\begin{verbatim}
0 -> K:
WHILE N MOD D == 0 REPEAT
K+1 -> K:
N/D -> N:
END:\end{verbatim}
{\tt IF K $\neq$ 0 THEN}\begin{verbatim}
CONCAT (L1,{D,K}) -> L1:
END:
2+D -> D:
END:\end{verbatim}
{\tt IF N $\neq$ 1 THEN}\begin{verbatim}
CONCAT (L1, {N,1}) -> L1:
END:
DISP 3; "FACT" L1:
FREEZE:
\end{verbatim}
\section{Calcul de $ A^P \  mod\ N$}\label{sec:puimod}
\subsection{Traduction Algorithmique}
- Premier algorithme\\
On utilise deux variables locales {\tt PUIS} et {\tt I}.\\
On fait un programme itératif de façon qu'à chaque étape {\tt PUIS} représente
${\tt A^I \ (\bmod \ N)}$.
\begin{verbatim}
fonction puismod (A, P, N)
local PUIS, I
1->PUIS
pour I de 1 a P faire
  A*PUIS mod N ->PUIS 
fpour
resultat PUIS
ffonction
\end{verbatim} 
- Deuxième algorithme\\
On utilise une seule variable locale {\tt PUI} mais on fait varier {\tt P}
 de façon qu'à chaque étape de l'itération on ait :\\
${\tt  resultat= PUI * A^P \ (\bmod \ N)}$
\begin{verbatim}
fonction puismod (A, P, N)
local PUI
1->PUI
tant que  P>0  faire
  A*PUI mod N ->PUI 
  P-1->P
ftantque
resultat PUI
ffonction
\end{verbatim} 
- Troisième algorithme\\
 On peut aisément modifier ce programme en remarquant que :\\
${\tt A^{2*P} = (A*A)^P}$.\\
Donc quand P est pair on a la relation :\\
${\tt PUI*A^P = PUI*(A*A)^{P/2} \ (\bmod \ N)}$\\
et quand P est impair on a la relation :\\
${\tt PUI*A^P = PUI*A*A^{P-1}\ (\bmod \ N)}$.\\
On obtient  alors un algorithme rapide de ${\tt  A^P \ (\bmod \ N)}$.
\begin{verbatim}
fonction puismod (A, P, N)
local PUI
1->PUI
tant que  P>0  faire
  si P mod 2 =0 alors
    P/2->P
    A*A mod N->A
  sinon
    A*PUI mod N ->PUI 
    P-1->P
  fsi
ftantque
resultat PUI
ffonction
\end{verbatim} 
On peut remarquer que si {\tt P} est impair,{\tt  P-1} est pair.\\
 On peut donc écrire :
\begin{verbatim}
fonction puismod (A, P, N)
local PUI
1->PUI
tant que  P>0  faire
  si P mod 2 =1 alors
    A*PUI mod N ->PUI 
    P-1->P
  fsi   
P/2->P
A*A mod N->A
ftantque
resultat PUI
ffonction
\end{verbatim} 
\subsection{Traduction HP40GS}
Le calcul de ${\tt A^p \bmod N}$ est utilisé dans le
 programme de la méthode probabiliste  de Mr Rabin. On se reportera donc à ce
  sous-programme pour la traduction (cf \ref{sec:rabin}).
\section{La fonction "estpremier"}
\subsection{Traduction Algorithmique}
- Premier algorithme

On va écrire un fonction booléenne de paramètre {\tt N}, qui sera égale à 
 {\tt VRAI} quand {\tt N} est premier et à {\tt FAUX} sinon.\\
Pour cela, on cherche si {\tt N} posséde un diviseur $\neq$ 1 et $\leq$ à 
${\tt  E(\sqrt{N})}$ (partie entière de racine de {\tt N}).\\
On traite le cas {\tt N=1} à part!\\
On utilise une variable booléenne {\tt PREM}, qui est au départ à {\tt VRAI},
 et qui passe à {\tt FAUX} d\`es que l'on rencontre un diviseur de {\tt N}.
\begin{verbatim}
Fonction estpremier(N)
local PREM, I, J\end{verbatim}
${\tt  E(\sqrt{N}) ->J}$
\begin{verbatim}Si N = 1 alors
  FAUX->PREM
  sinon
  VRAI->PREM
fsi
2->I\end{verbatim}
{\tt tant que PREM et I $\leq$J faire}
\begin{verbatim}  si N mod I = 0 alors
     FAUX->PREM
     sinon
     I+1->I
  fsi 
ftantque
résultat PREM
ffonction
\end{verbatim}

- Première amélioration\\
On peut remarquer que l'on peut tester si {\tt N} est pair, et sinon regarder 
si {\tt N} possède un diviseur impair.
\begin{verbatim}
Fonction estpremier(N)
local PREM, I, J\end{verbatim}
${\tt  E(\sqrt{N}) ->J} $\\
{\tt  Si (N = 1) ou (N mod 2 = 0) et (N$\neq$2) alors}\begin{verbatim}
  FAUX->PREM
  sinon
  VRAI->PREM
fsi
3->I\end{verbatim}
{\tt tant que PREM et I $\leq$J faire}
\begin{verbatim}  si N mod I = 0 alors
     FAUX->PREM
  sinon
     I+2->I
  fsi 
ftantque
résultat PREM
ffonction
\end{verbatim}

- Deuxième amélioration\\
On regarde si {\tt N} est divisible par 2 ou par 3,  sinon on regarde si 
{\tt N} posséde un diviseur de la forme $6 \times k-1 $ ou  $6 \times k+1 $.


\begin{verbatim}
Fonction estpremier(N)
local PREM, I, J\end{verbatim}
${\tt  E(\sqrt{N}) ->J}$
\begin{verbatim}Si (N = 1) ou (N mod 2 = 0) ou ( N mod 3 = 0) alors
  FAUX->PREM
  sinon
  VRAI->PREM
fsi
si N=2 ou N=3 alors 
VRAI->PREM
fsi
5->I\end{verbatim}
{\tt tant que PREM et I $\leq$ J faire}
\begin{verbatim}  si (N mod I = 0) ou (N mod I+2 =0) alors
     FAUX->PREM
     sinon
     I+6->I
  fsi 
ftantque
résultat PREM
ffonction
\end{verbatim}
\subsection{Traduction HP40GS}
\begin{verbatim}
INPUT N;"N";;;1:
IF N MOD 2== 0 OR N MOD 3==0 OR N==1 THEN
0 ->P:
ELSE
1->P:
END:
IF N==2 OR N==3 THEN
1->P:
END:
5->I:\end{verbatim}
${\tt FLOOR(\sqrt {N})->J:}$\\
{\tt WHILE I $\leq$ J AND P REPEAT}\begin{verbatim}
IF N MOD I==0 OR N MOD (I+2)==0 THEN 
0 ->P:
ELSE
I+6 ->I:
END:
END:
ERASE:
DISP 5;P:
FREEZE: 
\end{verbatim}
\section{Méthode probabiliste de Mr Rabin}\label{sec:rabin}
Si $N$ est premier alors tous les nombres $K$ strictement inf\'erieurs \`a $N$ 
sont premiers avec $N$, donc d'apr\`es le petit th\'eor\`eme de Fermat on a :\\
$ K^{N-1} = 1 \  (\bmod\  N)$\\ 
Si $N$ n'est pas premier, les entiers $K$ vérifiant :\\
$ K^{N-1} = 1 \  (\bmod\  N)$\\ 
sont tr\`es peu nombreux.\\
%Plus pr\'ecisement on peut montrer que si $ N>4 $, la probabilit\'e d'obtenir
% un tel nombre $K$ est inf\'erieure \`a 0.25.\\
Un nombre $N$ vérifiant $ K^{N-1} = 1 \  (\bmod\  N)$ pour 20 tirages de $K$
  est un nombre pseudo-premier.
La m\'ethode probabiliste de Rabin consiste \`a tirer au hasard un nombre $K$ 
($1< K < N $) et à calculer :\\
$ K^{N-1}  \  (\bmod\  N)$  \\
Si $ K^{N-1} = 1 \  (\bmod\  N)$ on refait un autre tirage et si 
$ K^{N-1} \neq  1 \  (\bmod\  N)$ on est s\^ur que $N$ n'est pas premier.\\
Si on obtient $ K^{N-1} = 1 \  (\bmod\  N)$  pour 20 tirages  de $K$ on 
peut conclure
 que $N$ est premier avec une probabilit\'e d'erreur tr\`es faible. 
%inf\'erieure \`a $0.25^{20}$ soit de l'ordre de $10^{-12}$.

Bien s\^ur cette m\'ethode est employ\'ee pour savoir  si de  grands nombres 
sont pseudo-premiers, mais la commande {\tt ISPRIME?} utilise la m\'ethode de 
Miller-Rabin, m\'ethode qui est aussi bas\'ee sur le petit th\'eor\`eme de 
Fermat et qui est aussi une m\'ethode probabiliste mais qui donne $N$  
premier avec une probabilit\'e d'erreur plus faible (inf\'erieure \`a 
$(0.25)^{20}$ si on a  effectu\'e 20 tirages de $K$, soit, une erreur de 
l'ordre de $10^{-12}$).
\subsection{Traduction Algorithmique}
  On suppose que :\\
{\tt Hasard(N)} donne un nombre entier au hasard entre 0 et $N-1$.\\
 Le calcul de :\\
$ K^{N-1}  \bmod\  N$\\  
se fait gr\^ace \`a l'algorithme de la puissance rapide 
(cf page \pageref{sec:puimod}).\\
On notera :
{\tt puismod(K, P, N)} la fonction qui calcule ${\tt K^P  \bmod\  N}$.  

\begin{verbatim}
Fonction estprem(N)
local K, I, P
1->I
1->P
Tant que P = 1 et I < 20 faire
hasard(N-2)+2->K
puismod(K, N-1, N)->P
I+1->I
ftantque
Si P =1 alors
resultat VRAI
sinon
resultat FAUX
fsi
ffonction
\end{verbatim}
\subsection{Traduction {\tt HP40GS}}
\begin{verbatim}
PROMPT N:
RANDSEED TIME:
1->I:
1->P:
WHILE I < 20 AND P==1 REPEAT
  FLOOR( RANDOM * (N-2))+2->K:
  N-1->M:
  @ Calcul de K puissance M mod N dans P.
  1->P:
  WHILE  0 < M REPEAT
    IF M MOD 2 == 0 THEN
      M / 2 -> M :
      (K * K)  MOD N ->K :
    ELSE
      K*P MOD N -> P:
      M - 1 -> M:
    END:
  END: 
  @ P contient K puissance M mod N et M=N-1.
  I+1 ->I:
END:
ERASE:
IF P==1 THEN
  DISP 3;"PREMIER " N: 
ELSE 
  DISP 3;"NON PREMIER " N:
END:
FREEZE:
\end{verbatim}
{\sc Remarque} : \\
On peut aussi utiliser la fonction de calcul formel {\tt POWMOD} et on écrit 
alors :\\
{\tt MODSTO(N):}\\
{\tt POWMOD(K,N-1) -> P:}\\
à la place des instructions comprises entre les @, et on obtient :\\
\begin{verbatim}
PROMPT N:
RANDSEED TIME:
1->I:
1->P:
WHILE I < 20 AND P==1 REPEAT
  FLOOR( RANDOM * (N-2))+2->K:
  MODSTO(N):
  POWMOD(K,N-1)-> P:
  I+1 ->I:
END:
ERASE:
IF P==1 THEN
  DISP 3;"PREMIER " N: 
ELSE 
  DISP 3;"NON PREMIER " N:
END:
FREEZE:
\end{verbatim}

\chapter{GNU Free Documentation License} \label{sec:fdl}
{\tiny
Version 1.1, March 2000

Copyright (C) 2000  Free Software Foundation, Inc.
59 Temple Place, Suite 330, Boston, MA  02111-1307  USA
Everyone is permitted to copy and distribute verbatim copies
of this license document, but changing it is not allowed.

0. PREAMBLE

The purpose of this License is to make a manual, textbook, or other written
document "free" in the sense of freedom: to assure everyone the effective
freedom to copy and redistribute it, with or without modifying it, either
commercially or noncommercially. Secondarily, this License preserves for the
author and publisher a way to get credit for their work, while not being
considered responsible for modifications made by others.

This License is a kind of "copyleft", which means that derivative works of
the document must themselves be free in the same sense. It complements the
GNU General Public License, which is a copyleft license designed for free
software.

We have designed this License in order to use it for manuals for free
software, because free software needs free documentation: a free program
should come with manuals providing the same freedoms that the software does.
But this License is not limited to software manuals; it can be used for any
textual work, regardless of subject matter or whether it is published as a
printed book. We recommend this License principally for works whose purpose
is instruction or reference.

1. APPLICABILITY AND DEFINITIONS

This License applies to any manual or other work that contains a notice
placed by the copyright holder saying it can be distributed under the terms
of this License. The "Document", below, refers to any such manual or work.
Any member of the public is a licensee, and is addressed as "you".

A "Modified Version" of the Document means any work containing the Document
or a portion of it, either copied verbatim, or with modifications and/or
translated into another language.

A "Secondary Section" is a named appendix or a front-matter section of the
Document that deals exclusively with the relationship of the publishers or
authors of the Document to the Document's overall subject (or to related
matters) and contains nothing that could fall directly within that overall
subject. (For example, if the Document is in part a textbook of mathematics,
a Secondary Section may not explain any mathematics.) The relationship could
be a matter of historical connection with the subject or with related
matters, or of legal, commercial, philosophical, ethical or political
position regarding them.

The "Invariant Sections" are certain Secondary Sections whose titles are
designated, as being those of Invariant Sections, in the notice that says
that the Document is released under this License.

The "Cover Texts" are certain short passages of text that are listed, as
Front-Cover Texts or Back-Cover Texts, in the notice that says that the
Document is released under this License.

A "Transparent" copy of the Document means a machine-readable copy,
represented in a format whose specification is available to the general
public, whose contents can be viewed and edited directly and
straightforwardly with generic text editors or (for images composed of
pixels) generic paint programs or (for drawings) some widely available
drawing editor, and that is suitable for input to text formatters or for
automatic translation to a variety of formats suitable for input to text
formatters. A copy made in an otherwise Transparent file format whose markup
has been designed to thwart or discourage subsequent modification by readers
is not Transparent. A copy that is not "Transparent" is called "Opaque".

Examples of suitable formats for Transparent copies include plain ASCII
without markup, Texinfo input format, LaTeX input format, SGML or XML using
a publicly available DTD, and standard-conforming simple HTML designed for
human modification. Opaque formats include PostScript, PDF, proprietary
formats that can be read and edited only by proprietary word processors,
SGML or XML for which the DTD and/or processing tools are not generally
available, and the machine-generated HTML produced by some word processors
for output purposes only.

The "Title Page" means, for a printed book, the title page itself, plus such
following pages as are needed to hold, legibly, the material this License
requires to appear in the title page. For works in formats which do not have
any title page as such, "Title Page" means the text near the most prominent
appearance of the work's title, preceding the beginning of the body of the
text.

2. VERBATIM COPYING

You may copy and distribute the Document in any medium, either commercially
or noncommercially, provided that this License, the copyright notices, and
the license notice saying this License applies to the Document are
reproduced in all copies, and that you add no other conditions whatsoever to
those of this License. You may not use technical measures to obstruct or
control the reading or further copying of the copies you make or distribute.
However, you may accept compensation in exchange for copies. If you
distribute a large enough number of copies you must also follow the
conditions in section 3.

You may also lend copies, under the same conditions stated above, and you
may publicly display copies.

3. COPYING IN QUANTITY

If you publish printed copies of the Document numbering more than 100, and
the Document's license notice requires Cover Texts, you must enclose the
copies in covers that carry, clearly and legibly, all these Cover Texts:
Front-Cover Texts on the front cover, and Back-Cover Texts on the back
cover. Both covers must also clearly and legibly identify you as the
publisher of these copies. The front cover must present the full title with
all words of the title equally prominent and visible. You may add other
material on the covers in addition. Copying with changes limited to the
covers, as long as they preserve the title of the Document and satisfy these
conditions, can be treated as verbatim copying in other respects.

If the required texts for either cover are too voluminous to fit legibly,
you should put the first ones listed (as many as fit reasonably) on the
actual cover, and continue the rest onto adjacent pages.

If you publish or distribute Opaque copies of the Document numbering more
than 100, you must either include a machine-readable Transparent copy along
with each Opaque copy, or state in or with each Opaque copy a
publicly-accessible computer-network location containing a complete
Transparent copy of the Document, free of added material, which the general
network-using public has access to download anonymously at no charge using
public-standard network protocols. If you use the latter option, you must
take reasonably prudent steps, when you begin distribution of Opaque copies
in quantity, to ensure that this Transparent copy will remain thus
accessible at the stated location until at least one year after the last
time you distribute an Opaque copy (directly or through your agents or
retailers) of that edition to the public.

It is requested, but not required, that you contact the authors of the
Document well before redistributing any large number of copies, to give them
a chance to provide you with an updated version of the Document.

4. MODIFICATIONS

You may copy and distribute a Modified Version of the Document under the
conditions of sections 2 and 3 above, provided that you release the Modified
Version under precisely this License, with the Modified Version filling the
role of the Document, thus licensing distribution and modification of the
Modified Version to whoever possesses a copy of it. In addition, you must do
these things in the Modified Version:

   * A. Use in the Title Page (and on the covers, if any) a title distinct
     from that of the Document, and from those of previous versions (which
     should, if there were any, be listed in the History section of the
     Document). You may use the same title as a previous version if the
     original publisher of that version gives permission.
   * B. List on the Title Page, as authors, one or more persons or entities
     responsible for authorship of the modifications in the Modified
     Version, together with at least five of the principal authors of the
     Document (all of its principal authors, if it has less than five).
   * C. State on the Title page the name of the publisher of the Modified
     Version, as the publisher.
   * D. Preserve all the copyright notices of the Document.
   * E. Add an appropriate copyright notice for your modifications adjacent
     to the other copyright notices.
   * F. Include, immediately after the copyright notices, a license notice
     giving the public permission to use the Modified Version under the
     terms of this License, in the form shown in the Addendum below.
   * G. Preserve in that license notice the full lists of Invariant Sections
     and required Cover Texts given in the Document's license notice.
   * H. Include an unaltered copy of this License.
   * I. Preserve the section entitled "History", and its title, and add to
     it an item stating at least the title, year, new authors, and publisher
     of the Modified Version as given on the Title Page. If there is no
     section entitled "History" in the Document, create one stating the
     title, year, authors, and publisher of the Document as given on its
     Title Page, then add an item describing the Modified Version as stated
     in the previous sentence.
   * J. Preserve the network location, if any, given in the Document for
     public access to a Transparent copy of the Document, and likewise the
     network locations given in the Document for previous versions it was
     based on. These may be placed in the "History" section. You may omit a
     network location for a work that was published at least four years
     before the Document itself, or if the original publisher of the version
     it refers to gives permission.
   * K. In any section entitled "Acknowledgements" or "Dedications",
     preserve the section's title, and preserve in the section all the
     substance and tone of each of the contributor acknowledgements and/or
     dedications given therein.
   * L. Preserve all the Invariant Sections of the Document, unaltered in
     their text and in their titles. Section numbers or the equivalent are
     not considered part of the section titles.
   * M. Delete any section entitled "Endorsements". Such a section may not
     be included in the Modified Version.
   * N. Do not retitle any existing section as "Endorsements" or to conflict
     in title with any Invariant Section.

If the Modified Version includes new front-matter sections or appendices
that qualify as Secondary Sections and contain no material copied from the
Document, you may at your option designate some or all of these sections as
invariant. To do this, add their titles to the list of Invariant Sections in
the Modified Version's license notice. These titles must be distinct from
any other section titles.

You may add a section entitled "Endorsements", provided it contains nothing
but endorsements of your Modified Version by various parties--for example,
statements of peer review or that the text has been approved by an
organization as the authoritative definition of a standard.

You may add a passage of up to five words as a Front-Cover Text, and a
passage of up to 25 words as a Back-Cover Text, to the end of the list of
Cover Texts in the Modified Version. Only one passage of Front-Cover Text
and one of Back-Cover Text may be added by (or through arrangements made by)
any one entity. If the Document already includes a cover text for the same
cover, previously added by you or by arrangement made by the same entity you
are acting on behalf of, you may not add another; but you may replace the
old one, on explicit permission from the previous publisher that added the
old one.

The author(s) and publisher(s) of the Document do not by this License give
permission to use their names for publicity for or to assert or imply
endorsement of any Modified Version.

5. COMBINING DOCUMENTS

You may combine the Document with other documents released under this
License, under the terms defined in section 4 above for modified versions,
provided that you include in the combination all of the Invariant Sections
of all of the original documents, unmodified, and list them all as Invariant
Sections of your combined work in its license notice.

The combined work need only contain one copy of this License, and multiple
identical Invariant Sections may be replaced with a single copy. If there
are multiple Invariant Sections with the same name but different contents,
make the title of each such section unique by adding at the end of it, in
parentheses, the name of the original author or publisher of that section if
known, or else a unique number. Make the same adjustment to the section
titles in the list of Invariant Sections in the license notice of the
combined work.

In the combination, you must combine any sections entitled "History" in the
various original documents, forming one section entitled "History"; likewise
combine any sections entitled "Acknowledgements", and any sections entitled
"Dedications". You must delete all sections entitled "Endorsements."

6. COLLECTIONS OF DOCUMENTS

You may make a collection consisting of the Document and other documents
released under this License, and replace the individual copies of this
License in the various documents with a single copy that is included in the
collection, provided that you follow the rules of this License for verbatim
copying of each of the documents in all other respects.

You may extract a single document from such a collection, and distribute it
individually under this License, provided you insert a copy of this License
into the extracted document, and follow this License in all other respects
regarding verbatim copying of that document.

7. AGGREGATION WITH INDEPENDENT WORKS

A compilation of the Document or its derivatives with other separate and
independent documents or works, in or on a volume of a storage or
distribution medium, does not as a whole count as a Modified Version of the
Document, provided no compilation copyright is claimed for the compilation.
Such a compilation is called an "aggregate", and this this License does not
apply to the other self-contained works thus compiled with the Document, on
account of their being thus compiled, if they are not themselves derivative
works of the Document. If the Cover Text requirement of section 3 is
applicable to these copies of the Document, then if the Document is less
than one quarter of the entire aggregate, the Document's Cover Texts may be
placed on covers that surround only the Document within the aggregate.
Otherwise they must appear on covers around the whole aggregate.

8. TRANSLATION

Translation is considered a kind of modification, so you may distribute
translations of the Document under the terms of section 4. Replacing
Invariant Sections with translations requires special permission from their
copyright holders, but you may include translations of some or all Invariant
Sections in addition to the original versions of these Invariant Sections.
You may include a translation of this License provided that you also include
the original English version of this License. In case of a disagreement
between the translation and the original English version of this License,
the original English version will prevail.

9. TERMINATION

You may not copy, modify, sublicense, or distribute the Document except as
expressly provided for under this License. Any other attempt to copy,
modify, sublicense or distribute the Document is void, and will
automatically terminate your rights under this License. However, parties who
have received copies, or rights, from you under this License will not have
their licenses terminated so long as such parties remain in full compliance.

10. FUTURE REVISIONS OF THIS LICENSE

The Free Software Foundation may publish new, revised versions of the GNU
Free Documentation License from time to time. Such new versions will be
similar in spirit to the present version, but may differ in detail to
address new problems or concerns. See http://www.gnu.org/copyleft/.

Each version of the License is given a distinguishing version number. If the
Document specifies that a particular numbered version of this License "or
any later version" applies to it, you have the option of following the terms
and conditions either of that specified version or of any later version that
has been published (not as a draft) by the Free Software Foundation. If the
Document does not specify a version number of this License, you may choose
any version ever published (not as a draft) by the Free Software Foundation.

How to use this License for your documents

To use this License in a document you have written, include a copy of the
License in the document and put the following copyright and license notices
just after the title page:

      Copyright (c)  YEAR  YOUR NAME.
      Permission is granted to copy, distribute and/or modify this document
      under the terms of the GNU Free Documentation License, Version 1.1
      or any later version published by the Free Software Foundation;
      with the Invariant Sections being LIST THEIR TITLES, with the
      Front-Cover Texts being LIST, and with the Back-Cover Texts being LIST.
      A copy of the license is included in the section entitled "GNU
      Free Documentation License".

If you have no Invariant Sections, write "with no Invariant Sections"
instead of saying which ones are invariant. If you have no Front-Cover
Texts, write "no Front-Cover Texts" instead of "Front-Cover Texts being
LIST"; likewise for Back-Cover Texts.

If your document contains nontrivial examples of program code, we recommend
releasing these examples in parallel under your choice of free software
license, such as the GNU General Public License, to permit their use in free
software.
}

\appendix
\chapter{Index}
Deux pages plus loin.
\twocolumn  
%\newpage
{\tt \printindex}
%\newpage
\chapter{Table des matières}
Deux pages plus loin.
\twocolumn
\tableofcontents

\end{document}

%%%%%%%%%%%%%%pas fait%%%%%%%
\section{\tt Graphics}
\subsection{\tt SCROLL}\index{SCROLL}
{\tt SCROLL} has a graphics object as argument.\\
{\tt SCROLL} displays the graphics object, without touching {\tt PICT}.\\
For example, suppose you have just plotted the function ${\tt F(X)}$.
The plot is automatically stored into the reserved variable
{\tt PICT}.\\
Therefore, {\tt PICT} contains the current graphics variable.
You can save its contents, typing:\\
$${\tt RCL(PICT)\  STO\triangleright\ GRF}$$ 
Next, if you type:
$${\tt SCROLL(GRF)}$$
you display the plot of ${\tt F(X)}$ again.\\

\subsection{\tt GROBADD}\index{GROBADD}
{\tt GROBADD} has two graphics objects as arguments.\\
{\tt GROBADD} concatenates its arguments and returns the result.\\
For example, if you previously saved the plot of ${\tt F(X)}$ into {\tt GRF},
and the plot of ${\tt H(X)}$ into {\tt GRH}, you can type:
$${\tt GROBADD(GRF,GRH)\ STO\triangleright\  GRFH}$$
This command stores into {\tt GRFH} a graphics object containing
the plots of both ${\tt F(X)}$ and ${\tt H(X)}$, one below the other.\\
\section{Les fonctions de plusieurs variables}
%POTENTIAL et VPOTENTIAL ne marchent pas cannot store current variable
\subsection{\tt POTENTIAL}\index{POTENTIAL}
{\tt  POTENTIAL} has two arguments : a vector $\overrightarrow V$ which depends
of variables and a vector of the name of these variables.\\
{\tt  POTENTIAL} returns an expression $U$ such that
 $\overrightarrow{Grad}(U)=\overrightarrow V$ when it is possible ! 
In that case, $\overrightarrow V$ has as  potential $U$.\\
The general solution is the sum of a particular solution and of a constant.\\
We know that a vector $\overrightarrow V$ is a gradient if and only if 
 its rotor is zero : that is to say if ${\tt CURL(V)=0}$.\\
{\tt  POTENTIAL} is the inverse function of {\tt DERIV}.\\
On tape :
$${\tt POTENTIAL([2*S1*S2+3,S1^2-4*S3,-4*S2],[S1,S2,S3]) }$$
%On obtient :
%$${\tt Y\cdot X^2+3\cdot X-4\cdot Z\cdot Y}$$

\subsection{\tt VPOTENTIAL}\index{VPOTENTIAL}
{\tt  VPOTENTIAL} a deux arguments : un vecteur $\overrightarrow V$ dépendant de
variables et le vecteur constitué du nom de ces variables.\\
{\tt  VPOTENTIAL} renvoie un vecteur $\overrightarrow U$ tel que 
$\overrightarrow{Rot}(\overrightarrow U)=\overrightarrow V$ si bien s\^ur cela est possible ! (On dit parfois que 
$\overrightarrow V$ est un champ à flux conservatif ou un champ soléno\" idal).\\
La solution générale est la somme d'une solution particulière et d'un gradient
arbitraire, la calculatrice renvoie le vecteur solution particulière de 
première composante nulle.\\
On sait qu'un vecteur $\overrightarrow V$ est un  rotationnel si et seulement si sa divergence
 est nulle : autrement dit si ${\tt DIV(V)=0}$.\\
En électro-magnétisme $\overrightarrow V$= $\overrightarrow B$= le champ magnétique et $\overrightarrow U$= $\overrightarrow A$= le potentiel vecteur.\\ 
{\tt  VPOTENTIAL} est la fonction réciproque de {\tt CURL}.\\
On tape :
$${\tt VPOTENTIAL([2*S1*S2+3,S1^2-4*S3,-2*S2*S3],[S1,S2,S3]) }$$
%On obtient :
%$${\tt [0,-2\cdot Z\cdot Y\cdot X,3\cdot Y-(\frac{1}{3}\cdot X^3-4\cdot Z\cdot X)]}$$
% GBASIS Invalid syntax
