chapitre ii – les objets elÉmentaires en maple

13
Faculté des Sciences de Gabes Département d’informatique 13/10/2016 Cours Maple 1 13/10/2016 1 Khaled Hassine [email protected] Par : Khaled Hassine CHAPITRE HAPITRE II II – LES ES OBJETS BJETS ELÉMENTAIRES LÉMENTAIRES EN EN MAPLE APLE 13/10/2016 2 Khaled 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

Upload: others

Post on 22-Jun-2022

4 views

Category:

Documents


0 download

TRANSCRIPT

Page 1: CHAPITRE II – LES OBJETS ELÉMENTAIRES EN MAPLE

Faculté des Sciences de GabesDépartement d’informatique

13/10/2016

Cours Maple 1

13/10/2016 1Khaled Hassine

[email protected]

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

Page 2: CHAPITRE II – LES OBJETS ELÉMENTAIRES 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

Page 3: CHAPITRE II – LES OBJETS ELÉMENTAIRES EN MAPLE

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

Page 4: CHAPITRE II – LES OBJETS ELÉMENTAIRES EN MAPLE

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

Page 5: CHAPITRE II – LES OBJETS ELÉMENTAIRES EN MAPLE

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

Page 6: CHAPITRE II – LES OBJETS ELÉMENTAIRES 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

Page 7: CHAPITRE II – LES OBJETS ELÉMENTAIRES EN MAPLE

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

Page 8: CHAPITRE II – LES OBJETS ELÉMENTAIRES EN MAPLE

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

Page 9: CHAPITRE II – LES OBJETS ELÉMENTAIRES EN MAPLE

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

Page 10: CHAPITRE II – LES OBJETS ELÉMENTAIRES EN MAPLE

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

Page 11: CHAPITRE II – LES OBJETS ELÉMENTAIRES EN MAPLE

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

Page 12: CHAPITRE II – LES OBJETS ELÉMENTAIRES EN MAPLE

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

Page 13: CHAPITRE II – LES OBJETS ELÉMENTAIRES EN MAPLE

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