Professional Documents
Culture Documents
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.
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
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.
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.
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.
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.
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)
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 =
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
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,
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)
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.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)
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)
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)
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)
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).
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)
evalhf
t % ;
%% K evalf 18
3 2
7
12.6060915267313
HFloat
0.
12 C
(5.2.3.2.27)
evalf 18
7
12.6060915267313
...mais le calcul prcdent est plus rapide.
(5.2.3.2.29)
evalhf 2
7
;
12.6060915265714
(5.2.3.2.30)
(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)
2
3 3 K4
1.196152424
(5.3.3)
, 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
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
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)
(5.6.17)
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)
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 :
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
(5.8.2.3)
(5.8.2.4)
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
, I eKz
(6.14)
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)
(6.19)
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)
(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
(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
K1, 1
(6.36)
1, K1
(6.37)
2 I
(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)
(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)
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)
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)
(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
(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.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;
`ϕ`;
f
4
(8.1.6)
O `ϑ` - 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)
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 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
(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.
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
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)).
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).
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...!).
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.
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)
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
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
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
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).
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...
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
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".
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;
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
-------------------------------------------------------------------------------------------------------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
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 .
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
...
...
f x dx =
a
f x dx = A C K AK
A+
a
A-
f x dx C
a
f x dx
c
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