You are on page 1of 75

1 - Les nombres

et gnralits sur le fonctionnement de MAPLE


Avertissement

Certains aspects de ce chapitre sont lmentaires et peuvent donner l'impression qu'une lecture rapide est
suffisante. En ralit, on a profit de la simplicit des exemples pour prsenter des points trs importants
(et pas toujours vidents) du fonctionnement de MAPLE. On pourra effectuer une lecture en plusieurs
temps avec la convention suivante : les paragraphes dont le titre est
- sans mention : doivent tre lus en premire lecture.
- marqu d'un [*] : peuvent faire l'objet d'une seconde lecture.
- marqu d'un [**] : correspondent une lecture d'approfondissement.
- marqu d'un [***] : vraiment pour les curieux...
Il est vivement conseill de lire trs attentivement le 8 et tout particulirement le 8.3.1.
Les rfrences renvoyant des exercices correspondent au fascicule et aux corrections que l'on trouvera
sur le site Internet de ce manuel : http://www.obs.u-bordeaux1.fr/Enseignement/MAPLE
Le manuel concerne les versions 12, 13 et 14 de MAPLE et les fonctionnalits spcifiques aux versions
seront signales.
Avec la version 13, MAPLE a commenc traduire en franais une petite partie des ses textes et en
particulier ses menus. Dans ce manuel nous donnerons la version anglaise suivie entre crochets de la
traduction francaise comme par exemple File[Fichier]... Cette traduction a t omise pour les cas vidents.

1 Entiers relatifs et rationnels


1.1 Entres des commandes
Il existe de nombreuses possibilits pour crer et grer les documents MAPLE (criture de
texte avec formules, dcoupage en sections, etc). Pour viter d'encombrer la lecture dans
l'immdiat, les informations relatives ce sujet sont reportes au 8.4. Pour rsumer, MAPLE
dispose de deux formats de documents, le "Document Mode" et le "Worksheet Mode" ["Feuille
de travail"]. Le choix par dfaut s'effectue au tout premier lancement de MAPLE (aprs validation
de la licence). Il peut tre modifi ultrieurement, parmi d'autres rglages, l'aide des paramtres
d'initialisation de MAPLE (voir 8.4.1). Mais il peut aussi se faire l'aide du menu File[Fichier]
/New[Nouveau]/Document Mode[Mode document] ou Worksheet Mode[Mode feuille de
travail]. Il existe de plus, deux modes d'entre des commandes dcrits ci dessous. Mais il existe
aussi d'autres variantes de prsentations et un choix simplifi sera propos au 8.4.1 pour guider
l'utilisateur avec un minimum de confusion.

1.1.1 Commandes en mode "Math"

On suppose ici que le document vierge est ouvert en "Document Mode" et le coin suprieur
gauche de la fentre du document MAPLE aura l'un de ces deux aspects suivants en fonction de
l'tat coch ou non de l'option du menu View[Affichage]/Markers[Balises]

avec un / clignotant dans le rectangle en pointills ainsi que le bouton-icne "Math" sous la
1

forme

(pour que la fentre du menu "Quick Help" n'apparaisse plus l'ouverture,

voir le menu d'initialisation au 8.3.7). MAPLE attend une commande de calcul dans un mode
dit "Math" ou "2-D Math Input" ou encore "2-D Math Notation". Ce mode d'entre des
commandes permet une criture des expressions avec une prsentation trs proche de l'criture
habituelle. La muliplication est introduite au clavier par un astrisque qui s'affichera sous la
forme d'un "$" (on lira cependant les remarques importantes au 1.1.1.2 propos de la
multiplication). La commande est ensuite excute en appuyant sur Return.
1 C 4$2
9
(1.1.1.1)
K3 C 1 $ 4 K 1 C 8
2
(1.1.1.2)
La division est introduite par le caractre "/" et MAPLE formatera automatiquement et en "direct"
les expressions au cours de leurs constructions. Une puissance est obtenue avec la touche "^" et
la factorielle avec sa notation standard. Pour quitter dans l'expression suivante l'criture de la
puissance puis du dnominateur et crire le "+" on utilisera 2 fois la touche "". De mme avec
les autres touches de flches pour faire circuler le curseur dans la formule. Il est galement
possible de composer cette formule en utilisant les modles de la palette Expression (colonne de
gauche de la fentre MAPLE).
Les nombres rationnels sont considrs par MAPLE comme tels s'ils ne sont pas
simplifiables, c'est--dire comme des rapports de deux entiers et non comme leurs
approximations dcimales. L'valuation d'un rsultat reste sous sa forme rationnelle rduite au
plus petit dnominateur.
1
1
1
C
C
3K1
7
3!
4K2
47
84
et par consquent peut tre renvoy sous la forme d'un entier
15
3
1
4
C2 K
C
32
32
3!$25

(1.1.1.3)

2
(1.1.1.4)
Exercice : effectuer les oprations suivantes en crivant les commandes telles-quelles et
comparer ces rsultats qui sont tous les deux... justes. On rappelle que n!! signifie
n n K 2 ...# 6 # 4 # 2 ou n n K 2 ...# 5 # 3 # 1 suivant la parit de n. Donner une criture
non ambigu pour le deuxime cas.
2 C 3!!
5
(1.1.1.5)
2 C 3!!
722
(1.1.1.6)
Pour une expression longue MAPLE passe automatiquement la ligne suivante (csure). On
peut cependant souhaiter, pour une meilleure prsentation, effectuer soi-mme ces csures. Ainsi
dans l'exemple suivant la premire ligne se termine par un Majuscule(Shift)-Return, permettant
le passage la ligne suivante sans lancer l'excution. MAPLE attend la suite de l'expression qui
se termine par Return. Des espaces peuvent permettre d'amliorer la lisibilit, mais on devra tre
attentif certaines erreurs et ambiguts (voir les remarques ci-dessous propos de la
multiplication)
2

32$2
6K4
K3 C7 $ 5K3 C2K
64K4$8
2
121K81
5
3
720
K
C3
C
C
2
2
2
5$6
K5
(1.1.1.7)
Si la ligne de commande se termine par " : " puis par Return, elle est excute mais aucun
rsultat n'est affich. Nous aurons l'occasion de revenir sur l'utilit de cette criture qui peut
paratre trange dans ce contexte (voir par exemple 5.2.2 dans ce chapitre).
K

1 K 4$2 :
1.1.1.1 Remarques importantes sur la modification et la r-excution des commandes
On peut toujours, l'aide de la souris, positionner le pointeur sur une commande dj
excute, la modifier (ou non) et l'excuter nouveau. Il faut alors noter les deux points
suivants:
- L'tat de MAPLE n'est pas ncessairement celui qui est affich par la feuille de
calcul...! Deux exemples d'illustration trs simples sont donns aux 8.3.1 et 8.3.2.
- Pour excuter une commande, le pointeur peut se trouver n'importe o sur la commande
quand on tape Return (sauf sur un label [une tiquette], voir 1.2). Aprs la correction d'une
commande il est inutile de perdre son temps dplacer ce pointeur en fin de ligne avant de
taper Return comme on voit le faire souvent chez les dbutants.
1.1.1.2 Remarques propos de la multiplication
Il est possible, pour des oprations n'impliquant que des nombres, d'utiliser la palette
"Operators" pour remplacer l'astrisque par ou forcer son criture avec , etc. On peut
aussi utiliser un ou des espaces entre les deux groupes de parenthses.
1 C 4)2 C K3 C 1 # 20K1 C 8 C 3 K 1
1C7
K5
(1.1.1.2.1)
Nanmoins, un espace (ici aprs le 2) n'est pas toujours ncessaire... (voir 8.2)
2 3C1
8
(1.1.1.2.2)
ATTENTION : ne rien crire entre deux facteurs mis entre parenthses a une autre
signification (voir 8.2-4 , )
1C3 2C5
28
(1.1.1.2.3)
1C3 2C5
4
(1.1.1.2.4)
Si des espaces peuvent tre aussi introduits dans les formules pour amliorer la prsentation,
ils ne peuvent pas servir pour indiquer une multipication entre deux nombres
42
Error, missing operation
4 2
et en consquence, ne peuvent pas tre utiliss pour amliorer la prsentation d'un nombre
pour sparer les triades de 0
250 C 3$1 000
Error, missing operation
250 C 3$1 000
La multiplication peut aussi tre introduite par un "." entr au clavier. Si cette criture
3

alternative n'a pas de consquence pour le calcul d'une expression avec des nombres, il peut
en tre tout autrement avec d'autres types d'objets (voir 5.9 et Ch. 2, 2.1).
K3 C 1 . 4K1 C 8
2
(1.1.1.2.5)
Evidemment, cette criture ne convient pas pour la multiplication de nombres car elle est
utilise pour l'criture des dcimaux (voir 5)
1 K 4.2
K3.2
(1.1.1.2.6)
Pour rsumer ces remarques, mieux vaut s'en tenir un usage systmatique de la touche
"astrisque" pour dsigner la multiplication.
ATTENTION
Le doublement de l'oprateur de multiplication est interprt comme une exponentiation et il
est facile d'introduire cette opration dans une expression par une erreur de frappe
1C3 $ 2C3
20
2C3
1C3
1024
1 C 3 $$ 2 C 3
1024
(1.1.1.2.9)
Digression : en typographie on ne dit pas "un espace", mais "une espace". Nous
n'utiliserons pas cette mtonymie.

1.1.2 Groupes d'excution.

En cliquant sur le bouton-icne

de la barre d'outils on cre ce que l'on nomme un groupe

d'excution qui se remarque par un "prompt" > ("une invite" en franais) qui attend la
commande. Un "[" extensible gauche regroupe la commande et son rsultat. Le mode d'entre
par dfaut est 2D Math Notation...
3
O 7C
2
17
(1.1.2.1)
2
Un groupe d'excution fait clairement ressortir du document le couple commande-rsultat et
on l'utilisera dsormais systmatiquement.

1.1.3 Commandes en mode "Text" [*]

Dit aussi "Input Maple notation" ou "1-D Math Input". On introduit ce mode avec le menu
Insert[Intertion]/Maple Input[Entre Maple] ou le racourci clavier Ctrl-M sous
Windows/Linux (Cmd-M sous Mac) ou avec le bouton
. La diffrence principale
avec le mode "Math", hormis l'affichage, est que la ligne de commande doit se terminer par un
";" (ou ":") puis par Return qui lance l'excution (comme pour le mode "Math", si la ligne se
termine par " : " puis par Return, elle est excute mais aucun rsultat n'est affich).
O (3*(3+1)^3)/5;
(1.1.3.1)
4

192
(1.1.3.1)
5
Il est frquent, surtout au dbut, d'oublier le ; (semicolon) ou le : devant terminer une
commande. MAPLE renvoie un message d'avertissement, mais excute nanmoins la
commande. Pour effacer ce message, rajouter le ; ou le : la fin de la commande avant de la
relancer. On rpte aussi ce qui a dj t dit : inutile de dplacer le pointeur en fin de ligne pour
excuter une commande que l'on vient de corriger.
O (-3+1)*(4-1)+8
Warning, inserted missing semicolon at end of statement
2
Error, control character unexpected
Remarque : le prompt > peut tre chang (voir par exemple 8.3.8).
L'criture des commandes en mode "Text" est sans doute moins naturelle et moins
esthtique, mais prsente l'avantage de montrer prcisment les dtails des caractres entrs au
clavier pour composer les commandes. Elle est galement moins gourmande en mmoire.
Suivant les ncessits des explications on utilisera l'une ou l'autre de ces deux critures pour la
rdaction de ce manuel. Les deux critures donnent de toutes faons accs toutes les
fonctionnalits de MAPLE.

1.2 Numrotation des rsultats, dito et commentaires [*]


1.2.1 Numrotation des rsultats

Par dfaut MAPLE affiche droite du rsultat un numro, dit Label[Etiquette], sous la
forme (n) ou (n.m.k...). On peut faire rfrence dans une commande un rsultat dj calcul en
utilisant ces numros. Des informations complmentaires sur la gestion de cet affichage sont
donnes au 8.4.8.3. L'insertion de ces numros dans une commande ne se fait pas directement,
mais l'aide du menu Insert[Intertion]/Label...[Etiquette...] qui ouvre une fentre dans laquelle
on donne le numro. Il est trs utile de connatre le raccourci clavier permettant l'insertion d'un
numro sans utiliser le menu : Ctrl-L (Windows ou Linux) ou Cmd-L (Mac). Pour changer un
numro, double-cliquer dessus (l'effacer en mode "Text") puis en dfinir un nouveau avec un
Ctrl/Cmd-L.
A chaque excution d'une commande, MAPLE re-numrote entirement la feuille de calcul,
y compris dans les commandes et mme dans le texte ( condition que ces numrotations y
soient introduites comme indiqu ci-dessus et non par recopie au clavier). Donc, si on insre ou
si on supprime une ou plusieurs instructions (excutes) n'importe o dans la feuille, les
numros seront automatiquement changs partout et feront toujours rfrence aux bons rsultats,
mais attention, si la valeur d'un rsultat associ l'un des labels a t modifi, le nouveau
rsultat ne sera recalcul que si la commande est re-excute.
Gnralement on utilise moins de niveaux de sections et les numros sont plus simples
introduire que ceux de ce document. De plus il existe un mode numrotation squentielle simple
qui ne tient pas compte des numros de section (voir 8.4.8.3).
4 2 (1.1.1.2.5) K (1.1.1.7)
O K
9
K4
(1.2.1.1)
Bien entendu ceci, comme tout ce qui suit, est aussi valable pour le mode "1-D Math Imput"
O -4*(2*(1.1.1.2.5)-(1.1.1.7))/9;
K4
(1.2.1.2)
5

1.2.2 Dito

Le symbole % ou dito (avec deux t dans MAPLE comme souvent en anglais) dsigne le
rsultat de la dernire instruction excute dans l'ordre chronologique et peut tre utilis dans
une expression. Les exemples et les remarques sont rassembls au 1.2.3. Le double symbole
%% et le triple symbole %%% dsignent les rsultats prcdents.
Digression : le caractre typographique % s'appelle "Pourcent". Le mot "dito" est d'origine
commerciale et dsigne "ce qui vient d'tre cit", vitant ainsi la rptition.

1.2.3 Commentaires sur une ligne de commande

On peut crire un commentaire la fin de la ligne de commande (aprs le : ou le ; ou


directement aprs la commande en mode "Math") en le faisant prcder du caractre #.
O 2 $% # %=-4
K8
(1.2.3.1)
O 3*%%;
# %%=-4, %=-8
K12
(1.2.3.2)
O -3*(%%%/2-1)-1; # %=-12, %%=-8 et %%%=-4
8
(1.2.3.3)
Attention : les symboles dito sont d'un usage trs commode, mais doivent tre manipuls avec
prcautions en raison de leur caractre chronologique. Pour un usage systmatique on prfrera
la mthode utilisant les numros des rsultats sauf pour des commandes groupes (voir
l'exemple propos des affichages multiples, 1.3). Par exemple, le rsultat de la commande
suivante peut sembler curieux et on s'attend plutt 8/2 = 4. Mais ce que ne peut pas montrer ce
texte, c'est que la commande associe au rsultat (1.2.1.1) a t r-excute immdiatement avant
O %/2;
K2
(1.2.3.4)

1.3 Affichages et commandes multiples [*]


On peut construire une srie de commandes groupes qui renverront plusieurs rsultats : la
premire ligne se termine par un Majuscule-Return, permettant le passage la ligne sans lancer
l'excution, la deuxime par Return. Chaque expression se termine par un ; ce qui entranera
l'valuation de chacune et l'affichage sur des lignes spares. Les symboles % et %% sont ici non
ambigus puisqu'ils font rfrence des rsultats qui ne peuvent tre que calculs immdiatement
avant (%=32, %%=16). On remarquera aussi que la notation "**" (syntaxe Fortran) la place de
"^" est admise
O (1.2.3.1)*(-4) ; (-%+28)**2 ;
-10/(-2); (1/%%)^(-2); # Les parenthses sont ncessaires
32
16
5
256
(1.3.1)
En mode "Math" les ";" redeviennent ncessaires pour sparer les commandes
O (1.2.3.1)$ K4

K% C 28

10
; K
;
K2
32
16
5
256
6

1
%%

K2

(1.3.2)

Si on termine chaque expression par une virgule et la dernire par point-virgule on obtiendra
aussi des rsultats, mais qui s'afficheront sur la mme ligne. Cette faon de faire permet
d'conomiser de l'espace d'affichage mais ce rsultat est une objet MAPLE unique appel suite
que nous examinerons au chapitre 3, Intervalles, Listes, Suites, Ensembles. On remarquera que le
label (1.3.2) ne fait rfrence qu'au dernier rsultat (256) de la srie prcdente.
Attention : il ne s'agit pas ici de commandes groupes, mais d'une commande unique construisant
une suite (un seul ;). On ne peut donc pas considrer comme prcdemment que les calculs des
expressions sont fait squentiellement. En consquence une expression de la suite ne peut pas se
servir d'un de ses lments prcdents dans son calcul. Par exemple % ne fait pas rfrence 32
mais au dernier rsultat calcul dans le groupe prcdent, c'est--dire 256. De mme %%=5.
O -(1.3.2)/(-8) , -%/(-2) ,
(-3+1)^2 , (1/%%)^(-2);
32, 128, 4, 25
(1.3.3)
Pour MAPLE cette suite est un "objet" unique et le label fait rfrence ce rsultat pris comme un
tout.
O 2*((1.3.3)+1);
64, 256, 8, 50 C 2
(1.3.4)
Sa manipulation relve donc de celle des suites (voir chapitre 3) et il est possible de faire rfrence
un des rsultats en indiquant son numro d'ordre avec la notation [n]
(1.3.3) 3 C 1
O %%[3]/2 , (1.3.3)[3] ,
2
5
2, 4,
(1.3.5)
2
Il existe encore d'autres faons d'obtenir des affichages multiples que l'on aura l'occasion de
rencontrer (fonction print, Listes, Tableaux...).

1.4 Assignation
On peut affecter, on dit aussi assigner, un nombre un nom en utilisant la notation : =. Cette
commande sera tudie en dtail au Ch. 2, 1. Les rgles de syntaxe dfinissant les noms sont
dcrites au 8.1.
Attention: le signe = seul a une autre signification sur laquelle nous reviendrons (dfinition d'une
quation, voir par exemple 8.2 et plus gnralement le chapitre 14)
O n:=2^79-1;
n d 279 K 1
n := 604462909807314587353087
n := 604462909807314587353087
(1.4.1)

1.5 Fonctions relatives aux entiers


On peut se poser la question " n est-il premier ? " en utilisant la fonction isprime (comprendre is
prime ? ; cette fonction accepte aussi des arguments permettant de fixer la mthode de calcul et des
options). La rponse false signifiant "faux", la rponse est "non"
O isprime n
false
(1.5.1)
On obtient sa dcomposition en facteurs premiers avec la fonction ifactor (integer factorization)
O ifactor n
202029703 1113491139767 2687
(1.5.2)
Autre exemple de fonction sur les nombres entiers: les coefficients du binme
7

n!
p! n K p !
sont donns par la fonction binomial(n, p). On peut par exemple vrifier la relation entre les
coefficients du binme
C1
Cnp C
= Cnp C Cnp C 1
1
en prenant des valeurs particulires pour n et p (MAPLE peut le faire pour n et p quelconques, mais
on sortirait du cadre de ce chapitre)
O n := 4;
p := 2;
binomial n C 1, p C 1 = binomial n, p C binomial n, p C 1
n := 4
p := 2
10 = 10
(1.5.3)
MAPLE sait aussi calculer avec une arithmtique modulaire
O 7 C 6 mod 5;
3
(1.5.4)
5C6
O
mod 3;
8
1
(1.5.5)
O 12^(5+2 mod 3)+1 mod 7;
6
(1.5.6)
On ne dtaillera pas dans ce manuel toutes les fonctions de MAPLE relatives aux calculs sur les
nombres entiers pas plus que bien d'autres fonctions. Celles-ci peuvent tre dcouvertes dans l'aide
en ligne (help), c'est--dire directement l'aide du logiciel (voir 2). Il faut aussi savoir que toutes
les fonctions ne sont pas utilisables au moment du lancement de MAPLE. Elles ne le seront qu'aprs
les avoir rendues accessibles dans des bibliothques (voir 8.3.5).
Cnp =

1.6 Elision [**]


Le nombre maximal de chiffres autoriss pour un entier, bien que trs grand, est limit et sa
valeur dpend de l'ordinateur utilis. On peut l'obtenir avec la commande
O kernelopts maxdigits
268435448
(1.6.1)
Ce rsultat indique que les entiers peuvent contenir plus de 268 millions de chiffres ! MAPLE est en
effet capable de travailler avec de tels nombres grce la librairie d'algorithmes GMP (GNU
Multiple Precision). La valeur maximale d'un entier que peut contenir une mot mmoire simple est
seulement de (ici 2 32 K 2 K 1
1073741823
(1.6.2)
64 K 2
pour une machine 32 bits ; 2
K 1 pour une machine 64 bits)
O kernelopts maximmediate
1073741823
(1.6.3)
On peut galement contruire des entiers signs ou non signs sur 8, 16, 32 ou 64 bits l'aide de la
bibliothque MTM (bote outils MATLAB)
O ?MTM/integer
Si le nombre est trs grand MAPLE n'affichera pas tous les chiffres, mais seulement les valeurs
fixes par dfaut dans le menu d'initialisation (voir 8.3.7) Maple 12/Prfrences... (Mac) ou
Tools/Options... (Windows ou Linux), onglet Precision sous la forme nm[...d digits...]ijk (voir ci8

dessous). Le mcanisme, dit d'lision (en syntaxe franaise, "l(a)'lision est une lision"), va
s'appliquer ds que le nombre contient un nombre de chiffres plus grand que ("threshold" signifiant
"seuil"). Il s'agit ici de la valeur par dfaut.
O interface elisionthreshold
10000
(1.6.4)
Mme si les nombres entiers sur lesquels on travaille sont moins grands, l'affichage peut devenir
vite encombrant et on peut diminuer cette valeur. La premire des commandes suivantes fixe le
nombre de chiffres partir duquel le mcanisme s'applique (=40). Les deux autres fixent le nombre
de chiffres ("digits") qui doivent prcder (=3) et suivre (=6). La fonction interface affiche la valeur
existant avant la modification, ce qui est pratique pour mmoriser par assignation (eth:=...) cette
ancienne valeur.
Remarque : ce mcanisme d'affichage est dynamique dans le sens suivant : quand on ouvre une
feuille de calcul enregistre, les rsultats dj calculs s'affichent avec les valeurs par dfaut tant que
les commandes qui fixent les paramtres d'lision ainsi que les commandes de calcul n'ont pas t
excutes. Si on veut obtenir un affichage immdiat tenant compte de valeurs d'lision dfinies par
l'utilisateur, il faut, soit fixer avant l'ouverture du document les paramtres de MAPLE dans le menu
d'initialisation comme indiqu ci-dessus, soit introduire les commandes dans le fichier d'initialisation
de MAPLE (voir 8.3.8) ou plus simplement par initialisation de la feuille de calcul, (voir le
Startup code[Code de dmarrage], 8.4.3-1).
O m := 40! K 636 ;
m := 815915283247897734335296844797625358725828050944
(1.6.5)
O eth d interface elisionthreshold = 40 :
interface elisiondigitsbefore = 3 :
interface elisiondigitsafter = 6 :
m
2
407[...39 digits...]025472
(1.6.6)
On "annulera" l'lision en posant un seuil lev ou comme ici en restituant la valeur par dfaut qui a
t mmorise avec eth (on peut aussi poser infinity qui supprime totalement le mcanisme, mais
une telle ncessit est hautement improbable !).
O interface elisionthreshold = eth :
Malgr le mcanisme d'lision, un nombre peut tre estim trop grand par MAPLE pour tre affich.
C'est le temps de conversion binaire dcimal qui pose problme.
O 243112609 K 1
...Integer too large for display...

(1.6.7)

Remarque : l'lision peut aussi s'appliquer sur des expressions mathmatiques (voir Ch. 13).

2 Aide MAPLE
L'aide en ligne de MAPLE est trs dveloppe et peut tre obtenue de nombreuses faons (souvent
redondantes) dont :
1) Par commande en faisant prcder le mot cl recherch d'un ? (le ; final n'est pas ncessaire). Par
exemple
9

O ?binomial
Un double ?? ouvre la fentre avec les sections fermes, transformant la page en une table des matires.
On peut ensuite ouvrir les sections de sont choix. Un triple ??? affiche la page avec seule la section des
exemples ouverte (quivalent la commande > example(binomial))
On peut aussi utiliser la syntaxe
O help binomial
Certaines commandes doivent tre combines pour prciser la demande (on peut utiliser indiffremment
une "," ou un "/")
O ?index / package
O ?index , function
ou faire une recherche dans une bibliothque particulire (on utilisera le terme de "bibliothque" ou
indiffremment "librairie" pour traduire le mot "package").
O ?LinearAlgebra/Determinant
2) Le menu Help[Aide]/Maple help[Aide Maple] ou l'icne-bouton

ouvre une fentre dont

l'utilisation est vidente. On n'oubliera pas d'explorer les diffrentes Resources : All, Help Pages,
Tasks,..., Manuals (voir ci dessous). On notera que les titres de rubriques sont prcdes d'icnes :
indiquant une page d'aide,
une page de dfinition,
un document MAPLE (WS pour
WorkSheet) de dmonstration,

des pages du manuel interne (voir ci dessous) ou

pour des

"Tasks template", c'est dire des pages prdfinies pour raliser des calculs classiques et simples. Ces
dernires pages sont accessibles par le menu Tools[Outils]/Tasks[Tches]/Browse...[Naviguer...] ou
FileFichier]/New[Nouveau]/Templates...[Gabarit de tches...]
3) A chaque ouverture d'un nouveau document une fentre d'aide "rapide" s'ouvre. Pour ne plus faire
apparatre cette fentre qui s'ouvre chaque nouveau document, cliquer sur l'onglet Interface de la
fentre d'initialisation (voir le 8.3.7) et dcocher Quick Help popup on new documents[Fentre
d'aide rapide lors de nouveaux documents].
4) Quand on tape, en mode "Entre-Math-1D", les premiers caractres d'un nom, qu'il soit prdfini
par MAPLE ou cr par l'utilisateur par une assignation, et ds que le nombre de caractres entrs est
suffisant pour lever toute ambigut, un mcanisme de complmentation automatique (automatic
completion) affiche un nom complet que l'on valide ventuellement en tapant Return. Pour que ce
mcanisme fonctionne il faut que la case Automatic command completion[Compltage automatique de
commande], onglet Interface dans le menu d'initialisation (voir 8.3.7) Tools/options (Windows ou
Linux) ou Maple 14/Prfrences (Mac) soit coche.
En mode "Entre-Math-2D", il faut solliciter l'aide en utilisant la touche "Escape".
O ?worksheet/expressions/completecommand
5) Le menu trs important Help/Help on Context. Lorsque le pointeur est positionn sur un mot, par
exemple binomial, l'item du menu se transforme en Help on binomial [Aide sur binomial] et par un
"clic" ouvre la page d'aide correspondante.
6) Les pages d'aide contiennent des hyperliens
- en vert soulign qui renvoient sur des pages d'aide associes par leurs sujets.
- en rouge soulign qui renvoient sur des pages d'un dictionnaire contenant de l'ordre de 5000
rfrences ( ): dfinitions mathmatiques, mathmaticiens, etc.
10

7) Pour MAPLE 13/14, les messages d'erreurs (en rose) ou de simple avertissement (en bleu) sont
des hyperlinens qui renvoient vers des pages d'aide sur le site de Maplesoft. Pour l'instant, ces
nouvelles pages d'aide sont souvent sommaires et sont sans doute destines tre compltes.
O 1 C= 2
Error, invalid sum/difference
1 C= 2
O 1+(-2)
Warning, inserted missing semicolon at end of statement
K1
(2.1)
8) MAPLE contient un manuel utilisateur interne accessible avec la commande
O ?UserManual
mais galement par le menu Help/Manuals, Dictionary, and more.../Manuals ou avec la rubrique
Ressource : Manuals dans la page d'aide (voir ci-dessus, 1).
On trouvera une feuille de calcul d'initiation en mode "Document" avec
O ?MaplePortal
ou contenant des exemples traits (souvent avancs) parmi les principaux sujets que l'on peut
rencontrer
O ?examples,index
ou pour un sujet particulier contenu dans ce document, par exemple
O ?examples,BranchCuts
9) Le menu Tools[Outils] propose un certains nombre d'outils pr-dvelopps sous forme de guides
interactifs, de "Maplets" (applets MAPLE) ou de "Tasks template" ["Gabarit de tche"] dj cits.
10) Il existe aussi d'autres possibilits par commande qui explore des bibliothques de proprits
mathmatiques telles MathematicalFunctions ou FunctionAdvisor (voir Ch.13). Dans l'exemple
suivant DE est mis pour Differential Equation, autrement dit on demande quelle est l'quation
diffrentielle qui a pour solution un sinus hyperbolique, sous-entendu bien sr que les deux conditions
initiales soient appropries.
O MathematicalFunctions:-Get definition, sinh
1 z
1
sinh z =
e K
, with no restrictions on z
(2.2)
2
2 ez
O FunctionAdvisor DE, sinh
f z = sinh z ,

d2

f z =f z
(2.3)
dz2
Ces d'informations peut aussi tre donn par le menu Tools[Outils]/Assistants/Special Functions...
ainsi que d'autres outils.
11) On trouvera galement des informations sur le site Internet de MAPLE par le menu Help]/On the
Web .
Tout n'a pas t mentionn sur l'aide en ligne dans ce paragraphe, mais envisager une lecture
exhaustive serait une ide draisonnable. On recommande cependant de complter ces
informations de base par une exploration des possibilits de l'aide en ligne que l'on trouvera dans
Help/Manuals, Dictionary, and more...[Manuels, Dictionnaire et plus...]/Using the Help System
[Utiliser le systme d'aide].
11

On trouvera des informations complmentaires sur les entiers et les rationnels au Ch. 2, 2.3.1 et
2.3.2.

3 Nombres irrationnels
Comme pour les nombres rationnels, les nombres irrationnels sont conservs en tant que tels, c'est-dire sous une forme symbolique, s'ils ne sont pas simplifiables. Par exemple, pour une racine carre
d'un nombre non carr on obtient avec la fonction sqrt (square root) :
O a d sqrt 3 ;
a := 3
(3.1)
Que se soit en mode "Entre Math 1-D" ou en mode "Entre Math 2-D" on peut aussi utiliser le gabarit
a de la palette "Expressions" (voir pour plus de dtails sur x 1/2 , sqrt x et x , voir Ch. 2,
2.2.3.1).
O ad

a := 3
(3.2)
Le nom a est ici associ, non pas une approximation numrique, mais un nombre symbolique
positif dont le carr vaut 3 exactement par dfinition.
O a^2;
a2
3
3
(3.3)

4 Nombres remarquables (), nombres indfinis


4.1 Nombres remarquables
MAPLE connat, au sens de leurs proprits et pas seulement par leurs approximations
numriques, quelques nombres remarquables comme par exemple Pi = p. Attention: notez la lettre
majuscule P et la minuscule i obligatoires. Sinon, avec la syntaxe pi la lettre p s'affichera aussi
comme rsultat, mais dsignera un simple nom, pas le nombre. De mme PI dsigne seulement la
lettre grecque majucule P. Avec cette dfinition symbolique du nombre, MAPLE peut exprimer
certains rsultats classiques de fonctions qui sont, si possible, values automatiquement.
GAMMA est la fonction eulrienne G (voir exercices 2.1 2.4). Noter que seuls GAMMA au
clavier et G de la palette "Grecque" sont associs cette fonction, le nom Gamma tant associ un
nom symbolique indfini ( 8.1/5).
O Pi;
Pi
cos
;
4
1
1
1
GAMMA
, Gamma
, G
2
2
2
p
1
2
2
1
p,G
, p
(4.1.1)
2
12

En mode "Entre Math 2-D", les lettres extraites en cliquant dans les palettes "Symboles courants"
et "Grecque" correspondent prioritairement aux symboles standard des nombres ou des fonctions :
(voir aussi le 8.1-5). Ici est la fonction Zeta de Riemann
p
O cos
, z 2
4
1
1 2
2,
p
(4.1.2)
2
6
Pour illustrer la remarque sur la syntaxe de p
O cos Pi ;
cos pi , cos P
K1
cos p , cos P
(4.1.3)
Certaines valeurs que MAPLE sait calculer (ce n'est pas toujours le cas) ne le sont cependant pas et
il faut forcer l'valuation (voir convert, Chapitre 13, Simplifications, Manipulations...)
p
O cos
;
5
p
convert cos
, radical
5
1
cos
p
5
1
1
C
5
(4.1.4)
4
4
A propos de e
La base e des logarithmes npriens n'est pas une constante prdfinie (elle l'tait sous la forme
E avec d'anciennes versions de MAPLE). Elle est seulement exprime de faon particulire lors
de l'affichage
O e2 ;
Sum

1
, n = 0 ..N : % = value %
n!
e2
N

> n!1

=e

(4.1.5)

n=0

Attention: Le symbole e (non italique) affich ci-dessus n'a aucun rapport avec le nom e d'une
variable entre au clavier. Ici, e n'est qu'un nom indfini. On notera que, contrairement au
nombre, la variable s'affiche en italique.
O e , ln e
e, ln e
Cependant, si on utilise la palette "Symboles courants" pour entrer e, on fera bien rfrence la
base des logarithmes npriens (voir 8.1-5). En mode "Entre Math-1D" cette opration est
convertie automatiquement en exp(1). En mode "Entre Math-2D", cela donne
O e , ln e
e, 1
(4.1.6)
13

O
(4.1.6)
Malgr ces remarques, le nombre e n'est pas considr par MAPLE comme une constante
prdfinie (voir la commande en fin de paragraphe).
MAPLE est capable de reconnatre (quelquefois aprs simplification) l'quivalence de deux
expressions comme par exemple exp(1/2) et e .
O exp(1/2)-sqrt(exp(1));
0
(4.1.7)
Rappel : pour entrer l'exposant, utiliser la touche "^". Pour sortir du dnominateur 2 puis de
l'exposant, utiliser la touche "".
1
2

O e K e
0

(4.1.8)

MAPLE ne connat que deux autres nombres rels remarquables prdfinis (e n'est pas dans la
liste) et que nous rencontrerons : la constante d'Euler-Mascheroni g (voir exercice 2.2) et la
constante de Catalan (voir exercice 2.7). A condition de prendre certaines prcautions, on peut
ajouter des constantes cette liste (voir Ch. 2, 3.3.2.3)
O constants
false, g, N, true, Catalan, FAIL, p
On ne peut rien assigner ces noms qui sont protgs.
22
O pd
;
7
g d 3.14
Error, attempting to assign to `Pi` which is protected
Error, attempting to assign to `gamma` which is protected
Exercice : Avec l'aide en ligne, trouver une dfinition de la constante de Catalan.

4.2 Nombres indfinis


MAPLE connat galement la notion de nombre indfini avec le mot cl undefined. La
"constante" peut s'crire infinity et
O 0$N ; N K N
undefined
undefined
(4.2.1)
Ce mot cl peut apparatre en de nombreuses circonstances (calcul de limite par exemple) et se
manipule de faon conforme sa dfinition.
undefined
O eundefined ; 1 K
undefined
undefined
undefined
La division par 0 provoque une erreur mme pour la forme indtermine 0/0.
0
O
0
Error, numeric exception: division by zero
Il faut noter galement que
14

(4.2.2)

O 00
1

(4.2.3)

5 Nombres dcimaux
Les nombres dcimaux sont dits " virgule flottante" pour exprimer le fait que la virgule dcimale
(syntaxe numrique franaise) de la mantisse peut prendre n'importe quelle place (souvent aprs le
premier chiffre significatif), la magnitude relle tant dfinie par l'exposant. Avec la syntaxe numrique
anglaise le "point" remplace la "virgule" et on parle de "floating point numbers".
Il existe deux formes de dcimaux (voir 5.2.3), mais on ne prsentera dans un premier temps que
les "classiques". Ils sont crs de faon standard (avec un point) et ne doivent pas, comme pour les
entiers, contenir d'espaces (les espaces entourant le + de l'addition sont par contre autoriss).
O K1.2 C 0.035
K1.165
(5.1)
Il existe trois faons de dfinir des nombres avec des puissances de 10, la plus simple utilisant la
notation scientifique (indiffremment e ou E). Dans le deuxime cas le rsultat affich est celui rsultant
d'une multiplication ( -13.345 par le rationnel 1/1027 ). Il en rsulte l'apparition de zros (voir 5.1 et
5.2.2)
O K13.345e-27,K13.345$10K27 , Float K13.345, K27
K1.3345 10-26 , K1.334500000 10-26 , K1.3345 10-26
Attention : on ne devra pas laisser le point dcimal seul devant e ou E (voir 5.9)
O 45.e6;
Error, missing operator or `;`
O 45.e6
Error, incorrect syntax in parse: missing operator or `;` (near
6th character of parsed string)
45.e6

(5.2)

Il faudra crire (sans caractre d'espacement)


O 45.0e6;
45.0e6
4.50 107
4.50 107
(5.3)
ou plus simplement encore
O 45e6;
45e6
4.5 107
4.5 107
(5.4)
On trouvera aussi des informations complmentaires aux 5.6, 5.7, 5.8 et 5.9 ainsi qu'au Ch. 2,
2.3.3, 2.5.5.2.

5.1 Mode de calcul : valuation dcimale implicite.


Le mlange dans une expression de nombres exprims en notation dcimale avec des nombres
entiers ou rationnels entrane l'valuation en valeur dcimale. Pour la prcision des calculs on se
reportera au 5.2.2
1
O 0.5 C
C1
3
(5.1.1)
15

1.833333333

(5.1.1)

11
6

(5.1.2)

alors que
1
1
O
C
C1
2
3

Un autre exemple :
1. / 7 $10K10 ,

1 / 7 $10K10 ;

1
(5.1.3)
70000000000
Lorqu'une fonction est invoque avec un argument dcimal ou un mlange conduisant un calcul
dcimal, la fonction est calcule sous une forme dcimale
1.428571429 10-11 ,

0.4 K

O e

3
4

2
3
K
5
4
7
20

0.7046880897, e
(5.1.4)
Par contre, priorit est toujours donne aux calculs symboliques et MAPLE ne prendra pas
l'initiative de remplacer p ou 2 par leurs valeurs dcimales approches (voir 5.2.1 et la fonction
evalf).
O 1. C

p C 5.3
1. C

De mme
O cos 1. C

p
4

e1. K

2 , p C 5.3

(5.1.5)

cos 1. C

1
p , e1. K
4

(5.1.6)

Exercice : Comparer ces trois exemples et expliquer les diffrences sachant que l'argument est
valu avant d'appeler la fonction. Le troisime exemple est moins vident car il semble
contradictoire avec ce qui vient d'tre dit... (indication : remplacer 5.3 par en gardant , puis par
/4 en gardant 5.3 et en dduire le rsultat).
O e1. C

e1 C

2.

cos p C 5.3

e1. C

, 11.18097376, K0.5543743362

(5.1.7)

5.2 Evaluation dcimale explicite et fonction evalf


5.2.1 Fonction evalf

MAPLE est avant tout un calculateur symbolique mais on peut toujours obtenir une
approximation dcimale d'une expression numrique avec la fonction evalf (contraction de
"Floating-Point Evaluation")
5
O evalf
;
6
evalf 100!
0.8333333333
(5.2.1.1)
16

9.332621544 10157
MAPLE ne dit rien sur l'valuation de exp(1/2). Une valuation dcimale passe par la
fonction evalf

(5.2.1.1)

1
2

O a := e ;
evalf a ;
evalf
e
1
2

a := e
1.648721271
1.648721271

(5.2.1.2)

Il peut sembler quivalent d'crire...


p
O evalf cos
;
4
p
cos evalf
;
4
0.7071067810
0.7071067811
(5.2.1.3)
...mais MAPLE reste avant tout un calculateur symbolique et va, dans le premier cas, d'abord
chercher valuer la ligne trigonomtrique sous une forme symbolique et ensuite seulement
appliquer la fonction evalf, c'est--dire calculer :
p
O cos
;
4
2
evalf
2
1
2
2
0.7071067810
(5.2.1.4)
Alors que dans le second cas, la valeur dcimale de l'argument est d'abord value puis la ligne
trigonomtrique calcule en mode dcimal.
p
O evalf
;
4
cos 0.7853981635
0.7853981635
0.7071067811
(5.2.1.5)
Ce genre de dtails doit tre prsent l'esprit quand on manipule des calculs lourds. On doit faire
un bilan ( l'aide de tests spars) de la part de temps occupe par chacun des calculs
symboliques et numriques afin de faire les bons choix.
On se reportera toutefois la remarque du 5.2.2 car cette rgle d'valuation pralable des
arguments n'est pas respecte (et bon escient) dans un cas prcis.
Quand evalf est applique sur une expression, elle reconstruit cette expression en explorant
tous les coefficients numriques qu'elle transforme en dcimaux l'exception des exposants
purement entiers ou rationnels positifs ou ngatifs. On constate que l'exposant -n/2 n'est pas
17

considr de ce type (voir 8.1-8 ; [***] une explication plus dtaille est donne au Ch. 2,
2.4.1). Pour le calcul du coefficient de x 2 , voir l'exemple prcdent. Pour , voir 4.1.
3

K
p
O evalf cos
x 2 C y 2 C z 2 C ln g a
4
0.7071067810 x 2 C y 3 / 2 C zK0.5000000000 n C ln 0.5772156649 a
La fonction peut s'appliquer sur d'autres type d'objets, comme ici une liste.
3x
O evalf eK2 , ln
, 3 x2 C 1
2
0.1353352832, ln 1.500000000 x , 3. x 2 C 1.

(5.2.1.6)

(5.2.1.7)

On reviendra souvent dans ce manuel sur cette fonction et son utilisation.

5.2.2 Prcision des calculs et variable Digits

Le nombre de chiffres significatifs utiliss pour les calculs est fix par dfaut 10 (voir la
fin de ce paragraphe ainsi que 8.3.8 et 8.4.3) par la variable d'environnement prdfinie
Digits (pour le sens de l'expression "variable d'environnement", voir Ch. 19, Procdures).
O Digits
10
(5.2.2.1)
Le nombre n de chiffres significatifs des calculs de x peut tre ponctuellement fix en utilisant
la syntaxe evalf[n](x). Ceci n'affecte que le calcul demand et ne modifie pas la valeur de la
variable Digits. L'affichage s'adapte cette valeur, mais on peut modifier ce comportement (voir
5.8). Notez le "\" la fin de la premire ligne qui indique que l'affichage du nombre se
poursuit.
p
O evalf 100
K1
2
0.570796326794896619231321691639751442098584699687552910487472296153\ (5.2.2.2)
908203143104499314017412671058534
eK3 $ln 2
0.0345097660675301301020324590401
(5.2.2.3)
On peut aussi utiliser l'criture indice suivante. Pour crire en mode indice utiliser la touche "_",
puis "40", puis la touche "" pour sortir du mode indice.
O evalf 30

O evalf40 eK3 K p
K3.091805585221929295483300967629441107565
(5.2.2.4)
O Digits
10
(5.2.2.5)
Il existe aussi une autre forme, evalf(x,n), utilise dans les prcdentes versions et encore
valable. La forme evalf[n](x) ou evalfn x est maintenant recommande.
Attention : conformment aux remarques du 5.2.1, evalf cherche valuer au pralable et
dans la mesure du possible, les arguments pour les simplifier. La consquence a une importance
capitale
1
O evalf30 1 C
;
3
18

(5.2.2.6)

O
evalf30 1 C

1
3.0

1.33333333333333333333333333333
1.333333333
(5.2.2.6)
On comprend videmment l'origine de cette diffrence... Le premier rsultat est l'valuation
dcimale de 4/3. Le second celui obtenu par 1+1/3.0 valu avec Digits=10, evalf30 ne pouvant
alors que renvoyer une valuation identique
1
O w d 1C
;
3.0
evalf30 w
w := 1.333333333
1.333333333
(5.2.2.7)
Exercice : La diffrence ne saute pas forcment aux yeux si les nombres n'ont pas une
reprsentation dcimale vidente. Quel est le rsultat correct ?
1C

O evalf30 e

1
3

1C

1
3.0

; evalf30 e
3.79366789468317773539630436049
3.79366789341862177071267110950

(5.2.2.8)

On peut aussi changer par assignation la valeur de Digits pour une srie de calculs puis
revenir si on le souhaite la valeur standard. La valeur maximale de Digits est donne par
O kernelopts maxdigits
268435448
(5.2.2.9)
(valeur pour une machine 32 bits ; 38 654 705 646 pour une machine 64 bits !). Pour travailler
avec une telle prcision, MAPLE utilise la librairie d'algorithmes GMP (GNU Multiple
Precision). On notera que certaines des commandes suivantes se terminent par ":". En effet
l'affichage des rsultats ne prsente aucun intrt (ou peut mme, pour des affichages longs,
encombrer inutilement la lecture)
O Nb_digits := Digits :
Digits := 50 :
1
2

e , evalf e

1
2

p evalf p
,
5
5

1
2

e , 1.6487212707001281468486507878141635716537761007101
1
p, 0.62831853071795864769252867665590057683943387987502
5
O Digits := Nb_digits :
evalf e

1
2

(5.2.2.10)

evalf p
;
5
1.648721271
0.6283185308
ATTENTION
19

(5.2.2.11)

Le nombre de chiffres qui dfinit un nombre, celui qui dfinit la prcision des calculs et
celui qui est utilis pour l'affichage ( 5.8), sont distincts.
La valeur de Digits n'intervient que dans le calcul des nombres (affecte seulement GMP), mais
n'effectue pas de troncature sur leurs dfinitions qui restent prserves. Noter que les 0 dcimaux
de fin sont significatifs et prservs
O X d 1.23456789057342980000;
X / 3;
# Nombre de chiffres = Digits
X
e ;
# Nombre de chiffres = Digits
X
# Nombre de chiffres = celui de la dfinition
X := 1.23456789057342980000
0.4115226303
3.436893087
1.23456789057342980000
(5.2.2.12)
Le nombre Y est calcul avec 20 chiffres significatifs et, malgr la valeur de Digits gale 10,
conserve toute sa prcision.
5
O Y := evalf20
;
7
Digits;
Y
Y := 0.71428571428571428571
10
0.71428571428571428571
(5.2.2.13)
Suivant l'option choisie (voir 5.8), l'affichage peut ne pas reflter la prcision des calculs, mais
ce n'est pas le cas par dfaut (comme ici).
L'application de evalf sur X produit un nouveau nombre dont la prcision rsulte de la valeur de
Digits.
O Z d evalf X
Z := 1.234567891
(5.2.2.14)
Cette soustraction produit 0.0 car le calcul est fait avec Digits=10 chiffres et le nombre de
chiffres qui dfinit X n'y change rien.
O XKZ
0.
(5.2.2.15)
Par contre...
O evalf20 X K Z
K4.265702000 10-10

(5.2.2.16)

A := 0.5345224838
B := 0.534522483824848769

(5.2.2.17)

Exercice : expliquer...
O Ad

evalf18

B d evalf18

2
7
2
7

20

O BKA
0.

(5.2.2.18)

ATTENTION
Que ce soit avec MAPLE ou avec tout autre langage (C, C++, Fortran, Java...), les calculs
numriques dcimaux (dits en "virgule flottante") doivent tre mens avec la plus grande
prudence (on trouvera des illustrations de ces difficults au chapitre 4 Vecteurs, Matrices et
Algbre linaire V Erreurs numriques, ou avec les exercices 3.8 et 3.9). L'algbre
informatique des dcimaux, quelque soit le langage, peut mme se rvler non commutative
et/ou non distributive !
1
5
O 5 evalf
K evalf
7
7
2. 10-10
(5.2.2.19)
Augmenter la prcision peut ne rien changer quand on s'y prend mal...
1
5
O 5 evalf20
K evalf20
7
7
2. 10-10
(5.2.2.20)
La valeur par dfaut de Digits peut aussi tre change l'aide du menu d'initialisation (voir
8.3.7) Tools[Outils]/Options (Windows-Linux) ou Maple 14/Prfrences (Mac) qui ouvre une
fentre d'initialisation. Cliquer ensuite sur l'onglet Precision et affecter la valeur souhaite la
rubrique "Round calculation to [Arrondir le calcul ]" (Attention: ne pas confondre avec la
rubrique "Round screen display to[Arrondir l'affichage de l'cran ]"). Pour effectuer le
changement de la valeur de Digits on peut aussi utiliser un fichier d'initialisation de MAPLE,
(voir 8.3.8) ou plus simplement une modification attache seulement la feuille de calcul avec
le Startup code ( 8.4.3-1).

5.2.3 Fonction evalhf (arithmtique "cable" ou "hardware") [**]


5.2.3.1 Les dcimaux "software" et "hardware"
Il existe deux faons dans MAPLE de dfinir des nombres dcimaux et pour deux raisons
prcises.
1) Les nombres dcimaux "classiques" sont ceux dont il tait question prcdemment et
qui sont dfinis par dfaut. Ils ont un nombre de chiffres significatifs qui peut atteindre
268435448 (valeur pour une machine 32 bits ; voir 5.2.2). L'arithmtique qui gre ces
nombres est traite par des bibliothques d'algorithmes (GMP) et, comme on peut s'en
douter, les temps de calcul croissent avec le nombre de chiffres significatifs. C'est le mode de
calcul par dfaut des dcimaux sous MAPLE. La prcision des calculs est dfinie par la
variable Digits (on rappelle que la prcision de la dfinition des nombres et la prcision des
calculs sont des notions distinctes). En raison de cette gestion des calculs par algorithmes on
parle de dcimaux et d'arithmtique "muls" ou "software" ("software floating numbers").
2) Les langages de programmation comme Fortran, C, C++, etc. travaillent (sauf
utilisation de bibliothques spcialises telle GMP) avec une prcision fixe (6 7 chiffres en
simple prcision et 15 16 chiffres en double prcision pour un ordinateur avec mots de 32
21

bits). Pour la double prcision, les nombres sont stocks selon la norme IEEE sur 64 bits
(signe, mantisse et exposant). Leur arithmtique est traite par le processeur et son cablage
lectronique. C'est en raison de cette gestion que l'on qualifie ces nombres de "hardware
numbers" que l'on peut traduire littralement par "nombres de quincaillerie"... mais que l'on
traduira plutt par dcimaux et arithmtique "cabls" ou "hardware".
L'inconvnient des nombres "hardware" est que leur prcision est fixe. Mais la rapidit
des calculs est beaucoup plus grande et MAPLE permet de dfinir des nombres de ce type
et de faire des calculs dans ce mode.
Il n'en demeure pas moins, malgr cette possibilit, que l'on travaille avec MAPLE
dans un environement de calcul symbolique qui reste trs gourmand en mmoire et en
temps de calcul. MAPLE ne saurait donc remplacer les langages de calcul numriques
pour les trs gros volumes de calculs (modlisation). Il faut cependant noter que MAPLE
intgre dans ses algorithmes numriques (rsolution de systmes linaires, intgrations,
etc.) des mthodes robustes utilisant des bibliothques numriques prouves (NAG).
Remarque : il faut garder l'esprit, mme si cela ne sert rien dans la pratique, que quelque
soit leur nature, les dcimaux (comme d'ailleurs les entiers et tous les concepts virtuels d'un
ordinateur) ne sont au final que des suites de 0 et de 1 (physiquement des suites de deux
tensions lectriques). Les deux types de nombres dcimaux ne diffrent que par la faon dont
sont organises ces suites en mmoire et la faon dont on les traite.
L'affichage de ces deux types de nombres ne permet pas de les distinguer et c'est mme
souvent une source de confusion. Aussi, on propose pour les besoins des paragraphes
suivants, de crer une fonction qui permettra de les distinguer (cette criture ne pourra tre
comprise qu'aprs la lecture du Ch. 2 2.1 et 2.3.3 et du Ch. 7, et on demande au lecteur
de l'admettre telle quelle). D'autres moyens existent et on en prsentera deux la fin du
paragraphe.
O t := x::float/op 0, x
t := x::float/op 0, x
(5.2.3.1.1)
Les dcimaux "software" sont crs par dfaut avec MAPLE. Ils ont comme
caractristique rendue par la fonction t le terme "Float", soit implicitement "software Float".
O t 3.5
Float
(5.2.3.1.2)
7
O a d evalf15
;
2
t a
a := 3.50000000000000
Float
(5.2.3.1.3)
O t 300. , t K0.50
Float, Float
(5.2.3.1.4)
La fonction evalf permet de transformer les autres formes de nombre en dcimaux
"software"
O t evalf 3 , t evalf p ;
7
t evalf K 3 , t evalf
2
Float, Float
(5.2.3.1.5)
22

Float, Float

(5.2.3.1.5)

Pour crer un dcimal "hardware" stock en mmoire sur 64 bits, il faut utiliser
explicitement le constructeur HFloat. La fonction t renvoie alors "HFloat" qui caractrise ces
nombres. On peut constater, en comparant avec (5.2.3.1.3), que l'affichage seul des nombres
a et h ne permet pas de faire la distinction entre les deux types.
O h d HFloat 3.5 ;
t h
h := 3.50000000000000
HFloat
(5.2.3.1.6)
L'argument de HFloat doit tre soit un entier, soit un dcimal (ou un complexe sous les
mmes rserves ; voir 6).
7
O HFloat
2
Error, invalid argument for HFloat constructor
Il suffit donc d'crire, par exemple,
7.
O HFloat
2
3.50000000000000
(5.2.3.1.7)
Un dcimal de type "hardware" pouvant accepter 16 18 chiffres significatifs, on prendra
toujours soin de crer un dcimal suffisamment prcis si ncessaire (pour le cas prcdent,
c'tait inutile). La valeur de Digits tant gale 10 par dfaut, l'utilisation de evalf seule est en
gnral insuffisante. On crira plutt (voir 5.2.2).
5
O HFloat evalf18
7
0.714285714285714
(5.2.3.1.8)
que l'on pourra comparer avec
5
O HFloat evalf
7
0.714285714300000
(5.2.3.1.9)
De mme pour des nombres symboliques
O HFloat
HFloat

2 ;
p
2

O HFloat evalf18

HFloat evalf18

p
2

HFloat

HFloat

1
p
2

(5.2.3.1.10)

1.41421356237310
1.57079632679490
(5.2.3.1.11)
Mais on pourra aussi utiliser la fonction evalhf ( 5.2.3.2 ). On remarquera que le nombre de
chiffres affichs n'est pas une indication sur la nature "software" ou "hardware" des
nombres.
23

Le constructeur HFloat admet des quantits indfinies (x) comme argument. Il ne peut
bien sr produire dans ce cas aucun nombre dcimal...
O u d HFloat 2 x ;
v d HFloat evalf18 2

u := HFloat 2 x
v := HFloat 1.41421356237309505 x
(5.2.3.1.12)
... et se comporte alors comme une fonction dont les arguments suivent les rgles d'valuation
dcrites au Ch. 2. En particulier le calcul dcimal de l'argument, seulement possible pour v
quand on pose x = 3, se fait dans le mode "software" par dfaut avec Digits=10 chiffres,
expliquant la rduction du nombre final de chiffres rendus par HFloat. La raison qui induit ce
mode de calcul est que 1.4142... est, malgr ses 18 chiffres, un nombre de type "software"
(voir 5.2.3.2).
O x d 3 : u; v; t v
HFloat 3 2
4.24264068600000
HFloat
(5.2.3.1.13)
Il existe d'autres faons que celle utilise par la fonction t pour distinguer ces nombres.
Par exemple, les commandes suivantes montrent que a est du type sfloat (software float) et
que h est un dcimal de type float8 stock sur 8 octets (88 bits ; hardware float).
O a, h;
NumericClass a ;
NumericClass h
3.5, 3.50000000000000
And sfloat, positive, numeric
And float8 , positive, numeric
(5.2.3.1.14)
On peut aussi utiliser la notion de type dcrite au Ch. 2, 3. On demande si a ou h sont du
type prcis (vrai=true, faux=false).
O type a, sfloat , type h, hfloat ;
type a, hfloat , type h, sfloat
true, true
false, false
(5.2.3.1.15)
Ou encore...
O type h, float8
true
(5.2.3.1.16)
Mais la rponse peut sembler fausse si on s'en tient une connaissance superficielle...
O type h, float
true
(5.2.3.1.17)
...car le type float englobe les types sfloat et hfloat.
Des informations complmentaires sont donnes au Ch. 2, 2.3.3, 2.4.1 et 3.
5.2.3.2 Modes de calcul induit par les dcimaux "hardware", fonction evalhf
Rappelons ( 5.1) que pour qu'un calcul dcimal soit dclench, il suffit qu'une seule des
oprandes soit de cette nature et que les autres nombres ne soient pas symboliques.
24

22.0
K p;
7
22
K 3.141592654
7

3.142857143 K p
0.001264489
(5.2.3.2.1)
Le rsultat par dfaut a la caractristique des dcimaux "software".
O t %
Float
(5.2.3.2.2)
Si des oprandes symboliques comme ou 2 sont prsentes, il faudra faire appel la
fonction evalf pour effectuer le calcul ( 5.2.1 et 5.2.2).
p$5
O
$ 2 ;
2
p$5.0$ 2
;
2
p$5 2
evalf
2
5
p 2
2
2.500000000 p 2
11.10720734
(5.2.3.2.3)
La fonction evalf travaille en mode "software" et le rsultat a encore la caractristique des
dcimaux "software".
O t %
Float
(5.2.3.2.4)
Il est cependant possible de demander ce que ce calcul soit effectu en mode "hardware",
c'est dire avec une "arithmtique cable" en utilisant la fonction evalhf. La vitesse
d'excution est beaucoup plus rapide, mais la prcision et fixe 18 chiffres.
Evidemment cette fonction n'a vraiment un intrt que pour les gros volumes de
calculs numriques.
O evalhf(Pi*7/22*sqrt(2));
1.41364457123220744
(5.2.3.2.5)
ATTENTION
Malgr le mode de calcul et les 18 chiffres significatifs, le rsultat de evalhf est un
nombre de type "software".
O t(%);
Float
(5.2.3.2.6)
L'oubli de cette caractristique est souvent la source de beaucoup de confusions...
Avec evalhf on ne pourra pas se fier au dernier ou deux derniers chiffres affichs (en raison
des approximations dues aux conversions "reprsentation binaire" "reprsentation
dcimale".
O evalhf(7/3);
25

(5.2.3.2.7)

evalf[18](7/3);

ou encore
O evalhf(7/5);
evalf[18](7/5);

2.33333333333333348
2.33333333333333333

(5.2.3.2.7)

1.39999999999999990
1.40000000000000000

(5.2.3.2.8)

On notera aussi que Digits est une variable trs particulire relativement la fonction
evalhf et que le rsultat, bien que cohrent, peut surprendre ! Mme si le nombre de chiffres
affichs est de 18, MAPLE considre que la prcision effective des calculs est de 15 chiffres,
et videmment quelque soit la valeur de Digits.
O Digits;
evalhf(Digits); # 10 devient 15.
trunc(evalhf(Digits)); # voir 5.3
10
15.
15
(5.2.3.2.9)
La prsence d'un dcimal HFloat ("hardware") dans une expression arithmtique entrane
en gnral des calculs et un rsultat en mode "hardware"...
O a d HFloat 2 ;
t a
a := 2.
HFloat
(5.2.3.2.10)
1
O 3 a2 C
;
7
t %
12.4285714285714
HFloat
(5.2.3.2.11)
... sauf si Digits R evalhf Digits , auquel cas les calculs sont faits en mode "software" et le
rsultat est forcment en mode "software".
O Digits d 30 :
1
3 a2 C
;
7
t % ;
Digits d 10 :
12.4285714285714285714285714286
Float
(5.2.3.2.12)
De mme, une fonction est value dans le mode dcimal de son argument (si possible ; voir
la fin du paragraphe)...
O exp a ;
t %
7.38905609893065
HFloat
(5.2.3.2.13)
... avec la mme condition sur la prescription du nombre de chiffres significatifs
O Digits d 30 :
26

O
exp a ;
t % ;
Digits d 10 :
7.38905609893065022723042746058
Float
(5.2.3.2.14)
Cette logique est contrle par la variable d'environnement...
O UseHardwareFloats
deduced
(5.2.3.2.15)
... et MAPLE dduit de la prcision demande le mode de calcul qu'il va utiliser. On peut
assigner true ou false cette variable pour imposer ou empcher l'un ou l'autre mode, mais
mieux vaut savoir ce que l'on fait !...
Suivant la faon dont sont crites les expressions, la logique induite des modes de calcul
1
peut varier. L'expression 3 a2 C
est interprte par MAPLE (voir Ch. 2, 2.2.2)
7
comme
O t a ;
3
3 a2 C ;
7
t %
HFloat
12.4285714285714
HFloat
(5.2.3.2.16)
et les calculs sont faits en mode "hardware" avec la bonne prcision.
3
O %% K evalf18 12 C
7
0.
(5.2.3.2.17)
1.0
Maintenant, par le simple fait d'utiliser le dcimal "software" 1.0, on force le calcul de
a
7
tre fait en mode "software" avec seulement Digits=10 chiffres significatifs, occasionnant
une perte de prcision :
1.0
O 3 a2 C
;
7
t % ;
3
%% K evalf 18 12 C
7
12.4285714287000
HFloat
1.28570931678951 10-10
(5.2.3.2.18)
L'expression est interprte comme
1.0
O 3 a2 C 3$
7
12.4285714287000
(5.2.3.2.19)
On peut dcomposer ce calcul en
O A d 3 HFloat 2
t A ;

;
27

O
B d 3$

1.0
;
7

t B
A := 12.
HFloat
B := 0.4285714287
Float

(5.2.3.2.20)

puis
O A C B;
t %
12.4285714287000
HFloat
(5.2.3.2.21)
On comprend pourquoi une partie de la prcision a t perdue au cours du calcul et l'usage de
evalhf ne rsout rien car l'criture dcimale 1.0 force toujours le calcul de la fraction en mode
"software" :
1.0
O evalhf 3 a2 C
;
7
12.4285714286999998
(5.2.3.2.22)
Si on veut, on peut pour rcuprer la prcision, crire ce qui suit, mais pourquoi faire
compliqu quand on peut crire simplement 1 (voir (5.2.3.2.11)). L'exemple est seulement
vocation pdagogique...
HFloat 1.0
O 3 a2 C
7
12.4285714285714
(5.2.3.2.23)
... sauf si le numrateur doit tre un dcimal diffrent d'un entier.
HFloat 1.569
O 3 a2 C
7
12.6724285714286
(5.2.3.2.24)
Comme pour les dcimaux standard (software), MAPLE donne la priorit aux calculs
symboliques (voir (5.1.5) et (5.1.6)).
O 3 a2 C

2
7

3
2
(5.2.3.2.25)
7
Une fonction (ici
) est value ci-dessous dans le mode dcimal de son argument (sauf
1.0
contrle par UseHardwareFloats). Comme pour
dans (5.2.3.2.19), 2.0 est calcule
7
en mode "software" avec 10 chiffres significatifs, la somme calcule en mode "hardware"
(celui de a) et le rsultat est un dcimal "hardware". On a donc encore une perte de prcision..
.
12. C

O 3 a2 C

2.0
7

t % ;
28

(5.2.3.2.26)

%% K evalf 18

3 2
7
12.6060915265714
HFloat
K1.59896984541774 10-10

12 C

(5.2.3.2.26)

... et on crira plutt...


O 3 a2 C

evalhf

t % ;
%% K evalf 18

3 2
7
12.6060915267313
HFloat
0.

12 C

(5.2.3.2.27)

... qui est interprte comme


3
O 3 a2 C evalhf
2
7
12.6060915267313
(5.2.3.2.28)
Certes le rsultat de evalhf est un nombre "software", mais avec la prcision suffisante pour
produire un calcul correct en mode "hardware". On peut aussi crire...
O 3 a2 C

evalf 18
7

12.6060915267313
...mais le calcul prcdent est plus rapide.

(5.2.3.2.29)

Exercice : pourquoi obtient-on le mme rsultat imprcis que pour (5.2.3.2.26) ?


O 3 a2 C

evalhf 2
7

;
12.6060915265714

(5.2.3.2.30)

Exercice : Quelle est la raison de cette diffrence ?


2p
O evalhf
;
3
evalhf 2 p
3
2.09439510239319526
2.094395102

(5.2.3.2.31)

[**]Certaines fonctions de MAPLE ne sont pas (encore) calculables avec evalhf (voir
aussi le 6 relatif aux nombres complexes)
O evalf G 2.3 ;
evalf G 1.2, 2.3 ;
evalf BesselJ 1, 2.7
29

(5.2.3.2.32)

1.166711905
0.1265378441
0.4416013791

(5.2.3.2.32)

O evalhf G 2.3 ;
t % ;
evalhf G 1.2, 2.3 ;
evalhf BesselJ 1, 2.7
1.16671190519816025
Float
Error, unsupported type `complex(float)` in evalhf
Error, unsupported type `('complex')('float')` in evalhf
Le calcul suivant n'est pas de type "hardware", mais "software".
O G HFloat 1.2 , HFloat 2.3 ;
t %
0.126537844091784
HFloat
On trouvera la liste des fonctions calculables avec
O ?evalhf/fcnlist

(5.2.3.2.33)

5.3 Dcimaux, entiers et rationnels [*]


On obtient respectivement la partie entire et la partie fractionnaire d'un nombre avec les
fonctions trunc et frac
O a := 1.648;
trunc Ka ;
frac Ka
a := 1.648
K1
K0.648
(5.3.1)
Il n'est pas ncessaire de forcer au pralable l'valuation dcimale de l'argument qui peut tre un
nombre symbolique. On notera que la priorit est toujours donne aux expressions exactes
O trunc Kp ;
frac Kp
K3
Kp C 3
(5.3.2)
O frac 3 2 ;
evalf frac 3

2
3 3 K4
1.196152424

(5.3.3)

L'entier le plus proche est donn par


O round Ka

, round e

, round 3 2
K2, 3, 4
(5.3.4)
Les entiers immdiatement infrieurs et suprieurs sont respectivement donns par (ceil pour
"ceiling" = "plafond" et "floor" = "sol")
O floor p , ceil p
(5.3.5)
30

3, 4
O floor Kp

(5.3.5)

, ceil Kp

K4, K3
(5.3.6)
Il est possible de convertir un nombre dcimal en nombre rationnel. MAPLE renvoie alors une
fraction rduite au plus petit dnominateur (approximation par fraction continue)
O r_Pi := convert evalf p , rational ;
ifactor %
104348
r_Pi :=
33215
1373
(5.3.7)
73
On peut rcuprer le reste de la division de deux entiers avec la fonction irem (33 = 475)
O irem 9, 3 , irem K33, 7 , irem 3, 5
0, K5, 3
(5.3.8)
La mme fonction permet, en respectant la syntaxe (explique au Ch. 2, 1.1), de rcuprer le
quotient avec un troisime argument ( ' est une apostrophe et non un accent grave)
O irem K33, 7 , 'q1' ;
q1
K5
K4
(5.3.9)
O irem 3, 5 , 'q2' ;
q2
3
0
(5.3.10)
Pour des conversion plus spcialises vers des entiers on se reportera la bibliothque
O ?MTM/integer

5.4 Troncature [**]


Cette gestion concerne aussi, et de faon particulire, les nombres complexes. Le sujet est donc
report au 7.3 avec la fonction fnormal aprs la prsentation des nombres complexes.

5.5 Gestion des erreurs [**]


On peut traiter suivant son choix les "accidents" de calcul comme des divisions par 0, les
dpassement de capacit mmoire, etc. Le sujet dpasse le cadre de ce chapitre et on trouvera
quelques lments d'information au Ch. 19. On pourra aussi visiter l'aide en ligne, par exemple
O ?NumericEvent
O ?NumericEventHandler
O ?NumericStatus

5.6 Reprsentations extrmes ou indfinies des dcimaux [*]


La reprsentation des nombres dcimaux est limite en magnitude. Ici la valeur vraie est certes
trs petite, mais n'est pas nulle. Cependant
O exp(-2.0e10);
eK2.0e10
0.
0.
(5.6.1)
31

Les valeurs dcimales n'tant pas exactes, MAPLE adopte une criture semblable celle des limites
en donnant un "signe" au 0 dcimal.
O Kexp K2.0e10
K0.
(5.6.2)
Le "signe" du zro dcimal peut dpendre de la faon dont est fix le calcul des arrondis ( 5.7)
O 179 K 179.0 ;
Rounding dKinfinity :
179 K 179.0 ;
Rounding d nearest :
0.
K0.
(5.6.3)
Voir aussi l'aide en ligne
O ?DefaultUnderflow
MAPLE cre des nombres dcimaux infinis (voir le type extended_numeric au Ch. 2, 3). Ils
ont la caractristique Float des nombres dcimaux (on rappelle que la fonction t a t construite en
(5.2.3.1.1) et donne le type du nombre).
30

O e1.0 10 ;
t %
Float N
Float

(5.6.4)

KFloat N
Float

(5.6.5)

0, K0.

(5.6.6)

ou encore
O evalf KN ;
t %
Voir aussi l'aide en ligne
O ?DefaultOverflow
Exercice : comparer et expliquer
O Kexp KN , Kexp KFloat N

MAPLE cre galement des dcimaux indfinis (voir le type extended_numeric au Ch. 2, 3).
Ils ont la caractristique Float des nombres dcimaux
O exp K1.0e29 $exp 1.0e30 ;
t % ;
Float undefined
Float
(5.6.7)
Les dcimaux infinis ou indfinis ne sont videmment pas reprsentables en mode dcimal mais, par
exemple, un calcul numrique ne sera pas arrt par un nombre qui prend pour une raison
quelconque une valeur infinie, alors que le rsultat final a une valeur finie au sens d'une limite.
O x d ln 0.0 ;
exp 1 C x
x := KFloat N
0.
(5.6.8)
32

Ces remarques valent pour les dcimaux "hardware"


O Ke HFloat
t %

K2.0 10 10

;
K0.
HFloat

O e
e

HFloat 1.0 10 30

(5.6.9)

HFloat K1.0 10 29

e HFloat

1.0 10 30

HFloat N
HFloat undefined
Attention : le rsultat est ici du type Float et non HFloat ; voir (5.2.3.2.6)
O evalhf KN ;
t %
KFloat N
Float

(5.6.10)

(5.6.11)

La fonction NextAfter permet de dterminer quel est le nombre dcimal reprsentable le plus
proche d'un nombre donn mais diffrent pour la prcision compatible avec la valeur dfinie par
Digits. Un deuxime argument, sous la forme d'un nombre sur la droite relle acheve, indique la
direction vers laquelle le rsultat doit tre cherch
O NextAfter 0, 1 , NextAfter K1, 0 , NextAfter K1.0,KN
1. 10-11 , K0.9999999999, K1.000000001
(5.6.12)
Ce deuxime argument n'a pas de valeur prcise, sinon sa position relative sur la droite relle par
rapport au premier argument
O NextAfter K1.0,KN , NextAfter K1.0,K2
K1.000000001, K1.000000001
(5.6.13)
Ainsi NextAfter(1,) et NextAfter(1,2) sont les nombres dcimaux les plus proches de 1 tels que la
diffrence ne soit pas nulle...
O 1 KNextAfter 1,KN
, 1 K NextAfter 1, 2
1. 10-10 , K1. 10-9
(5.6.14)
... rsultat bien entendu fonction de la valeur de Digits
O Digits d 30 :
1 KNextAfter 1,KN
, 1KNextAfter 1, 2 ;
Digits d 10 : # Retour la valeur standard
1. 10-30 , K1. 10-29
(5.6.15)
Le plus grand et le plus petit nombre dcimal "software" strictement positif que peut reprsenter
MAPLE en arithmtique mule sont donns par
O Maple_floats MAX_FLOAT , Maple_floats MIN_FLOAT
1. 102147483646 , 1. 10-2147483646
(5.6.16)
On trouvera des complments d'information dans l'aide en ligne
O ?Maple_floats
Pour les nombres "hardware"
O evalhf DBL_MAX , evalhf DBL_MIN ;
33

(5.6.17)

9.9999999000000002 10307 , 1.00000010000000001 10-307


On trouvera des complments d'information dans l'aide en ligne
O ?evalhf/constant

(5.6.17)

5.7 Calculs des arrondis [**]


Les calculs d'arrondis sont contrls par la variable d'environnement Rounding. Suivant sa
valeur, l'arrondi est calcul ainsi
- nearest (par dfaut) : au plus prs (la plus petite distance).
- 0 : vers 0.
- : dans la direction correspondante.
Le schma illustre les significations de ces possibilits :
- en bleu sur l'axe rel, un nombre positif ou ngatif
- en rouge, les arrondis possibles.
- en vert les arrondis calculs en fonction de la valeur de Rounding.

nearest
0
+
-

Attention : nearest n'est pas un nom protg (il devrait l'tre ; voir Ch. 2, 1.4) et est assignable (il
ne devrait pas l'tre).
Le rationnel 1/7 est reprsent par une suite priodique de dcimaux 0.142857 142[857...] dont les
arrondis possibles sont 0.142857 142[9 ou 8]
O Rounding := nearest;
1
1
evalf K
, evalf C
7
7
Rounding := nearest
K0.1428571429, 0.1428571429
(5.7.1)
O Rounding := 0;
1
1
evalf K
, evalf C
7
7
Rounding := 0
K0.1428571428, 0.1428571428
(5.7.2)
O Rounding := N;
1
1
evalf K
, evalf C
7
7
Rounding := N
K0.1428571428, 0.1428571429
(5.7.3)
34

O Rounding := KN;
1
evalf K
, evalf
7

1
7

Rounding := KN
K0.1428571429, 0.1428571428
On restitue la valeur par dfaut
O Rounding d nearest :

(5.7.4)

5.8 Affichage des nombres dcimaux [**]


5.8.1 Nombre de chiffres significatifs affichs [**]

L'affichage des nombres dcimaux est pilot par une variable d'interface displayprecision.
Elle vaut -1 par dfaut et permet l'adaptation automatique de l'affichage en fonction de la valeur
des nombres (et pas seulement de Digits qui n'intervient que dans les calculs ; voir 5.2.2).
O interface displayprecision
K1
(5.8.1.1)
Mais on peut forcer un nombre fixe n 2 0, 100 de chiffres affichs. La fonction interface
(displayprecision=n) renvoie la valeur avant la modification, ce qui permet de la mmoriser
simplement (voir ci-dessous dp:=...)
Pour obtenir l'affichage souhait on peut aussi modifier avant l'ouverture du document les
paramtres de MAPLE par le menu d'initialisation (onglet Precision, Round screen display to ;
voir 8.3.7). On peut galement introduire les commandes interface dans le fichier
d'initialisation de MAPLE (voir 8.3.8) ou plus simplement encore dans le Startup code de la
feuille de calcul (voir 8.4.3).
O dp := interface displayprecision = 5 ;
X := 1.2345678901234567890;
Y := X;
X
Z :=
7. 1010
dp := K1
X := 1.23457
Y := 1.23457
Z := 1.76367 10-11
(5.8.1.2)
Cette modification ne concerne que l'affichage et le retour au mode automatique montre bien
que les nombres ne sont pas modifis. Le nombre Z rsulte d'un calcul et ne possde donc que
Digits=10 chiffres significatifs (voir 5.2.2).
O interface displayprecision = dp ;
X;
Y;
Z
5
1.2345678901234567890
1.2345678901234567890
1.763668415 10-11
(5.8.1.3)
Il est dconseill de faire l'opration dans le sens d'une rduction comme prcdemment (=5) et
on prfrera toujours choisir displayprecision>Digits...
O Digits;
35

O
interface displayprecision = 25 :
X;
Z
10
1.2345678901234567890
1.763668415 10-11
(5.8.1.4)
mais finalement la meilleure solution, sauf besoins particuliers, est encore de conserver le mode
automatique -1
O interface displayprecision = dp :

5.8.2 Affichages spciaux [***]

Dans le menu gnral de MAPLE on trouvera aussi, pour des situations particulires, l'item
Format/Numeric Formating... qui ouvre une fentre permettant de choisir certains modes
d'affichage des rsultats numriques. On notera que
- ces modes d'affichage peuvent s'appliquer aussi aux entiers si la case Apply to Integer
[Appliquer aux entiers] est coche.
- le sparateur dcimal n'est plus "." mais ","
- le mode peut s'appliquer sur un rsultat dj affich sans avoir relancer le calcul. On
clique quelque part dans le groupe d'excution, on fixe avec le menu le mode et l'affichage des
rsultats est modifi.
- quand un mode est fix il se conserve pour les affichages suivants, mais chaque groupe
conserve son mode.
- quand un tel mode est actif, une icne
s'affiche gauche de chaque groupe d'excution.
Elle n'apparat que sur la feuille de calcul (si l'option Markers[Balises] dans le menu View
[Affichage] de MAPLE est coche), mais pas sur le document imprim, d'o son absence ici.
On en donne seulement trois exemples:
- Fixed, Decimal places = 3, la case Apply to Integer est coche
O X;
Z;
1234567890
1,235
,000
1234567890,000
(5.8.2.1)
- Scientific, Decimal places = 5, Minimum Exponent Digits = 2, Show + pour les
exposants positifs ou nuls, la case Apply to Integer est dcoche.
O X;
Z;
1234567890
1,23457 # 10 C 00
1,76367 # 10 - 11
1234567890
(5.8.2.2)
- Custom[Personnalis] avec une chane fixant le format. Pour plus d'information sur ce
mode, voir l'aide en ligne
O ?worksheet/expressions/numericformatting
Conseil : il est recommand d'essayer la chane sur une feuille MAPLE spare si on n'est pas
36

sr de soi...
Exercice[***] : quelle chane peut produire un tel format d'affichage !?
K100.0

O e

1p
4

12

, ln 12.56 , 1.0 10 ,Kevalf e


Petit, Moyen, Grand, KPetit

- None revient l'affichage standard.


O X, Z
1.2345678901234567890, 1.763668415 10-11

(5.8.2.3)

(5.8.2.4)

5.9 A propos du point dcimal et de l'oprateur "." [**]


On a vu que laisser le point dcimal seul devant e ou E engendrait une erreur (voir 5).
O 2.e6;
Error, missing operator or `;`
O 2.e6
Error, incorrect syntax in parse: missing operator or `;`
(near 5th character of parsed string)
2.e6
La raison vient de ce que "." peut tre compris par MAPLE, contrairement "", comme un
oprateur de multiplication non commutatif
O y*x-x*y;
y.x-x.y;
0
y.x K x.y
(5.9.1)
O y$x K x$y;
y.xKx.y;
0
y.x K x.y
(5.9.2)
Lorsqu'il peut exister une ambigut le "." doit tre obligatoirement prcd d'un espace pour tre
compris comme oprateur de multiplication
O 4.5 , 4 .5 , 4 . 5;
4.5, 20, 20
(5.9.3)
O 4.5 , 4 .5 , 4 . 5;
Error, missing operation
4.5 , 4 .5 , 4 . 5;
O 4.5
4.5
(5.9.4)
Ici MAPLE comprend "45 0.". On se doute qu'une telle faute de frappe peut avoir des
consquences redoutables dans une expression plus complique !
O 45 .0e6;
0.
(5.9.5)
O 45 .0e6
Error, missing operation
45 .0e6
Maintenant MAPLE dtecte une erreur
O 45. 0e6;
Error, unexpected real number
37

L'effet peut aussi se produire avec une csure lors d'un retour la ligne . Dans cet exemple on a fait
suivre le chiffre 1 de Shift-Return, provoquant ainsi une csure volontaire. MAPLE calcule alors
cos(10.0).
O cos(1.0e0); cos(1
.0e0);
0.5403023059
1.
(5.9.6)
On ne saurait trop recommander de rserver l'usage de cet oprateur aux seules oprations non
commutatives comme par exemple les produits de matrices (voir Ch. 4, Vecteurs, Matrices et
Algbre linaire).

6 Nombres complexes
Les nombres complexes, mis sous une forme algbrique, s'crivent a C b$I. Le symbole prdfini I
dsigne K1 (voir Ch. 2, 2.2.3). Noter la majuscule obligatoire pour I pour une entre au clavier.
O sqrt K1 ,
K1 ,
z d 3 C 2$I

K1

1
2

I, I, I
z := 3 C 2 I
(6.1)
Ce symbole est protg contre toute assignation. En ralit, MAPLE ne le considre pas comme un
nom, mais comme un nombre (voir galement Ch. 2, 1.4)
O I := 3
Error, illegal use of an object as a name
I := 3
Remarques :
a) Le symbole I peut tre introduit dans les commandes avec "i", "j" ou "I" de la palette "Symboles
courants". En rponse le symbole sera nanmoins I. On utilisera souvent dans ce manuel le "i" de la
palette.
O eip K 3j C I
K1 K 2 I
Bien sr, entrer i ou j au clavier ne fonctionne pas

(6.2)

O eip K 3 j C 1
eip K 3 j C 1
(6.3)
b) [**] La notation I n'est pas fige. On peut la changer en utilisant la commande suivante et en
choisissant une autre lettre (ici i) ou un nom quelconque valide comme par exemple j ou Img (viter Im
qui est le nom de la fonction d'extraction de la partie imaginaire). La rponse qu'afficherait la commande
suivante correspondrait au symbole utilis avant le changement (ici I).
> interface(imaginaryunit=i)
Le nom i deviendrait protg et on ne pourrait plus lui assigner une valeur (i.e. i:=2 deviendrait interdit ;
voir aussi Ch. 2 4) ou l'utiliser pour indexer une boucle. Rciproquement I deviendrait un nom
ordinaire. Ce changement ne vaudrait que pour la session en cours ou serait annul aprs un ordre
restart (voir 8.3.4, 8.3.8 et 8.4.3).
Si la partie relle ou complexe est sous la forme dcimale, les deux parties sont automatiquement
converties dans ce mode. Ici l'expression eip/2 est value symboliquement et vaut donc exactement
38

K1/2, mais elle est ensuite convertie en K0.50... en raison de la prsence du dcimal 3.0. Inversement
pour Y.
O X d 3.0 C
Yd

ei$p
$ I;
2

3
C 1.$ i;
2

X := 3.0 K 0.5000000000 I
Y := 1.500000000 C 1. I
(6.4)
Les dcimaux d'un nombre complexe peuvent aussi tre du type "hardware floating number" dcrits
au 5.2.3.1.
eip
$i ;
2
type X, complex sfloat ; # voir Ch. 2, 3.xxx
type X, complex hfloat
X := 3. K 0.500000000000000 I
false
true
(6.5)
Les restrictions sont les mmes que pour les dcimaux rels.
3
O HFloat
C2 I
2
Error, invalid argument for HFloat constructor
et il suffit donc d'crire, par exemple,
3.
O HFloat
C2 I
2
1.50000000000000 C 2. I
(6.6)
On sera aussi attentif utiliser une prcision suffisante pour les nombres introduits comme argument de
HFloat ( 5.2.3.1, 5.2.3.2).
O X := HFloat 3.0 C

Un nombre qui possde une partie imaginaire dcimale nulle reste sous sa forme complexe, mais
on pourra utiliser simplify pour liminer ce terme. Ce comportement est dlibr et n'est pas une
anomalie de fonctionnement (homognit des types pour les calculs numriques). Mieux, il n'est en
gnral pas souhaitable de faire cette simplification tant que des calculs numriques sont en cours (voir
la fonction fnormal au 7.3 et l'exercice 3.3.1 propos de la matrice des vecteurs propres ; voir aussi
au Ch. 2, 3.3.2.4 le type embedded_real).
O X := 3 C 0. I;
Y := 3. C 0 I;
X K Y;
simplify X
X := 3. C 0. I
Y := 3.
0. C 0. I
3.
(6.7)
Les arguments et les images des fonctions numriques de MAPLE ne sont pas restreintes aux
rels (se reporter sinon la bibliothque RealDomain, 8.3.5-d). On peut demander d'valuer une
expression complexe sous sa forme algbrique a + b*I avec la fonction evalc (evaluate as complex)
39

O z;

c :=Ke z ; # ou c dQ exp z
3C2 I
c := Ke3 C 2 I

(6.8)

O evalc c ;
evalc ln z
Ke3 cos 2 K I e3 sin 2
1
2
ln 13 C I arctan
2
3

(6.9)

O Q d evalc

K2 C I
1
1
Q :=
K4 C 2 5
5 K
I 4C2 5
5
(6.10)
10
10
On peut galement demander une approximation dcimale
O evalf Q
0.1536450380 K 0.6508508258 I
(6.11)
Bien sr, une reprsentation algbrique symbolique n'est pas toujours possible
O ?evalc/functions
mais une reprsentation dcimale peut tre calcule avec le nombre de chiffres significatifs souhaits.
O evalc z z C 1 ;
evalf20 z z C 1
z 4C2 I
0.99793259523003576331 K 0.071461016424093086313 I

(6.12)

Important
Quand evalc rencontre des variables indfinies (ici u et v) il les considre toujours comme des
quantits relles
O evalc cos u C I$v
cos u cosh v K I sin u sinh v
(6.13)
On peut extraire les parties relles et imaginaires avec
O Re c

Im eKz

Ke3 cos 2 , KeK5 sin 12


On pourra aussi utiliser les symboles de la palette "Symboles courants"
O R c

, I eKz

(6.14)

Ke3 cos 2 , KeK5 sin 12


(6.15)
Contrairement evalc, et ne considrent pas par dfaut les variables inconnues comme relles
O R cos u C I$v
, I cos u C I$v
R cos u C I v , I cos u C I v
(6.16)
Exercice : interprter ces deux rsultats
2

O I 1 C I eKt

(6.17)
40

R eKt

(6.17)

O R 1 C I eKt

1 K I eKt

(6.18)

Exercice : comparer avec (6.16) et expliquer


O evalc R cos u C I$v
, evalc I cos u C I$v
cos u cosh v , Ksin u sinh v

(6.19)

On peut aussi chercher la reprsentation polaire d'un nombre


O polar c
; polar s
; polar Q
polar e3 , 2 K p
polar s , argument s
polar

1 3/4
5 , Karctan
5

4C2

(6.20)

K4 C 2 5
dans laquelle on reconnat le module (valeur absolue) et l'argument
O abs c , argument c ;
abs s , argument s ;
abs Q , argument Q ;
e3 , 2 K p
s , argument s
1 3/4
5 , Karctan
5

4C2
K4 C 2

(6.21)

La valeur absolue peut aussi s'crire


O c , K2
e3 , 2

(6.22)

On peut donc construire un complexe sous forme algbrique partir de cette reprsentation polaire
p
O W := evalc polar x C y,
4
1
1
W :=
xCy
2 C
I xCy
2
(6.23)
2
2
Attention : dire que x C y est le module de W n'est pas exact. Il faut pour cela faire l'hypothse que
x R 0 et y R 0 et MAPLE ne s'y trompe pas !
O W
1
1
xCy
2 C
I xCy
2
(6.24)
2
2
Il est possible de faire ce genre d'hypothses (voir Ch. 13 ; "assuming"="en supposant que")
O W assuming x R 0, y R 0
xCy
(6.25)
Pour obtenir une expression conjugue on crira
41

O conjugate c
Ke3 K 2 I
On peut aussi crire, en utilisant dans la palette "Accents" le gabarit A (voir 8.1/10)
O c
Ke3 K 2 I
O

(6.26)

(6.27)

x K y C 1 $c
Ke3 K 2 I 1 C x K y

(6.28)

Exercice = ici encore, il ne faut pas oublier que MAPLE fait, par defaut ( 8.3.5), l'hypothse que les
nombres . Expliquer la difrence entre les rsultats :
O W
1
1
xCy
2 C
I xCy
2
(6.29)
2
2
O W assuming x T real, y T real
1
1
xCy
2 K
I xCy
2
(6.30)
2
2
On retrouve, comme pour les rels, les mmes rgles gnrales d'valuation des expressions quand
les dcimaux sont mlangs aux entiers et aux rationnels.
3
O 1 C 2$I K sin
C 2.0$I
2
K2.752771340 C 1.743446044 I
(6.31)
Pour le traitement des petites valeurs rsiduelles dans un calcul voir la fonction fnormal au 7.3
O eKI p;
E := eK1.0 I p
K1
E := eK1.0 I p

(6.32)

K1
K1. C 4.102067615 10-10 I

(6.33)

O evalc E ;
evalf E

Le "signe" d'un nombre est donn par la fonction signum dfinie par signum x =

x
. Pour les
x

x rels la rponse ne peut tre que 1


O signum K3 , signum 3K p , signum K3.256e3
K1, 1, K1
Pour les complexes, il va bien sr diffremment en raison de la dfinition de la fonction

(6.34)

O x dK1 C I$ 2 ;
x;
signum x
x := K1 C I
3
42

2
(6.35)

1
K1 C I 2
3
(6.35)
3
Il existe aussi une fonction, csgn, qui dtermine un signe 1 en fonction de la localisation de l'affixe du
nombre dans le plan complexe. La valeur +1 est attribue pour les complexes dont la partie relle est
strictement positive et 1 rciproquement. Pour les imaginaire purs, le signe est simplement celui du
nombre

I(x)

csgn x
+1

Q1

R(x)
+1

Q1

O csgn K3

, csgn ln 3

O csgn 1K2$I , csgn K1 C

K1, 1

(6.36)

1, K1

(6.37)

2 I

O csgn 2$ I , csgn K3$ I


1, K1
(6.38)
Aussi bien pour signum que pour csgn, la valeur en 0 est dfinie par la variable d'environnement
_Envsignum0. Elle est non assigne par dfaut
O _Envsignum0
_Envsignum0
(6.39)
et le "signe" prend alors la valeur 0
O signum 0 , csgn 0
0, 0
(6.40)
Pour convenance ou pour l'homognit de certains calculs, on peut vouloir choisir la valeur prise en 0
en assignant une valeur quelconque cette variable
O _Envsignum0 dK1 :
signum 0 , csgn 0
K1, K1
(6.41)
Pour revenir la valeur par dfaut, il suffira de "dsassigner" cette variable (voir Ch. 2, 1.2)
O _Envsignum0 d'_Envsignum0':
signum 0 , csgn 0
0, 0
(6.42)
Il est galement possible de fixer ponctuellement cette valeur sans changer la valeur de _Envsignum0 et
en utilisant une syntaxe trois arguments, le premier tant obligatoirement mis 0
p
p
O csgn 0, cos
,C 1 , csgn 0, sin p ,K1 , csgn 0, cos
,0 ;
2
2
p
p
signum 0, sin p ,C 1 , signum 0, cos
,K1 , signum 0, cos
,0 ;
2
2
43

(6.43)

1, K1, 0
1, K1, 0
(6.43)
Les fonctions signum et csgn sont formellement drivables et prennent la notation suivante (la drive
n-ime se ramme la drive premire)
d
d2
csgn t ,
signum t , csgn 3, t
dt
d t2
csgn 1, t , signum 1, t , csgn 1, t
(6.44)
Par extention de la notation, la valeur 0 correspond la fonction elle-mme, d'o l'origine de la notation
trois arguments qui permet de lever toute ambigut.
O csgn 0, t , signum 0, t
csgn t , signum t
(6.45)
O

On trouvera des informations complmentaires sur les nombres complexes au Ch. 2, 2.3.4.

7 Divers
7.1 Autres fonctionalits de MAPLE propos des nombres
MAPLE rvle encore de nombreuses ressources que l'on ne pourra pas toutes prsenter!
O convert MDXV, arabic
1515
(7.1.1)
O convert 3.265, binary , convert 207, octal
11.01000011, 317
(7.1.2)
Corps p-adiques p (dcomposition canonique de Hensel de K3 en diadique ; attention : Digitsp)
O Digitsp d 8 : padic evalp K3, 2
1 C 22 C 23 C 24 C 25 C 26 C 27 C 28 C O 29
Nombres de Bernoulli, d'Euler, de Mersenne, de Bell, pseudo-alatoires...

(7.1.3)

O bernoulli 25 , euler 10 , numtheory mersenne 7 , combinat bell 5 , rand


7709321041217
K
, K50521, 524287, 52, 395718860534
510
Pour plus d'informations sur les calculs avec units physiques (voir Ch. 13).

(7.1.4)

C 4.5 ft 2 K 2 m 2
2787.465291 m
(7.1.5)
MAPLE possde une vaste base de donne de constantes physico-chimiques (me dsigne ici la
masse de l'lectron ; voir Ch. 13)
O me := evalf ScientificConstants:-Constant 'me ', system = CGS, units
O simplify

3.0 mile

me := 9.109381882 10-28 g
ainsi que bien d'autres possibilits...
O Sockets:-Address "www.obs.u-bordeaux1.fr"
"147.210.44.105"
O cat `En l'an de grce ` ,
convert parse StringTools:-FormatTime "%Y" , roman ,
", le logiciel MAPLE 14..."
En l'an de grce MMXI, le logiciel MAPLE 14...
44

(7.1.6)

(7.1.7)

(7.1.8)

O restart # voir 8.3.4

7.2 Identification des nombres dcimaux [*]


Supposons qu'aprs de laborieux calculs numriques d'intgrales, de rsolutions d'quations ou
autres, nous ayons obtenu la valeur suivante
O x := 3.878241035
x := 3.878241035
(7.2.1)
On suspecte nanmoins que tous nos calculs pourraient avoir pour rsultat une valeur symbolique
exacte qu'on a pas s calculer. La fonction identify peut nous donner une indication sur la validit
de notre intuition. Evidemment cette identification n'a de sens que dans la limite de la prcision du
nombre dcimal propos (voir exercice 6.6 ou la fin de 6.7.4).
O identify x
1
C2 p
(7.2.2)
3
Ce rsultat conforte notre intuition et tend montrer que nos calculs pourraient peut-tre avoir un
rsultat symbolique exact, ce qui reste vrifier.
Attention un mythe trs rpandu parmi certains tudiants: tout problme
mathmatique formul exactement n'a pas ncessairement, si elle existe, sa (ou toutes ses) solution
exprimable exactement en termes de combinaisons de symboles connus (entiers, rationnels,
radicaux, constantes spciales connues, valeurs de fonctions lmentaires ou spciales, etc. comme
ci-dessus). Par exemple la solution d'une quation aussi simple que cos x = x est rpute pour ne
pas tre exprimable exactement... Seule une forme numrique, aussi prcise que l'on souhaite, peut
tre obtenue : x = 0.7390851332... (voir Ch. 14). Nombre d'intgrales, de solutions d'quations
diffrentielles, etc. ne peuvent tre calcules que numriquement.
Si le rsultat renvoy est le nombre lui-mme, aucune identification n'a t obtenue. Mais une
rponse ngative n'est pas absolue
O identify 2.599079725
2.599079725
(7.2.3)
Il existe en effet une infinit de combinaisons possibles et il peut tre ncessaire d'aider identify en
lui communiquant notre intuition.
O identify 2.599079725, BasisSumConst = 1, p,

p , ln 2 ,e, ln p

3 p Ke
On compltera ces informations trs succintes avec l'aide en ligne.
O ?identify

(7.2.4)

7.3 Fonction fnormal : troncature des nombres dcimaux et


complexes et valeurs assimilables 0 [**]
Cette fonction trouve ses applications notamment avec les calculs numriques (voir par exemple
l'exercice 3.3). Applique sur un nombre x, fnormal(x,n,) effectue une troncature de x pour
conserver n chiffres significatifs avec calcul de l'arrondi sur le dernier chiffre (calcul suivant la
valeur de Rounding, voir 5.7).
O x d 1.234567890123456789e-10;
y d fnormal x, 6, 1e-11 # Pour e = 1e-11, voir 7.3.3
x := 1.234567890123456789 10-10
(7.3.1)
45

y := 1.23457 10-10
Ceci est indpendant de la valeur de Digits (voir 5.2.2)
O Digits;
x, y;
x y
,
2 2
10
1.234567890123456789 10-10 , 1.23457 10-10
6.172839450 10-11 , 6.172850000 10-11
Si |x| < (e doit toujours tre > 0) , fnormal renvoie la valeur 0 (pour 0., voir 5.6).

(7.3.1)

(7.3.2)

O fnormal x, 6, 1. 10-10 ,
x
fnormal
, 6, 1. 10-10 ,
2
x
fnormal K , 6, 1. 10-10
2
1.23457 10-10 , 0., K0.
Si l'argument est absent le mcanisme s'applique nanmoins pour e = 10Kn C 2 .
O fnormal x, 12 , #` ` 0 e = 10^ K12 C 2 = 10^ K10
fnormal x, 11 #` ` 0 e = 10^ K11 C 2 = 10^ K9
1.23456789012 10-10 , 0.
Si seul x est prsent, alors n = Digits et e = 10KDigits C 2 .
O fnormal x ,
#` ` 0 e = 10^ KDigits C 2 = 10^ K8
fnormal 10$x ,
fnormal 100$x

(7.3.3)

(7.3.4)

0., 0., 1.234567890 10-8

(7.3.5)

Applique une expression, la fonction agit sur tous les nombres (non symboliques).
O a d p$ 1.23456789012356e-2 C 1.2345e-4$i $t C
5

exp K0.1234567890123e-4$ p $t 2 ;
fnormal a, 3, 1e-5 ;
a := 0.0123456789012356 C 0.00012345 I p t C eK0.00001234567890123 p

5 / 2 t2

5/2 2

0.0123 C 0.000123 I p t C eK0.0000123 p t


(7.3.6)
Attention : il faut rester prudent car cette opration peut changer une expression, soit en supprimant
des termes, soit en changeant leur nature.
O fnormal a, 6
0.0123457 C 0.00012345 I p t C 1.
(7.3.7)
Exercice : comparer avec le rsultat prcdent et expliquer...
O fnormal evalf a , 6
0.0387851 C 0.000387830 I t C eK0.000215968 t
46

(7.3.8)

Un nombre complexe pour lequel la partie imaginaire est considre comme nulle par fnormal
conserve sa forme complexe A+0.*I (voir 6).
O fnormal a, 5
0.012346 C 0. I p t C 1.
(7.3.9)

8 A propos du fonctionnement de MAPLE


8.1 Syntaxe des noms et des expressions
1) Les noms dans MAPLE crs par l'utilisateur (noms de variables, d'expressions, de
fonctions, etc.) doivent commencer par une lettre, mais peuvent contenir des chiffres ainsi que le
caractre de soulignement "_" (voir aussi l'alina 9 de ce paragraphe). En mode "Entre Math 2_D"
on obtiendra "_" en composant successivement "\" puis "_", le caractre "_" utilis seul provoquant
une criture en indice (voir alina 6 dans ce paragraphe).
2) En mode "Entre Math 1_D" les caractres d'espacement sont autoriss pour sparer les
lments d'une commande afin d'amliorer la prsentation, mais ils ne sont pas admis dans l'criture
d'un nombre ou d'un nom (voir cependant Ch. 18, le Symboles et chanes de caractres). En
mode "Entre Math 2_D" la rgle est la mme, sauf que les produits, tel a x, peuvent s'crire avec la
touche "*" ou la touche "espace". Ne rien crire entre a et x revient crer le nom ax et ne pas
insrer d'espace (ou "*") entre b et x 2 revient crer le nom bx lev au carr.
3) MAPLE fait la distinction entre majuscules et minuscules (on dit en termes de typographie
"sensible la casse"). Ainsi le nom a_1b est diffrent de A_1b ou de a_1B. On pourra mme
rencontrer une distinction entre criture "droite" et "italique". Par exemple i (ou j ou I) pris dans la
palette "Symboles courants" (voir alina 10) se distingue de i crit au clavier : le premier correspond
au symbole des imaginaires et s'affichera I dans les rsultats, le second est un simple nom qui
restera sous la forme i. On rappelle que pour entrer le symbole des imaginaires au clavier on utilise
le I majuscule ( )
4) On peut aussi crer des noms commenant par un "_", mais ceci est trs vivement dconseill
car MAPLE gnre lui-mme de tels noms de faon automatique (constantes d'intgration d'une
quation diffrentielle par exemple) ou sont rservs des noms particuliers comme ceux des
variables d'environnement (_Envxxx). Mme si gnralement MAPLE l'en protge, l'utilisateur qui
utiliserait cette syntaxe sans prcaution risque de subir les consquences d'interfrences difficiles,
voire trs difficiles dtecter dans certains cas.
5) S'ils sont correctement orthographis, les noms de variables grecs tels alpha, beta, theta, phi,
rho, etc. seront affichs avec l'alphabet grec. Si seule la premire lettre est une majuscule la lettre
grecque sera majuscule l'exception de Pi qui s'affichera et dsignera le nombre lui mme alors
que pi ne dsignera que la lettre mais s'affichera de faon identique ( 4.1). Ceci explique
pourquoi Pi K pi 0 p K p s 0. Pour crire crire PI.
O restart
O alpha K beta K Pi C pi;
cos Pi , cos pi ;
Psi K Phi K PI;
aKbKpCp
47

(8.1.1)

K1, cos p
Y KFKP

(8.1.1)

O eip
K1
(8.1.2)
On pourra aussi utiliser la palette de l'alphabet grec ("Grecque" dans la colonne latrale de la fentre
MAPLE ; voir alina 10) de ce paragraphe).
O a K b K 4;
Y KFKP
aKbK4
Y KFKP
(8.1.3)
Attention : au nom phi correspond f et non . Les lettres f et correspondent des noms
diffrents.
O f K f;
fK4
0
fK4
(8.1.4)
De mme avec et , et , et et et
O eKe ;
rK9 ;
qKw ;
sK2
eKe
rK9
qKw
sK2
(8.1.5)
[***] Il est possible, en utilisant une construction faon HTML, de crer en mode "Math 1-D" ces
caractres, mais leur utilisation devient vite pnible... Nanmoins, en mode programmation cela peut
s'avrer utile, voire ncessaire dans les zones d'dition de code. Pour l'utilisation de l'criture `...`,
voir alina 9.
O phi;
`&varphi;`;
f
4
(8.1.6)
O `&vartheta;` - theta;
wKq
(8.1.7)
Attention : certaines lettres grecques majuscules peuvent produire un affichage ambigu (les lettres
grecques ne sont pas affiches en italique). La premire lettre de la premire commande est "
majuscule" prise dans la palette "Grecque" et la deuxime, entre au clavier, est un A majuscule. La
deuxime commande est "Omicron O" alors que la troisime est "O O"
O A K A;
O K O;
OKO
AKA
OKO
(8.1.8)
48

0
(8.1.8)
En mode "Entre Math 1-D" la transcription des symboles usuels pris dans les palettes sera
automatique (p donnera Pi et e donnera exp(1)). En mode "Entre Math 2-D" on pourra
rencontrer quelques ambiguts et il faut savoir que les lettres puises dans ces palettes font
rfrence prioritairement aux notations standard utilises pour dsigner les constantes ou les
fonctions habituelles
O cos p , cos Pi , cos pi # voir 4.1
K1, K1, cos p
(8.1.9)
1
1
1
O G
, GAMMA
, Gamma
# voir 4.1
2
2
2
1
p, p,G
(8.1.10)
2
Ici le premier e est puis dans la palette "Symboles courants" alors que le deuxime est entr au
clavier et ne fait rfrence qu' un nom
O evalf e , evalf e
2.718281828, e
(8.1.11)
De mme la fonction exponentielle peut s'crire de faon quivalente sous les deux formes, e tant
pris dans la palette.
O exp x

, ex

e x, e x
Ici Zeta dsigne la fonction de Riemann alors que zeta est indfinie
O Zeta 2 , zeta 2
1 2
p ,z 2
6
A la lettre prise dans la palette correspond la fonction
O z 2
1 2
p
6

(8.1.12)

(8.1.13)

(8.1.14)

6) [*] En mode "Entre Maple 1-D" on peut crer des noms indices l'aide de crochets.
Cependant cette criture reprsente une opration particulire et rclame quelques prcautions (voir a
et Ch. 3, 4 et 5).
O Phi[mu+j]:=rho*alpha[mu]*cos(theta[mu+j]);
F C j := r a cos q C j
(8.1.15)
En mode "Entre Maple 2-D" les noms indices peuvent prendre deux significations distinctes :
a) Les nom indices en tant que composantes d'un objet comme une suite, un vecteur, une
matrice, une table, etc. Pour obtenir cette criture indice on pourra utiliser soit les crochets (comme
ci-dessus), soit le gabarit an de la palette "Expressions" (attention : pas le gabarit a)), soit faire
prcder l'criture des indices par le caractre "_" (voir 8.1/1). Pour sortir du mode indice on
utilisera la touche "" (pour le mode exposant, utiliser "^").
O Li C j d reqcos fi ,

Li C j := r eq cos fi, j
(8.1.16)
Par exemple, considrons une suite s. On pourra extraire les lments de cette suite avec cette
49

criture indice
O s d a, 0, Z, 1, x 2 C 1;
s2 , s5
s := a, 0, Z, 1, x 2 C 1
0, x 2 C 1

(8.1.17)

ou bien avec des crochets


O s 1 , s 3
a, Z
(8.1.18)
Cette criture rclame quelques prcautions en raison d'un conflit entre la notion de nom de variable
libre et nom de table (voir Ch. 5). En effet, l'assignation un nom indic, tel Li C j :=... (ou
Phi mu C j :=), a cr automatiquement une table de nom contenant un seul lment Li C j . De
mme les deux assignations suivantes crent une table de nom l deux lments l 0 et l max :
O l 0 d 2 : l max d 5 :
O l0 ,

l max
2, 5

O eval l
eval L

(8.1.19)

table 0 = 2, max = 5
table i C j = r eq cos fi, j
(8.1.20)
Mais une assignation entrane automatiquement la destruction de la table et redevient un nom
de variable ordinaire.
O l d 3;
l 0 , l max
l := 3
30 , 3max
(8.1.21)
b) Les noms pour lesquels l'indice a une fonction purement mnmotechnique (B dans
l'exemple suivant voque "Boltzmann"). L'indice n'est plus une "variable" susceptible de prendre
plusieurs "valeurs" (noms, nombres, expressions) comme prcdemment. Pour obtenir cette
criture on utilisera le gabarit a) de la palette "Expressions" ou son "raccourci clavier" (pas le
gabarit an ).
Attention : les deux critures peuvent s'afficher de faon strictement identique (avec ou non des
couleurs diffrentes), mais n'ont aucun rapport entre elles : ici kB est du premier type (a) et kB du
second (b).
O kB d 1.3806504e-23;
kB := 1.3806504 10-23
O kB ,

(8.1.22)

kB

kB, 1.3806504 10-23


(8.1.23)
Ceci remdie au problme pos par l'criture a). Si on assigne une valeur kB ou k, l'assignation
50

kB n'est plus affecte. Bien que trs pratique, voire indispensable dans certaines circonstances (voir
la notion de table au Ch. 5), cette criture peut tre source de confusions. En reprenant la squence
dcrite en a) on pourra comparer les deux comportements. Les assignations 0 d 2 et
max d 5 ne crent plus une table de nom :
O 0 d 2 : max d 5 :
0 , max ;
d 3;
0 , max
2, 5
:= 3
2, 5

(8.1.24)

Ces deux formes de noms indics n'ont pas le mme type (Ch.2, 3.3.1). En mode "Entre Maple 1
-D" prsent au dbut du paragraphe, la variable indice est du type (a).
7) Un grand nombre de noms sont prdfinis et protgs contre les assignations (certains,
comme Digits, sont prdfinis, sans tre pour autant protgs). Ici est la constante d'EulerMascheroni (voir exercices 2.2) et O (O majuscule entre au clavier) est rserve pour la syntaxe
des dveloppements en sries (Ch. 11).
O p d 3;
z d 1;
g := 3;
O := 1
Error, attempting to assign to `Pi` which is protected
Error, attempting to assign to `Zeta` which is protected
Error, attempting to assign to `gamma` which is protected
Error, attempting to assign to `O` which is protected
Nanmoins... : (omicron majuscule) est ici pris dans la palette "Grecque"
O Omicron d 1
Od1
O := 1
O := 1
(8.1.25)
Beaucoup de noms sont aussi rservs par les fonctions (Si = Sinus intgral, Int = Intgrale, D
oprateur de drivation des fonctions).
O cos := 3;
Si := 4;
Int := 0;
D := 0
Error, attempting to assign to `cos` which is protected
Error, attempting to assign to `Si` which is protected
Error, attempting to assign to `Int` which is protected
Error, attempting to assign to `D` which is protected
O ?functions/index
Attention : on peut par contre crire cos(0):=0, ce qui conduirait des calculs aberrants. Cette
possibilit est dlibre mais videmment pour des raisons utiles en choisissant un autre exemple !
51

(voir Ch. 7, Table remember).


Certains sont des mots rservs, comme ceux utiliss en programmation. Par exemple une boucle de
calcul utilise les mots cl for... from... to... by... do... end do. Comme le dit le message d'erreur,
l'analyseur syntaxique n'attend pas d'assignation aprs ce mot (la lettre grecque s'crit "tau")
O to:=0;
Error, `:=` unexpected
O tod 0
Error, invalid to part
tod 0
O ?keyword
Enfin il existe des mots cl, comme les noms des types (environ 200 mots) (Ch. 2, 3.3.1) qui sont
protgs.
O name d 3 ; integer dK3
Error, attempting to assign to `name` which is protected
Error, attempting to assign to `integer` which is protected
O ?type
8) Dans l'criture habituelle des expressions mathmatiques il existe une habitude consacre par
l'usage qui veut que l'on dsigne plutt par a, b, c, etc. les coefficients d'une formule, par m, n, etc.
des entiers et par x, y, z, u, v, etc. les variables. Quand on lit une expression comme a x n C b x C c
on l'interprtera intuitivement, si aucune information n'est fournie, comme un polynme de degr n
de la variable x dont les coefficients sont a, b, c, alors que x y n C z y C u sera plutt vue comme un
polynome de degr n+1 des variables x, y, z et u. Evidemment il n'existe aucune rgle de ce genre
avec MAPLE pour qui les deux expressions sont strictement de mme nature et ne seront mme pas
vues comme des polynmes puisque n n'est pas considr a priori comme un entier positif ou nul.
On s'apercevra de temps en temps qu'il n'est pas toujours facile de se dbarrasser de ses rflexes...
9) [**] Il est possible de crer des noms composs en entourant une suite de caractres par deux
accents graves ` (sur un clavier franais on obtient gnralement ce caractre seul en apuyant sur la
touche correspondante puis sur "espace"). On constate sur l'exemple suivant que l'on peut ainsi
construire toutes sortes de noms en s'affranchissant des contraintes imposes par l'criture standard.
O `1Ker a C 2Kieme b` d 4;
p
cos
`1-er a C 2-ieme b`
1-er a C 2-ieme b := 4
1
2
(8.1.26)
2
Cependant cette criture peut rapidement devenir trs lourde ou mme confuse comme le montre cet
exemple caricatural...
O `1` d 2 :
`1C1` = `1` C `1`
1C1 = 4
(8.1.27)
Un nom cr avec les conventions standard et mis entre ` est identique au nom standard.
O `Xyz1` d 3;
Xyz1, `Xyz1`
52

(8.1.28)

Xyz1 := 3
3, 3
(8.1.28)
MAPLE utilise cette criture pour nommer certains objets comme par exemple les fonctions
arithmtiques de sommation, produit ou exponentiation qui peuvent servir construire des
expressions (voir Ch. 2, 2.1/1&2&3)
O `C` 1, 2 , `*` 2, x,K1 , `^` 3, n
3, K2 x, 3n
(8.1.29)
Les commandes suivantes montrent que, comme xYz, `+` est bien un nom (voir la notion de type au
Ch. 2, 3)
O type xYz, name , type `C`, name
true, true
(8.1.30)
alors que le symbole + seul, vu comme un oprateur, provoque une erreur de syntaxe
O type C, name
Error, invalid sum/difference
type C, name
Il existe galement un "nom vide" dfini par deux caractres ` accols et dit "empty symbol" dont
on trouvera une utilisation au Ch. 2 2.4.1/3 partir de l'exemple de la fonction ifactor. Il est
videmment vivement dconseill de l'utiliser sans raison valable (ou de mme avec des noms
construits avec des blancs) sous peine de voir s'afficher des bizarreries... (le calcul suivant est
nanmoins juste ; c'est l'affichage qui prte confusion ! )
O `` d 3 : ` ` d 4 :
' 2$`` C 3$` ` ' = 2$`` C 3$` `
2 C 3 ` ` = 18
(8.1.31)
O z , `` z # voir en 8.2/4 pour l'explication de ce curieux rsultat
z, 3
(8.1.32)
10) Gestions des palettes d'dition. MAPLE dispose de palettes d'dition permettant
d'introduire, dans du texte ou dans des commandes, toutes sortes de caractres en usage en
mathmatique ainsi que des gabarits de formules et des termes composs. Il faut savoir que :
a) toutes les palettes ne sont pas affiches par dfaut. Pour afficher (ou retirer) une palette il
suffit d'un "clic droit" sur une zone quelconque de la palette qui ne soit pas un lment de celle-ci
puis de choisir "Afficher la palette" qui fait apparatre leur liste complte sur laquelle on fait sa
slection.
b) les palettes sont dplaables par un "glisser-dposer" du titre et peuvent tre disposes de
part et d'autre de la feuille MAPLE. Elles peuvent tre ouvertes ou fermes et/ou totalement
masques (voir le petits triangles en haut des barres verticales de sparation) ainsi que
redimensionnes.
c) il existe une palette "Favoris" qui peut tre remplie par l'utilisateur sa convenance. Un clic
droit sur un lment choisi et un menu s'ouvre pour demander si on dsire le recopier dans la palette
"Favoris".
Des informations supplmentaires (convertion de chanes de caractres en noms, concatnation
de noms, etc.) seront donnes au Ch. 18.

8.2 Les "fausses" erreurs de syntaxe


L'analyseur syntaxique de MAPLE dtecte certaines erreurs dans la frappe d'une commande
53

comme par exemple l'oubli ou le surnombre de parenthses ouvrantes ou fermantes. Il peut


cependant tre utile d'tre capable de distinguer les erreurs de syntaxes des erreurs de cohrences
(voir Ch.2 , 1.7). Mais il existe des erreurs assez frquentes qui ne peuvent pas tre dtectes car
ce sont des erreurs pour l'utilisateur, mais pas pour MAPLE qui est un calculateur symbolique. En
voici quatre exemples.
1) On a dj rencontr l'oprateur d'assignation := ( 1.4). Si l'utilisateur crit par exemple
O x_min = 2
x_min = 2
(8.2.1)
il aura peut-tre voulu assigner le nombre 2 au nom x_min. Il a crit en ralit une quation dont la
syntaxe est parfaitement correcte (voir Ch. 14). Aucune erreur ne peut donc tre signale et aucune
assignation n'est effectue.
O x_min
x_min
(8.2.2)
2) On peut faire une erreur dans l'orthographe d'un nom. Par exemple on attend a:=2, mais
O x1 := 1 :
a := X1 C 1
a := X1 C 1
(8.2.3)
Il ne peut pas y avoir d'erreur dtecte car X1 est diffrent de x1. Le nom X1 est alors compris
comme un nouveau nom symbolique de valeur indfinie.
3) De mme, lorsque le nom d'une fonction est mal orthographi, MAPLE se contente de le
renvoyer l'identique. Il considre cette fonction comme symbolique et non dfinie et par
consquent ne signale aucune erreur, ce qui est un comportement normal et mme indispensable
pour un calculateur symbolique. Par exemple on obtiendra :
3! cosinus p
O
C2
3
2 cosinus p C 2
(8.2.4)
Alors que l'on attend
3! cos p
O
C2
3
0
(8.2.5)
Cette erreur est assez frquente pour des fonctions moins habituelles. Elle est source de confusions,
l'utilisateur non averti cherchant l'erreur ailleurs ou pensant qu'il ne sait pas se servir de la fonction.
Un exemple frquent est celui des calculs de limites avec la fonction de MAPLE qui s'crit limit et
non lim comme habituellement : lim et = 1
t/0

O lim exp t , t = 0 ;
limit exp t , t = 0
lim et , t = 0
1
(8.2.6)
Encore une variante avec un L majuscule dont on trouvera l'explication et l'utilit au Ch. 9 : la
fonction est bien comprise, mais aucun calcul n'est effectu
O Limit exp t , t = 0
lim et
(8.2.7)
t/0

54

Ceci est aussi vrai pour une fonction dont la syntaxe est correcte mais qui n'est pas automatiquement
accessible par MAPLE au moment de son lancement (voir 8.3.5).
4) Le terme a x, avec un espace entre a et x, dsigne le produit de a par x (voir 1.1.1.2), alors
que le terme ax dsigne un nouveau nom. Si l'erreur saute ici aux yeux, elle peut tre beaucoup
moins visible dans une formule complexe.
O a d 2;
a x;
ax
a := 2
2x
ax
(8.2.8)
On vitera ce genre d'erreur en utilisant systmatiquement la touche "*" (et non "." qui a une autre
signification ; voir 1.1.1.2) et qui s'affiche sous la forme
O a$x
2x
(8.2.9)
En mode "Entre Math 1-D" il n'y a aucune ambigut possible
O a*x; ax;
2x
ax
(8.2.10)
O a x;
Error, missing operator or `;`
Par contre, en mode "Entre Math 2-D" on peut ne rien crire entre 3 et x pour crire 3x. En effet, un
nom de variable ne pouvant pas commencer par un chiffre, il n'y a aucune ambigut.
O 3x
3x

(8.2.11)

Certaines "erreurs" relvent d'une interprtation, disons... plus subtile. On a ici oubli l'astrisque de
multiplication (commande en mode "Entre Math-1D") comme on le fait avec une criture standard
et le rsultat est manifestement faux.
O 1+5(3+2);
6
(8.2.12)
En fait, l'expression 5(3+2) est interprte comme une fonction constante de valeur 5 et d'argument
3+2. D'ailleurs...
O 1+5(x);
6
(8.2.13)
O 1+(1+4)(x);
6
(8.2.14)
Ceci est dlibr et n'est pas considr par MAPLE comme une erreur.
Par contre l'interprtation est un peu diffrente en mode "2-D Math Input" [Intertion/Math 2-D]
O 1C5 3C2
26
(8.2.15)
O 1C5 t
1C5 t
(8.2.16)
Encore que...
O 1C 4C1 3C2
6
(8.2.17)
55

O 1C 4C1

6
(8.2.18)
Comme indiqu au 1.1.1, un espace entre les parenthses (ou un point ou un astrisque)
transforme cette interprtation de type "fonction" en un produit.
O 1C 4C1 t
1C5 t
(8.2.19)
Il devrait tre possible d'amliorer les choses...!
Pensez toujours vrifier la syntaxe de vos commandes et assurez-vous que les fonctions
utilises sont bien connues de MAPLE (voir 2-3) avant de vous poser des questions inutiles !
Exercice : interprter et corriger
4! cos pi
O
C2
3
8 cos p C 2

(8.2.20)

Exercice : sans rien savoir du calcul des limites, dterminer l'origine de ce message d'erreur et
modifier la commande en consquence (utiliser le gabarit xlim
f de la palette "Expressions" pour
/a
entrer la formule). Indication : voir 8.1/7.
sin g
O lim eKg$
g/0
g
Error, (in limit) invalid limiting point

8.3 Etats de MAPLE


Au lancement, le programme MAPLE se charge dans la mmoire de la machine : c'est ce qui va
raliser les oprations de calcul. En mme temps une zone mmoire, extensible au fur et mesure
des besoins, va tre cre pour stocker l'environnement propre l'utilisateur (noms des variables,
expressions, valeurs numriques etc.) pendant la priode d'utilisation (appele session): c'est ce
qu'on appelle le noyau (kernel) ou le serveur.
ATTENTION
L'aspect de la feuille de calcul et l'tat interne du noyau de MAPLE sont deux choses distinctes
comme on va le voir sur deux exemples simples. C'est un point capital comprendre !

8.3.1 Modification et r-excution d'une commande

On peut cliquer sur une commande dj calcule, la modifier et presser sur Return pour
l'excuter nouveau. Il faut alors faire trs attention au fait que les rsultats affichs ne sont plus
ncessairement corrects car ceux des autres commandes ne sont pas modifis en consquence.
Supposons une feuille de calculs dont les rsultats devraient paratre normaux l'utilisateur (dans
le cas contraire on lui suggre de faire autre chose que d'apprendre utiliser MAPLE...;-)
O ...
O a := 1
a := 1
(8.3.1.1)
O ...
56

O aC1
2

(8.3.1.2)

O ...
Maintenant on clique sur la commande > a := 1 , on la modifie en crivant > a := 2 puis on
l'excute. La feuille de calcul aura alors l'aspect suivant
O ...
O a := 2
a := 2
(8.3.1.3)
O ...
O aC1
2
(8.3.1.4)
Tant que la commande > a + 1 n'aura pas t r-excute le rsultat affich ne sera pas modifi.
Si vous sauvez la feuille de calcul telle quelle ou si vous l'imprimez, un doute risque de germer
dans votre esprit : "MAPLE sait-il rellement faire des calculs ?". Cet exemple de principe est
trivial, mais il est loin d'en tre toujours ainsi.
L'utilisation du dito (%, %% ou %%%) peut conduire aux mmes types d'ambiguts car ce
symbole dsigne le rsultat de la dernire opration effectue chronologiquement et non
ncessairement le rsultat de la commande situe sur la ligne prcdente, ce que l'on a
gnralement tendance penser en lisant les feuilles de calculs (voir 1.2.3, le rsultat (1.2.3.4)).

8.3.2 Ouverture d'une feuille de calcul enregistre

Lorsque l'on ouvre une feuille de calculs enregistre, celle-ci s'affiche l'cran, mais le noyau
(ou kernel, moteur, serveur] de MAPLE est vide. Pour retrouver l'intgralit du noyau il faut
r-excuter la totalit des commandes. Ainsi, supposons que la feuille de calcul que l'on vient
de charger se rsume la seule ligne
> a := 2
a:=2
>
En entrant directement la commande a + 1 sur le prompt final libre on obtiendra
> a := 2
a:=2
> aC1
a+1
car 2 n'aura pas t automatiquement assign la variable a au chargement de la feuille de calcul.
Pour obtenir 3 il faudra d'abord r-excuter : a := 2
Pour excuter la totalit d'une feuille de calcul on pourra utiliser Edit/Execute/Worksheet
[Edition/Excuter/Feuille de travail] ou le bouton icne
de la barre d'outils (attention : lire
8.3.4).

8.3.3 Arrt d'un calcul

Pour arrter un calcul en cours que l'on croit erron ou qui parat anormalement long,
utiliser le bouton icne
de la barre d'outils. L'effet n'est pas ncessairement immdiat (voire
mme interminablement long venir...!).

8.3.4 L'ordre restart.

Cette commande rinitialise le noyau. On peut recommander d'entrer systmatiquement (bien


57

que ce ne soit pas une ncessit absolue), l'ordre restart comme premire commande de la
feuille de calcul. Compte tenu de ce qui a t dit prcdemment on peut comprendre qu'elle
puisse tre place et excute n'importe o dans la feuille et les commandes r-excutes partir
du dbut. Mais vous risquez alors de repasser sur l'ordre restart par inadvertance et ainsi vider
malencontreusement le noyau [le moteur, le serveur] (ceci est particulirement vrai si on excute
la totalit de la feuille par le menu Edit/Execute/Worksheet [Edition/Excuter/Feuille de
travail] ou avec le bouton icne
de la barre d'outils).
On peut par contre introduire autant d'ordres restart que l'on souhaite dans une feuille de
calcul pour sparer des calculs indpendants (voir la fin du 7.1).
Il est galement possible d'effectuer cette action avec le bouton-icne

de la barre d'outils.

Si plusieurs feuilles de calculs sont ouvertes simultanment, l'ordre restart s'applique la


feuille (au serveur) le contenant ainsi qu'aux serveurs qui lui sont relis et seulement eux
(voir 8.3.6).

8.3.5 Accs aux fonctions des bibliothques (packages)

Certaines fonctions appartiennent des bibliothques qui ne sont pas automatiquement


accessibles au lancement ou aprs un ordre restart (sauf utilisation d'un fichier d'initialisation,
voir 8.3.8 ou 8.4.3-1). Pour pouvoir accder ces fonctions, on utilisera soit
a) la syntaxe dite longue qui permet d'utiliser ponctuellement une fonction dans une
instruction sans avoir un accs permanent aux fonctions de la bibliothque. Elle peut prendre
deux formes
Bibliothque:-Fonction(arguments). Cette criture correspond aux
bibliothques rcentes de MAPLE (bibliothques de modules, voir Ch. 19).
Bibliothque[Fonction](arguments). Identique la prcdente et pour
toutes les bibliothques, les anciennes(construites par tables) et les nouvelles(construites par
modules).
b) avec l'oprateur with
qui donne un accs permanent toute la bibliothque.
> with(Bibliothque):
qui donne un accs permanent seulement une ou plusieurs fonctions de cette
bibliothque
> with(Bibliothque,Fonction_1,Fonction_2,...):
On trouvera de nombreux exemples d'utilisation aussi bien dans ce manuel que dans les
exercices (par exemple, chapitre 4 Vecteurs, Matrices,... , IV Algbre Linaire : bibliothque,
LinearAlgebra Accs aux fonctions de LinearAlgebra). La forme "longue" est celle qui doit
tre utilise dans les procdures (voir Ch. 19).
c) avec le menu Tools/Load Package [Outils/Charger un package], on pourra aussi accder
et charger certaines bibliothques, mais pas toutes...
La liste de toutes les bibliothques pourra tre obtenue avec
O ?index/package
ou avec le menu Tools/Load Package/List All Packages... [Outils/Charger un package/Lister
tous les Packages...]. On notera galement que certaines bibliothques (comme linalg), bien que
toujours prsentes pour des raisons de compatibilit, sont dclares obsoltes et remplaces par
de nouvelles (LinearAlgebra).
d) Les noms de certaines fonctions des bibliothques peuvent tre identiques ceux dfinis
par dfaut, c'est--dire ceux des fonctions dites "de niveau suprieur" ("top level"). Ceci peut
58

provoquer une difficult d'accs. Prenons par exemple le calcul du logarithme nprien de 2
O ln K2
ln 2 C I p
(8.3.5.1)
Le calcul par dfaut est effectu dans le corps des complexes. On veut restreindre ce calcul aux
nombres rels grce la librairie (construite par modules) RealDomain
O RealDomain:-ln K2
undefined
(8.3.5.2)
Si l'on redfinit la fonction avec with pour allger l'criture
O with RealDomain, ln
ln
(8.3.5.3)
la fonction ln par dfaut devient celle dfinie par RealDomain et
O ln K2
undefined
(8.3.5.4)
Pour accder maintenant la fonction "top level" on devra crire
O :-ln K2
ln 2 C I p
(8.3.5.5)
On peut supprimer l'accs par dfaut aux noms de RealDomain en utilisant
O unwith RealDomain :
et on revient la situation initiale (on pourra aussi utiliser le menu [Tools-Outils/UnloadDcharger un package...])
O ln K2
ln 2 C I p
(8.3.5.6)
Attention : Ce qui vient d'tre dit ne vaut que pour les bibliothques construites par modules.
Pour les autres (celles construites par tables) seul un ordre restart peut rsoudre le conflit.
Toutes les bibliothques de MAPLE devraient tre, terme, transformes progressivement en
bibliothques de modules avec l'volution du logiciel.
Pour connatre les librairies en cours d'utilisation on crira (ici la liste [ ] est vide puisqu'il n'y en
a plus)
O packages
(8.3.5.7)
[**] Pour savoir si une librairie est construite par modules on crira (la librairie intrans contient
des transformations intgrales : Fourier, Laplace, Mellin, etc ; voir le chapitre 10 ; elle est encore
construite par table). La fonction type sera dfinie au Ch. 2, 3.
O type RealDomain, '`module`' ;
type intrans, '`module`'
true
false
(8.3.5.8)

8.3.6 Gestion des serveurs [noyaux, moteurs, kernels] [*]

On peut ouvrir plusieurs feuilles de calcul simultanment avec le menu File/New


[Ficher/Nouveau] (voir 8.4.7). Chaque feuille possde son propre serveur (noyau, moteur,
kernel), mais on pourra grer leurs dpendances. On utilisera pour cela le menu Tools/Options..
. (Windows-Linux) ou MAPLE 12/Preference... (Mac OS). L'onglet General propose deux
59

options et pour pouvoir choisir on doit connatre les significations suivantes:


New engine for each document [Nouveau moteur pour chaque document] : les
serveurs sont indpendants. Si on entre > a:=2; dans une feuille de calcul, on obtiendra a+1 en
excutant > a+1; dans une autre car les deux a s'ignorent et sont considrs comme des objets
diffrents.
Shared one engine among all documents [Partager un seul moteur parmi tous les
documents] : tous les serveurs partagent les donnes. Si on entre > a:=2; dans une feuille de
calcul, on obtiendra 3 en excutant > a+1; dans une autre.
On notera galement l'option donnant la possibilit de poser la question (Ask each time
[Demander chaque fois]) chaque ouverture d'un nouveau document. On devra prciser dans
une fentre chaque ouverture le numro du serveur (noyau) avec lequel il partage les donnes.
Les numros des serveurs sont indiqus soit en bas droite de la fentre MAPLE, soit dans la
barre de titre de fentre. Pour le cas ou l'on ne veut pas de partage, slectionner (create new
engine).
Sauvegarder avec le bouton Apply Globally ou Apply to Session (voir 8.3.7).

8.3.7 Initialisation de MAPLE par menu [**]

On a souvent mentionn dans ce chapitre la possibilit de paramtrer MAPLE au moment de


son lancement ou aprs un ordre restart l'aide du menu Tools/Options [Outils options]
(Windows-Linux) ou Maple 12/Prfrences (Mac) qui ouvre une fentre d'initialisation. On ne
rsumera pas ici toutes les possibilits et le lecteur se reportera aux divers paragraphes de ce
chapitre qui y font mention. On rappelle seulement que les paramtres ainsi dfinis ne seront
sauvegards que pour la session en cours avec le bouton Apply to Session (i.e. : jusqu' la
fermeture de MAPLE) ou de faon permanente avec Apply Globally.
Pour ne plus faire apparatre la fentre d'aide rapide qui s'ouvre chaque nouveau document,
cliquer sur l'onglet Interface de la fentre d'initialisation (des prfrences) et dcocher Quick
Help popup on new documents[Fentre d'aide rapide lors de nouveaux documents]

8.3.8 Initialisation de MAPLE par fichier [**]

Remarque : il faut savoir que l'on peut aussi initialiser individuellement les feuilles de calcul de
faon similaire sans avoir initialiser globalement MAPLE de la faon dcrite ici (voir 8.4.3-1)
.
On peut prdfinir l'tat initial de MAPLE (au lancement et valable pour chaque ouverture
d'un nouveau document et/ou chaque ordre restart) et raliser des options que ne permet pas le
menu prcdent en plaant dans le rpertoire d'entre de l'utilisateur un fichier contenant des
ordres d'initialisation.
Attention : le fichier doit tre en ASCII simple sans formatage (format "texte", pas de formats
du genre .doc ou .rtf). On utilisera donc pour le crer un diteur capable d'enregister un mode
texte seul (avec Word sous Windows utiliser le format Texte brut puis MS-Dos, sous Mac le
format Texte seulement).
Le nom du fichier dpend du systme d'exploitation : maple.ini sous Windows et
.mapleinit sous Mac ou Linux. Le rpertoire dans lequel doit tre sauvegard ce fichier sera
obtenu avec la commande
O kernelopts homedir
Pour plus de dtails, on se reportera l'aide en ligne
O ?worksheet,reference,initialization
Un tel fichier contiendra simplement des ordres MAPLE valides qui seront excuts de faon
60

automatique chaque ouverture de document. Suivant la ponctuation finale (; ou : ) les rsultats


d'excution apparatront ou non. On montre un exemple de contenu de ce type de fichier dont
l'excution se fera sans affichage en raison de la terminaison par : de tous les ordres.
Digits:=6: e:=exp(1): protect('e'):
with(LinearAlgebra,LinearSolve): # voir 8.3.5
interface(imaginaryunit=j):
interface(prompt="$:"):
On demande donc avec ce fichier
de travailler avec 6 chiffres significatifs par dfaut (valeur qui peut aussi tre aussi
dfinie avec la fentre d'initialisation, onglet Precision/Round calculation to[Arrondir le calcul
])
d'assigner la base des logarithmes npriens au nom e et de protger ce nom contre toute
autre assignation (voir Ch. 2)
de pouvoir accder automatiquement au solveur de systmes linaires LinearSolve de la
bibliothque LinearAlgebra, (ce qui n'est pas le cas par dfaut ; voir 8.3.5)
de fixer la syntaxe des nombres complexes comme a+j*b et non a+I*b (voir 6)
que le "prompt" des groupes d'excution (l'invite) ne soit plus > , mais $:

8.3.9 Interoprabilit [***]

Les langages de programmation C, Java et Visual Basic peuvent appeler des applications
MAPLE grce des API.
O ?OpenMaple
Inversement MAPLE peut accder des routines crites en C, Fortran ou Java
O ?ExternalCalling
MAPLE peut aussi interagir avec MATLAB
O ?Matlab
ou communiquer avec des bases de donnes (SQL via JDBC).
O ?Database
MAPLE peut galement utiliser directement la librairie de calculs numriques NAG
O ?NAG

8.3.10 Perte de connexion au noyau

MAPLE peut perdre sa connexion au noyau, soit par interdiction d'utiliser un port de
communication, soit par un dfaut de fonctionnement. Dans ce second cas, il s'agit gnralement
soit d'une pile de rcursion trop grande ( l'utilisateur de grer le problme), soit d'un dfaut
interne d'adressage mmoire (rarissime ; voir cependant Ch. 2, 2.4.1/1). L'utilisateur peut, s'il
peut systmatiquement reproduire le dfaut, faire un signalement Maplesoft en fournissant la
feuille de calcul en cause. Dans tous les cas une fentre s'affiche donnant un diagnostic et la
marche suivre.
Il est important de noter que cette perte de connexion n'empche pas la sauvegarde du
travail en cours avant de quitter MAPLE et de le relancer.

61

8.4 Gestion des feuilles de calcul


8.4.1 "Document mode" et "Worksheet mode"[Feuille de travail]

Comme indiqu dans l'introduction, MAPLE propose deux formes de prsentation des
feuilles de calcul : le "Document mode" et le "Worksheet mode" (voir 8.4.8.1 pour quelques
dtails caractristiques). On pourrait dire de faon simplifie que le mode "Worksheet" est plutt
orient vers un "document de travail" et le mode "Document" vers un "document scientifique"
avec une prsentation plus habituelle des commandes de calculs. Ce mode "Document" semble
tre celui que tente de promouvoir Maplesoft, mais le mode "Worksheet" prsente aussi des
avantages de simplicit et de clart d'utilisation pour un travail courant ainsi que des ressources
mmoire moins importantes.
Le mode par dfaut du document ouvert (lancement de MAPLE ou utilisation du boutonicne
de la barre d'outils pour ouvrir un nouveau document) est dfini par le choix effectu
dans le menu d'initialisation (voir ci dessous). Mais il est toujours possible, l'aide du menu File
(Fichier)/New[Nouveau]/Worksheet ou Document Mode, de faire un choix diffrent.
Pour le travail courant on conseillera plutt le "Worksheet mode" avec entre des
commandes en mode 1D (dit "Maple Notation" ou "1-D Math Input" ; caractres rouges, voir
ci-dessous). C'est le mode traditionnel de MAPLE. Il prsente aussi l'avantage d'enchaner
naturellement les commandes de calcul : quand une commande est excute le curseur saute
automatiquement sur la commande suivante. On choisira le "Document mode" pour l'dition
de documents scientifiques et dynamiques (c'est celui des feuilles de ce manuel).
Pour obtenir par dfaut l'ouverture d'un nouveau document dans l'un de ces deux modes, on
ouvrira la fentre des rglages d'initialisation avec Tools/Options... (Windows-Linux) ou
MAPLE 12/Prfrences... (Mac OS). Cliquer ensuite sur l'onglet Interface puis slectionner
Document ou Worksheet [Feuille de travail] dans la rubrique Default format for new
worksheet [Format par dfaut pour les nouvelles feuilles de travail]. Valider la commande en
cliquant sur Apply Globally (dfinition permanente) ou Apply to Session.
[**] Pour que l'entre des commandes dans une feuille au format Worksheet (ou dans
d'ventuels groupes d'excution introduits dans une feuille en mode Document) se fasse par
dfaut en mode caractres (dit "1D Math Input" ou "Maple Notation", en caractres rouges)
ouvrir la fentre des rglages d'initialisation, cliquer sur l'onglet Display [Affichage] et
slectionner Maple Notation dans la rubrique Input Display [Affichage de l'entre]. On
62

rappelle qu'il sera toujours possible d'entrer ou de convertir une commande en mode 2D-Math
(criture standard) par basculement (voir 8.4.8.1).
[**] Il existe aussi plusieurs types de formats d'criture pour l'affichage des rsultats. On
pourra les exprimenter avec l'onglet Display [Affichage], option Output display [Affichage de
la sortie] de la fentre d'initialisation ou encore avec la commande interface(prettyprint=n).
Voici trois exemples sachant que le mode par dfaut est n=3. Noter que restart ne rinitialise
pas la valeur par dfaut et que la commande interface(prettyprint=n) renvoie la valeur qui
prcde le changement (voir un exemple similaire au 5.8.1).
1) 2D-Math Notation.
O Int x$sin x 2 , x = 0 ..p : % = value %
p
1
1
2
x sin x 2 dx =
K
cos p
(8.4.1.1)
2
2
0
2) Character Notation (la valeur rendue/affiche par interface est la valeur prcdente, ce
qui facilite une mise en mmoire simultane au changement)
O pty d interface prettyprint = 1 ;
Int x$sin x 2 , x = 0 ..p : % = value %
pty := 3
/Pi
|
/ 2\
1
1
/ 2\
|
x sin\x / dx = - - - cos\Pi /
|
2
2
/0
3) Maple Notation
O interface prettyprint = 0 :
Int x$sin x 2 , x = 0 ..p : % = value %
Int(x*sin(x^2), x = 0 .. Pi) = 1/2-(1/2)*cos(Pi^2)
On revient la valeur par dfaut (n=3) avec la valeur mise en mmoire dans pty
O interface prettyprint = pty ;
Int x$sin x 2 , x = 0 ..p : % = value %
0
p
1
1
2
x sin x 2 dx =
K
cos p
(8.4.1.2)
2
2
0
Certes les modes CharacterNotation ou Maple Notation sont moins esthtiques, mais sont
aussi beaucoup moins gourmands en mmoire. Ils permettent galement d'autres options comme
l'tiquetage (voir la commane interface(labelling=true/false) trs utile pour afficher des
expressions longues et encombrantes. Par ailleurs ils sont quelquefois indispensables (criture
dans un fichier) et/ou sont basculs automatiquement par MAPLE (voir 8.4.5).

8.4.2 Enregistrement et sauvegarde des documents

L'enregistrement des documents se fait de faon habituelle par Fichier(File)/Save


[Enregistrer] ou Save As... Noter sur Mac une notation qui peut prter confusion : l'option
Save As... sert enregistrer une feuille sous un autre nom, mais le menu mentionne Save As
Worksheet... Le mot Worksheet signifie en fait "Standard Worksheet" et ne signifie pas que l'on
sauvera une feuille MAPLE crite en mode "Document" dans le mode "Worksheet" (voir
8.4.1), mais simplement dans le mode en cours.
63

MAPLE dispose d'un mcanisme de sauvegarde automatique des documents qui se lance de
faon priodique et discrte pendant le travail. L'accs MAPLE est nanmoins interrompu
durant cette opration et la mention "Autosaving Worksheet..." ["Enregistrement automatique de
la feuille de travail..."] s'affiche dans le coin en bas gauche de la fentre). Un document portant
le nom XYZ.mw est alors automatiquement enregistr sous le nom XYZ_MAS.bak (Maple
Auto Saving bakup) dans le mme rpertoire et est priodiquement remis jour. Ce fichier
disparat ds que l'on provoque une sauvegarde volontaire. Pour que ce mcanisme fonctionne il
faut que dans la fentre d'initialisation (voir 8.3.7), onglet General, la case Auto save every
[Sauvegarde automatique chaque] soit coche et la priode de sauvegarde automatique fixe.
En cas d'anomalie de fonctionnement de l'ordinateur interrompant inopinment le
fonctionnement de MAPLE sans enregistrement effectu, relancer MAPLE en cliquant sur le
document XYZ.mw. Pour restituer la dernire sauvegarde automatique qui prcde la panne,
slectionner Fichier(File)/Open Recent/Restore Backup [Fichier/Ouvrir les rcents/Restituer
la sauvegarde].
Recommandation : ds que l'on ouvre un nouveau document, le sauver, mme vide ou avec
son ordre restart en tte (voir 8.3.4), en lui donnant un nom. On pourra ensuite sauver
rgulirement le document en cours de construction par une simple pression sur le boutonicne
de la barre d'outils et viter ainsi la perte partielle du travail en cas d'anomalie de
fonctionnement de l'ordinateur. En matire de sauvegarde, aucune prcaution n'est superflue...

8.4.3 Initialisation des feuilles de calcul, groupes autoexcutables [**]

1) Initialisation des feuilles de calcul. Une feuille de calcul peut contenir un groupe "cach"
de commandes, dit Startup code [Code de dmarrage], qui seront excutes lors de son
ouverture ou aprs un ordre restart. Contrairement l'initialisation vue au 8.3.8 qui s'applique
au logiciel MAPLE dans sa globalit et si plusieurs feuilles sont ouvertes simultanment, le
Startup code ne vaut que pour la feuille en question (attention nanmoins aux moteurs partags ;
voir 8.3.6). Pour diter ou modifier ces commandes et/ou procdures, il suffit de cliquer sur le
bouton-icne
de la barre d'outils ou d'utiliser le menu Edit [Edition]/Startup Code [Code de
dmarrage] et d'crire dans la fentre qui s'ouvre. Cette dition est passive puisqu'un Return ne
dclenche ni une excution de l'ordre donn, ni une analyse syntaxique des erreurs. Pour obtenir
cette dernire on utilisera le bouton "Syntax" ou le menu Syntax/Check syntax now [Vrifier la
syntaxe maintenant]. Cette opration sera systmatiquement effectue avant la sauvegarde si
l'option Syntax/Check syntax before saving [avant d'enregistrer] est coche (le dfaut). Les
ordres de l'exemple du 8.3.8 pourraient tre introduits comme Startup code. Aprs avoir
sauvegard avec le bouton "Save" ["Enregistrer"] ou le menu File/Save [Fichier/Enregistrer],
lancer un ordre restart ou rouvrir la feuille, autoriser si ncessaire (voir ci-dessous) l'excution
du Startup code et vrifier que tout est conforme (en excutant par exemple ln(e) ou un evalf
pour vrifier la valeur de Digits d'aprs l'exemple donn au 8.3.8). A la diffrence de
l'excution du fichier du 8.3.8, l'excution est ici toujours transparente quelque soient les
terminaisons des ordres (";" ou ":"). Pour ne pas enregistrer les modifications faites, fermer
directement la fentre ou utiliser le menu File/Exit. Pour supprimer le Startup code, vider son
contenu et sauvegarder.
Si un Startup code est prsent, les roues de l'icne se remplissent et deviennent
.
O ?worksheet,documenting,startupcode
Si on souhaite une excution automatique du Startup code sans demande d'autorisation
pralable, on fixera dans la fentre d'initialisation de MAPLE (voir 8.3.7), onglet Security,
l'option Autoexecute security level [Niveau de scurit de l'auto-excution] Don't warm
64

before autoexecution [Ne pas avertir avant l'auto-excution].


ATTENTION : certains ordres de MAPLE, tels system ou ssystem (excution d'une
commande du systme d'exploitation), mkdir (cration d'un rpertoire), rmdir (effacement d'un
rpertoire vide) ou fremove (effacement d'un fichier), ainsi que les outils de la bibliothque
FileTools peuvent tre directement excuts par le Startup code et sont potentiellement
dangereux s'ils sont utiliss de faon maladroite ou malveillante. Egalement, ces commandes
pourraient tre introduites dans des procdures dfinies par le Startup code et excutes
ultrieurement dans la feuille de calcul l'insu de l'utilisateur. Aussi, avant d'ouvrir un
document d'origine douteuse, il est prfrable de configurer MAPLE en mode scuris (i.e.
l'tat de configuration par dfaut : Autoexecute security level [Niveau de scurit de l'auto
excution] mis Warm once for each Worksheet [Feuille de travail] dans les prfrences ;
voir 8.3.7), de rpondre "non" l'autorisation d'excution du Startup code s'il existe et de
vrifier son contenu. Le menu d'initialisation permet galement d'activer un mcanisme de
contrle (cocher la case Enable engine security) qui permet l'utilisateur de contrler les actions
de MAPLE, en particulier celles de lecture/criture des fichiers de l'ordinateur.
2) Groupes autoexcutables. Les feuilles de calcul peuvent galement contenir des
commandes ou groupes de commandes (voir 1.3) qui seront visibles et excutables
automatiquement l'ouverture du document ou aprs un ordre restart. Pour rendre
autoexcutable une commande ou un groupe de commandes, il suffit de cliquer dessus puis
d'activer le menu Format/Autoexecute/Set [Auto-excution/Fixer]. Si l'option View/Markers
[Affichage/Balises] est coche, une icne
apparat gauche indiquant que le groupe est
autoexcutable. Pour annuler cet tat on utilisera de mme Format/Autoexecute/Clear [Vider].
Le contrle d'autorisation d'excution se dfinit comme pour les ordres du Startup Code.

8.4.4 Sauvetage d'un document corrompu [**]

Il est possible, lors de manipulations peu orthodoxes, que la feuille de calcul enregistre soit
corrompue (c'est heureusement rarissime). On est catastroph de voir qu' l'ouverture du
document une partie semble manquer de faon incomprhensible. Elle est en ralit probablement
prsente, mais ne peut tre lue car un "groupe" corrompu bloque la lecture. Il est nanmoins
possible de tenter une manoeuvre de rcupration.
ATTENTION : L'opration n'est pas forcment vidente et on travaillera toujours avec une
copie du document corrompu.
Les documents MAPLE sont au format XML et par consquent peuvent tre lus avec
n'importe quel diteur. XML est un langage balises (dites aussi tiquettes, tags,...)
reconnaissables par leurs formes classiques <xyz>...</xyz>. Les curieux pourront visiter l'aide
en ligne, mais sans que ce soit indispensable...!
O ?Worksheet
ou
O ?XMLTools
Si on ouvre un document MAPLE avec un diteur on voit, aprs un long prambule dfinissant
les caractristiques gnrales du document, apparatre les groupes gnrs par l'utilisateur entre
les tags <Group...>...</Group>. Par exemple :
<?xml version="1.0" encoding="UTF-8"?>
<Worksheet>
... (long prambule)
<Group labelreference="L1" drawlabel="true">
<Input>
65

...
</Input>
<Output>
...
display="LUklbXJvd0c2Iy9JK...
</Output>
</Group>
<Group labelreference="L2" drawlabel="true">
...
</Group>
...
</Worksheet>
Dans les zones "Input" des documents au format "2-D Math Input" et dans les zones "Output"
en gnral, les suites de caractres du genre display="LUklbXJ..." sont des codages qui ne
sont interprtables que par MAPLE et qui sont utiliss pour dessiner les expressions en mode
2D. Il est nanmoins possible de reprer le groupe corrompu par le (ou les) texte de la
commande qui apparat en clair d'une faon ou d'une autre dans la zone Input. En mode "2-D
Math Input", c'est un peu plus difficile car une commande telle a d 1 s'crit input-equation=
"`:=`(a, 1)". Le groupe corrompu est certainement celui qui suit le dernier qui s'affiche quand
on ouvre la feuille. Il suffit de l'effacer en supprimant les lignes correspondantes
<Group...>
...
</Group>
d'enregistrer la feuille en mode texte (pas de formats du type .rtf ou .doc) puis de l'ouvrir
nouveau avec MAPLE. On devrait retrouver l'intgralit du document l'exception bien sr du
groupe supprim. La mthode devra tre adapte pour les feuilles au format "Document".

8.4.5 Exportation des documents [**]

Les feuilles de calculs peuvent tre exportes dans divers formats comme HTML ou LaTeX
avec le menu Fichier(File)/Export As [Exporter en]. Nous ne dtaillerons pas ces procdures et
nous renvoyons le lecteur sur l'aide en ligne de MAPLE. Pour la cration d'un pdf, utiliser une
option d'impression ( 8.4.6).
O ?worksheet/managing/export
Les feuilles de calcul peuvent tre prsentes comme des diapositives plein cran ( la faon
PowerPoint, Keynote ou Impress) avec le menu View/Slideshow[Diaporama].
Noter aussi la commande suivante qui compose une expression LaTeX en basculant
automatiquement le format d'criture du rsulat (voir la fin de 8.4.1). Un simple copier-coller
du rsultat sera alors possible pour une insertion dans un document LaTeX.
O latex Int sin x 2 $x, x = 0 ..Pi
\int _{0}^{\pi }\!x\sin \left( {x}^{2} \right) {dx}
Cette insertion directe dans un document est possible en donnant en deuxime argument le nom
du fichier (voir Ch. 20).
Il existe galement la possibilit de coder automatiquement des expressions dans un langage
comme C, Fortran, Java, Matlab ou VisualBasic (le transcodage Fortran de MAPLE, bien que
correct, est dsuet par rapport la norme actuelle de ce langage). Voir aussi le 8.3.9.
O CodeGeneration:-Java s_x = sin x 2 C 1 $x, z = s_x K 3
s_x = Math.sin((double) (x * x + 1)) * (double) x;
z = s_x - 0.3e1;

8.4.6 Impression des documents. Numrotation des pages


66

L'impression des feuilles de calcul se fait simplement l'aide du menu Fichier(File)/Print


Nanmoins, le passage l'impression peut tre source de difficults en raison de l'absence de
relation entre la largeur de la mise en page l'cran de la feuille de calcul et celle de la feuille
papier. Lors d'une impression, MAPLE opre des modifications de mise en page et des
compressions automatiques des graphiques qui ne sont pas effectues sur les lgendes, textes et
expressions mathmatiques (par exemple 8.4.8.4-7-c). Ceci provoque des modifications
d'aspect, voire des troncatures, peu esthtiques. On ne peut que recommander, avant tout travail
ncessitant une mise en page prcise, de dterminer empiriquement une largeur virtuelle l'cran
de la feuille de calcul qui soit proche de la largeur relle imprime sur le papier afin d'viter au
maximum les mauvaises surprises au moment de l'impression. Pour obtenir ce rsultat on peut
proposer la recette suivante :
1) Ecrire un texte d'au moins dix quinze lignes sur la feuille de calcul (en mode "Text") et
dans lequel on n'introduira pas de retour la ligne (utiliser un copier-coller d'un texte quelconque
et supprimer ventuellement les retours la ligne non automatiques).
2) S'assurer de la justification gauche (
dans la barre d'outils).
3) Effectuer une prvisualisation ou imprimer le texte ou crer un pdf.
4) Vrifier que l'option Markers [Balises] du menu View [Affichage] n'est pas coche.
5) Ajuster l'cran la largeur de la fentre MAPLE de faon ce que les mmes mots du
texte terminent toutes les lignes dans la page l'cran et la page imprime. Plus le nombre de
lignes est important, plus la relation de la largeur de mise en page sera prcise par effet
statistique. Normalement MAPLE conserve la taille de la fentre ainsi dfinie d'un lancement
l'autre.
Il est possible d'insrer des sauts de page avec le menu Insert/Page Break [Intertion/Page
suivante].
Pour numroter les pages imprimes, on utilisera le menu View/Header Footer...
[Affichage/En-tte et bas de page...] qui permet aussi de choisir diffrents formats avec la
possiblit d'inclure des dates, des logos, etc. La numrotation n'est effective que lors d'une
prvisualisation, de la cration d'un fichier pdf ou d'une impression.

8.4.7 Ouvertures simultannes de plusieurs feuilles de calculs [*]

On peut ouvrir plusieurs feuilles de calcul simultanment (File[Fichier]/New[Nouveau]) et


chacune dans le mode souhait (Document ou Worksheet ; voir 8.4.1). On notera les deux
points suivants:
- L'affichage peut apparatre soit dans des fentres MAPLE spares (New Window
[Nouvelle fentre]), soit dans la mme fentre avec un slection des feuilles par onglet (New
Tab [Nouvel onglet]). Pour obtenir un de ces choix (mis par dfaut) on ouvrira la fentre des
rglages d'initialisation (voir 8.3.7), on cliquera sur l'onglet Interface puis on choisira la
rubrique Open worksheets in : [Ouvrir une feuille de calcul dans :], soit New Window soit
New Tab.
- La gestion de la dpendance entre les donnes des feuilles de calcul (des noyaux, des
serveurs, des moteurs) ainsi ouvertes sera gre suivant la mthode dcrite au 8.3.6.

8.4.8 Structures et lments des feuilles de calculs


8.4.8.1 Document blocks et Execution groups, Math et Texte
On lira au pralable le 8.4.1. Une feuille de calcul en mode Document est essentiellement
structure en "documents blocks" marqus gauche (si l'option du menu View/Markers
[Affichage/Balises] est coche) par les symboles
et
et une feuille de calcul en mode
67

Worksheet, en "groupes d'excution" marqus par un prompt > et un crochet extensible


gauche [. Les deux modes ont en commun le langage XML (voir 8.4.4) et en ralit ne
s'excluent pas l'un l'autre car les lments standard de l'un peuvent tre introduits dans l'autre.
On a vu avec la structure de ce chapitre que l'on pouvait introduire des "groupes
d'excutions" dans un mode Document, mais on peut aussi introduire des "documents
blocks" dans un mode Worksheet avec le menu Format/Create Document Block. On peut
aussi, pour crire du texte utiliser le menu Insert/Paragraph/Before-After Cursor
[Insertion/Groupe d'excution/Avant-Aprs le curseur] (voir aussi le bouton-icne
de
la barre d'outils), etc. On notera toutefois que trop de mlange peut rendre la gestion d'un
document confuse et difficile.
Un Return cre un nouveau block ou un nouveau groupe d'excution alors qu'un ShiftReturn fait seulement passer la ligne. On rappelle que l'on peut passer du mode "Math" au
mode "Text"
- l'aide du bouton
et bien sr rciproquement avec
.
- l'aide de la touche F5 (fn-F5 pour certains claviers).
- l'aide du menu Edit/Switch to Text Mode (et rciproquement, l'item changeant
automatiquement de nom, avec Edit/Switch to Math Mode).
- on peut convertir une commande crite en "1-D Math Input" (caractres rouges) en
mode "Math" avec Format/Convert To [Convertir en]/2-D Math Input (attention : ne pas
choisir l'option "2-D Math"-"tout court" pour convertir une commande). On peut bien sr
faire l'opration rciproque avec Format/Convert To/1-D Math Input.
- on peut convertir une formule incluse dans un texte et crite en mode "Text" vers le
sin p x
mode "Math" (par exemple sin(Pi*x)/(Pi*x) /
) en slectionnant le texte de la
px
formule puis en utilisant le menu Format/Convert To [Convertir en]/2-D Math [Math 2-D]
("tout court" et non 2-D Math Input [Entre Math 2-D] rserv l'entre des commandes).
Pour effacer un lment (paragraphe de texte, commande, rsultat...) on clique sur cet
lment puis on utilisera le menu Edit/Delete Element [Edition/Supprimer l'lment] ou son
raccourci clavier associ que l'on pourra lire sur le menu ( droite). Si le block ou le groupe
est vide il sera effac.
On a renonc prsenter toutes les fonctionnalits de ces deux modes en raison de leur
trop grand nombre. Signalons simplement les actions par menus contextuels en mode
Document : un clic droit sur une expression entre en mode "Math" permet d'accder de
nombreuses oprations de base que MAPLE peut effectuer. Par exemple, aprs avoir entr
l'expression gauche (en mode Math), un clic droit dessus (Ctrl-clic sur un Mac non quip
d'une souris trois boutons) ouvre un menu ou on a choisi Differentiate/x [Driver/x]
(MAPLE reconnat les variables libres x et y ; en Maple 12 : "w.r.t." = "with respect to" =
"par rapport ").
driver par rapport x

2$cos x 2 C sin x
K2 sin x 2 C sin x
2 x C cos x
Attention : certaines des oprations du menu n'affiche rien en mode de sortie "Notation
MAPLE" ou "Notation de Caractre" (voir 8.4.1).
Il pourra de mme, avec un clic droit sur le rsultat, faire une autre opration, comme par
exemple un trac. Si on modifie l'expression initiale, on pourra r-excuter la commande en
cliquant sur le bouton-icne de la barre d'outils. On notera aussi la fonction Explore de ce
menu contextuel. On pourra reproduire l'exemple suivant : aprs avoir entr l'expression sur
laquelle on effectuera un clic droit, on choisit Explore dans le menu et on coche "skip"
68

(sauter) pour x (expliquer pourquoi aprs avoir essay).


factor 1 C x a
Un peu d'exprimentation empirique pour dgrossir le terrain peut tre une bonne mthode
pour dbuter, mais elle devra tre suivie d'une lecture attentive de l'aide en ligne pour viter de
manquer les nombreuses fonctionnalits disponibles. Pour une premire prsentation
gnrale on recommande la lecture de
O ?MaplePortal
ou de
O ?UserManual
8.4.8.2 Division en sections et sous-sections
Quelque soit le format de la feuille de calcul (Document ou Worksheet), il est possible,
comme il a t fait pour ce manuel, de la dcouper en Sections et Sous-sections avec le menu
Insert Section et Insert Subsection ( ). Ceci est trs utile pour s'obliger structurer un
document correctement. De plus, chacune des sections peut-tre ouverte ou ferme ( )
masquant ainsi son contenu et ne laissant apparatre que son titre. Il suffit de cliquer sur le
triangle ou sur la barre latrale. On pourra aussi utiliser les boutons-icnes
de la
barre d'outils pour grer ces divisions.
Les numrotations qui apparaissent sur les sections de ce manuel ne sont pas
automatiques et ont t introduites au clavier.
8.4.8.3 Numrotation des rsultats des commandes
La numrotation des rsultats introduite au 1.2.1 est une option dont on choisit le dfaut
dans la fentre d'initialisation (voir 8.3.7), onglet Display [Affichage], option Show
equation labels [Afficher les tiquettes des quations]. En fait, quelque soit le choix par
dfaut, il est toujours possible de le modifier avec le menu Format/Labels [Etiquettes].
L'option Label Display... [Affichage des tiquettes...] de cet item permet d'introduire un
prfixe la numrotation (par exemple "Ch I-" pour dsigner le chapitre I) et d'activer soit
une numrotation incrmentale simple, soit une numrotation qui prend en compte le
dcoupage des sections/sous-sections (comme dans ce dodument).
On peut galement supprimer la numrotation automatique et l'introduire la demande sur
quelques rsultats avec le menu Format/Labels et avec l'option Execution Group (l'option
Worksheet numrotant tous les rsultats).
8.4.8.4 Autres lments des feuilles de calculs
Les feuilles de calcul peuvent contenir divers autres types d'objets. Ne perdant pas de vue
que MAPLE est avant tout destin faire des calcul, on se contentera de trs brves
descriptions...
1. Des listes numrotes automatiques comme celle-ci ou puces (,) introduite par les
boutons-icnes
de la barre d'outils.
2. Des reprsentations graphiques des fonctions mathmatiques en 2D ou 3D. Ce sujet, en
raison de son importance, fait l'objet des deux chapitres 16 et 17.
69

3. Des interfaces graphiques. On en trouve de trois sortes


a) Les composantes graphiques (Components [Composantes]) qui permettent la
construction d'applications (Ch. 19) par insertion dans la feuille de calcul (modes Worsheet
ou Document) d'objets graphiques (voir l'exemple ci-dessous et la palette
"Components[Composantes]" dans la colonne gauche de la fentre MAPLE) associs des
actions programmes. Pour la disposition en deux colonnes des lments de cet exemple, voir
le 8.4.8.4-7.c.
--------------------------------------------------------------------------------------------------------

-------------------------------------------------------------------------------------------------------b) Des fentres rserves l'dition de procdures, dites Code Edit Region [Rgion
d'dition de codes] (voir chapitre 19). Elles sont insres avec le menu Insert/Code Edit
Region [Insertion/Rgion d'dition de code]. Ces zones peuvent tre fermes pour masquer
le texte (voir l'icne ci-dessous) avec le menu View/Collapse Code Edit Region ou ouvertes
pour la lecture et l'dition avec View/Expand Code Edit Region [Affichage/RduireDvelopper la rgion d'dition de codes]. Ces deux actions sont aussi accessibles par un
menu contextuel ouvert avec un "clic droit". Les dimensions en pixels de la fentre peuvent
tre fixes avec ce menu contextuel Component Properties... [Proprits des composantes]
Ma_procedure
:=proc(x)
x+1:
end proc:
La mme fentre, mais ferme
Ma_procedure
c) Les Maplets : se sont des applications prsentes dans des fentres indpendantes et
crites dans un langage spcifique MAPLE (Ch. 19).

70

4. Des schmas introduits par le menu Insert/Canvas (voir par exemple le 5.7). Les
possibilits de dessin sont assez restreintes mais on peut y introduire aisment des formules
mathmatiques. Pour plus de dtails sur l'utilisation de ces outils on se reportera l'annexe 1
du chapitre 16. Il est aussi possible de crer des graphiques ayant pour base une
reprsentation graphique mentionn ci-dessus en 2. (voir un exemple la fin de ce
paragraphe) ou un graphique import puis complt (voir 5.).
La taille des mailles de la grille de dessin peuvent tre fixe avec le bouton-icne
qui apparat quand on clique dans le cadre du dessin. Pour faire disparatre la grille
(comme ci-dessous) il suffit, toujours avec ce bouton, de lui donner la mme couleur (Line)
que celle du fond (Canvas).

f est injective

c x, y 2 E2 ,
xsy0f x sf y
5. Des images ou des graphiques crs avec d'autres logiciels et imports avec le menu
Insert/Image...

Bonjour de

Les images sont sommairement ditables (voir Annexe 1, Ch. 16) dans le sens o l'on
peut, aprs importation, leur superposer des lments de dessin MAPLE comme, par
exemple, l'ajout du texte "Bonjour de" sur l'image ci-dessus.
Les formats accepts sont (pas de format eps)
- jpe, jpeg, jpg (Joint Photographic Experts Group)
- gif (Graphics Interchange Format)
- png (Portable Network Graphics)
71

- tiff, tif, jfx (Tagged Image File Format)


- pnm (Portable aNyMap)
- bmp (Bitmap Graphics)
- fpx (Kodak FlashPiX bitmap image).
ATTENTION : MAPLE effectue un codage des images ("lisible" en ASCII ; voir
ventuellement 8.4.4) et toutes les informations qui les dfinissent seront incluses dans la
feuille de calcul. Il en rsulte qu'il faut tre trs attentif ne pas insrer des images de grandes
tailles ou haute dfinition, sous peine de voir le fichier de la feuille de calcul prendre une
taille ingrable et des temps de sauvegarde et d'auto-sauvegarde (voir 8.4.2) trs longs... !
Pour pallier les carences des outils de dessin de MAPLE, il est aussi possible d'importer
des graphiques construits avec un autre logiciel (ci-dessous xfig) et utiliser, par
superposition, les possibilits graphiques de MAPLE et surtout l'criture mathmatique (voir
chapitre 16) qui est souvent absente des logiciels de dessin.

f z dz = 0
C

W
C

6. Des feuilles de tableur avec le menu Insert/Spreadsheet... La gestion se fait par le menu
Spreadsheet et/ou par un clic droit sur la feuille de tableur et qui fait apparatre un menu
contextuel. L'exemple montre des calculs symboliques, mais les tableurs grent, bien entendu,
aussi les calculs numriques. On peut voir en D1 un exemple de construction avec une
rfrence la cellule A1 et note ~A1 (l'expression est une intgration double, voir chapitre
10). La colonne D peut ensuite tre remplie automatiquement (menu Spreadsheet/Fill
[Feuille de calcul/Remplir]) pour tablir les mmes calculs pour tous les Ai .

On se reportera pour tous les dtails l'aide en ligne


72

O ?SpreadSheet
7. Des tables que l'on introduit avec le menu Insert/Table... et que l'on gre simplement avec
le menu Table. Pour tous les dtails on se reportera l'aide en ligne
O ?worksheet/documenting/table
Attention : > ? table renvoie un autre concept (voir Ch. 5).
Fonctions

Primitives

x n , n sK1

xn C 1
C Cte
nC1

1
x

ln x C Cte

...

...

Remarques propos des tables :


a) On peut agir l'intrieur de chaque cellule comme dans une feuille de calcul (les
cellules sont ouvertes dans le mode Document ou Worksheet, le mme que celui de la feuille
de calcul) On peut introduire tout type d'lment dans les cellules : des blocks, des groupes,
des graphiques, des tracs de courbes, images, etc., y compris d'autres tables.
b) Les encadrs que l'on trouve dans le texte de ce manuel ne sont que des tables une
colonne et une ligne...
c) Une table peut aussi permettre d'effectuer des mises en forme de textes, d'illustrations
ou d'applications interface graphique ( 8.4.8.4-3a). La premire partie du texte sur
l'intgration ci-dessous qui accole du texte (colonne de gauche) avec un graphique est
obtenue avec une table une ligne et deux colonnes pour laquelle, l'aide du menu
Table/Properties... [Proprits...], on a supprim les bordures intrieures et extrieures
(Exterior Borders et Interior Borders mis None). Le dessin a pour base une commande
plot pour tracer la courbe (options color=black, axes=none ; voir Ch. 16) introduite dans la
case de droite. Cette commande a t masque en dcochant l'option Show input [Afficher
l'entre] toujours dans la fentre du menu Table/Properties... Le graphique a ensuite t
illustr avec les outils de dessin comme indiqu au Ch. 16, Annexe 1. Les intgrales et les
formules ont t crites en utilisant les gabarits de la palette Expression et la lettre A avec la
palette "Script" .
Si la feuille doit tre imprime, il est recommand de suivre la recette de mise en page
indique au 8.4.6.
_____________________________________________________________________
Ce texte est une illustration de la dernire des remarques faites propos des tables
( 8.4.8.4-7.c)

Intgrale : aire algbrique et aire gomtrique


L'intgrale d'une fonction f est une
mesure algbrique de l'aire situe entre
la courbe reprsentative de la fonction
73

et l'axe des abscisses. Avec les


notations du dessin ci-contre on crit,
en utilisant la relation de Chasles
b

f x dx =
a

f x dx = A C K AK

A+
a

A-

f x dx C
a

f x dx
c

Chacune des intgrales est une mesure


algbrique de l'aire correspondante
c
a

f x dx = A C O 0

et
c

f x dx = AK! 0

Si l'on souhaite calculer l'aire gomtrique entre a et b on crira donc, toujours avec le schma de principe
du dessin ci dessus
c

A=

f x dxK f x dx
a

_____________________________________________________________________

74

75

You might also like