7.5 Expression mathématique

Maple est un outil de calcul symbolique qui permet de manipuler des expressions mathématiques avec des variables mathématiques (ou paramètres) , qui sont des variables (ou identificateurs en informatique) non initialisées. Ainsi l'instruction

>(x+y)^3*(x+y)^2; rel:=%:


\begin{displaymath}
(x+y)^{5}\end{displaymath}

définit une expression mathématique fonction de 2 variables x et y, et affecte ensuite cette expression à la variable rel , pour pouvoir y référer ultérieurement.

Pour calculer la valeur d'une telle expression, il suffit d'affecter une valeur aux variables, i.e.:

>x:=3:y:=4: rel;


\begin{displaymath}
16807\end{displaymath}

Attention: l'affectation d'une variable est globale et chaque fois que cette variable apparaıt dans une expression, elle est remplacée par sa valeur.

Pour transformer à nouveau une variable initialisée en une variable mathématique, il suffit d'utiliser l'instruction restart: (dans ce cas toutes les définitions de variable sont supprimées), ou d'affecter à la variable son nom entre \fbox{\bf{'}}, i.e.:

>x:='x': y:='y': rel;


\begin{displaymath}
(x+y)^{5}\end{displaymath}

Exercice: essayer l'instruction suivante: x=3:y=4: rel; , comparer avec l'instruction précédente, et expliquer pourquoi le résultat est différent.

On peut transformer des expressions à l'aide de multiples fonctions Maple. Pour développer une expression, on utilise expand, i.e.

>expand(rel);


\begin{displaymath}
x^{5}+5\, x^{4}y+10\, x^{3}y^{2}+10\, x^{2}y^{3}+5\, xy^{4}+y^{5}\end{displaymath}

et peut la factoriser à l'aide de factor, i.e.:

>factor(%);


\begin{displaymath}
(x+y)^{5}\end{displaymath}

Pour simplifier une expression, on utilise la fonction simplify, i.e.:

>cos(x)^5+sin(x)^4+2*cos(x)^2-2*sin(x)^2-cos(2*x); simplify(%);


\begin{displaymath}
\begin{array}{c}
\cos(x)^{5}+\sin(x)^{4}+2\,\cos(x)^{2}-2\,\sin(x)^{2}-\cos(2\, x)\\
\cos(x)^{5}+\cos(x)^{4}\end{array}\end{displaymath}

Attention: il ne faut surtout pas croire que Maple va faire des miracles pour la simplification des expressions. Dans la plupart des cas, il faut l'aider en lui suggérant des mises en facteurs (avec la fonction factor) ou des substitutions (avec la fonction subs).

On peut enfin transformer une expression en fonction avec l'opérateur \fbox{$->$} , que l'on affecte ensuite à une variable (le nom de la fonction), i.e.

>f:=(x,y)->(x+y)^5;


\begin{displaymath}
f:=({x,y})\mapsto\left(x+y\right)^{5}\end{displaymath}

définit une fonction f, de 2 variables x et y, qui à pour valeur l'expression $(x+y)^{5}$. On peut ensuite calculer la valeur de la fonction en fournissant les arguments entre parenthèses:

>f(1,a/b);


\begin{displaymath}
(1+\frac{a}{b})^{5}\end{displaymath}

Une autre façon de transformer une expression en fonction est d'utiliser la fonction unapply, i.e.:

>g:=unapply(rel,x);


\begin{displaymath}
g:={x}\mapsto\left(x+y\right)^{5}\end{displaymath}

transforme l'expression rel en une fonction appelée g d'une variable x. De part la définition de rel, cette fonction dépend d'un paramètre y. (Noter la différence avec la définition précédente de la fonction f). On préfère en générale utiliser la fonction unapply pour transformer une expression en fonction, plutôt que l'opérateur \fbox{$->$}, bien que celui ci semble plus naturel, car dans ce cas l'expression n'est pas évaluée lors de la définition (mais uniquement lors de l'exécution), i.e.:

>g1:=x->rel;


\begin{displaymath}
g1:=x\mapsto\, rel\end{displaymath}

Les 2 définitions sont équivalentes lors de l'évaluation, i.e. $g(x)=g1(x)$.


Pr. Marc BUFFAT
marc.buffat@univ-lyon1.fr
2007-02-08