Vous êtes sur la page 1sur 9

Programmation en MAPLE

Fonctions & Procdures en MAPLE


I. Les fonctions mathmatiques
MAPLE permet lutilisateur de crer ses propres fonctions au moyen dune syntaxe inspire
de celles des mathmatiques.

1. Dfinition dune fonction


> Nomf:=variable->expression;
Exemple :

> f:=x->x+sin(x);

f := xxsin( x )

Lutilisateur accdera aux valeurs dune fonction en utilisant la syntaxe usuelle des
mathmaticiens.

> f(Pi/2);
1
1
2

> evalf(Pi/2);
1.570796327

> evalf(Pi/2,3);
1.57

2. Notations mathmatiques usuelles


Notation mathmatique
x y
x y
x y ou xy
AB
x
x y ou
y

Signification
addition
soustraction
multiplication commutative
multiplication non commutative
division

Notation MAPLE

xy
k!

exponentiation
factorielle
unit imaginaire
constante mathmatique
constante mathmatique
symbole de linfini

x ^ y ou x ** y
k !
I ou sqrt(-1)
Pi
exp(1)
infinity

i ou

HAMMAMI Mohamed

x
x
x
A
x

+
*
.
/

y
y
y
B
y

Page 1

Programmation en MAPLE

3. Fonctions usuelles sous MAPLE


MAPLE dispose dune librairie de fonctions usuelles prdfinies. En voici un aperu non
exhaustif

exp
ln ou log
log10
log[b]
sqrt
n
surd(x,n)
x pour x et n impair
Valeur absolue
abs(x)
Partie entire
floor(x)
Fonctions trigonomtriques
cos, sin, tan, cot
Fonctions hyperboliques
cosh, sinh, tanh
Rciproques des fonctions trigonomtriques arccos, arcsin, arctan
Rciproques des fonctions hyperboliques
arccosh, arcsinh, arctanh
Fonction scante
sec(x)
Fonction coscante
csc(x)
Lexponentielle
Le logarithme nprien
Le logarithme dcimal
Le logarithme en base b
La racine carre

4. Oprations sur les fonctions


MAPLE est capable deffectuer les oprations algbriques lmentaires sur les fonctions telles
que la somme, le produit, etc.

f
f
f
f
f
f

+ g
* g
/ g
@ g
@@ n
@@ (-1)

Somme
Produit
Quotient
Compose f g
Compose f
f (n fois).
Fonction rciproque

Exemple :

> f:=cos^2;g:=sin^2;
f := cos2
g := sin2

> h:=f+g;
> h(t);

h := cos 2sin2

cos( t )2sin( t )2

> simplify(%);
1

HAMMAMI Mohamed

Page 2

Programmation en MAPLE

> k:=exp@ln;
k := exp@ln

> k(x);
x

> exp@@(-1);
ln

II. Les procdures avec MAPLE


1. Description dune procdure
Une procdure en MAPLE regroupe un certain nombre dinstructions MAPLE dont
lexcution peut tre contrle au moyen de tests ou de boucles. Une procdure est nomme et
sexcute lorsquon lappelle par son nom (comme pour une fonction mathmatique qui est un
cas particulier dune procdure).
Toutes les instructions MAPLE peuvent tre utilises au sein dune procdure. Lutilisation de
tests et de structures itratives permet de raliser des calculs qui ne seraient pas possibles
autrement avec les instructions prdfinies de MAPLE.
Au sein dune procdure, on peut provoquer :
des entres pour que lutilisateur puisse rentrer des paramtres ncessaires
lexcution des calculs.
des sorties pour afficher les rsultats de la procdure.
Une procdure communique aussi avec lenvironnement de la feuille de calcul par :
la liste des paramtres (ou arguments) qui sont joints lappel de la procdure ; ils ne
peuvent tre modifis par la procdure.
lemploi de variables globales, dfinies ailleurs dans la feuille et qui sont utilises et
ventuellement modifies par la procdure.
Une procdure peut par ailleurs possder ses propres variables locales qui sont gres
indpendamment des variables dfinies ailleurs sur la feuille de calcul (et qui peuvent donc
porter le mme nom).

2. Syntaxe dune procdure


> Nomproc:=proc(arg1::type,arg2::type,...)
global vg1,vg2,...;
local vl1,vl2,...;
...;
instructions;
...;
RETURN(res1,res1,...);
end proc;
HAMMAMI Mohamed

Page 3

Programmation en MAPLE

proc est un mot rserv dfinissant une procdure en MAPLE.


arg1, arg2, sont les paramtres formels de la procdure. Ce sont des variables
muettes qui vont servir dcrire la procdure et qui seront remplaces par des variables
effectives lors de lappel de la procdure.

local est un mot rserv et vl1, vl2, sont les variables locales utilises dans la
procdure. Cette ligne est optionnelle. Il est impossible de rappeler en dehors de la procdure
les valeurs prises par ces variables au sein de la procdure.

global est un mot rserv et vg1, vg2, sont les variables globales utilises dans la
procdure. Cette ligne est optionnelle. Les valeurs attribues ces variables peuvent tre
utilises en dehors de la procdure.

RETURN est un mot rserv permettant de retourner les sorties de la procdure sous forme
dune squence. Cette ligne est optionnelle. Par dfaut MAPLE renvoie le dernier calcul
effectu.

3. Appel dune procdure


Une procdure en MAPLE est appele par son nom (Nomproc) comme pour les commandes
prdfinies de MAPLE, lappel doit se faire avec nouveaux paramtres qui doivent tre
effectifs.

> Nomproc(arg1,arg2,...)
Pour rcuprer la squence des sorties dune procdure MAPLE, pour une ventuelle
utilisation il faut laffecter en une squence de variables.

>V1,V2, := Nomproc(arg1,arg2,...)
Exemples :

> X:=5;
X := 5

> ESSAI1:=proc()#procdure sans paramtres


local X,Y;
Y:=3;
X:=Y+1;
RETURN(X,Y);
end proc;

ESSAI1 := proc() local X, Y; Y := 3 ; X := Y1 ; RETURN( X, Y ) end proc

> ESSAI1();X;
4, 3
5

HAMMAMI Mohamed

Page 4

Programmation en MAPLE

Les instructions de la procdure sont traites dans un ordre squentiel. La variable X dfinie
lextrieur de la procdure nest pas modifie par la procdure bien que cette dernire utilise
une variable galement nomme X.

> ESSAI2:=proc(X::integer,Y::integer,n::posint)
seq(X+Y,k=1..n);
end proc;

ESSAI2 := proc(X::integer , Y::integer , n::posint ) seq( XY, k1 .. n ) end proc

> ESSAI2(8,-3,5);
5, 5, 5, 5, 5

> ESSAI2(8,-3,-3);
Error, invalid input: ESSAI2 expects its 3rd
argument, n, to be of type posint, but received -3
On remarque que par dfaut, MAPLE retourne le rsultat du dernier calcul.

> f:=x->x^0.6;L:=[1,2,3,4,5,6];
f := xx.6

L := [ 1, 2, 3, 4, 5, 6 ]

> ESSAI3(L);
Error, (in ESSAI3) illegal use of a formal parameter
On remarque que la modification des paramtres passs en entre est strictement interdite. (La
modification provoque une erreur lors de lappel).

> L:=ESSAI4(L);
L := [ 1., 1.515716567 , 1.933182045 , 2.297396710 , 2.626527804 , 2.930156052 ]

Pour modifier la liste, laffectation se fait en dehors de la procdure (lors de lappel).


Noter que f est dfinie comme tant une variable globale.

III. Complment de cours (programmation avec MAPLE)


1. Tests
-

Comparaisons, oprateurs logiques usuels

Les oprateurs de comparaisons de MAPLE sont :


Notation mathmatique
Signification
gal

diffrent de

infrieur

suprieur

infrieur ou gal

suprieur ou gal

HAMMAMI Mohamed

Notation MAPLE

=
<>
<
>
<=
>=
Page 5

Programmation en MAPLE

Ces oprateurs rpondent true ou false.


Cependant, un test isol, comme 2 < 5, nest pas valu en MAPLE.
Pour que lvaluation ait rellement lieu, il faut :
Soit forcer lvaluation avec evalb.
Soit quil soit dans une proposition logique, cest--dire avec les oprateurs and, or
et not.
Soit que le test se trouve dans une structure conditionnelle.

> 2<5;

25

> evalb(2<5);
true

> evalb(0.5=1/2);evalb(exp(1/2)=exp(0.5));
true
false

> 2<5 and 3<4;


true

> not(3<4);
false
-

Structures conditionnelles

On peut faire en MAPLE des tests du type Si Alors Sinon Fin Si .


La syntaxe MAPLE est la suivante :

if condition
fi;

then

instructions;

else

instructions;

La deuxime partie else instructions; est facultative.

> if 2<5 then S:=0; else S:=1; fi:S;


0

> if not(3<4) then B:=true; fi:B;


B

> if 3<4 then B:=true; fi:B;


true

HAMMAMI Mohamed

Page 6

Programmation en MAPLE

Cela peut en particulier servir pour dfinir les fonctions par morceaux.

> f:=x->if x>0 then 1 else -1 fi;


f := proc(x) optionoperator , arrow; if 0x then1 else -1 end if end proc

> plot(f,-2..2,discont=true);

Noter que la commande piecewise permet aussi de dfinir les fonctions par morceaux.

> g:=x->piecewise(x>0,x+1,0);
g := xpiecewise( 0x, x1, 0 )

> diff(g(x),x);
0

undefined

x0
x0
0x

On dispose galement dune structure conditionnelle multi-cas (imbrique) avec la syntaxe :

if conditions ; then instructions ;


elif conditions then instructions ;
elif conditions then instructions;

else instructions ; fi ;
HAMMAMI Mohamed

Page 7

Programmation en MAPLE

2. Boucles
-

Boucle non conditionnelle (boucle for)

Pour un compteur variant entre deux positions, on rpte des instructions.

for

compteur

from

debut

to

fin

by

pas

do

instructions ; od ;
Le compteur sincrmente avec un pas donn en allant de debut fin.

> S:=0;
for i from 2 to 10 by 2 do
S:=S+i;od:
S;
S := 0
30

Si on ne prcise pas le pas, il vaut 1, si on ne prcise pas le debut, il vaut 1.

> for i to 5 do
print(i);od;
1
2
3

4
5

N.B : si on ne prcise pas la fin, elle vaut (gare aux boucles infinies).
-

Boucles conditionnelle condition dentre

Tant quune condition (condition dentre) est vrifie, on rpte les instructions.

while condition do instructions ; od ;


Exemple :
Calculer la premire puissance de 2 plus grande que 100.

> k:=1;
while 2^k<=100 do
k:=k+1;od:
k;
k := 1
7

> 2^7;
128

HAMMAMI Mohamed

Page 8

Programmation en MAPLE

Boucles conditionnelle condition de sortie

Rpter les instructions jusqu la condition (condition de sortie) soit vrifie.

do
instructions ;
if condition then break fi ; od ;
N.B : en MAPLE il faut chaque fois tester la condition de sortie et interrompre lexcution
via la commande break en cas o la condition est vrifie.

> k:=0;
do
k:=k+1;
if 2^k>100 then break fi;od:
k;
k := 0
7

HAMMAMI Mohamed

Page 9

Vous aimerez peut-être aussi