\documentstyle[11pt,french]{article}
%\usepackage{a4wide}
%\usepackage{xspace}
%\usepackage{french}
\def\maple{{\sc Maple}\ }
\def\pascal{{\sc Pascal}\ }
\def\ttt#1{{\tt #1}}

\title{TD maple 1 : introduction}
\author{St\'efane Fermigier}

\begin{document}
\maketitle
\section{Introduction}
\maple est un logiciel de calcul formel (num\'erique et symbolique)
puissant, r\'epandu dans l'enseignement et l'industrie et d'utilisation assez
simple. ``\maple'' est un acronyme de ``MAthematical PLEasure'', 
\c{c}a veut aussi dire ``\'erable'' en anglais.
Il a \'et\'e cr\'ee en 1981 (mais a beaucoup \'evolu\'e depuis) 
par l'universit\'e de Waterloo au Canada anglophone~;
il est donc recommand\'e de conna\^{\i}tre un peu l'anglais pour s'en servir (en 
particulier pour comprendre les messages d'aide).

Les objets et les algorithmes connus par \maple recouvrent l'essentiel du
programme de premier cycle~: nombres entiers, r\'eels et complexes, 
alg\`ebre lin\'eaire (matrices), suites num\'eriques, fonctions d'une ou plusieurs
variables r\'eelles, limites, d\'eveloppements limit\'es,
solutions d'\'equations et de syst\`emes d'\'equation, lin\'eaires ou non,
et aussi d'\'equations diff\'erentielles,
int\'egrales, arithm\'etique, trac\'e de courbes et de surfaces 
param\'etr\'ees\dots

\section{Prise en main}
Lorsqu'on a un doute sur une commande, on peut taper `{\tt ?}' suivi du nom
de la commande. On appelle \c{c}a l'``aide en ligne'' et c'est tr\`es pratique.
On peut aussi utiliser le navigateur (``{\it browser}'') d'aide, accessible
par la barre de menu.
\begin{itemize}
\item Taper {\tt ?{}?}.
\item Lire l'introduction.
\item Essayer les exemples sugg\'er\'es.
\item Explorer avec la souris les diff\'erents menus propos\'es, les 
ascenseurs, l'\'editeur de commandes.
\end{itemize}

En \maple, l'ex\'ecution d'une commande est d\'eclench\'ee par le caract\`ere
`{\tt ;}' valid\'e par un retour chariot. On obtient alors le r\'esultat de
la commande. Le caract\`ere `{\tt :}' est aussi un caract\`ere de terminaison,
mais il inhibe l'affichage du r\'esultat.

\section{Op\'erations \'el\'ementaires}
Taper
\begin{verbatim}
> 1;
> 2^300;
> 2**300;
> 3/7;
> ";
> (2/3)^2;
> ";
\end{verbatim}
Les op\'erations arithm\'etiques usuelles sont not\'ees
\verb'+, -, *, /, ^' (ou \ttt{**}). 
Taper `\ttt{?+}' et essayer des exemples. On a aussi la factorielle 
`{\tt !}', des op\'erateurs de comparaison (taper `\ttt{?=}')\dots
\\
Taper maintenant
\begin{verbatim}
> 1/2-1/3;
> evalf (");
\end{verbatim}

\paragraph{}
Quelques fonctions : \ttt{abs(x), max(x,y), sqrt(x), exp(x),
ln(x), sin(x), arcsin(x)}
\\
Quelques constantes : \ttt{Pi, I, infinity}. Essayer de deviner
(\`a l'aide de \maple) ce qu'elles repr\'esentent et vérifier que c'est bien
le cas. 
\\
Taper
\begin{verbatim}
> sin(0);
> sin(Pi);
> sin(1);
\end{verbatim}


\section{Variables, affectation}
Les noms de variables \maple sont form\'ees d'une lettre suivie
de lettre ou de chifffres (ex~: \ttt{x, xyz, a2}\dots).

Pour donner une valeur \`a une variable, on utilise l'affectation `\ttt{:=}'. Ne pas confondre
`\ttt{:=}' et `\ttt{=}'.
Essayer 
\begin{verbatim}
> x;
> x = 1;
> x;
> x := 1;
> x;
\end{verbatim}

Tant qu'une variable n'a pas \'et\'e affect\'ee, elle repr\'esente un 
``symbole''~: sa valeur est son nom. Essayer ce qui suit apr\`es avoir
red\'emarr\'e une session, \`a l'aide de la commande {\it new} du menu
{\it file}~:
\begin{verbatim}
> a;
> a := x+y;
> x := 1; a;
> x := 2; a;
\end{verbatim}

\section{Quelques exemples}
Si le temps le permet, on pourra taper et essayer de comprendre
les exemples suivants (remarque~: le `{\tt \#}' introduit un commentaire
qui se poursuit jusqu'\`a la fin de la ligne)~:
\begin{verbatim}
> diff(x*sin(cos(x)), x);              # Derivation.
> A := Int(x^6/sqrt(43-x^2)^19, x=1..2); 
  A := int(x^6/sqrt(43-x^2)^19, x=1..2);
> int (sin(cos(x)), x=1..2); evalf(");
> solve (x^2-4);
  factor (x^2-4);
> solve (x^2+1);
  factor (x^2+1);
  factor (x^2+1,I);
> solve (x^2 - (2+3*I)*x - 1+3*I);
  factor (x^2 - (2+3*I)*x - 1+3*I); 
> solve (a*x^2+b*x+c, x); 
      # Quel est le probleme avec le resultat que donne maple?
> plot(sin(x)/x, x=0..20);
> cos(a+b); expand(");
\end{verbatim}

Pour passer à la ligne sans provoquer l'exécution des commandes, maintenir la touche {\sf Shift}
($\Uparrow$) enfoncée et taper {\sf Entrée}.
 
\section{Les fonctions dans \maple}

Taper 
\begin{verbatim}
> f:= x^2*ln(x);
> subs(x=2,f); 
> f(2);
\end{verbatim}

Essayer maintenant 
\begin{verbatim}
> f(x) := x^2*ln(x);
\end{verbatim}

Ce ne sont donc pas les bonnes méthodes pour définir une fonction.
\\
La solution est d'utiliser \verb"->" (signe ``moins'' suivit de ``supérieur'').

\begin{verbatim}
> f := x -> x^2*ln(x);
\end{verbatim}

Que donnent les instructions \verb"f(2);", \verb"f(x);", \verb"f(y);"~?

On peut aussi définir des fonctions de plusieurs variable,
représenter graphiquement les fonctions choisies à l'aide de commandes
du type \verb"plot(f)", \verb"plot(f,a..b)" ou 
\verb"plot(f,a..b,c..d)" (pour une {\bf fonction} d'une seule variable) 
et \verb"plot3d" (pour une fonction de 2~variables). 

\end{document}
