View
4
Download
0
Category
Preview:
Citation preview
Faculté des Sciences de GabesDépartement d’informatique
13/10/2016
Cours Maple 1
13/10/2016 1Khaled Hassine
Khaled.hassine@gmail.com
Par :
Khaled Hassine
CCHAPITREHAPITRE IIII –– LLESESOOBJETSBJETS EELÉMENTAIRESLÉMENTAIRES ENEN
MMAPLEAPLE
13/10/2016 2Khaled Hassine
Evaluation des expressions
Les types de base
Variables Maple
Récapitulatif
PLAN
13/10/2016 Khaled Hassine 3
Les Types des données en Maple
Evaluation des expressions
Les types de base
Variables Maple
Récapitulatif
PLAN
13/10/2016 Khaled Hassine 4
Les Types des données en Maple
Faculté des Sciences de GabesDépartement d’informatique
13/10/2016
Cours Maple 2
Identificateur
Une variable Maple est, comme dans tous les langagesde programmation, identifiée par un nom (appeléidentificateur).
Cependant, à la différence des langages traditionnels,un identificateur de variable peut exister par soi mêmesans qu'il ne lui soit affecté une valeur numérique. Elleest alors une variable de type symbole mathématique.
Ces symboles sont utilisés pour représenter lesinconnues des équations, les variables d'un polynômeou d'une fonction quelconque, les indices, etc.
13/10/2016 Khaled Hassine 5
L’identificateur
L'identificateur d'une variable Maple commence par unelettre suivie des lettres, chiffres ou soulignés (underscore).
Maple distingue les majuscules des minuscules. Le nombremaximum de caractères significatifs diffère d'une version àune autre.
On peut aussi identifier une variable Maple entre deuxaccents graves ' ' (left quote). Ceci permet en particulier demettre entre ces accents n'importe quel caractère.
On peut aussi utiliser la concaténation pour définir desidentificateurs.
Pour les lettres grecques : α, β, γ, ... il suffit de les écrirecomme ça se prononce en minuscule.
13/10/2016 Khaled Hassine 6
Exemple
a.b := 10; # le . est l’opérateur de concaténationab := 10
'a.b' := 10;
a.b := 10
alpha := 10;
α := 10;
13/10/2016 Khaled Hassine 7
Remarque
Aussi bien en mathématique qu'en informatique, on esttoujours amené à manipuler des variables. Si elles sonttoujours désignées et reconnues par leur nom(identificateur), le sens qu'on leur donne n'est pas tout à faitle même : Une variable mathématique, "une inconnue" peut prendre n'importe
quel objet appartenant à un ensemble de références. Une variable informatique est l'adresse dans la mémoire de
l'ordinateur d'un emplacement permettant de stocker un objet d'untype donné.
En Maple, une variable peut être : mathématique : non assigné (affectée) ou informatique : assignée.
13/10/2016 Khaled Hassine 8
Faculté des Sciences de GabesDépartement d’informatique
13/10/2016
Cours Maple 3
Exemple
P:= x^2 + 4 * x + 4;P:= x2+ 4 x + 4
P;x2+ 4 x + 4
x ;x
x := 3 ;x := 3
P;25
13/10/2016 Khaled Hassine 9
Variable libre
Pour calculer l'intégrale de P par rapport à x, l'instructionMaple est la suivante :
int (p, x);Error (in int) wrong number or type of arguments
Pourquoi une telle erreur ? En fait, pour pouvoir intégrerpar rapport à x, il faut que x soit une variable libre(mathématique, symbole). Or, x contient déjà une valeur,c'est donc une variable affectée. Afin de pouvoir réalisercette affectation, il faut libérer la variable x (désassigner).
x:='x': int (p, x);x3+ 2 x2 + 4 x
13/10/2016 Khaled Hassine 10
Constantes prédéfinies
Identificateur Description
Pi 3.14159...
I Racine de -1
infinity
gamma la constante d'Euler (physique)
false Faux (booléen)
true Vrai (booléen)
FAIL Je ne sais pas
13/10/2016 Khaled Hassine 11
Variables prédéfinies
Identificateur Description Valeur par défaut
Digits Nombre de chiffres significatifs
après la virgule (précision)
10
printlevel niveau d'impression 1
args les arguments d'une procédure
nargs Le nombre d'arguments
transmis à un sous-programme.
13/10/2016 Khaled Hassine 12
Faculté des Sciences de GabesDépartement d’informatique
13/10/2016
Cours Maple 4
Evaluation des expressions
Les types de base
Variables Maple
Récapitulatif
PLAN
13/10/2016 Khaled Hassine 13
Les Types des données en Maple
Les types des données en Maple
Le calcul formel passe par la manipulationd'expressions.
Toute opération est considérée comme uneexpression.
Chaque expression a un type qui peut être connupar la fonction :
whattype(<expression>) Il existe plusieurs types connus de Maple (environ
80).
13/10/2016 Khaled Hassine 14
Types en Maple
Classe de type Type Description
Arithmétiques * Produit
+ Somme
^ ou ** Puissance
Relationnels = égalité
<> différence ()
< inférieur
<= inférieur ou égal ()
Logiques and Et logique
or ou logique
not négation logique
13/10/2016 Khaled Hassine 15
Types en Maple
Classe de type Type Description
Nombre et variables numeric entier, rationnel et flottant
integer entier
fraction rationnel
float réel
complex nombre complexe
string chaîne de caractères
types complexes exprseq séquence
indexed indexé
list liste
set ensemble
table table
function fonction
13/10/2016 Khaled Hassine 16
Faculté des Sciences de GabesDépartement d’informatique
13/10/2016
Cours Maple 5
Principales fonctions sur lesexpressions
Fonction Description
type (<exp>, <t>) Teste si l'expression <exp> est d'un type <t>
hastype (<exp>, <t>)
nops (<exp>) retourne le nombre d'opérandes de l'expression <exp>
op(n, <exp> retourne l'opérande de rang n dans <exp>.
op (<exp>) retourne tous les opérandes de <exp>
op(n1..n2, <exp> retourne les opérandes de rang n1 à n2 dans <exp>
13/10/2016 Khaled Hassine 17
Exemples
Expression
<Exp)
Type
whattype(<Exp>)
Opérandes
op(<Exp>)
Op. principal
op(0,<Exp>)
4 integer 4 integer
2.3 float 23,-1 float
2/3 fraction 2,3 fraction
x string x string
x+2 + x,2 +
x*y * x, y *
x/y * x, 1/y *
sin(x) function x sin
13/10/2016 Khaled Hassine 18
Exemple
type(a+b, '+'); hastype(a+b, fraction);true
False whattype(x+y+z); op (x+y+z); op(0, x+y+z);
nops(x+y+z);+
x, y, z+3
13/10/2016 Khaled Hassine 19
Evaluation des expressions
Les types de base
Variables Maple
Récapitulatif
PLAN
13/10/2016 Khaled Hassine 20
Les Types des données en Maple
Faculté des Sciences de GabesDépartement d’informatique
13/10/2016
Cours Maple 6
Les types de base
Booléen Entier Réel et complexe
Les types de base
Booléen Entier Réel et complexe
Le type Booléen
Mot réservé : boolean
Constantes : false : Faux,
true : Vrai,
FAIL : lorsque Maple ne peut répondre ni avec true niavec false).
Les opérateurs : not, or, and
Les fonctions : evalb(<exp>).
13/10/2016 Khaled Hassine 23
Le type Booléen
Une expression booléenne ne contenant pasd'opérateurs booléen (not or, and)) n'est pasautomatiquement évaluée par Maple. Il faut le caséchéant en faire la demande explicite.
Exemple : x:=1: evalb(x=1);
true
true and FAIL, false or FAIL, not FAIL, FAIL or true;
FAIL, FAIL, FAIL, true
13/10/2016 Khaled Hassine 24
Faculté des Sciences de GabesDépartement d’informatique
13/10/2016
Cours Maple 7
Les types de base
Booléen Entier Réel et complexe
Les entiers
Mot réservé : integer
Ce sont les entiers composés de 1 à 500 000 digits(chiffres).
Opérateurs : Arithmétiques : +, -, *
Puissance : ^ ou **,
Fonctions : ! ou factorial
13/10/2016 Khaled Hassine 26
Principales fonctions
Fonction Valeur retournée
abs(a) Valeur absolue de a.
factorial(a) a!
ifactor(a) factorisation de a en facteurs premiers.
ifactors(a) la liste des facteurs premiers de a
igcd(a) PGCD(a). peut être appelé avec plus qu'un entier
ilcm(a) PPCM(a). peut être appelé avec plus qu'un entier
iquo(a,b) quotient de la division euclidienne de a par b.
iquo(a,b, 'q') quotient de la division euclidienne de a par b et retourne le
quotient dans q.
13/10/2016 Khaled Hassine 27
Principales fonctions
Fonction Valeur retournée
irem(a,b) reste de la division euclidienne de a par b.
irem(a,b, 'r') reste de la division euclidienne de a par b et retourne le
reste dans r.
isprime (a) retourne vrai si l'entier a est premier.
iroot(a, n); retourne l'entier le plus proche de la racine nème de a
(nécessite readlib(iroot))
isqrt(a) partie entière de la racine carrée de a.
ithprime (n) nème nombre premier.
max(a1, a2, ..an) le plus grand des entiers a1, a2, ..., an.
13/10/2016 Khaled Hassine 28
Faculté des Sciences de GabesDépartement d’informatique
13/10/2016
Cours Maple 8
Principales fonctions
Fonction Valeur retournée
min(a1, a2, ..an) le plus petit des entiers a1, a2, ..., an.
nextprime(a) plus petit nombre premier strictement supérieur à a.
nprevprime(a) le plus grand nombre premier strictement inférieur à a.
rand retourne un entier positif aléatoire de 12 chiffres.
rand(a..b) un entier positif aléatoire entre a et b.
rand (b) un entier positif aléatoire entre 0 et b-1.
sign(a) signe de a (+1 si a≥0 et -1 sinon)
13/10/2016 Khaled Hassine 29
Exemple : quotient et reste de ladivision euclidienne
a:= 23:
b:=5:
iquo(a,b, 'r'):
irem(a,b,'q'):
q;r;
4
3
13/10/2016 Khaled Hassine 30
Les relationnels
Mots réservés : fraction, rationnal
Les fonctions : abs(a) : valeur absolue de a.
ifactor(a) : factorisation du numérateur et du dénominateur enfacteurs premiers.
max(a1, a2, ..an) : le plus grand des rationnels a1, a2, ..., an.
min(a1, a2, ..an) : le plus petit des rationnels a1, a2, ..., an.
denom(a) : dénominateur de a c'est un entier.
numer(a) : numérateur de a c'est un entier.
13/10/2016 Khaled Hassine 31
Exemple
numer(1/3);1
denom(1/3);3
ifactor(4/11);(2)2
(11) ifactor(64);
(2)2 (3) (5)
13/10/2016 Khaled Hassine 32
Faculté des Sciences de GabesDépartement d’informatique
13/10/2016
Cours Maple 9
Les types de base
Booléen Entier Réel et complexe
Les réels
type : Float (Mantisse et exposant). La mantisse est un réel
L'exposant est un entier représenté sur 32 bits.
Attention : Une expression numérique n'est pasforcement évaluée.
13/10/2016 Khaled Hassine 34
Exemple
13/10/2016 Khaled Hassine 35
Le type complex
type complex (partie réelle, partie imaginaire).
Le nombre complexe i est représenté par laconstante prédéfinie I.
(-1)^(1/2) et sqrt(-1) sont des synonymes de I.
Les fonctions : Re(Z) : partie réelle du complexe Z
Im(Z) : partie imaginaire du complexe Z.
13/10/2016 Khaled Hassine 36
Faculté des Sciences de GabesDépartement d’informatique
13/10/2016
Cours Maple 10
Exemple
Z := (1+2*I)^2/(3-I); Re(Z); Im(Z);
13/10/2016 Khaled Hassine 37
Fonctions usuelles sur les réels et lescomplexes
ceil(Z) : Si Z est un réel pur, retourne le plus petit entier ≥ Z sinonceil(Re(Z))+I ceil(Im(Z)).
floor(Z) : Si Z est un réel pur, retourne le plus grand entier ≤ Zsinon floor(Re(Z))+I floor(Im(Z)).
round(Z) : Si Z est un réel pur, retourne l'entier le plus proche de Zsinon round(Re(Z))+I round(Im(Z)).
trunc(Z) : Si Z est un réel pur, retourne troncature de Z sinontrunc(Re(Z))+trunc(Im(Z)).
csign(Z) : = 1 si Z= 0 ou Re(Z)>0 ou Re(Z)=0 et Im(Z)>0 = -1 si Re(Z)<0 ou Re(Z)=0 et Im(Z)<0 abs(Z) : valeur absolue d'un réel ou module d'un nombre complexe. argument (Z) : argument d'un nombre complexe entre ]-∞..+∞ [. conjugate(Z) : conjugué d'un nombre complexe.
13/10/2016 Khaled Hassine 38
Les fonctions logarithmiques etexponentielles
exp(Z) : E^Z exponentielle de Z.
ln(Z) : logarithme népérien de Z.
log10(Z) : logarithme décimal de Z.
log[b](Z) : logarithme en base b de Z.
13/10/2016 Khaled Hassine 39
Les fonctions trigonométriques ethyperboliques directes et inverses
directes : sin, cos, tan, sinh, cosh, tanh, ...
Inverses : arcsin, arccos, ...()
13/10/2016 Khaled Hassine 40
Faculté des Sciences de GabesDépartement d’informatique
13/10/2016
Cours Maple 11
Résolution des équations
Pour résoudre les équations, on dispose de lafonction solve (<équation>, <variables>[,<option>]); Option peut être complex. solve(2*x^2-3*x-5); #2*x^2-3*x-5=0
solve(0<2*x^2-3*x-5); #inéquation
assign(solve({3*x-2*y=-1; 2*x+y=4},{x,y})); x; y;
Pour avoir des valeurs approchées, on utilise lafonction fsolve (<équation>, <variables>);
13/10/2016 Khaled Hassine 41
Evaluation des expressions
Les types de base
Variables Maple
Récapitulatif
PLAN
13/10/2016 Khaled Hassine 42
Les Types des données en Maple
Exemple
Soit l’exemple suivant :> P:= x^2 + x + 1;
P:= x2+ x + 1> x := 1 ;
x := 1> P;
3> x := 2 : P;
7 Pour retrouver l'expression de P par rapport à x : transformer x en
une variable libre.> x := 'x' ; P;
x := xx2+ x + 1
13/10/2016 Khaled Hassine 43
Règle d'évaluation complète (fullevaluation)
Soit l’exemple suivant : restart # initialisation du contexte P:= x^2 + x + 1; # évaluation au premier niveau
P:= x2+ x + 1 x := y^2 ;
x := y2
P; # évaluation au deuxième niveau.P:= y4+ y2 + 1
y:= 2; P; # évaluation au troisième niveau.y:= 2
21
13/10/2016 Khaled Hassine 44
Faculté des Sciences de GabesDépartement d’informatique
13/10/2016
Cours Maple 12
Interprétation du résultat
Quelque soit le niveau d'évaluation, P pointe toujours sur l'expressioninitiale (x2+ x + 1).
Si on affecte à x une valeur, on casse la relationentre x et y et on aura une évaluation de P pour la valeur de x.
x:= 3; P;x:= 3
13
13/10/2016 Khaled Hassine 45
P x^2 + x + 1
y^2
2
Attention aux références circulaires
> t := 1; t := t+1; t;
t:= 1
t:= 2
2
> t := 't'; t := t+1; t;
t:= t
Error : recursive assignment
t := t+1
13/10/2016 Khaled Hassine 46
Évaluation différée
Les apostrophes permet une évaluation différée (retardée, delayed evaluation). x := 1; Q := 'x^3+1';
x := 1Q := x3+1
Les apostrophes (les cotes) empêchent l'évaluation totale du membre de droite de ladernière affectation. x := 2: Q ; x:=3: Q;
928
Exemple : x:= 1; y := '''x'+1''; %; %; %;
x:= 1y := ''x'+1'
'x'+1x+1
2
13/10/2016 Khaled Hassine 47
La fonction eval
eval(<exp>, n) donne l'évaluation de <exp> au nème niveau, 1 pour le plus bas. Exemple :
restart # initialisation du contexte P:= x^2 + x + 1;
P:= x2+ x + 1 x := y^2 ;
x := y2
y:= 1;y:= 1
eval(P,1);x2+ x + 1
eval(P,2);y4+ y2+ 1
eval(P,3);3
13/10/2016 Khaled Hassine 48
Faculté des Sciences de GabesDépartement d’informatique
13/10/2016
Cours Maple 13
La simplification dans Maple
Il y a une table de simplification dans laquelle toutes les expressions et sous-expressions sont stockées. En conséquence, chaque expression simplifiée a uneunique instance en mémoire.
Chaque expression Maple est simplifiée puis comparée avec celle de la table : Si elle n'est pas dans la table, une nouvelle entrée est créée sinon cette nouvelle
expression est supprimée et c’est celle de la table qui est utilisée. Ce processus est réalisé avec un "hash table".
Chaque expression simplifiée a une signature et ce sont les signatures qu'oncompare. Si elles sont égales, on fait une comparaison complète.
Ainsi, on ne donne pas de l'importance à l'ordre des opérandes (commutativité)comme le montre l'exemple suivant : a+b+c;
a+b+c b+a+c;
a+b+c
13/10/2016 Khaled Hassine 49
Evaluation des expressions
Les types de base
Variables Maple
Récapitulatif
PLAN
13/10/2016 Khaled Hassine 50
Les Types des données en Maple
13/10/2016 Khaled Hassine 51 13/10/2016 52Khaled Hassine
Recommended