Introduction à Maple pour le calcul formel
Introduction à Maple pour le calcul formel
Maple est un puissant logiciel qui peut être utilisé pour résoudre des problèmes mathématiques d’une
manière générale. Les dans les domaines des mathématiques, science et engineering (et plus) peuvent être
investigués en utilisant soit des commandes fournies par Maple, soit en utilisant le puissant langage de
programmation natif de Maple pour créer ces propres programmes personnalisés.
Nous allons présenter, dans ce qui suit, une entrée en la matière qui fournit ce dont on a besoin pour
apprendre les bases de Maple ; de plus amples informations peuvent être trouvées sur le web.
La première session Maple s’ouvre avec un dialogue de démarrage qui explique la différence entre le Mode Document
et le Mode Feuille de Travail (Worksheet). En utilisant l’un des deux modes, on peut créer des documents
mathématiques interactifs de haute qualité. Chaque mode offre les mêmes éléments et fonctionnalité ; la seule
différence est la région d’entrée par défaut de chaque mode.
2.2.1. Mode Document
Le mode Document est conçu pour effectuer rapidement des calculs. On peut entrer une expression
mathématique, et puis évaluer, manipuler, résoudre, ou la tracer avec un petit nombre de touches clavier ou de clics de
souris.
Le mode document utilise les Blocks de Document comme région d’entrée par défaut pour cacher la syntaxe de
Maple. Une région d’un Bloc de Document est indiquée par deux triangles localisés dans la colonne verticale des Balises
le long du volet gauche du document Maple. Ceci permet de se concentrer sur le problème au lieu des commandes pour
résoudre le problème. Par exemple, lorsqu’on utilise le menu de contexte en Maple input dans le Mode Document
(invoqué en cliquant le bouton droit), l’entrée et la sortie sont reliées en utilisant une flèche ou un signe d’égalité avec
un texte auto-documentant indiquant le calcul qui est a été mis en place. La commande utilisée pour résoudre cette
expression est cachée.
Le mode Worksheet (ou Feuille de travail) est conçu pour un usage interactif à travers l’utilisation de
commandes et la programmation en utilisant le langage [Link] mode Worksheet supporte les éléments disponibles
en modes Document.
Le mode Worksheet utilise l’invite Maple comme la région d’entrée par défaut.L’invite d’entrée Maple est un
crochet rouge. Lorque les menus de contexte sont utilisés en entrée dans le mode Worksheet, toutes les commandes
sont affichées.
Indépendamment du mode dans lequel on travail, on a la possibilité d’afficher ou cacher les calculs. On peut
cacher les commandes dans le Mode Worksheet en ajoutant un bloc document (document block) à partir du menu :
[Link] un Bloc de Document, ou bien on peut afficher les commandes en mode Document en ajoutant une invite
Maple à partir du menu : [Link] d’exé[Link]/Après Curseur.
1. Dans le dialogue de démarrage, sélectionner "Démarrage avec un Document vide" ou "Démarrage avec une Feuille de
Travail vide.
Ou bien
Un groupe d’exécution est un groupement d’entrées Maple avec leurs sorties Maple correspondantes. Il est distingué
par un large crochet, appelé bordure de groupe, à gauche. Un groupe d’exécution pourrait aussi contenir un tracé, un
texte, des composants incrustés, une feuille, et un canevas de dessin.
Les groupes d’exécution sont les éléments fondamentaux des calculs et de la documentation dans le document. Si on
place le curseur dans une commande d’entrée et on presse la touche Enter ou Return, Maple exécute toutes les
commandes saisies dans le groupe d’exécution courant.
Le mode d’entrée par défaut dans le Mode Document ou Feuille de Travail est le Mode Math, qui affiche les
entrées en 2-D Math. Dans les versions plus anciennes de Maple, les commandes et expressions étaient entrées en
utilisant Maple input ou bien 1-D Math.
Mode Math Mode Texte
Paramétrage par défaut de Maple. Notation math Paramétrage par défaut de Maple. Notation math
standard exécutable. standard exécutable.
Elle est aussi appelée Entrée Math 2-D. Elle est aussi appelée Entrée Math 2-D.
¿ ∫ x 2+ 2 x +1 dx ^ 3+2 x +1 , x )
¿ ∫( x ❑
1 3 2 1 3 2
x + x +x x + x +x
3 3
Accès à partir du menu Insertion Math 2-D Accès à partir du menu Insertion Entrée Maple
Lorsqu’on utilise Math 2-D, l’icône du mode math est Lorsqu’on utilise Entrée Maple, l’icône de mode texte est
mise en surbrillance dans la barre d’outils : mise en surbrillance dans la barre d’outils :
Texte Math Texte Math
En mode Document (ou un bloc de Document), l’entrée En mode Document (ou un bloc de Document), l’entrée
est saisie dans bloc de document avec un curseur est saisie avec un curseur droit, comme un texte plein :
penché : / : | entrer le texte source
En Mode Worksheet, la saisie est faite là où il y a une En Mode Worksheet, la saisie est faite là où il y a une
invite d’entrée avec un curseur penché ¿ invite d’entrée avec un curseur droit ¿
Pour convertir une expression 2-D Math en une Pour convertir une expression 1-D Math en une
expression 1-D Math cliquer sur l’expression avec le expression 2-D Math cliquer sur l’expression avec le
bouton droit de la souris et sélectionner : bouton droit de la souris et sélectionner :
2-D Math Convet-to 1-D Math 1-D Math Convet-to 2-D Math
Auncun symbol de terminaison n’est nécessaire Toutes les entrées doivent se terminer par ; ou :
Les palettes rendent la saisie des expressions dans un L’utilisation des palettes en mode 1-D Math nous
notation familière plus facile que la saisie dans une renseigne sur la syntaxe des commandes
syntaxe étrengère et réduisent les erreurs de saisie correspondantes.
Palettes
Les palettes sont des collections d’éléments relies qu’on peut insérer dans un document by clicking or drag-and-
dropping. L’environnement Maple donne accès à plus de 30 palettes contenant des éléments tels que les symboles,
modèles, opérations mathématiques et plus encore.
∑ ( 7i2−5 i ) =2420
i=1
Dans cet exemple, on va saisir l’expression à gauche (en utilisant les palettes) puis l’évaluer.
Commandes
Bien Maple offre plusieurs éléments pour résoudre les problèmes et manipuler les résultats sans entrer aucune
commande, on pourrait trouver plus commode d’avoir plus de contrôle et de flexibilité en utilisant l’ensemble des
commandes et le langage de programmation que Maple offre.
La Bibliothèque Maple
Les commandes sont contenues dans la bibliothèque Maple, qui est divisée en deux groupes : la bibliothèque
principale et les packages. La bibliothèque principale contient les commandes Maple les plus fréquemment utilisées. Les
packages contiennent des commandes en relation pour exécuter des taches dans disciplines telles que les Statistiques,
la Géométrie Différentielle ..etc. Par exemple, le package Optimisation contient les commandes pour résoudre
numériquement des problèmes d’optimisation.
Package de Commandes
Il y a deux manières d’accéder aux commandes dans un package, en utilisant la forme longue de la commande package
ou bien la forme courte.
Aprés le chargement d’un package, on peut utilizer les noms de la forme-courte, c.à.d. les noms des commandes sans le
nom du package.
¿ LSSolve ( [ x−2 , x−6 , x−9 ] )
L’élément de menu "Référence d’étiquettes" permet de basculer entre le nom d’étiquette et le contenu de sa référence.
Placer le curseur sur l’étiquette d’équation rérérencée et sélectionner : Format . Etiquettes d’équations. Références
d’étiquettes.
L’étiquette est associée à la dernière sortie dans un groupe d’exécution.
On ne peut pas appliquer les étiquettes d’équations à ce qui suit :
• Erreur (Error), Avertissement (warning), et les messages d’information
• Tables, images, traces, Feuilles, dessins
Avec le Bloc de Document développé, on peut voir la commande Maple qui a été utilisée pour faire le calcul. A noter
aussi l’invite rouge (>) avant l’expression originale et la commande de résolution. La saisie de commandes en dehors de
la région d’un bloc de document est faite à cette région d’entrée. Pour insérer une région d’entrée, cliquer sur le bouton
dans la barre d’outils.
Changer l’Affichage:
On peut spécifier quelles parties de l’entrée ou la sortie sont affichées lorsque le bloc de document est réduit. Pour
chaque groupe d’exécution dans le bloc, on peut choisir d’afficher l’une ou l’autre de l’entrée ou la sortie.
On peut choisir, aussi, d’afficher la sortie dans la ligne ou bien centrée sur une nouvelle ligne.
Le calcul symbolique est la manipulation mathématique des expressions impliquant des quantités symboliques ou
abstraites, telles que les variables, fonctions, et opérateurs, et des nombres exactes, tels ques les entiers, rationnels, π
, et e 2. Le but d’une telle manipluation pourrait être de transformer une expression en une forme plus simple ou bien de
relier l’expression à d’autres formules mieux comprises.
Le calcul numérique est la manipulation des expressions dans le contexte de l’arithmétique à précision finie. Les
expressions impliquant des nombres exacts, par exemple, √ 2 sont remplacées par des approximations utilisant des
nombres à virgule flottante, par exmple, 1.41421. Ces calculs impliquent en général des erreurs. Comprendre et
contrôler ces erreurs est souvent d’une importance comparables à celle des résultats calculés.
En Maple, le calcul numérique est normalement effectué si on utilise des nombres en virgule flottante (nombres
contenant un point décimal) ou bien la commande eval. La commande de tracage utilise le calcul numérique, alors que
les commandes telles que int, limit, et gcd, ainsi que la résolution de problèmes mathématiques utilisent le calcul
symbolique pour arriver à leurs résultats.
Calculs Exacts
En Maple, les entiers, rationnels, les constantes mathématiques tels que π et ∞ , ainsi que les strucutres
mathématiques, telles que les matrices, avec ces nombres comme entrées sont traités comme des quantités exactes.
Les noms, tels que x , y , my variable et les fonctions mathématiques, telles que sin (x) et Lambert (x , z ) sont des objets
symboliques. Les noms peuvent avoir comme valeurs des quantités exactes, et les fonctions peuvent être évaluées pour
des arguments aussi bien exacts ou symboliques.
3 1 π
¿ + ,1+
2 3 2
11 1
, 1+ π
6 2
Important: Sauf si on lui demande de faire autrement (voir section suivante), Maple evalue les expressions contenant
des quantités exactes en des résultats exacts, comme si on devait effectuer les calculs à la main, et non pas en des
approximations, comme on les obtiendrait à l’aide d’une calculatrice standard.
2
¿ 1.5+
3
2.166666667
Si on passe un argument en virgule flottante à une fonction, elle tente normalement de produire une approximation en
virgule flottante du résultat.
1.0
¿ sin ( 1.5 ) , ∫ e x dx
0.0
0.9974949866,1.718281828
Pour convertir une quantité exacte en une approximation numérique de cette quantité, on utilise la commance eval ou
bien l’opération Approximate du menu contexte.
Par défaut, Maple calcul de telles approximations en utilisant 10 chiffres arithmétiques. On peut modifier ceci de deux
manières:
• Localemnt, on peut passer la précision, à l’appel eval, comme un indexe.
2
( ( ))
¿ evalf [20](exp ( 2 ) ) , evalf Г
3
7. 3890560989306502272 , 1.354117939
¿ Digits ≔ 25
¿ evalf ¿
1. 732050807568877293527446
Note: Si approprié, Maple effectue les calculs en virgule flottante en utilisant directement le hardware sous-jacent de
l’ordinateur.
Sources d’erreur
Par sa nature, le calcul en virgule flottante comporte normalement quelques erreurs. Contrôler l’effet de ces erreurs est
le sujet de recherches actives en Analyse Numérique. Quelques sources d’erreur sont : sont des exemples.
1
• Une quantité exacte pourrait ne pas être représentable en forme décimale : et π sont des exemples.
3
• Les petites erreurs peuvent s’accumuler aprés plusieurs opérations arithmétiques.
• La soustraction de quantités presque égales peut résulter en une information essentiellment non utile. Par exemple
considérer le calcul : x−sin (x) for x ≈ 0.
¿ ( x−sin ( x ) )∨¿
¿ x=.00001
.0
Aucun chiffre correcte ne reste. Si, cependant, on utilise Maple pour analyser cette expression, et on remplace cette
forme par une représntation plus précise pour de petites valeurs un résultat précis de 10 chiffres peut être obtenu.
¿ t ≔taylor (x−sin ( x ) )
1 1 5
t ≔ x3 − x +O ( x 6 )
6 120
¿ t∨¿
¿ x=.00001
1.666666667 10−16
2.4.2. Résolution d’Equations et d’Inéquations
En utilisant Maple, on peut résoudre symobiliquement des équations et des inéquations. On peut, aussi,résoudre
numériquement des équations.
Pour résoudre une équation ou un ensemble d’équations en utilisant les menus de contexte :
1. Cliquer le bouton droit de la souris sur les équations.
2. A partir du menu de contexte, sélectionner Résoudre (ou Résoudre Numériquement).
En mode Worksheet, Maple insert une séquance d’appel qui résoud l’équation suivie des solutions.
Si on sélectionne résoudre, Maple calcul les solutions exactes.
7 x2
¿ −x=12
3
7 x2
−x=12(4.3)
3
¿ solve ( { 4.3 } )
Verifier
Il est recommandé de vérifier les solutions retournées par la commande solve en utilisant la commande eval.
Pour attribuer la valeur d’une solution à une variable correspondante comme une expression, on utilise la commande
assign.
¿ s ≔solve ( { x+ y=1 ,2 x+ y=3 } , { x , y } )
s ≔ { x=2 , y=−1 } (4)
¿ assign(s)
¿x,y
2 ,−1
Ce chapitre se focalise sur la résolution de problèmes dans des disciplines mathématiques spécifiques.
Un polynome Maple est une expression en des puissances d’une inconnue. Les polynomes univarié sont des polynomes
d’une inconnue, exemple, x 3−2 x 2+ x−5 , . Les polynomes multivariés sont des polynomes de plusieurs inconnues, tel
que x 3 y −2 x 2 y−5. Les coefficients peuvent être des entiers, rationnels, irrationnels, des nombres en point-flottant,
des nombres complexes, variables, ou une combinaison de ces types.
Arithmétique Polynomiale
Les opérateurs arithmétiques pour les polynomes sont les opérateurs arithmétiques standards de Maple sauf
l’opérateur de division (/). L’opérateur de division accepte des arguments polynomiaux, mais n’effectue pas la division
polynomiale. La division polynomiale est opération importante. Les commandes quo et rem trouvent le quotient et le
reste d’un division polynomiale. Les commandes iquo et irem trouvent le quotient et le reste d’un division entière.
Si on veut déterminer si oui ou non un polynome divise au autre, mais qu’on ne s’intéresse pas au quotient, alors on
peut utiliser la commande divide.
Important: On doit insérer un espace ou l’opérateur de multiplication (.) entre les noms de variables adjacentes ; Sinon,
elles seront interprétées comme une seule variable.
Opération Opérateur Exemple
Addition +¿ ¿ ( x 2+ 1 ) + ( 3 x3 −5 x+2 )
x 2+ 3+3 x3 −5 x
Soustraction −¿ ¿ ( x 2+ 1 )−( 3 x 3−5 x +2 )
x 2−1+3 x 3+5 x
Multiplication ¿ ¿ ( x 2+ 1 ) . ( 3 x 3−5 x+ 2 )
¿ ( x 2+ 1 )( 3 x 3−5 x +2 )
Division quo ¿ quo ( 2 x 2+ x −3 ,3 x +5 , x )
Quotient et rem 2 7
Reste x−
3 9
¿ rem ( 2 x 2+ x −3 ,3 x +5 , x )
8
9
3
Exponentiation ¿ ¿ ( x 2+ 1 )
3
( x 2 +1 )
On peut spécifier la multiplicaton en saisissant directemment * , qui s’affichera en 2-D Math comme . .
En 2-D Math onp eut multiplier implicitement en placant un espace entre deux expressions.
Dans certains cas l’espace est optionnel, par exemple Maple interprète un nombre suivit par un nom comme
un multiplication implicite.
En 2-D Math l’exponentiation s’affichier comme un accent circonflexe.
¿ pl≔ x 2 + x 3−x+ x 4 ¿
pl ≔ x 2 + x 3−x+ x 4 ¿
¿ sort (pl )
x 4 + x 3 + x 2−x
Pour spécifier les inconnues du polynome et leur ordre, on inclut une liste de noms.
Par défaut, la commande sort trie un polynome par ordre décroissant du total des degrés des termes.
¿ sort (x3 + y 3 + x 2 y 2 ,[ x , y ])
x2 y2+ x3+ y3
Le premier terme a un total des degrés égal à 4. Les deux autres termes ont un total de 3. L’ordre des deux derniers
termes est déterminé par l’ordre de leurs noms dans la liste.
Pour trier les termes par ordre lexicographique pur, c.à.d., en dimiuant l’odre de la première inconnue dans liste
d’option, et puis en dimunuant l’odre de l’inconnue suivante dans la liste d’option, on spécifie l’option ‘plex’.
Coefficients et Degrés
Maple a plusieurs commandes qui retournent les valeurs des coefficients et degrés d’un polynome.
Commande Description Exemple
coeff Coéfficent du terme de degré spécifié
¿ coeff ( 12 x −2 x+5 , x )
3 3
1
2
lcoeff Le coéfficient de tête
¿ lcoeff ( 12 x −2 x+5 , x )
3 3
1
2
tcoeff Le coéfficient de queu
¿ tcoeff ( 12 x −2 x+ 5 , x )
3 3
5
coeffs Séquence de tous les coéfficients avec correspondance avec
les termes un à un ¿ coeffs ( 12 x −2 x+5 , x )
3 3
1
5 ,−2,
2
degree Degré (Le plus haut)
¿ degree ( 12 x −2 x +5 , x )
3 3
3
ldegree Degré le plus bas
¿ ldegree ( 12 x −2 x , x )
3 3
1
Factorisation
Pour exprimer un polynome dans une forme totalement factorisée, on utilse la commande factor.
¿ factor (x 4−1)
( x−1)(x+ 1)( x 2 +1)
Par défaut, Maple recherche la limite bidirectionnelle. Pour spécifier la direction, inclure l’une des options left,right, ou
complex dans un appel de la commande limit.
1
¿ limit
x (
, x=0 )
undefined
¿ limit ( 1x , x=0) ,҅ ¿ ҆ ¿
∞
¿ limit ( 1x , x=0 ) ,҅ ¿ ¿
−∞
x2
¿ limit ( y
, x=1 , y =∞ )
0
sin ( x)
( (
¿ evalf Limit
cos ( x ) +tan (x)
, x=1.225
))
0.3020605357
La commande Limi ne calcul pas la limit. Elle retourne une limite non évaluée.
sin (x )
¿ Limit (
cos ( x )+ tan ( x)
, x=1.225 )
sin (x)
lim
x→ 1.225 cos ( x ) + tan (x )
[Link]. La Commande diff
Maple calcul les dérivées en utilisant la commande diff. Pour utiliser directement la commande diff, spécifier
l’expression à dériver et la variable.
¿ x sin ( a x ) + x 2
x sin ( a x ) + x 2 (5.1)
¿ diff ( ( 5.1 ) , x)
sin ( a x ) + x cos ( a x ) a+2 x
On peut calculer des dérivées d’ordre supérieur en spécifiant une séquence de variables dérivation. Maple appelle
récursivement la commande diff .
¿ diff ( ( 5.1 ) , x , x)
2 cos ( a x ) a−x sin ( a x ) a2 +2
Pour calculer des dérivées partielles, on utilise la même sntaxe. Maple que les dérivées commutent.
¿ diff ( x sin ( 3 y ) + y √ x , x , y )
1
3 cos ( 3 y ) +
2√ x
Pour saisir des dérivées d’ordre plus grand, il préférable d’utiliser la syntaxe diff(f,x$n). Cette syntaxe peut être utilisée
pour calculer la dérivée symbolique d’odre n.
Par exemple:
¿ diff (cos ( t ) , t $ n)
1
(
cos t+ n π
2 )
[Link]. Les Series
Pour générer le développemnt en séries de Taylor d’une fonction en point, on utilise la commande taylor.
Note: Si les séries de taylor n’existent pas, on utilise la commande series pour trouver un dévelopement en séries
général.
Par exemple, la fonction intégrale de cos n’a pas de développement en séries de taylor en 0.
Pour générer un dévelopement en séries tronqué d’une fonction en un point, on utilise la commande series.
¿ series(Ci ( x ) , x=0)
1 1
γ +ln ( x )− x 2+ x 4 +O ( x 6 )
4 96
Par défaut, Maple effectue les calculs jusqu’à l’ordre 6. Pour utiliser un ordre différent, on spécifie un entier non négatif
dans le troisème argument.
¿ series(Ci ( t ) ,t=0,4 )
1
γ +ln ( t )− t 2+O ( t 4 )
4
Pour paramétrer l’ordre pour tous les calculs, on utilise la variable d’environnement Order.
[Link] La Commande int
∫ f dx and ∫ f dx utilisent la commande int. Pour utiliser cette commande directement, spécifier les arguments
b
suivants :
• Expression à intégrer
• Variable d’intégration
¿ x sin (a x)
x sin ( a x ) (5.4)
¿ ∫ ( ( 5.4 ) , x )
sin ( a x ) −x cos ( a x ) a
(5.5)
a2
Pour une intégrale définie, on initialise la variable d’intégration avec l’intervalle d’intégration.
π
¿ ∫ ( ( 5.4 ) , x=0.. )
4
π
(5.6)
a2
Intégration Numérique
¿ evalf ¿
1.626378399
Jusqu’ à présent nous avns utiliser Maple de manière inteeractive, en effectuant des opérations de manière
séquentielle, comme l’exécution d’un seule commande. Maple offre aussi constructions sophistiquées pour la
programmation.
En Maple, on peut écrire des programes appelés procédurs, et les sauvegarder dans des modules. Ces modules peuvent
être utilisés et distribués de la même manière que les packages.
Important: Il est fortement consillé d’utiliser le mode Worksheet et le mode de saisie 1-D Math lorsqu’on programe ou
utilise les commandes de programmation. Par conséquent, dans ce qui suit les saisies seront faites en 1-D Math.
Deux strucutres de control de base dans Maple sont l’instruction if, qui controle l’exécution conditionnelles d’un
séquence d’instructions, et l’instruction for, qui controle l’exécution répétée d’une séquence d’instructions.
On peut spécifier que Maple effectue une action seulement si une condition est vérifiée. On peut aussi effectuer une
action parmi un ensemble de plusieurs actions, selon laquelle des conditions est satisfaite.
En utilisant l’instruction if, on peut exécuter une instruction parmi une série d’instructions sur la base d’une condition
booléene(vrai, faux, ou FAIL). Maple teste chaque condition dans l’ordre. Lorsqu’une condition est satisfaite, Maple
exécute l’instruction correspondante, et puis quitte l’instruction if.
Syntaxe
L’instruction if a la syntaxe suivante en Maple:
Les expressions conditionnelles (conditional_expression1, conditional_expression2, ...) peuvent être n’impporte quelle
expression boléenne. On peut construire les expressions booléenne en utilisant :
• Les opérateurs relationnels : <, <=, =, >=, >, <>
• Les opérateurs logiques : and, or, xor, implies, not
• Les noms logiques : true, false, FAIL
La séquences d’instructions (statement_sequence1, statement_sequence2, ..., statement_sequenceN) peuvent être
n’importe quelle instruction Maple, l’instruction if incluse.
La clause elif est optionnelle. On peut en spécifier n’importe quel nombre.
La clause else est optionnelle.
Instructions if Simples
Si l’expression conditionnelle est évaluée à true, la séquence d’instructions est exécutée. Sinon, Maple quitte
immédiatemment l’instruction if.
Exemple:
¿ x :=1173 :
¿ if not isprime (x) then
ifactor( x);
end if ;
( 3 ) ( 17 ) (23)
Clause elses
Dans une instruction if simple avec une clause else, si l’évaluation des expressions conditionnelles retourne false ou
FAIL, Maple exécute la séquence d’instructions dans la clause else.
Exemple :
¿ if false then
if statement ;
else
else statement ;
end if ;
Clauses elif
Dans une instruction if avec des clauses elif, Maple évalue les expressions conditionnelles dans l’ordre jusqu’à ce que
l’une d’elles retourne true. Maple exécute la séquence d’instructione correspondante, et quitte l’instruction if. Si aucune
évaluation ne retourne true, Maple quitte l’instruction if.
¿ x :=11 :
¿ if not type ( x , integer )then
printf (%a is not an integer. , x );
elif x≥10 then
printf (%a is an integer with more than one digit. , x);
elif x≥0 then
printf (%a is an integer with one digit. , x) ;
end if ;
1 1is an integer with more than one digit .
L’ordre des clauses elif : Une séquence d’instructions d’une clause elif n’est exécutée que lorsque l’évaluations des
expressions conditionnelles précédentes retourne false ou FAIL, et l’évaluation de sa condition conditionnelles retourne
true. Ceci veut dire que le changement de l’ordre des clause elif pourrait changer le comportement de l’instruction if.
Dans ce qui suit l’ordre des clauses elif faux.
¿ x :=−12 :
¿ if not type ( x , integer )then
printf (%a is not an integer. , x );
elif x≥10 then
printf (%a is an integer with more than one digit. , x);
elif x≥0 then
printf (%a is an integer with one digit. , x) ;
else
printf (%a is a negative integer. , x );
end if ;
−12 isa negative integer .
Boucle for/from
La boucle for/from répéte une séquence d’instructions jusqu’à ce que la valeur d’une variable cmpteur dépasse une
limite.
Syntaxe
Exemple
¿ for n ¿ 10by −1¿ 3 do
if isprime( n)then
print (n);
end if ;
end do ;
Boucle for/in
La boucle for/in répéte une séquence d’instructions pour chaque composant (opérande) d’une expression, par exemple,
les éléments d’une liste.
Syntaxe
The for clause must appear first.
Exemple
La boucle suivante retourne l’approximation en virgule flottante de la fonction sinus des angles (en degré) de la liste L.
Syntaxe
Une boucle while répéte jusqu’à ce qu’une son expression booléenne conditional_expression retourne false ou FAIL.
Exemple
La boucle suivante calcul les chiffres de 872,349 en base 7 (dans l’ordre croissant de la signification).
¿ x :=872349 :
¿ while x >0 do
irem( x ,7) ;
x :=iquo ( x ,7);
end do ;
On peut inclure une boucle while dans une boucle for/from ou for/in.
La boucle for/from générale a la syntaxe suivante.
La boucle for/in générale a la syntaxe suivante.
Après le teste de la condition de limite au début de chaque itération de la boucle, Maple évalue conditional_expression.
Les limites de la plage d’indexes (initial and final) dans add et mul doivent être évaluées à des constantes numériques.
Pour les calculs symbolique on utilise les commandes sum et product.
Exemple :
¿ ∑ ( k +1 , k =0. .n )
>
e
Les commandes select, remove, et selectremove appliquent une procédure à valeur booléenne ou une commande aux
opérandes d’une expression.
• La commande select retourne les opérandes pour lesquels la procédure or commande retourne true.
• La commande remove retourne les operandes pour lesquels la procédure or commande retourne false ou FAIL.
• La commande selectremove retourne deux expressions de même type que l’expression d’entrée.
- La première consiste en les operandes pour lesquels la procédure or commande retourne true.
- La seconde consiste en les operandes pour lesquels la procédure or commande retourne false.
La structure de la sortie est la même que la strucutre de l’entrée.
select(proc_cmd, expression);
La commande map applique un nom, procédure, ou commande à chaque élément d’un ensemble ou liste.
map(name_proc_cmd, expression);
¿ map( f ,{a , b , c });
{ f ( a ) , f ( b ) , f (c) }
¿ map(u→∫ ( cos(x ), x=0 .. u), [Pi / 4 , Pi /7 , Pi /3.0 ]) ;
1 5
[ 2
√2 , cos
14 ( )
π , 0.8660254038
]
La commande map binaire sur deux Listes or Vecteurs
La commande zip applique un nom ou une procédure binaire ou commande à deux liste ou vecteurs par pair de
composants.
Par défaut, la longueur de l’objet retourné est celle de la liste ou vecteur le plus court. Si on spécifie une valeur comme
le (optionnel) quatrième argument, elle est utilisée comme valeur des éléments manquants de la liste ou vecteur la plus
court(e). Dans ce cas, la longueur de la valeur retournée est celle de la liste ou vecteur le plus long(ue).
zip(proc_cmd, a, b);
¿ zip( f ,[i , j],[ k , l ]);
[ f ( i , k ) , f ( j ,l ) ]
zip(proc_cmd, a, b, fill);
¿ zip ( AiryAi , [ 1 , 2 ] , [ 0 ] , 1 ) ;
1
[ −1
36 Г ( 23 ) , AiryAi(2,1) ]
2 π
2.4.6. Procédures
Une procédure Maple est un programme qui consiste en des instructions Maple. En utilisant les procédures, on peut
rapidemment exécuter les séquences d’instructions contenues.
Pour définir une procédure, enfermer une séquence d’instructions entre les instructions proc() et end proc. En général,
on attribue une définition de procédure à un nom.
Exemple:
¿ p := proc( )
√(2) ;
end proc:
Pour exécuter la procédure p, on saisi son nom suivi des parenthèses ( ).
¿ p();
√2
Procedures avec paramètres
On peut définir des procédures qui acceptent des paramètres. Entre les parenthèses de l’instruction proc, on spécifie les
noms des paramètres, séparés par des virgules.
¿ geometricmean := proc ( x , y )
√(x∗ y);
end proc:
Lorsque l’utilisateur exécute la procédure, les noms des paramètres sont remplacés par les valeurs des arguments.
¿ geometricmean (13 , 17);
√ 221
¿ geometricmean (13.5 , 17.1);
15.19374871
Lorsqu’une procédure est exécutée, Maple retourne seulement la valeur du résultat calculé de la dernière instruction.
Maple ne retourne pas la sortie de chaque instruction de la procédure. C’est sans importance d’utiliser " ;" ou ":"
comme séparateus d’instructions.
¿ p := proc( a , b)
a+ b ;
a−b :
end proc:
¿ p(1 , 2);
−1
2.4.7. Modules
Les procédures Maple associent une séquence de commandes avec une seule commande. Le module, une strucure de
programmation plux complexe, permet d’associer des procédures et données en relation.
Un élément clé des modules est qu’ils exportent des variables. Ce qui implique que les variables sont disponibles en
dehors du module dans lequel elles sont céées. La plus part des packages Maple sont implémentés comme des modules.
Les commandes du package sont des exportations du module.
2.4.8. Objects
Les objets étendent l’idée d’associer des procédures et données au delà de ce que les modules permettent. Avec les
objets, plusieurs instances d’une classe d’objets peuvent être créées. Chaque objet individuel peut avoir ses propres
données, bien qu’il puisse partager d’autres valeurs et procédures avec l’ensemble de objets de la classe. Une classe
Maple bien implémentée peut être utilisée aussi naturellement qu’un type propre de Maple.