P. 1
UtiliserMaple8

UtiliserMaple8

|Views: 601|Likes:
Published by tchombino

More info:

Published by: tchombino on Jun 02, 2011
Copyright:Attribution Non-commercial

Availability:

Read on Scribd mobile: iPhone, iPad and Android.
download as PDF, TXT or read online from Scribd
See more
See less

12/12/2011

pdf

text

original

Sections

  • 1 Introduction `a Maple
  • 1.1 Les autres manuels
  • 2 Math´ematiques de base avec Maple
  • 2.1 Introduction
  • 2.2 Calculs num´eriques
  • Calculs sur des entiers
  • Arithm´etique exacte – Rationnels, irrationnels et constantes
  • Approximations `a virgule flottante
  • Arithm´etique avec des nombres sp´eciaux
  • Fonctions math´ematiques
  • 2.3 Calculs symboliques de base
  • 2.4 Affecter des noms `a des expressions
  • 2.5 Les principaux types d’objets Maple
  • Les suites d’expressions
  • Les listes
  • Les ensembles
  • Les op´erations sur les ensembles et les listes
  • Les tableaux
  • Les tables
  • 2.6 La manipulation d’expressions
  • La commande simplify
  • La commande factor
  • La commande expand
  • La commande convert
  • La commande normal
  • La commande combine
  • La commande map
  • Les commandes lhs et rhs
  • Les commandes numer et denom
  • Les commandes nops et op
  • Questions courantes sur la manipulation d’expressions
  • 2.7 Conclusion
  • 3 Trouver des solutions
  • 3.1 R´esolution au moyen de solve
  • V´erifier les solutions
  • Restreindre les solutions
  • Explorer les solutions
  • La commande unapply
  • La commande assign
  • La commande RootOf
  • 3.2 R´esoudre num´eriquement : fsolve
  • Les limites de solve
  • 3.3 D’autres solveurs
  • Trouver des solutions enti`eres
  • Trouver des solutions modulo m
  • R´esoudre des relations de r´ecurrence
  • Tri et regroupement
  • Op´erations math´ematiques
  • Coefficients et degr´es
  • Recherche de racines et factorisation
  • 3.5 Le calcul diff´erentiel
  • 3.6 Les ´equations diff´erentielles : dsolve
  • 3.7 L’organisation de Maple
  • 3.8 Les packages Maple
  • Liste des packages
  • Le package Student Calculus1 (une variable)
  • Le package LinearAlgebra
  • Le package Matlab
  • Le package Statistics
  • Le package d’optimisation lin´eaire
  • 3.9 Conclusion
  • 4 Tracer des graphiques
  • 4.1 Graphiques en deux dimensions
  • Les graphiques param´etriques
  • Les coordonn´ees polaires
  • Les fonctions discontinues
  • Graphiques multiples
  • Tracer des points
  • Raffiner des graphiques
  • 4.2 Graphiques en trois dimensions
  • Les coordonn´ees sph´eriques
  • Les coordonn´ees cylindriques
  • Mod`eles de coloriage et d’´eclairage
  • 4.3 L’animation
  • L’animation en deux dimensions
  • L’animation en trois dimensions
  • 4.4 Annoter des graphiques
  • 4.5 Les graphiques composites
  • Placer du texte dans les graphiques
  • 4.6 Quelques graphiques particuliers
  • 4.7 Manipuler des objets graphiques
  • 4.8 Code des graphiques des planches en couleurs
  • 4.9 Conclusion
  • 5 L’´evaluation et la simplification
  • 5.1 Manipulations math´ematiques
  • D´evelopper des polyn omes en sommes
  • Regrouper les coefficients de m eme degr´e
  • Factoriser des polyn omes et des fonctions rationnelles
  • Supprimer des exposants rationnels
  • Combiner des termes
  • Forme normale factoris´ee
  • Simplifier des expressions
  • Simplification avec des hypoth`eses
  • Simplification au moyen des relations accessoires
  • Trier des expressions alg´ebriques
  • Conversion entre diff´erentes formes
  • 5.2 Les hypoth`eses
  • La commande assume
  • La commande assuming
  • 5.3 Manipulations structurelles
  • Appliquer une fonction `a une liste ou un ensemble
  • Choisir des ´el´ements dans une liste ou un ensemble
  • Combiner deux listes
  • Trier des listes
  • Les parties d’une expression
  • La substitution
  • Changer le type d’une expression
  • 5.4 Les r`egles d’´evaluation
  • Niveaux d’´evaluation
  • ´Evaluation du dernier nom
  • ´Evaluation `a un niveau
  • Commandes avec des r`egles sp´eciales d’´evaluation
  • Emp echer l’´evaluation d’une expression
  • Concat´enation de noms
  • 5.5 Conclusion
  • 6 Exemples tir´es du calcul diff´erentiel
  • 6.1 Calcul diff´erentiel ´el´ementaire
  • La d´eriv´ee
  • Une approximation de Taylor
  • L’int´egrale
  • l’int´egrale
  • D´eriv´ees partielles mixtes
  • 6.2 ´Equations diff´erentielles ordinaires
  • La commande dsolve
  • Un exemple : les s´eries de Taylor
  • Lorsqu’une solution explicite est impossible `a trouver
  • Tracer le graphique d’´equations diff´erentielles ordinaires
  • Coefficients discontinus d’une ´equation
  • 6.3 ´Equations aux d´eriv´ees partielles
  • La commande pdsolve
  • Changer la variable d´ependante dans une EDP
  • Tracer le graphique d’´equations aux d´eriv´ees partielles
  • 6.4 Conclusion
  • 7 Entr´ees et sorties
  • 7.1 Lire des fichiers
  • Lire des colonnes de nombres depuis un fichier
  • Lire des commandes depuis un fichier
  • 7.2 ´Ecrire des donn´ees dans un fichier
  • ´Ecrire des colonnes de donn´ees num´eriques dans un fichier
  • Sauvegarder des expressions au format interne de Maple
  • Convertir au format LA
  • 7.3 Exporter des feuilles compl`etes
  • Texte
  • Texte Maple
  • LATEX
  • HTML et HTML avec MathML
  • Listes d´eroulantes
  • La barre d’espacement et la touche TAB

Utiliser

Maple 8
Inspir´e du travail de B.W. Char
Traduit de l’anglais par Sylvain Hall´e
c ( 2002 Waterloo Maple Inc.
ii •
Waterloo Maple Inc.
57 Erb Street West
Waterloo, ON N2L 6C2
Canada
Maple et Maple 8 sont des marques d´epos´ees de Waterloo Maple Inc.
c ( 2002, 2001, 2000, 1998, 1996 Waterloo Maple Inc.
Tous droits r´eserv´es. La reproduction ou la traduction, mˆeme partielle,
par quelque proc´ed´e que ce soit, est interdite sans l’autorisation ´ecrite du
d´etenteur des droits d’auteur, ` a l’exception de courts extraits en rapport
avec un compte rendu ou une analyse savante. L’utilisation en relation
avec quelque forme de stockage et de recherche d’information, d’adapta-
tion ´electronique, de logiciel d’ordinateur, ou avec toute autre m´ethode
semblable ou diff´erente, connue ou conue ult´erieurement, est interdite.
L’utilisation de noms descriptifs g´en´eraux, de noms d´epos´es, de
marques de commerce, etc., dans la pr´esente publication, mˆeme s’ils ne
sont pas express´ement d´esign´es, n’est pas une indication que de tels noms,
en vertu de la Loi sur les marques de commerce, peuvent cons´equemment
ˆetre librement employ´es par quiconque.
Imprim´e au Canada
ISBN 1-894511-33-6
Table des mati`eres
1 Introduction `a Maple 1
1.1 Les autres manuels . . . . . . . . . . . . . . . . . . . . . . 3
2 Math´ematiques de base avec Maple 5
2.1 Introduction . . . . . . . . . . . . . . . . . . . . . . . . . . 5
2.2 Calculs num´eriques . . . . . . . . . . . . . . . . . . . . . . 7
Calculs sur des entiers . . . . . . . . . . . . . . . . . . . . 7
Arithm´etique exacte – Rationnels, irrationnels et constantes 9
Approximations ` a virgule flottante . . . . . . . . . . . . . 12
Arithm´etique avec des nombres sp´eciaux . . . . . . . . . . 14
Fonctions math´ematiques . . . . . . . . . . . . . . . . . . 15
2.3 Calculs symboliques de base . . . . . . . . . . . . . . . . . 16
2.4 Affecter des noms ` a des expressions . . . . . . . . . . . . . 18
2.5 Les principaux types d’objets Maple . . . . . . . . . . . . 20
Les suites d’expressions . . . . . . . . . . . . . . . . . . . 20
Les listes . . . . . . . . . . . . . . . . . . . . . . . . . . . . 22
Les ensembles . . . . . . . . . . . . . . . . . . . . . . . . . 23
Les op´erations sur les ensembles et les listes . . . . . . . . 25
Les tableaux . . . . . . . . . . . . . . . . . . . . . . . . . 26
Les tables . . . . . . . . . . . . . . . . . . . . . . . . . . . 30
Les chaˆınes . . . . . . . . . . . . . . . . . . . . . . . . . . 31
2.6 La manipulation d’expressions . . . . . . . . . . . . . . . . 32
La commande simplify . . . . . . . . . . . . . . . . . . . 33
La commande factor . . . . . . . . . . . . . . . . . . . . 34
La commande expand . . . . . . . . . . . . . . . . . . . . 34
La commande convert . . . . . . . . . . . . . . . . . . . . 35
La commande normal . . . . . . . . . . . . . . . . . . . . 37
La commande combine . . . . . . . . . . . . . . . . . . . . 37
La commande map . . . . . . . . . . . . . . . . . . . . . . 38
Les commandes lhs et rhs . . . . . . . . . . . . . . . . . 39
iii
iv • Table des mati`eres
Les commandes numer et denom . . . . . . . . . . . . . . . 39
Les commandes nops et op . . . . . . . . . . . . . . . . . 40
Questions courantes sur la manipulation d’expressions . . 41
2.7 Conclusion . . . . . . . . . . . . . . . . . . . . . . . . . . 43
3 Trouver des solutions 45
3.1 R´esolution au moyen de solve . . . . . . . . . . . . . . . 45
V´erifier les solutions . . . . . . . . . . . . . . . . . . . . . 47
Restreindre les solutions . . . . . . . . . . . . . . . . . . . 49
Explorer les solutions . . . . . . . . . . . . . . . . . . . . . 50
La commande unapply . . . . . . . . . . . . . . . . . . . . 51
La commande assign . . . . . . . . . . . . . . . . . . . . 53
La commande RootOf . . . . . . . . . . . . . . . . . . . . 55
3.2 R´esoudre num´eriquement : fsolve . . . . . . . . . . . . . 56
Les limites de solve . . . . . . . . . . . . . . . . . . . . . 57
3.3 D’autres solveurs . . . . . . . . . . . . . . . . . . . . . . . 60
Trouver des solutions enti`eres . . . . . . . . . . . . . . . . 60
Trouver des solutions modulo m . . . . . . . . . . . . . . 60
R´esoudre des relations de r´ecurrence . . . . . . . . . . . . 61
3.4 Les polynˆ omes . . . . . . . . . . . . . . . . . . . . . . . . 61
Tri et regroupement . . . . . . . . . . . . . . . . . . . . . 62
Op´erations math´ematiques . . . . . . . . . . . . . . . . . 64
Coefficients et degr´es . . . . . . . . . . . . . . . . . . . . . 65
Recherche de racines et factorisation . . . . . . . . . . . . 65
3.5 Le calcul diff´erentiel . . . . . . . . . . . . . . . . . . . . . 67
3.6 Les ´equations diff´erentielles : dsolve . . . . . . . . . . . . 73
3.7 L’organisation de Maple . . . . . . . . . . . . . . . . . . . 79
3.8 Les packages Maple . . . . . . . . . . . . . . . . . . . . . . 81
Liste des packages . . . . . . . . . . . . . . . . . . . . . . 81
Le package Student Calculus1 (une variable) . . . . . . . . 86
Le package LinearAlgebra . . . . . . . . . . . . . . . . . . 91
Le package Matlab . . . . . . . . . . . . . . . . . . . . . . 93
Le package Statistics . . . . . . . . . . . . . . . . . . . . . 94
Le package d’optimisation lin´eaire . . . . . . . . . . . . . 97
3.9 Conclusion . . . . . . . . . . . . . . . . . . . . . . . . . . 99
4 Tracer des graphiques 101
4.1 Graphiques en deux dimensions . . . . . . . . . . . . . . . 101
Les graphiques param´etriques . . . . . . . . . . . . . . . . 103
Les coordonn´ees polaires . . . . . . . . . . . . . . . . . . . 105
Les fonctions discontinues . . . . . . . . . . . . . . . . . . 108
Table des mati`eres • v
Graphiques multiples . . . . . . . . . . . . . . . . . . . . . 111
Tracer des points . . . . . . . . . . . . . . . . . . . . . . . 113
Raffiner des graphiques . . . . . . . . . . . . . . . . . . . 115
4.2 Graphiques en trois dimensions . . . . . . . . . . . . . . . 116
Les graphiques param´etriques . . . . . . . . . . . . . . . . 118
Les coordonn´ees sph´eriques . . . . . . . . . . . . . . . . . 119
Les coordonn´ees cylindriques . . . . . . . . . . . . . . . . 121
Raffiner des graphiques . . . . . . . . . . . . . . . . . . . 123
Mod`eles de coloriage et d’´eclairage . . . . . . . . . . . . . 124
4.3 L’animation . . . . . . . . . . . . . . . . . . . . . . . . . . 125
L’animation en deux dimensions . . . . . . . . . . . . . . 125
L’animation en trois dimensions . . . . . . . . . . . . . . . 128
4.4 Annoter des graphiques . . . . . . . . . . . . . . . . . . . 129
4.5 Les graphiques composites . . . . . . . . . . . . . . . . . . 132
Placer du texte dans les graphiques . . . . . . . . . . . . . 134
4.6 Quelques graphiques particuliers . . . . . . . . . . . . . . 135
4.7 Manipuler des objets graphiques . . . . . . . . . . . . . . 140
4.8 Code des graphiques des planches en couleurs . . . . . . . 145
4.9 Conclusion . . . . . . . . . . . . . . . . . . . . . . . . . . 147
5 L’´evaluation et la simplification 149
5.1 Manipulations math´ematiques . . . . . . . . . . . . . . . . 149
D´evelopper des polynˆ omes en sommes . . . . . . . . . . . 150
Regrouper les coefficients de mˆeme degr´e . . . . . . . . . . 152
Factoriser des polynˆ omes et des fonctions rationnelles . . 154
Supprimer des exposants rationnels . . . . . . . . . . . . . 157
Combiner des termes . . . . . . . . . . . . . . . . . . . . . 158
Forme normale factoris´ee . . . . . . . . . . . . . . . . . . 159
Simplifier des expressions . . . . . . . . . . . . . . . . . . 161
Simplification avec des hypoth`eses . . . . . . . . . . . . . 163
Simplification au moyen des relations accessoires . . . . . 163
Trier des expressions alg´ebriques . . . . . . . . . . . . . . 164
Conversion entre diff´erentes formes . . . . . . . . . . . . . 166
5.2 Les hypoth`eses . . . . . . . . . . . . . . . . . . . . . . . . 168
La commande assume . . . . . . . . . . . . . . . . . . . . 168
La commande assuming . . . . . . . . . . . . . . . . . . . 172
5.3 Manipulations structurelles . . . . . . . . . . . . . . . . . 173
Appliquer une fonction ` a une liste ou un ensemble . . . . 174
Choisir des ´el´ements dans une liste ou un ensemble . . . . 176
Combiner deux listes . . . . . . . . . . . . . . . . . . . . . 178
Trier des listes . . . . . . . . . . . . . . . . . . . . . . . . 179
vi • Table des mati`eres
Les parties d’une expression . . . . . . . . . . . . . . . . . 182
La substitution . . . . . . . . . . . . . . . . . . . . . . . . 190
Changer le type d’une expression . . . . . . . . . . . . . . 193
5.4 Les r`egles d’´evaluation . . . . . . . . . . . . . . . . . . . . 196
Niveaux d’´evaluation . . . . . . . . . . . . . . . . . . . . . 196
´
Evaluation du dernier nom . . . . . . . . . . . . . . . . . 197
´
Evaluation ` a un niveau . . . . . . . . . . . . . . . . . . . . 200
Commandes avec des r`egles sp´eciales d’´evaluation . . . . . 200
Empˆecher l’´evaluation d’une expression . . . . . . . . . . 201
Utiliser les variables entour´ees de guillemets comme argu-
ments de fonctions . . . . . . . . . . . . . . . . . . 204
Concat´enation de noms . . . . . . . . . . . . . . . . . . . 205
5.5 Conclusion . . . . . . . . . . . . . . . . . . . . . . . . . . 207
6 Exemples tir´es du calcul diff´erentiel 209
6.1 Calcul diff´erentiel ´el´ementaire . . . . . . . . . . . . . . . . 209
La d´eriv´ee . . . . . . . . . . . . . . . . . . . . . . . . . . . 209
Une approximation de Taylor . . . . . . . . . . . . . . . . 215
L’int´egrale . . . . . . . . . . . . . . . . . . . . . . . . . . . 227
D´eriv´ees partielles mixtes . . . . . . . . . . . . . . . . . . 231
6.2
´
Equations diff´erentielles ordinaires . . . . . . . . . . . . . 235
La commande dsolve . . . . . . . . . . . . . . . . . . . . 236
Un exemple : les s´eries de Taylor . . . . . . . . . . . . . . 251
Lorsqu’une solution explicite est impossible ` a trouver . . . 255
Tracer le graphique d’´equations diff´erentielles ordinaires . 256
Coefficients discontinus d’une ´equation . . . . . . . . . . . 261
6.3
´
Equations aux d´eriv´ees partielles . . . . . . . . . . . . . . 266
La commande pdsolve . . . . . . . . . . . . . . . . . . . . 266
Changer la variable d´ependante dans une EDP . . . . . . 268
Tracer le graphique d’´equations aux d´eriv´ees partielles . . 269
6.4 Conclusion . . . . . . . . . . . . . . . . . . . . . . . . . . 271
7 Entr´ees et sorties 273
7.1 Lire des fichiers . . . . . . . . . . . . . . . . . . . . . . . . 273
Lire des colonnes de nombres depuis un fichier . . . . . . 274
Lire des commandes depuis un fichier . . . . . . . . . . . . 276
7.2
´
Ecrire des donn´ees dans un fichier . . . . . . . . . . . . . 278
´
Ecrire des colonnes de donn´ees num´eriques dans un fichier 278
Sauvegarder des expressions au format interne de Maple . 279
Convertir au format L
A
T
E
X . . . . . . . . . . . . . . . . . . 280
7.3 Exporter des feuilles compl`etes . . . . . . . . . . . . . . . 282
Table des mati`eres • vii
Texte . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 282
Texte Maple . . . . . . . . . . . . . . . . . . . . . . . . . . 283
L
A
T
E
X . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 284
HTML et HTML avec MathML . . . . . . . . . . . . . . . 285
RTF . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 287
XML . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 288
7.4 Imprimer des graphiques . . . . . . . . . . . . . . . . . . . 288
7.5 Conclusion . . . . . . . . . . . . . . . . . . . . . . . . . . 290
8 Les maplets 291
8.1 Exemple de maplet . . . . . . . . . . . . . . . . . . . . . . 291
8.2 Terminologie . . . . . . . . . . . . . . . . . . . . . . . . . 292
8.3 Comment d´emarrer le package Maplets . . . . . . . . . . 293
8.4 Comment appeler une maplet ` a partir d’une feuille Maple 293
8.5 Comment fermer une maplet . . . . . . . . . . . . . . . . 294
8.6 Comment utiliser les Maplets et la fenˆetre Maple (modalit´e)294
8.7 Comment activer la fenˆetre d’une maplet . . . . . . . . . 294
8.8 Comment arrˆeter puis red´emarrer une maplet . . . . . . . 295
8.9 Comment utiliser les raccourcis de l’interface graphique . 295
Listes d´eroulantes . . . . . . . . . . . . . . . . . . . . . . . 295
La barre d’espacement et la touche Tab . . . . . . . . . . 295
8.10 Conclusion . . . . . . . . . . . . . . . . . . . . . . . . . . 296
1 Introduction `a Maple
On appelle le logiciel Maple un syst`eme de calcul symbolique, ´evoquant
ainsi sa capacit´e `a manipuler l’information de mani`ere symbolique ou
alg´ebrique. En effet, contrairement aux logiciels math´ematiques stan-
dard, qui requi`erent des valeurs num´eriques pour toutes leurs variables,
Maple, tout en demeurant capable d’´evaluer des expressions num´eriques,
sait ´egalement manipuler les expressions et les symboles sous-jacents.
Cette capacit´e symbolique permet ` a Maple de calculer des solutions
analytiques exactes ` a de nombreux probl`emes math´ematiques incluant
syst`emes d’´equations, int´egrales, ´equations diff´erentielles et probl`emes
d’alg`ebre lin´eaire. En compl´ement ` a ces op´erations symboliques, une vaste
gamme de routines graphiques facilite la visualisation de donn´ees math´e-
matiques complexes ; des algorithmes num´eriques fournissent des r´eponses
approxim´ees aux probl`emes ne poss´edant pas de solution exacte, et un lan-
gage de programmation complet et accessible permet le d´eveloppement sur
mesure de nouvelles fonctions et applications.
On acc`ede facilement ` a l’´etendue des fonctions math´ematiques de
Maple par son interface graphique prenant la forme de feuilles (work-
sheets). Une feuille est un document flexible permettant d’explorer des
id´ees math´ematiques et de cr´eer des rapports complexes.
Les utilisateurs de Maple ont trouv´e plusieurs mani`eres d’utiliser son
langage et ses feuilles.
Les ing´enieurs et les professionnels dans des industries aussi vari´ees
que l’agriculture et l’a´erospatiale utilisent Maple comme un outil puissant
rempla¸ cant `a la fois leurs manuels de r´ef´erence, leurs calculatrices, leurs
chiffriers et mˆeme leurs langages de programmation tel FORTRAN. Ces
utilisateurs gagnent en rapidit´e dans la r´esolution de probl`emes math´e-
matiques courants et consignent les r´esultats de leurs calculs dans des
rapports techniques professionnels.
Les chercheurs de plusieurs domaines consid`erent ´egalement Maple
comme un outil essentiel ` a leur travail. Maple est en effet tout indiqu´e pour
1
2 • Chapitre 1: Introduction `a Maple
la formulation, la r´esolution et l’exploration de mod`eles math´ematiques.
Son caract`ere symbolique ´elargit grandement l’´eventail des probl`emes
qu’ils peuvent ainsi traiter.
Les professeurs emploient Maple en classe, ravivant l’enseignement
traditionnel au coll`ege et ` a l’universit´e en introduisant des probl`emes
et des exercices qui exploitent l’interactivit´e du logiciel. Plutˆ ot que de
s’astreindre ` a des manipulations alg´ebriques fastidieuses, leurs ´etudiants
peuvent ainsi se concentrer sur les concepts fondamentaux.
Chacun utilise Maple d’une mani`ere toute personnelle selon ses be-
soins ; cependant, deux grandes cat´egories d’utilisation dominent.
La premi`ere cat´egorie consiste en l’utilisation de Maple comme d’un
environnement interactif de r´esolution de probl`emes. Traditionnellement,
lorsqu’on travaille sur un probl`eme, l’essai d’une m´ethode de r´esolution
n´ecessite parfois plusieurs heures et plusieurs pages. Maple permet ` a son
utilisateur de se concentrer sur de beaucoup plus grands probl`emes en
le lib´erant d’erreurs m´ecaniques ; son interface documente les ´etapes de
sa recherche d’une solution. Elle permet aussi de modifier ais´ement l’une
de ces ´etapes, ou mˆeme d’en ins´erer une nouvelle. Que ce soit pour le
d´eveloppement d’un nouveau mod`ele math´ematique ou pour l’analyse
d’une strat´egie financi`ere, il est possible d’en apprendre beaucoup sur
un probl`eme, facilement et efficacement.
La seconde cat´egorie utilise Maple en tant que syst`eme de cr´eation
de documents techniques. Il est en effet possible de cr´eer des documents
interactifs, structur´es et dynamiques ou de modifier une ´equation et d’ac-
tualiser sa solution automatiquement. Le langage math´ematique naturel
de Maple facilite l’entr´ee des ´equations, et permet le calcul et le trac´e
de graphiques sur demande. De plus, les documents Maple peuvent ˆetre
structur´es en utilisant des outils modernes tels les styles, la division en
sous-sections et les hyperliens, cr´eant ainsi des feuilles qui sont non seule-
ment claires et faciles ` a cr´eer, mais ´egalement faciles ` a mettre ` a jour.
Puisque les composantes des feuilles sont directement associ´ees ` a la struc-
ture du document, il est facile de les traduire en d’autres formats comme
L
A
T
E
X, RTF ou HTML.
Plusieurs types de documents peuvent profiter des caract´eristiques
des feuilles Maple. Ces caract´eristiques facilitent la r´edaction de rapports
ou mˆeme d’ouvrages math´ematiques et sont aussi appropri´ees pour la
cr´eation et la pr´esentation d’expos´es. Par exemple, la division en sous-
sections cache des sections arides et riches en d´etails qui peuvent ˆetre
distrayantes aux yeux de l’observateur ; les styles font clairement ressortir
les mots cl´es et les titres ; les hyperliens autorisent la cr´eation de r´ef´erences
dynamiques qui am`enent le lecteur aux pages renfermant de l’information
1.1 Les autres manuels • 3
compl´ementaire. Enfin, la nature interactive de Maple permet de calcu-
ler et de r´epondre ` a des questions durant une pr´esentation. On peut ainsi
clairement et efficacement d´emontrer pourquoi une m´ethode de r´esolution
a priori acceptable s’av`ere en fait inappropri´ee, ou pourquoi une modifi-
cation ` a un processus de manufacturation entraˆıne des pertes ou engendre
des profits.
Ce livre constitue votre introduction ` a Maple. Il discute syst´emati-
quement des concepts cl´es et construit un cadre d’apprentissage qui vous
guidera dans votre utilisation de l’interface et du langage Maple. Ce ma-
nuel vous donnera un aper¸ cu des fonctionnalit´es de Maple, d´ecrivant ` a
la fois ses capacit´es symboliques et num´eriques, et introduisant les ob-
jets Maple, les commandes et les m´ethodes mises ` a votre disposition. Une
attention particuli`ere est plac´ee non seulement sur la recherche de solu-
tions, mais ´egalement sur le trac´e de graphiques, la cr´eation d’animations
et l’exportation de feuilles en d’autres formats. Plus important encore,
il pr´esente la philosophie et les m´ethodes d’utilisation sugg´er´ees par les
concepteurs du syst`eme. Ces quelques concepts simples vous permettront
d’utiliser Maple ` a son meilleur.
Consid´erez ce livre d’abord comme un guide ; l’aide en ligne consti-
tuera votre manuel de r´ef´erence. En effet, puisque l’on peut y rechercher
de l’information de plusieurs mani`eres et qu’il se trouve toujours acces-
sible, le syst`eme d’aide de Maple se r´ev`ele plus pratique que tout autre
texte traditionnel. Vous trouverez ´egalement des exemples que vous pou-
vez copier, coller et ex´ecuter imm´ediatement.
1.1 Les autres manuels
Trois autres manuels (en anglais) d´ecrivent le fonctionnement de Maple :
le Guide de prise en main (Maple 8 Getting Started Guide), le Guide
d’introduction ` a la programmation (Maple 8 Introductory Program-
ming Guide) et le Guide de programmation avanc´ee (Maple 8 Advanced
Programming Guide)
1
.
Le Guide de prise en main (Getting Started Guide) contient une
introduction ` a l’interface graphique et un tutoriel r´esumant l’utilisation
1
La version ´etudiante n’inclut pas les deux guides de programmation. Ces guides
peuvent toutefois etre achet´es chez des libraires sp´ecialis´es ou directement aupr`es de
Waterloo Maple Inc.
4 • Chapitre 1: Introduction `a Maple
de Maple pour r´esoudre des probl`emes math´ematiques et cr´eer des do-
cuments techniques.
`
A l’int´erieur, vous y trouverez de l’information sup-
pl´ementaire ` a l’intention des nouveaux utilisateurs au sujet du syst`eme
d’aide en ligne, sur le tour guid´e du logiciel (New User’s Tour), sur
les exemples de feuilles de travail ainsi que sur le site Web de Waterloo
Maple.
Le Guide d’introduction ` a la programmation (Introductory Program-
ming Guide) pr´esente les concepts fondamentaux de la programmation
sous Maple : les expressions, les structures de donn´ees, les boucles et les
m´ecanismes de d´ecision, les proc´edures, les entr´ees-sorties, le d´ebogage et
les Maplets.
Enfin, le Guide de programmation avanc´ee (Advanced Programming
Guide) couvre des concepts de programmation comme les modules, les
entr´ees-sorties, la programmation num´erique, les graphiques et le code
compil´e.
2 Math´ematiques de base
avec Maple
Ce chapitre commence par une discussion ` a propos des calculs num´eriques
exacts avec Maple, qui diff`erent l´eg`erement de ceux effectu´es par d’autres
applications. Des renseignements sur les calculs symboliques de base et les
commandes d’affectation suivent. Les deux derni`eres sections ´enoncent les
principaux types d’objets de base et donnent des instructions concernant
la manipulation d’objets et les commandes les plus utiles ` a cet ´egard.
Vous tirerez le meilleur parti de ce livre en utilisant votre ordinateur
pour esssayer les diff´erents exemples que vous rencontrerez au fil de votre
lecture. Ce chapitre explique les commandes n´ecessaires pour commencer
`a travailler. Les chapitres subs´equents donneront ` a ces commandes ainsi
qu’` a d’autres un traitement plus approfondi.
Si vous souhaitez comprendre davantage les rouages du syst`eme
Maple, vous pouvez utiliser le syst`eme d’aide en ligne. Pour obtenir de
l’aide ` a propos d’une commande, tapez simplement ` a l’invite Maple un
point d’interrogation (?) suivi du nom de la commande ou, dans d’autres
cas, du sujet sur lequel vous souhaitez obtenir plus d’information.
?commande
2.1 Introduction
Les calculs les plus simples dans Maple sont num´eriques. Maple peut
fonctionner comme une calculatrice traditionnelle avec les entiers et les
5
6 • Chapitre 2: Math´ematiques de base avec Maple
nombres ` a virgule flottante. Entrez l’expression en utilisant la syntaxe
naturelle
1
. Un point-virgule indique la fin de chaque calcul.
>
1 + 2;
3
>
1 + 3/2;
5
2
>
2*(3+1/3)/(5/3-4/5);
100
13
>
2.8754/2;
1.437700000
Bien entendu, Maple peut faire beaucoup plus, comme vous pourrez
le voir bientˆ ot.
Pour le moment, consid´erez cet exemple simple.
>
1 + 1/2;
3
2
Remarquez que Maple effectue des calculs exacts avec des nombres
rationnels. Le r´esultat de 1 + 1/2 est 3/2, et non 1.5. Pour Maple, le
nombre rationnel 3/2 et son approximation d´ecimale 1.5 sont deux objets
compl`etement diff´erents.
La possibilit´e de repr´esenter des expressions de mani`ere exacte permet
`a Maple de pr´eserver beaucoup plus d’information ` a propos de leur origine
et de leur structure. Par exemple, l’origine et la structure d’un nombre
comme
1
N.d.t. : Le logiciel Maple utilise la syntaxe anglo-saxonne pour la repr´esentation
des nombres d´ecimaux. C’est donc le point, et non la virgule, qu’il faut utiliser pour
saisir de tels nombres.
2.2 Calculs num´eriques • 7
0.5235987758
est beaucoup moins ´evidente que pour une quantit´e exacte comme
1
6
π
Lorsque vous commencerez ` a travailler avec des expressions plus com-
plexes, l’avantage en sera d’autant plus grand.
Maple peut travailler non seulement avec des nombres rationnels,
mais ´egalement avec des expressions arbitraires. Il peut manipuler les
entiers, les nombres ` a virgule flottante, les variables, les ensembles, les
suites, les polynˆ omes sur un anneau ainsi que plusieurs autres construc-
tions math´ematiques. De plus, Maple est un langage de programmation
complet contenant des proc´edures, des tableaux et d’autres structures de
donn´ees.
2.2 Calculs num´eriques
Calculs sur des entiers
Les calculs sur des entiers sont directs. N’oubliez pas de terminer chaque
commande par un point-virgule.
>
1 + 2;
3
>
75 - 3;
72
>
5*3;
15
>
120/2;
60
8 • Chapitre 2: Math´ematiques de base avec Maple
Maple peut ´egalement travailler avec des nombres entiers arbitraire-
ment grands. La limite pratique sur les entiers est d’environ 2
28
chiffres,
en fonction principalement de la vitesse et des ressources de votre or-
dinateur. Maple n’´eprouve aucun probl`eme ` a calculer de grands entiers,
compter le nombre de chiffres d’un nombre ou factoriser des entiers. Pour
des nombres et d’autres types de donn´ees qui s’´etendent sur plus d’une
ligne ` a l’´ecran, Maple utilise le caract`ere (\) pour indiquer que le r´esultat
est continu. La barre oblique et la coupure de ligne doivent ˆetre ignor´ees.
>
100!;
933262154439441526816992388562667004907`
15968264381621468592963895217599993229`
91560894146397615651828625369792082722`
37582511852109168640000000000000000000`
00000
>
length(%);
158
La r´eponse indique le nombre de chiffres contenus dans le dernier
exemple. L’op´erateur idem (%) est tout simplement une notation abr´eg´ee
affichant le r´esultat pr´ec´edent. Pour rappeler le deuxi`eme ou le troisi`eme
r´esultat pr´ec´edent, utilisez respectivement %% et %%%.
>
ifactor(60);
(2)
2
(3) (5)
En plus de ifactor, Maple poss`ede plusieurs commandes pour tra-
vailler avec des entiers permettant le calcul du plus grand commun di-
viseur (PGCD) de deux entiers, la division euclidienne et les tests de
primalit´e. Consultez les exemples ci-dessous ainsi que la table 2.1.
>
igcd(123, 45);
3
>
iquo(25,3);
2.2 Calculs num´eriques • 9
Tab. 2.1 – Commandes op´erant sur des entiers
Fonction Description
abs valeur absolue d’une expression
factorial factorielle d’un entier
iquo quotient d’une division enti`ere
irem reste d’une division enti`ere
iroot racine enti`ere approxim´ee d’un entier
isqrt racine carr´ee enti`ere approxim´ee d’un entier
max, min maximum et minimum d’un ensemble d’entr´ees
mod arithm´etique modulo
surd racine r´eelle d’un entier
8
>
isprime(18002676583);
true
Arithm´etique exacte – Rationnels, irrationnels et constantes
Une propri´et´e importante de Maple est sa capacit´e `a effectuer l’arithm´e-
tique rationnelle exacte, et ainsi de travailler avec des nombres rationnels
(fractions) sans avoir ` a les r´eduire ` a leurs approximations d´ecimales.
>
1/2 + 1/3;
5
6
Maple g`ere les nombres rationnels et produit un r´esultat exact. La
distinction entre des r´esultats exacts et approximatifs est importante. La
facult´e d’effectuer des calculs exacts au moyen d’ordinateurs vous permet
de r´esoudre une toute nouvelle gamme de probl`emes.
Maple peut effecter des approximations en virgule flottante si n´eces-
saire. En fait, le logiciel peut travailler avec des nombres ` a virgule flottante
de plusieurs milliers de chiffres pour des estimations pr´ecises d’expressions
exactes.
>
Pi;
10 • Chapitre 2: Math´ematiques de base avec Maple
π
>
evalf(Pi, 100);
3.1415926535897932384626433832795028841`
97169399375105820974944592307816406286`
208998628034825342117068
Il est important d’apprendre comment Maple distingue les repr´esen-
tations exactes des valeurs de leurs approximations d´ecimales.
Voici un exemple de nombre rationnel (exact).
>
1/3;
1
3
Le nombre suivant est son approximation d´ecimale (avec une pr´ecision
par d´efaut de dix chiffres).
>
evalf(%);
0.3333333333
Ces r´esultats ne sont pas les mˆemes math´ematiquement, et ne sont
pas non plus les mˆemes pour Maple.
Chaque fois que vous entrez un nombre sous forme d´ecimale,
Maple le consid`ere comme une approximation ` a virgule flottante. En
fait, la pr´esence d’un nombre d´ecimal dans une expression force Maple ` a
produire un r´esultat en virgule flottante, puisqu’il ne peut ˆetre certain
de produire une solution exacte, mˆeme ` a partir de donn´ees partiellement
exactes.
>
3/2*5;
15
2
>
1.5*5;
7.5
2.2 Calculs num´eriques • 11
Ainsi, il est recommand´e de n’utiliser des nombres d´ecimaux que
lorsque vous souhaitez forcer Maple ` a travailler avec des expressions
non exactes.
Vous pouvez saisir des quantit´es exactes en utilisant la repr´esentation
symbolique, comme π, comparativement ` a 3.14. Maple traite les nombres
irrationnels comme des quantit´es exactes. Voici comment repr´esenter la
racine carr´ee de 2 dans Maple.
>
sqrt(2);

2
Voici un autre exemple de racine carr´ee.
>
sqrt(3)^2;
3
Maple connaˆıt les constantes arithm´etiques standard comme π et la
base des logarithmes naturels, e. Il travaille avec ces nombres comme avec
des quantit´es exactes.
>
Pi;
π
>
sin(Pi);
0
La fonction exponentielle est repr´esent´ee par la fonction Maple exp.
>
exp(1);
e
>
ln(exp(5));
5
Le deuxi`eme exemple peut paraˆıtre ´etrange. Souvenez-vous que
lorsque Maple produit une notation math´ematique

typographique

,
il essaie de repr´esenter les expressions math´ematiques de la mani`ere dont
12 • Chapitre 2: Math´ematiques de base avec Maple
vous les ´ecririez vous-mˆeme. Ainsi, vous entrez π comme Pi et Maple
l’affiche comme π.
Maple tient compte des majuscules et des minuscules ; soyez donc
certain de les respecter en faisant r´ef´erence ` a ces constantes. Les noms
Pi, pi et PI ne sont pas ´equivalents ! Les noms Pi et PI sont employ´es
pour afficher respectivement les lettres grecques minuscule et majuscule π
et Π. Pour obtenir davantage d’information sur les constantes de Maple,
tapez ?constants `a l’invite.
Approximations `a virgule flottante
Mˆeme si Maple pr´ef`ere travailler avec des valeurs exactes, il peut retour-
ner une approximation d´ecimale d’une longueur maximale de 2
38
chiffres
lorsque cela lui est demand´e.
Dix ou vingt chiffres exacts semblent ad´equats pour la plupart des
situations ; cependant, deux probl`emes particuliers limitent s´erieusement
l’utilit´e d’un tel syst`eme.
Tout d’abord, en soustrayant deux nombres d´ecimaux d’ordres de
grandeur presque identiques, l’erreur relative de la diff´erence peut ˆetre
tr`es grande : si chacun des deux nombres originaux sont identiques pour
leurs dix-sept premiers chiffres (sur vingt), leur diff´erence est un nombre
de vingt chiffres dont on ne connaˆıt que trois chiffres significatifs ! Dans
ce cas, une pr´ecision de quarante chiffres serait n´ecessaire pour obtenir en
fin de calcul un r´esultat pr´ecis ` a environ vingt chiffres significatifs.
Ensuite, la forme math´ematique d’un r´esultat est plus concise, com-
pacte et utile que sa valeur num´erique. Par exemple, une fonction expo-
nentielle fournit plus d’information sur la nature d’un ph´enom`ene qu’un
grand ensemble de nombres de vingt chiffres significatifs. Une descrip-
tion analytique exacte peut ´egalement d´eterminer le comportement d’une
fonction en extrapolant ` a des r´egions pour lesquelles aucune donn´ee n’est
disponible.
La commande evalf convertit une expression num´erique exacte en un
nombre d´ecimal.
>
evalf(Pi);
3.141592654
Par d´efaut, Maple calcule le r´esultat ` a l’aide de dix chiffres de pr´eci-
sion ; vous pouvez cependant sp´ecifier un nombre arbitraire de chiffres. Il
suffit de le sp´ecifier apr`es l’expression num´erique en utilisant la notation
suivante.
2.2 Calculs num´eriques • 13
>
evalf(Pi, 200);
3.1415926535897932384626433832795028841`
97169399375105820974944592307816406286`
20899862803482534211706798214808651328`
23066470938446095505822317253594081284`
81117450284102701938521105559644622948`
9549303820
Vous pouvez ´egalement forcer Maple ` a effectuer tous ses calculs avec
des approximations d´ecimales en incluant au moins un nombre d´ecimal
dans chaque expression. Les nombres ` a virgule flottante sont

conta-
gieux

: si une expression contient ne serait-ce qu’un seul nombre d´ecimal,
Maple ´evalue l’expression enti`ere en arithm´etique ` a virgule flottante.
>
1/3 + 1/4 + 1/5.3;
0.7720125786
>
sin(0.2);
.1986693308
Alors que le second argument optionnel de la commande evalf
d´etermine le nombre de chiffres ` a afficher pour ce calcul en particulier, la
variable sp´eciale Digits fixe le nombre de chiffres d´ecimaux pour tous les
calculs subs´equents.
>
Digits := 20;
Digits := 20
>
sin(0.2);
0.19866933079506121546
Digits est maintenant fix´e `a vingt, le nombre de chiffres que Maple
utilisera maintenant pour chaque ´etape d’un calcul. Sur ce plan, Maple
fonctionne comme une calculatrice ou un ordinateur classique. Souvenez-
vous que, lorsque vous ´evaluez une expression num´erique compliqu´ee, des
erreurs peuvent s’accumuler et rendre le r´esultat final moins pr´ecis que
14 • Chapitre 2: Math´ematiques de base avec Maple
les vingt chiffres qu’il contient. En g´en´eral, d´eterminer la valeur que doit
prendre Digits pour obtenir une pr´ecision donn´ee n’est pas chose facile,
le r´esultat final d´ependant du probl`eme. Cependant, il est en g´en´eral de
mise d’en augmenter la valeur pour obtenir plus de pr´ecision. Maple est
tr`es flexible si une grande pr´ecision d´ecimale est importante dans votre
travail.
Arithm´etique avec des nombres sp´eciaux
Maple peut ´egalement travailler avec des nombres complexes. Par ex-
emple, I est le symbole par d´efaut de Maple pour la racine carr´ee de
moins un, c’est-` a-dire I =

−1.
>
(2 + 5*I) + (1 - I);
3 + 4 I
>
(1 + I)/(3 - 2*I);
1
13
+
5
13
I
Vous pouvez aussi travailler sous d’autres bases avec d’autres syst`emes
de nombres.
>
convert(247, binary);
11110111
>
convert(1023, hex);
3FF
>
convert(17, base, 3);
[2, 2, 1]
Maple retourne une conversion en base enti`ere comme une liste de
nombres ; autrement, une ligne de nombres comme 221 peut devenir am-
bigu¨e, sp´ecialement pour de grandes bases. Remarquez que Maple liste
les chiffres dans l’ordre, du plus significatif au moins significatif.
Maple effectue ´egalement l’arithm´etique dans des anneaux finis et des
corps.
2.2 Calculs num´eriques • 15
>
27 mod 4;
3
Les repr´esentations sym´etriques et positives sont ´egalement dispo-
nibles.
>
mods(27,4);
−1
>
modp(27,4);
3
La valeur par d´efaut de la commande mod est la repr´esentation posi-
tive, mais vous pouvez changer cette option (consultez l’´ecran d’aide ?mod
pour plus de d´etails).
Maple peut ´egalement travailler avec les entiers gaussiens. Le package
GaussInt contient une trentaine de commandes permettant de travailler
avec ces nombres sp´eciaux. Tapez ?GaussInt pour plus d’information sur
ces commandes.
Fonctions math´ematiques
Maple connaˆıt toutes les fonctions math´ematiques standard (consultez la
table 2.2 pour une liste partielle).
>
sin(Pi/4);
1
2

2
>
ln(1);
0
Lorsque Maple ne peut trouver une forme plus simple, il laisse l’ex-
pression telle quelle plutˆ ot que de la convertir en une forme inexacte.
>
ln(Pi);
ln(π)
16 • Chapitre 2: Math´ematiques de base avec Maple
Tab. 2.2 – Quelques fonctions math´ematiques connues de Maple
Fonction Description
sin, cos, tan, etc. fonctions trigonom´etriques
sinh, cosh, tanh, etc. fonctions trigonom´etriques
hyperboliques
arcsin, arccos, arctan, etc. fonctions trigonom´etriques
inverses
exp fonction exponentielle
ln logarithme naturel
log[10] logarithme en base 10
sqrt racine carr´ee alg´ebrique
round arrondir ` a l’entier le plus pr`es
trunc tronquer ` a la partie enti`ere
frac partie fractionnaire
BesselI, BesselJ, fonctions de Bessel
BesselK, BesselY
binomial fonction binomiale
erf, erfc fonctions d’erreur et
d’erreur compl´ementaire
Heaviside fonction de Heaviside
Dirac fonction delta de Dirac
MeijerG fonction G de Meijer
Zeta fonction zeta de Riemann
LegendreKc, LegendreKc1,
LegendreEc, LegendreEc1,
LegendrePic, LegendrePic1 int´egrales elliptiques de Legendre
hypergeom fonction hyperg´eom´etrique
2.3 Calculs symboliques de base
Maple sait comment travailler avec des inconnues et des expressions les
contenant.
>
(1 + x)^2;
2.3 Calculs symboliques de base • 17
(1 +x)
2
>
(1 + x) + (3 - 2*x);
4 −x
Remarquez que Maple simplifie automatiquement la seconde expres-
sion.
Maple poss`ede des centaines de commandes pour travailler avec des
expressions symboliques.
>
expand((1 + x)^2);
1 + 2 x +x
2
>
factor(%);
(1 +x)
2
Comme il est mentionn´e `a la section Calculs num´eriques de la page 7,
l’op´erateur idem, %, est une notation abr´eg´ee de la commande pr´ec´edente.
>
Diff(sin(x), x);
d
dx
sin(x)
>
value(%);
cos(x)
>
Sum(n^2, n);
¸
n
n
2
>
value(%);
1
3
n
3

1
2
n
2
+
1
6
n
18 • Chapitre 2: Math´ematiques de base avec Maple
Divisez un polynˆ ome en x par un autre.
>
rem(x^3+x+1, x^2+x+1, x);
2 +x
Cr´eez une s´erie.
>
series(sin(x), x=0, 10);
x −
1
6
x
3
+
1
120
x
5

1
5040
x
7
+
1
362880
x
9
+ O(x
10
)
Toutes les fonctions math´ematiques mentionn´ees dans la section
pr´ec´edente acceptent ´egalement les inconnues comme arguments.
2.4 Affecter des noms `a des expressions
Utiliser l’op´erateur idem ou taper une expression chaque fois que vous
souhaitez l’employer peut s’av´erer fastidieux. C’est pourquoi Maple vous
permet de nommer des objets. Appliquez la syntaxe suivante.
nom := expression ;
Vous pouvez affecter un nom ` a n’importe quelle expression Maple.
>
var := x;
var := x
>
terme := x*y;
terme := xy
Vous pouvez mˆeme donner des noms ` a des ´equations.
>
eqs := x = y + 2;
eqs := x = y + 2
2.4 Affecter des noms `a des expressions • 19
Sous Maple, les noms peuvent contenir n’importe quel caract`ere al-
phanum´erique en plus du caract`ere soulign´e (underscore en anglais),
mais ils ne peuvent pas commencer par un nombre. De plus, ´evitez
de commencer un nom par le caract`ere soulign´e ; Maple utilise ces noms
`a des fins de classification interne. Les noms polynomial, test_data,
RoOt_lOcUs_pLoT et value2 sont des noms Maple valides, tandis que
2ndphase (parce qu’il commence par un nombre) et x&y (parce que &
n’est pas un caract`ere alphanum´erique) sont des noms invalides.
Vous pouvez d´efinir vos propres fonctions ` a l’aide de la notation
fl`eche (->) de Maple. Cela indique ` a Maple comment ´evaluer la fonc-
tion lorsqu’elle apparaˆıt dans les expressions Maple.
`
A ce point de votre
lecture, vous pouvez dessiner des graphiques simples au moyen de la com-
mande plot.
>
f := x -> 2*x^2 -3*x +4;
f := x → 2 x
2
−3 x + 4
>
plot (f(x), x= -5...5);
10
20
30
40
50
60
70
–4 –2 0 2 4
x
Vous en apprendrez davantage sur la commande plot au chapitre 4.
L’op´eration d’affectation (:=) peut ensuite associer le nom d’une fonc-
tion ` a la d´efinition de cette fonction. Le nom de la fonction se place ` a
gauche du signe :=, tandis que sa d´efinition de la fonction (utilisant la
notation fl`eche) est ` a droite. L’expression suivante d´efinit f comme ´etant
la fonction

mettre au carr´e

.
>
f := x -> x^2;
f := x → x
2
20 • Chapitre 2: Math´ematiques de base avec Maple
Puis, en ´evaluant f en un argument, on obtient le carr´e de l’argument
de f.
>
f(5);
25
>
f(y+1);
(y + 1)
2
Tous les noms ne sont pas disponibles comme variables : Maple en a
pr´ed´efini et r´eserv´e quelques-uns. Si vous tentez d’assigner un objet ` a un
nom qui est pr´ed´efini ou r´eserv´e, Maple affiche un message vous informant
que le nom choisi est prot´eg´e.
>
Pi := 3.14;
Error, attempting to assign to ‘Pi‘ which is protected
>
set := {1, 2, 3};
Error, attempting to assign to ‘set‘ which is protected
2.5 Les principaux types d’objets Maple
La pr´esente section examine les principaux types d’objets Maple, incluant
les suites d’expressions, les listes, les ensembles (sets), les tableaux (ar-
rays), les tables (tables) et les chaˆınes (strings).
Les suites d’expressions
La structure de donn´ees de base de Maple est la suite d’expressions.
C’est un groupe d’expressions Maple s´epar´ees par des virgules.
>
1, 2, 3, 4;
1, 2, 3, 4
2.5 Les principaux types d’objets Maple • 21
>
x, y, z, w;
x, y, z, w
Une suite d’expressions n’est ni une liste, ni un ensemble. C’est une
structure de donn´ees particuli`ere qui poss`ede ses caract´eristiques propres.
Par exemple, elle pr´eserve l’ordre et la r´ep´etition des ´el´ements. Les objets
respectent l’ordre dans lequel ils ont ´et´e entr´es et si un objet est entr´e deux
fois, les deux copies demeurent dans la suite. Vous remarquerez d’autres
propri´et´es des suites ` a mesure que vous parcourrez ce manuel. Les suites
sont souvent utilis´ees pour construire d’autres objets complexes par des
op´erations comme la concat´enation.
Les suites permettent d’´etendre les capacit´es de plusieurs op´erations
de base de Maple. Par exemple, la concat´enation est une op´eration de
base permettant de former des noms. L’op´erateur de concat´enation sous
Maple est le

||

, et vous pouvez l’utiliser de la mani`ere suivante.
>
a||b;
ab
Lorsque vous appliquez la concat´enation ` a une s´equence, l’op´eration
touche ` a chacun de ses ´el´ements. Ainsi, pour une suite S, vous pouvez
ajouter ` a un nom a des suffixes form´es de chaque ´el´ement de S en
concat´enant a et S :
>
S := 1, 2, 3, 4;
S := 1, 2, 3, 4
>
a||S;
a1, a2, a3, a4
Vous pouvez aussi effectuer plusieurs assignations en utilisant des
suites d’expressions. Par exemple :
>
f,g,h := 3, 6, 1;
f, g, h := 3, 6, 1
22 • Chapitre 2: Math´ematiques de base avec Maple
>
f;
3
>
h;
1
Les listes
Une liste est form´ee en encadrant un nombre quelconque d’objets Maple
(s´epar´es par des virgules) par des crochets.
>
data_list := [1, 2, 3, 4, 5];
data_list := [1, 2, 3, 4, 5]
>
polynomes := [x^2+3, x^2+3*x-1, 2*x];
polynomes := [x
2
+ 3, x
2
+ 3 x −1, 2 x]
>
participants := [Simon, Martin, Kim, Francois, Sylvain];
participants := [Simon, Martin, Kim, Francois, Sylvain]
Ainsi, une liste est une suite d’expressions encadr´ee par des crochets.
Maple conserve l’ordre et la r´ep´etition des ´el´ements dans une liste.
Ainsi, [a,b,c], [b,c,a] et [a,a,b,c,a] sont trois listes diff´erentes.
>
[a,b,c], [b,c,a], [a,a,b,c,a];
[a, b, c], [b, c, a], [a, a, b, c, a]
La conservation de l’ordre vous permet de retrouver un ´el´ement par-
ticulier d’une liste sans avoir ` a vous soucier d’un possible d´eplacement de
celui-ci.
>
lettres := [a,b,c];
lettres := [a, b, c]
2.5 Les principaux types d’objets Maple • 23
>
lettres[2];
b
Utilisez la commande nops pour d´eterminer le nombre total d’´el´e-
ments d’une liste.
>
nops(lettres);
3
La section Les commandes nops et op de la page 40 traite en pro-
fondeur de cette commande et de ses usages.
Les ensembles
Maple permet la gestion d’ensembles au sens math´ematique du terme.
Tout comme dans une suite ou dans une liste, des virgules s´eparent les
objets ; cependant, les accolades d´esignent l’objet en tant qu’ensemble.
>
data_set := {1, -1, 0, 10, 2};
data_set := ¦−1, 0, 1, 2, 10¦
>
inconnues := {x, y, z};
inconnues := ¦x, y, z¦
Ainsi, un ensemble est une suite d’expressions encadr´ee par des acco-
lades.
Maple ne conserve ni l’ordre, ni la r´ep´etition des ´el´ements dans les
ensembles : ces derniers poss`edent ainsi les mˆemes propri´et´es que leurs
´equivalents math´ematiques. Ainsi, les trois ensembles suivants sont iden-
tiques :
>
{a,b,c}, {c,b,a}, {a,a,b,c,a};
¦a, b, c¦, ¦a, b, c¦, ¦a, b, c¦
Rappelez-vous que, pour Maple, l’entier 2 est distinct de son approxi-
mation num´erique 2.0. L’ensemble suivant contient donc trois ´el´ements,
et non deux.
24 • Chapitre 2: Math´ematiques de base avec Maple
>
{1, 2, 2.0};
¦1, 2, 2.0¦
Les propri´et´es que revˆetent les ensembles font de ceux-ci des outils par-
ticuli`erement utiles dans Maple, tout comme ils le sont en math´ematiques.
Maple fournit plusieurs op´erateurs ensemblistes, incluant les op´erateurs
de base de l’intersection et de l’union en utilisant la notation intersect
et union.
>
{a,b,c} union {c,d,e};
¦a, b, c, d, e¦
>
{1,2,3,a,b,c} intersect {0,1,y,a};
¦1, a¦
La commande nops compte le nombre d’´el´ements d’un ensemble, tout
comme pour une liste.
>
nops(%);
2
Pour plus d’information, consultez la section Les commandes nops
et op de la page 40.
Souvent utilis´ee, la commande map s’av`ere tr`es utile pour les en-
sembles. L’op´eration de correspondance (mapping) vous permet d’appli-
quer une fonction simultan´ement ` a tous les ´el´ements de n’importe quelle
structure.
>
nombres := {0, Pi/3, Pi/2, Pi};
nombres := ¦0, π,
1
3
π,
1
2
π¦
>
map(g, nombres);
¦g(0), g(π), g(
1
3
π), g(
1
2
π)¦
2.5 Les principaux types d’objets Maple • 25
>
map(sin, nombres);
¦0, 1,
1
2


D’autres exemples d´emontrant l’utilisation de map figurent dans la
section La commande map de la page 38 et Appliquer une fonction ` a
une liste ou un ensemble `a la page 174.
Les op´erations sur les ensembles et les listes
La commande member permet de v´erifier l’appartenance d’un objet ` a un
ensemble ou ` a une liste.
>
participants := [JeanSebastien, Sophie, Josee];
participants := [JeanSebastien, Sophie, Josee]
>
member(Sophie, participants);
true
>
data_set := {5, 6, 3, 7};
data_set := ¦3, 5, 6, 7¦
>
member(2, data_set);
false
Pour choisir des ´el´ements depuis une liste, utilisez la notation indic´ee
[n] , o` u n d´esigne la position de l’´el´ement d´esir´e dans la liste.
>
participants[2];
Sophie
Maple reconnaˆıt les ensembles et les listes vides (qui ne contiennent
aucun ´el´ement).
>
empty_set := {};
26 • Chapitre 2: Math´ematiques de base avec Maple
empty_set := ¦¦
>
empty_list := [];
empty_list := []
Vous pouvez cr´eer un nouvel ensemble ` a partir d’autres ensembles ` a
l’aide, par exemple, de la commande union. Supprimez des ´el´ements d’un
ensemble par la commande minus.
>
old_set := {2, 3, 4} union {};
old_set := ¦2, 3, 4¦
>
new_set := old_set union {2, 5};
new_set := ¦2, 3, 4, 5¦
>
third_set := old_set minus {2, 5};
third_set := ¦3, 4¦
Les tableaux
Les tableaux (arrays en anglais) sont une extension d’une autre structure
de donn´ees : la liste. Imaginez une liste comme un groupe d’´el´ements o` u
chacun est associ´e `a un nombre entier positif, son indice, qui repr´esente
sa position dans la liste. La structure de tableau (array) est une
g´en´eralisation de cette id´ee. Chaque ´el´ement est toujours associ´e `a un
indice, mais cet indice n’est pas forc´ement unidimensionnel. De plus, les
indices peuvent ˆetre nuls ou n´egatifs. Vous pouvez ´egalement d´efinir ou
modifier individuellement chacun des ´el´ements d’un tableau sans pour
autant red´efinir ce dernier enti`erement.
On doit d´eclarer le tableau de mani`ere que Maple connaisse le nombre
de dimensions souhait´e.
>
carres := array(1..3);
carres := array(1..3, [])
2.5 Les principaux types d’objets Maple • 27
Assignez des ´el´ements au tableau. Plusieurs commandes peuvent ˆetre
entr´ees ` a la mˆeme invite en autant que chacune d’entre elles se termine
par le deux-points ou le point-virgule.
>
carres[1] := 1; carres[2] := 2^2; carres[3] := 3^2;
carres
1
:= 1
carres
2
:= 4
carres
3
:= 9
Ou, si vous pr´ef´erez, effectuez toutes ces op´erations en mˆeme temps.
>
cubes := array( 1..3, [1,8,27] );
cubes := [1, 8, 27]
Vous pouvez choisir un seul ´el´ement en utilisant la notation appliqu´ee
aux listes.
>
carres[2];
4
Vous devez d´eclarer les tableaux ` a l’avance. Pour afficher le contenu
du tableau, vous devez utiliser une commande comme print.
>
carres;
carres
>
print(carres);
[1, 4, 9]
Le tableau pr´ec´edent ne poss`ede qu’une dimension. Cependant, en
g´en´eral, les tableaux peuvent en avoir plus d’une. D´efinissez un tableau
de dimensions 3 3.
>
pwrs := array(1..3,1..3);
pwrs := array(1..3, 1..3, [])
28 • Chapitre 2: Math´ematiques de base avec Maple
Ce tableau est de dimension deux (deux ensembles d’indices). Assignez
d’abord les ´el´ements de la premi`ere rang´ee.
>
pwrs[1,1] := 1; pwrs[1,2] := 1; pwrs[1,3] := 1;
pwrs
1, 1
:= 1
pwrs
1, 2
:= 1
pwrs
1, 3
:= 1
Poursuivez maintenant avec le reste du tableau. Si vous pr´ef´erez, vous
pouvez terminer chaque commande par le deux-points (:) plutˆ ot que par
le point-virgule habituel (;), pour supprimer l’affichage du r´esultat. Le
deux-points, tout comme le point-virgule, est un s´eparateur de com-
mandes.
>
pwrs[2,1] := 2: pwrs[2,2] := 4: pwrs[2,3] := 8:
>
pwrs[3,1] := 3: pwrs[3,2] := 9: pwrs[3,3] := 27:
>
print(pwrs);

1 1 1
2 4 8
3 9 27
¸
¸
Vous pouvez s´electionner un ´el´ement en sp´ecifiant ` a la fois sa rang´ee
et sa colonne.
>
pwrs[2,3];
8
Vous pouvez d´efinir un tableau bidimensionnel et ses ´el´ements tout ` a
la fois en appliquant une m´ethode similaire ` a celle qui a ´et´e employ´ee pour
l’exemple unidimensionnel montr´e pr´ec´edemment. Pour ce faire, utilisez
des listes imbriqu´ees dans d’autres listes : cr´eez une liste dans laquelle
chaque ´el´ement est une autre liste qui contient les ´el´ements d’une rang´ee
du tableau. Ainsi, vous pouvez d´efinir le tableau pwrs de la mani`ere sui-
vante :
>
pwrs2 := array( 1..3, 1..3, [[1,1,1], [2,4,8], [3,9,27]] );
2.5 Les principaux types d’objets Maple • 29
pwrs2 :=

1 1 1
2 4 8
3 9 27
¸
¸
Les tableaux ne sont pas limit´es `a deux dimensions ; cependant, ceux
qui contiennent plus de deux dimensions sont difficiles ` a afficher. Si vous
le souhaitez, vous pouvez ´egalement d´eclarer les ´el´ements du tableau en
mˆeme temps que vous d´eclarez le tableau lui-mˆeme.
>
tableau3 := array( 1..2, 1..2, 1..2,
>
[[[1,2],[3,4]], [[5,6],[7,8]]] );
tableau3 := array(1..2, 1..2, 1..2, [
(1, 1, 1) = 1
(1, 1, 2) = 2
(1, 2, 1) = 3
(1, 2, 2) = 4
(2, 1, 1) = 5
(2, 1, 2) = 6
(2, 2, 1) = 7
(2, 2, 2) = 8
])
Maple n’´etend pas automatiquement le nom d’un tableau ` a la
repr´esentation de tous ses ´el´ements. Ainsi, pour certaines commandes,
vous devez sp´ecifier que vous souhaitez effectuer une op´eration sur les
´el´ements.
Supposons que vous souhaitez remplacer chaque apparition du
nombre 2 dans pwrs par le nombre 9. Pour effectuer des substitutions
de ce genre, utilisez la commande subs. Sa syntaxe de base est la sui-
vante :
subs( x=expr1, y=expr2, ... , expr_principale )
Par exemple, supposons que vous souhaitez remplacer z par x + y dans
une ´equation.
>
expr := z^2 + 3;
expr := z
2
+ 3
30 • Chapitre 2: Math´ematiques de base avec Maple
>
subs( {z=x+y}, expr);
(x +y)
2
+ 3
Cependant, vous pourriez ˆetre d´e¸cu de d´ecouvrir que la commande
suivante ne fonctionne pas.
>
subs( {2=9}, pwrs );
pwrs
En effet, vous devez forcer Maple ` a ´evaluer compl`etement le nom du
tableau tant pour ce qui est de ses composantes que pour ce qui regarde
son nom, en utilisant la commande d’´evaluation de matrices evalm.
>
subs( {2=9}, evalm(pwrs) );

1 1 1
9 4 8
3 9 27
¸
¸
Non seulement cette commande permet la substitution des ´el´ements
comme il est souhait´e, mais encore l’´evaluation compl`ete affiche ´egalement
les ´el´ements du tableau, de la mˆeme mani`ere que grˆ ace `a la commande
print.
>
evalm(pwrs);

1 1 1
2 4 8
3 9 27
¸
¸
Les tables
Une table est une extension de tableau.
`
A la diff´erence d’un tableau, les
indices d’une table peuvent ˆetre quelconques, et non seulement limit´es `a
des nombres entiers.
>
traduit := table([one=un,two=deux,three=trois]);
traduit := table([two = deux, three = trois, one = un])
2.5 Les principaux types d’objets Maple • 31
>
traduit[two];
deux
Mˆeme si les tables semblent ` a premi`ere vue revˆetir peu d’int´erˆet,
elles sont en fait des structures puissantes. Les tables vous permettent
de travailler avec des notations naturelles dans vos structures de donn´ees.
Par exemple, vous pouvez afficher les propri´et´es physiques de certains
mat´eriaux en utilisant une table Maple.
>
earth_data := table( [ mass=[5.976*10^24,kg],
>
radius=[6.378164*10^6,m],
>
circumference=[4.00752*10^7,m] ] );
earth_data := table([radius = [.6378164000 10
7
, m],
circumference = [.4007520000 10
8
, m],
mass = [.5976000000 10
25
, kg]
])
>
earth_data[mass];
[.5976000000 10
25
, kg]
Dans cet exemple, chacun des indices est un nom et chaque entr´ee est
une liste. Ce n’est en fait qu’un exemple tr`es simple ; la plupart du temps,
des indices beaucoup plus g´en´eraux sont pr´ef´erables. Ainsi, vous pourriez
construire une table dont les indices sont des formules alg´ebriques et dont
les valeurs sont les d´eriv´ees de ces formules.
Les chaınes
Une chaıne est un autre objet Maple cr´e´e en encadrant un nombre quel-
conque de caract`eres par des guillemets anglais.
>
"Ceci est une chaine.";
“Ceci est une chaine.”
Les chaˆınes sont des unit´es indivisibles que l’on peut consid´erer comme
des constantes : on ne peut leur assigner une valeur.
>
"mon age" := 22;
Error, invalid left hand side of assignment
32 • Chapitre 2: Math´ematiques de base avec Maple
Comme les ´el´ements des listes ou des tableaux, on peut acc´eder indivi-
duellement aux diff´erents caract`eres d’une chaˆıne en utilisant la notation
des crochets.
>
mystr := "I ate the whole thing.";
mystr := “I ate the whole thing.”
>
mystr[11..-2];
“whole thing”
L’op´erateur de concat´enation (“||”) ou la commande cat sont utilis´es
pour joindre deux chaˆınes ensemble. La commande length, de son cˆ ot´e,
est employ´ee pour d´eterminer le nombre de caract`eres dans une chaˆıne.
>
newstr := cat("I can’t believe ", mystr);
newstr := “I can’t believe I ate the whole thing.”
>
length(newstr);
38
Il existe plusieurs autres commandes qui agissent sur des chaˆınes et
d’autres encore qui prennent des chaˆınes comme arguments. Pour d’autres
exemples, reportez-vous ` a l’´ecran d’aide ?StringTools.
2.6 La manipulation d’expressions
De nombreuses commandes Maple permettent la manipulation d’expres-
sions. Il vous est ainsi possible de transformer les r´esultats de commandes
Maple en des formes famili`eres, ou encore de manipuler vos propres ex-
pressions en des formes que Maple peut reconnaˆıtre. Dans cette section,
vous apprendrez les commandes les plus couramment utilis´ees `a cet effet.
2.6 La manipulation d’expressions • 33
La commande simplify
Vous pouvez choisir cette commande pour appliquer des r`egles de simpli-
fication ` a une expression. Maple connaˆıt certaines r`egles de simplification
pour divers types d’expressions et de formes comme les fonctions trigo-
nom´etriques, les radicaux, les fonctions logarithmiques, les fonctions ex-
ponentielles, les puissances ainsi que plusieurs autres fonctions sp´eciales.
>
expr := cos(x)^5 + sin(x)^4 + 2*cos(x)^2
>
- 2*sin(x)^2 - cos(2*x);
expr :=
cos(x)
5
+ sin(x)
4
+ 2 cos(x)
2
−2 sin(x)
2
−cos(2 x)
>
simplify(expr);
cos(x)
5
+ cos(x)
4
Pour effectuer seulement un certain type de simplification, sp´ecifiez le
type souhait´e.
>
simplify(sin(x)^2 + ln(2*y) + cos(x)^2);
1 + ln(2) + ln(y)
>
simplify(sin(x)^2 + ln(2*y) + cos(x)^2, ’trig’);
1 + ln(2 y)
>
simplify(sin(x)^2 + ln(2*y) + cos(x)^2, ’ln’);
sin(x)
2
+ ln(2) + ln(y) + cos(x)
2
Avec les relations accessoires (side relations), vous pouvez
´egalement appliquer vos propres r`egles de simplification.
>
siderel := {sin(x)^2 + cos(x)^2 = 1};
siderel := ¦sin(x)
2
+ cos(x)
2
= 1¦
>
trig_expr := sin(x)^3 - sin(x)*cos(x)^2 + 3*cos(x)^3;
34 • Chapitre 2: Math´ematiques de base avec Maple
trig_expr := sin(x)
3
−sin(x) cos(x)
2
+ 3 cos(x)
3
>
simplify(trig_expr, siderel);
2 sin(x)
3
−3 cos(x) sin(x)
2
+ 3 cos(x) −sin(x)
La commande factor
La commande factor factorise les expressions polynomiales.
>
big_poly := x^5 - x^4 - 7*x^3 + x^2 + 6*x;
big_poly := x
5
−x
4
−7 x
3
+x
2
+ 6 x
>
factor(big_poly);
x(x −1) (x −3) (x + 2) (x + 1)
>
rat_expr := (x^3 - y^3)/(x^4 - y^4);
rat_expr :=
x
3
−y
3
x
4
−y
4
Le num´erateur et le d´enominateur contiennent tous les deux le facteur
commun x −y ; ainsi, la factorisation annule ces termes.
>
factor(rat_expr);
x
2
+xy +y
2
(y +x) (x
2
+y
2
)
Maple peut factoriser les polynˆ omes univari´es et multivari´es sur le
domaine de coefficients sp´ecifi´e. Vous pouvez ´egalement factoriser les
polynˆ omes sur des extensions alg´ebriques. Voyez ?factor pour plus de
d´etails ` a ce sujet.
La commande expand
Essentiellement, la commande expand est l’inverse de la commande
factor. Elle permet l’expansion de termes multipli´es de mˆeme que plu-
sieurs autres expansions. Pour cette raison, expand figure parmi les com-
mandes de manipulation les plus utiles. Bien que l’on puisse imaginer par
2.6 La manipulation d’expressions • 35
son nom que le r´esultat qu’elle produit soit plus long et plus complexe que
l’expression originale, il n’en est pas toujours ainsi. En fait, l’expansion
de certaines expressions permet de grandes simplifications.
>
expand((x+1)*(x+2));
x
2
+ 3 x + 2
>
expand(sin(x+y));
sin(y) cos(x) + cos(y) sin(x)
>
expand(exp(a+ln(b)));
e
a
b
La commande expand est tr`es flexible ; non seulement il est pos-
sible de pr´eciser que certaines sous-expressions doivent ˆetre laiss´ees telles
quelles au cours de l’expansion, mais des r`egles d’expansion personnalis´ees
peuvent ´egalement ˆetre programm´ees.
Lorsqu’on utilise Maple pour la premi`ere fois, on est port´e `a croire que
la commande simplify est la commande la plus utile. Malheureusement,
le mot simplify est plutˆ ot vague. Lorsqu’on lui demande de simplifier une
expression, Maple examine cette derni`ere, essaie plusieurs techniques, puis
tente d’appliquer la r`egle de simplification la plus appropri´ee. Cela peut
prendre du temps. De plus, Maple peut ne pas ˆetre en mesure de devi-
ner ce que vous souhaitez accomplir, puisque aucune r`egle math´ematique
universelle ne d´efinit ce qui est

plus simple

.
Lorsque vous connaissez quelles manipulations rendront votre expres-
sion plus simple ` a vos yeux, sp´ecifiez-les directement. En particulier, la
commande expand figure parmi les plus utiles. Elle permet souvent une
simplification substantielle des expressions et reformule ces derni`eres sous
une forme pratique pour plusieurs autres commandes.
La commande convert
Cette commande convertit les expressions entre diff´erentes formes.
>
convert(cos(x),exp);
1
2
e
(I x)
+
1
2
1
e
(I x)
36 • Chapitre 2: Math´ematiques de base avec Maple
Tab. 2.3 – Conversions courantes
Argument Description
polynom d’une s´erie ` a un polynˆ ome
exp, expln, expsincos d’une expression trigonom´etrique ` a une
forme exponentielle
parfrac d’une expression rationnelle ` a une
fraction partielle
rational d’un nombre ` a virgule flottante ` a une
forme rationnelle
radians, degrees des degr´es aux radians
set, list, listlist entre diff´erentes structures de donn´ees
>
convert(1/2*exp(x) + 1/2*exp(-x),trig);
cosh(x)
>
A := Matrix([[a,b],[c,d]]);
A :=
¸
a b
c d

>
convert(A, ’listlist’);
[[a, b], [c, d]]
>
convert(A, ’set’);
¦a, b, c, d¦
>
convert(%, ’list’);
[a, b, c, d]
2.6 La manipulation d’expressions • 37
La commande normal
Cette commande transforme les expressions rationnelles en forme nor-
male factoris´ee (factored normal form),
num´erateur
d´enominateur
o` u num´erateur et d´enominateur sont deux polynˆ omes relativement pre-
miers ` a coefficients entiers. Ainsi, la commande normal met les fractions
au mˆeme d´enominateur.
>
rat_expr_2 := (x^2 - y^2)/(x - y)^3 ;
rat_expr_2 :=
x
2
−y
2
(−y +x)
3
>
normal(rat_expr_2);
y +x
(−y +x)
2
>
normal(rat_expr_2, ’expanded’);
y +x
y
2
−2 xy +x
2
L’option expanded transforme les expressions rationnelles en forme
normale factoris´ee.
La commande combine
Cette commande combine les termes de sommes, de produits et de puis-
sances en un seul terme. Ces transformations sont, dans plusieurs cas,
l’inverse des transformations appliqu´ees par la commande expand.
>
combine(exp(x)^2*exp(y),exp);
e
(2 x+y)
>
combine((x^a)^2, power);
x
(2 a)
38 • Chapitre 2: Math´ematiques de base avec Maple
La commande map
Cette commande est tr`es utile lorsque vous travaillez sur des listes, des en-
sembles et des tableaux. Elle fournit un moyen commode de g´erer plusieurs
solutions ou d’appliquer une op´eration ` a chaque ´el´ement d’un tableau. La
commande map applique une commande ` a chaque ´el´ement de la structure
de donn´ees ou de l’expression fournie. Mˆeme s’il est possible d’´ecrire des
boucles dans un programme pour accomplir ces tˆ aches, l’utilit´e et la puis-
sance de la commande map ne devraient pas ˆetre sous-estim´ees. Prenez le
temps n´ecessaire pour vous assurer que vous connaissez bien l’utilisation
de map, l’une des plus puissantes fonctions de Maple.
>
map( f, [a,b,c] );
[f(a), f(b), f(c)]
>
data_list := [0, Pi/2, 3*Pi/2, 2*Pi];
data_list := [0,
1
2
π,
3
2
π, 2 π]
>
map(sin, data_list);
[0, 1, −1, 0]
Si vous donnez ` a la commande map plus de deux arguments, Maple
passe les derniers ` a la commande initiale.
>
map( f, [a,b,c], x, y );
[f(a, x, y), f(b, x, y), f(c, x, y)]
Par exemple, pour d´eriver chaque ´el´ement d’une liste par rapport ` a
x, vous pouvez utiliser les commandes suivantes :
>
fcn_list := [sin(x),ln(x),x^2];
fcn_list := [sin(x), ln(x), x
2
]
>
map(Diff, fcn_list, x);
[
d
dx
sin(x),
d
dx
ln(x),
d
dx
x
2
]
2.6 La manipulation d’expressions • 39
>
map(value, %);
[cos(x),
1
x
, 2 x]
Non seulement la proc´edure peut ˆetre une commande existante, mais
vous pouvez ´egalement cr´eer une op´eration ` a appliquer sur une liste. Par
exemple, supposons que vous voulez mettre au carr´e chaque ´el´ement d’une
liste.
>
map(x->x^2, [-1,0,1,2,3]);
[1, 0, 1, 4, 9]
Les commandes lhs et rhs
Ces deux commandes vous permettent de prendre respectivement le cˆ ot´e
gauche (left-hand side) et le cˆ ot´e droit (right-hand side) d’une expres-
sion.
>
eqn1 := x+y=z+3;
eqn1 := y +x = z + 3
>
lhs(eqn1);
y +x
>
rhs(eqn1);
z + 3
Les commandes numer et denom
Ces deux commandes servent ` a extraire respectivement le num´erateur et
le d´enominateur d’une expression rationnelle.
>
numer(3/4);
3
>
denom(1/(1 + x));
40 • Chapitre 2: Math´ematiques de base avec Maple
x + 1
Les commandes nops et op
Ces deux commandes s’av`erent utiles pour diviser des expressions en plu-
sieurs parties et en extraire les sous-expressions.
La commande nops vous indique combien de parties contient une ex-
pression.
>
nops(x^2);
2
>
nops(x + y + z);
3
La commande op vous permet d’acc´eder aux diff´erentes parties d’une
expression, qu’elle retourne sous forme de suite d’expressions.
>
op(x^2);
x, 2
Vous pouvez ´egalement acc´eder ` a des ´el´ements en particulier en
sp´ecifiant leur indice, ou une plage d’indices.
>
op(1, x^2);
x
>
op(2, x^2);
2
>
op(2..-2, x+y+z+w);
y, z
2.6 La manipulation d’expressions • 41
Questions courantes sur la manipulation d’expressions
Comment substituer un produit de deux inconnues ? Utilisez les rela-
tions accessoires pour sp´ecifier une

identit´e

. La substituion directe ne
fonctionne g´en´eralement pas, puisque Maple cherche une correspondance
exacte avant de remplacer.
>
expr := a^3*b^2;
expr := a
3
b
2
>
subs(a*b=5, expr);
a
3
b
2
Ici, la commande subs a ´echou´e dans sa tentative de substitution.
Utilisez la commande simplify pour obtenir la r´eponse souhait´ee.
>
simplify(expr, {a*b=5});
25 a
Vous pouvez ´egalement essayer la commande algsubs, qui effectue
une substitution alg´ebrique.
>
algsubs(a*b=5, expr);
25 a
Pourquoi le r´esultat de simplify n’est-il pas sous sa forme la plus
simple ? Par exemple :
>
expr2 := cos(x)*(sec(x)-cos(x));
expr2 := cos(x) (sec(x) −cos(x))
>
simplify(expr2);
1 −cos(x)
2
La forme attendue ´etait sin(x)
2
.
42 • Chapitre 2: Math´ematiques de base avec Maple
Encore une fois, utilisez les relations accessoires pour sp´ecifier l’iden-
tit´e.
>
simplify(%, {1-cos(x)^2=sin(x)^2});
sin(x)
2
La question de la simplification est compliqu´ee en raison de la dif-
ficult´e `a d´efinir ce qu’est une forme

simple

pour une expression. La
conception d’une forme simple pour un utilisateur peut ˆetre tr`es diff´erente
de celle d’un autre utilisateur ; de plus, l’id´ee d’une forme la plus simple
peut varier d’une situation ` a l’autre.
Comment mettre en ´evidence la constante dans 2x + 2y ? Actuel-
lement, cette op´eration n’est pas possible dans Maple puisque son sim-
plificateur distribue automatiquement le nombre sur le produit, croyant
qu’une somme est plus simple qu’un produit. Dans la plupart des cas, cela
est vrai.
Si vous entrez l’expression
>
2*(x + y);
2 x + 2 y
vous remarquez que Maple multiplie automatiquement la constante dans
l’expression.
Comment peut-on alors g´erer de telles expressions, lorsque l’on doit
mettre des constantes ou des signes n´egatifs en ´evidence ? Advenant le
besoin de factoriser ces expressions, utilisez la prochaine substitution.
>
expr3 := 2*(x + y);
expr3 := 2 x + 2 y
>
subs( 2=deux, expr3 );
xdeux +y deux
>
factor(%);
deux (x +y)
2.7 Conclusion • 43
2.7 Conclusion
Dans ce chapitre, vous avez vu plusieurs des types d’objets que Maple
peut manipuler : les suites, les ensembles et les listes. Vous avez ´egalement
vu plusieurs commandes, dont expand, factor et simplify, qui figurent
parmi les plus utiles pour manipuler et simplifier des expressions alg´e-
briques. D’autres, comme map, sont utiles pour les ensembles, les listes et
les tableaux. De son cˆ ot´e, la commande subs sert dans presque toutes les
situations.
Dans le prochain chapitre, vous apprendrez ` a manipuler ces concepts
pour aborder un des probl`emes fondamentaux des math´ematiques : la
r´esolution des syst`emes d’´equations.
`
A mesure que vous apprendrez de
nouvelles commandes, observez comment les concepts de ce chapitre sont
utilis´es pour poser les probl`emes et manipuler leurs solutions.
44 • Chapitre 2: Math´ematiques de base avec Maple
3 Trouver des solutions
Ce chapitre introduit les concepts cl´es n´ecessaires ` a une r´esolution de
probl`emes rapide et efficace dans Maple. En apprenant comment utiliser
des outils comme solve, map, subs et unapply, vous gagnerez du temps
et ´economiserez de nombreux efforts. De plus, le pr´esent chapitre examine
l’interaction entre ces diff´erentes commandes.
3.1 R´esolution au moyen de solve
La commande solve de Maple est un solveur d’´equations tout usage.
Dans un ensemble d’une ou de plusieurs ´equations, solve tente de
r´esoudre le syst`eme de mani`ere exacte pour l’ensemble d’inconnues
sp´ecifi´e. (Souvenez-vous que, dans la section Les ensembles de la page 23,
on utilisait les accolades pour encadrer les ´el´ements d’un ensemble.) Dans
les exemples suivants, vous r´esolvez une ´equation pour une inconnue, et
chaque ensemble contient cons´equemment un seul ´el´ement.
>
solve({x^2=4}, {x});
¦x = 2¦, ¦x = −2¦
>
solve({a*x^2+b*x+c=0}, {x});
¦x =
1
2
−b +

b
2
−4 a c
a
¦, ¦x =
1
2
−b −

b
2
−4 a c
a
¦
Maple retourne chaque solution possible sous forme d’un ensemble.
Puisque les deux ´equations pr´ec´edentes poss`edent deux solutions, Maple
45
46 • Chapitre 3: Trouver des solutions
retourne une suite d’ensembles solutions. Si aucune inconnue n’est
sp´ecifi´ee dans l’´equation, Maple r´esout pour toutes celles-ci.
>
solve({x+y=0});
¦x = −y, y = y¦
Ici, une seule solution est obtenue, contenant deux ´equations. Ce
r´esultat signifie que y peut prendre n’importe quelle valeur, tandis que x
est l’oppos´e de y. Cette solution est param´etris´ee par rapport ` a y.
Si vous donnez une expression plutˆ ot qu’une ´equation, Maple assume
automatiquement que l’´equation est ´egale ` a z´ero.
>
solve({x^3-13*x+12}, {x});
¦x = 1¦, ¦x = 3¦, ¦x = −4¦
La commande solve peut ´egalement g´erer les syst`emes d’´equations.
>
solve({x+2*y=3, y+1/x=1}, {x,y});
¦x = −1, y = 2¦, ¦x = 2, y =
1
2
¦
Mˆeme si les accolades (d´enotant un ensemble) ne sont obligatoires ni
autour de l’´equation, ni autour de la variable, leur utilisation force Maple
`a retourner la solution sous la forme d’un ensemble, ce qui repr´esente
g´en´eralement la mani`ere la plus commode. En effet, la premi`ere chose ` a
faire avec une solution est g´en´eralement de la v´erifier en la substituant
`a nouveau dans les ´equations originales. L’exemple suivant montre cette
proc´edure.
´
Etant un ensemble d’´equations, la solution est une forme id´eale pour
la commande subs. Vous pouvez d’abord donner un nom ` a l’ensemble
d’´equations, par exemple eqns.
>
eqns := {x+2*y=3, y+1/x=1};
eqns := ¦x + 2 y = 3, y +
1
x
= 1¦
Puis, r´esolvez.
>
soln := solve( eqns, {x,y} );
3.1 R´esolution au moyen de solve • 47
soln := ¦x = −1, y = 2¦, ¦x = 2, y =
1
2
¦
Cela produit deux solutions : d’abord,
>
soln[1];
¦x = −1, y = 2¦
et ensuite,
>
soln[2];
¦x = 2, y =
1
2
¦
V´erifier les solutions
Pour v´erifier les solutions ainsi produites, il suffit de les substituer ` a nou-
veau dans l’ensemble d’´equations original en utilisant la commande eval.
>
eval( eqns, soln[1] );
¦3 = 3, 1 = 1¦
>
eval( eqns, soln[2] );
¦3 = 3, 1 = 1¦
Vous d´ecouvrirez que cette m´ethode de v´erification est g´en´eralement
la plus commode.
Remarquez que cette application de la commande eval se prˆete `a
d’autres usages. Supposons que vous voulez extraire la valeur de x de la
premi`ere solution. Encore une fois, la commande eval s’av`ere le meilleur
outil.
>
x1 := eval( x, soln[1] );
x1 := −1
Vous pouvez ´egalement extraire la premi`ere solution pour y.
>
y1 := eval(y, soln[1]);
48 • Chapitre 3: Trouver des solutions
y1 := 2
Vous pouvez mˆeme appliquer ce truc d’´evaluation pour convertir
des ensembles solutions sous d’autres formes. Par exemple, vous pou-
vez construire une liste (list) `a partir de la premi`ere solution, o` u x sera
le premier ´el´ement et y le second. D’abord, construisez une liste dont
les variables sont dans le mˆeme ordre que souhait´e dans les solutions
correspondantes.
>
[x,y];
[x, y]
Puis, ´evaluez simplement cette liste ` a la premi`ere solution.
>
eval([x,y], soln[1]);
[−1, 2]
La premi`ere solution est maintenant une liste.
Si vous pr´ef´erez obtenir d’abord la solution pour y dans la liste, ´evaluez
[y,x] `a la solution.
>
eval([y,x], soln[1]);
[2, −1]
Puisque, typiquement, Maple retourne ses solutions sous la forme
d’ensembles (dans lesquels l’ordre des objets est incertain), il est utile
de se souvenir de cette m´ethode d’extraction des solutions.
Une autre commande utile, map, vous permet d’appliquer une op´era-
tion ` a toutes les solutions. Par exemple, essayez de substituer les deux
solutions.
La commande map applique l’op´eration sp´ecifi´ee comme premier ar-
gument ` a son deuxi`eme argument.
>
map(f, [a,b,c], y, z);
[f(a, y, z), f(b, y, z), f(c, y, z)]
3.1 R´esolution au moyen de solve • 49
En raison de la syntaxe de map, cette derni`ere ne peut appliquer en
mˆeme temps plusieurs fonctions ` a des suites. Par exemple, consid´erez la
suite de solutions pr´ec´edente.
>
soln;
¦y = 2, x = −1¦, ¦y =
1
2
, x = 2¦
Encadrez soln par des crochets pour la convertir en liste (list).
>
[soln];
[¦y = 2, x = −1¦, ¦y =
1
2
, x = 2¦]
Maintenant, utilisez la commande suivante pour substituer chacune
des solutions simultan´ement dans les ´equations originales, eqns.
>
map(subs, [soln], eqns);
[¦3 = 3, 1 = 1¦, ¦3 = 3, 1 = 1¦]
Cette m´ethode peut s’av´erer pr´ecieuse si votre ´equation poss`ede plu-
sieurs solutions, ou si vous n’ˆetes pas certain du nombre de solutions
qu’une certaine commande produira.
Restreindre les solutions
Vous pouvez limiter les solutions en sp´ecifiant les in´egalit´es au moyen de
la commande solve.
>
solve({x^2=y^2},{x,y});
¦x = −y, y = y¦, ¦x = y, y = y¦
>
solve({x^2=y^2, x<>y},{x,y});
¦x = −y, y = y¦
Consid´erez ce syst`eme de cinq ´equations ` a cinq inconnues.
50 • Chapitre 3: Trouver des solutions
>
eqn1 := x+2*y+3*z+4*t+5*u=41:
>
eqn2 := 5*x+5*y+4*z+3*t+2*u=20:
>
eqn3 := 3*y+4*z-8*t+2*u=125:
>
eqn4 := x+y+z+t+u=9:
>
eqn5 := 8*x+4*z+3*t+2*u=11:
R´esolvez maintenant le syst`eme pour toutes ses variables.
>
s1 := solve({eqn1,eqn2,eqn3,eqn4,eqn5}, {x,y,z,t,u});
s1 := ¦x = 2, t = −11, z = −1, y = 3, u = 16¦
Vous pouvez ´egalement choisir de r´esoudre pour un sous-ensemble des
inconnues ; Maple retourne ensuite les solutions en fonction des autres
inconnues.
>
s2 := solve({eqn1,eqn2,eqn3}, { x, y, z});
s2 := ¦x = −
527
13
−7 t −
28
13
u, z = −
70
13
−7 t −
59
13
u,
y =
635
13
+ 12 t +
70
13

Explorer les solutions
Vous pouvez explorer les solutions param´etriques calcul´ees `a la fin de la
section pr´ec´edente. Par exemple, ´evaluez la solution en u = 1 et t = 1.
>
eval( s2, {u=1,t=1} );
¦x =
−646
13
, z =
−220
13
, y =
861
13
¦
Tout comme ` a la page 47, supposons que vous n´ecessitiez que les cinq
solutions trouv´ees par solve soient plac´ees dans un ordre particulier.
Puisqu’il est impossible de fixer l’ordre des ´el´ements dans un ensemble,
solve ne retournera pas n´ecessairement les solutions dans l’ordre x, y, z.
Cependant, les listes pr´eservent l’ordre de leurs ´el´ements ; ainsi, essayez
la commande suivante.
>
eval( [x,y,z], s2 );
[−
527
13
−7 t −
28
13
u,
635
13
+ 12 t +
70
13
u, −
70
13
−7 t −
59
13
u]
3.1 R´esolution au moyen de solve • 51
Non seulement cette commande a fix´e l’ordre des solutions, mais elle
en a ´egalement extrait le cˆ ot´e droit de l’´egalit´e (puisque vous connais-
sez toujours quelle solution s’applique ` a quelle variable en raison de leur
ordre). Cette possibilit´e est particuli`erement utile lorsque vous souhaitez
tracer la surface qui repr´esente la solution.
>
plot3d(%, u=0..2, t=0..2, axes=BOXED);
–58
–56
–54
–52
–50
–48
–46
–44
–42
50
55
60
65
70
75
80
–25
–20
–15
–10
–5
La commande unapply
Supposez que vous souhaitez explorer encore davantage. Par souci de com-
modit´e, d´efinissez x = x(u, t), y = y(u, t) et z = z(u, t) (c.-` a-d. convertis-
sez les solutions en fonctions). Souvenez-vous que vous pouvez facilement
choisir l’expression d’une solution pour une variable particuli`ere en uti-
lisant eval.
>
eval( x, s2 );

527
13
−7 t −
28
13
u
Cependant, cela est une expression pour x, et non une fonction.
>
x(1,1);
x(1, 1)
Pour transformer l’expression en une fonction, il faut utiliser une autre
commande tr`es importante, unapply. Pour ce faire, il suffit de fournir ` a
unapply l’expression et les variables ` a partir desquelles Maple doit faire
une fonction. Ainsi, par exemple,
>
f := unapply(x^2 + y^2 + 4, x, y);
52 • Chapitre 3: Trouver des solutions
f := (x, y) → x
2
+y
2
+ 4
produit la fonction f de x et y, qui fait correspondre ` a un couple (x, y) le
polynˆ ome x
2
+y
2
+ 4. Cette nouvelle fonction est facile ` a utiliser.
>
f(a,b);
a
2
+b
2
+ 4
Ainsi, pour transformer la solution pour x en une fonction ` a la fois de
u et de t, la premi`ere ´etape consiste ` a obtenir l’expression pour x, comme
il a ´et´e mentionn´e pr´ec´edement.
>
eval(x, s2);

527
13
−7 t −
28
13
u
Puis, on doit utiliser unapply pour transformer cette expression en
une fonction de u et de t.
>
x := unapply(%, u, t);
x := (u, t) → −
527
13
−7 t −
28
13
u
>
x(1,1);
−646
13
On cr´ee les fonctions y et z de la mˆeme mani`ere.
>
eval(y,s2);
635
13
+ 12 t +
70
13
u
>
y := unapply(%,u,t);
y := (u, t) →
635
13
+ 12 t +
70
13
u
3.1 R´esolution au moyen de solve • 53
>
eval(z,s2);

70
13
−7 t −
59
13
u
>
z := unapply(%, u, t);
z := (u, t) → −
70
13
−7 t −
59
13
u
>
y(1,1), z(1,1);
861
13
,
−220
13
La commande assign
La commande assign permet ´egalement d’affecter des valeurs ` a des in-
connues. Par exemple, plutˆ ot que de d´efinir x, y et z en tant que fonc-
tions, assignez chacune d’elles ` a l’expression du cˆ ot´e droit de l’´egalit´e de
l’´equation correspondante.
>
assign( s2 );
>
x, y, z;

527
13
−7 t −
28
13
u,
635
13
+ 12 t +
70
13
u, −
70
13
−7 t −
59
13
u
Souvenez-vous de assign comme ´etant la commande permettant de
transformer le signe

=

de la solution en un signe

:=

.
La commande assign est utile pour assigner des noms aux expres-
sions. Cependant, rappelez-vous que meme si cette commande est
utile pour rapidement assigner des noms aux solutions, elle ne peut
cr´eer de fonctions.
Le prochain exemple comprend la r´esolution d’´equations diff´eren-
tielles, dont la section 3.6 discute plus en d´etail. Pour commencer, assignez
un nom ` a la solution.
>
s3 := dsolve( {diff(f(x),x)=6*x^2+1, f(0)=0}, {f(x)} );
54 • Chapitre 3: Trouver des solutions
s3 := f(x) = 2 x
3
+x
>
assign( s3 );
Il vous reste cependant ` a cr´eer une fonction.
>
f(x);
2 x
3
+x
produit la r´eponse attendue ; cependant, malgr´e les apparences, f(x) est
simplement le nom de l’expression 2x
3
+x, et non une fonction. Appelez
la fonction f en utilisant un argument autre que x.
>
f(1);
f(1)
La raison de ce comportement en apparence ´etrange vient du fait que
assign demande ` a Maple l’affectation
>
f(x) := 2*x^3 + x;
f(x) := 2 x
3
+x
qui n’est pas du tout semblable ` a l’affectation
>
f := x -> 2*x^3 + x;
f := x → 2 x
3
+x
La premi`ere d´efinit seulement la valeur de la fonction f pour l’argu-
ment sp´ecial x; la seconde d´efinit la fonction f: x → 2x
3
+ x de mani`ere
`a fonctionner, que l’on ´ecrive f(x), f(y) ou f(1).
Pour d´efinir la solution f comme une fonction de x, utilisez unapply.
>
eval(f(x),s3);
2 x
3
+x
3.1 R´esolution au moyen de solve • 55
>
f := unapply(%, x);
f := x → 2 x
3
+x
>
f(1);
3
La commande RootOf
`
A l’occasion, Maple retourne ses solutions ` a l’aide de la commande
RootOf. Consid´erons l’exemple suivant.
>
solve({x^5 - 2*x + 3 = 0},{x});
¦x = RootOf(_Z
5
−2 _Z + 3, index = 1)¦,
¦x = RootOf(_Z
5
−2 _Z + 3, index = 2)¦,
¦x = RootOf(_Z
5
−2 _Z + 3, index = 3)¦,
¦x = RootOf(_Z
5
−2 _Z + 3, index = 4)¦,
¦x = RootOf(_Z
5
−2 _Z + 3, index = 5)¦
RootOf(expr) est un nom g´en´erique pour toutes les racines de expr,
et _Z est un nom g´en´erique pour x. Cela signifie que x est une racine
du polynˆ ome z
5
−2z +3, o` u le param`etre index num´erote et ordonne les
solutions. Cela peut s’av´erer fort utile lorsqu’on fait de l’alg`ebre sur un
corps diff´erent des nombres complexes. En utilisant la commande evalf,
vous obtenez une forme explicite des racines complexes.
>
evalf(%);
¦x = .9585321812 +.4984277790 I¦,
¦x = −.2467292569 + 1.320816347 I¦,
¦x = −1.423605849¦,
¦x = −.2467292569 −1.320816347 I¦,
¦x = .9585321812 −.4984277790 I¦
Une expression g´en´erale pour d´esigner les racines des polynˆ omes de
degr´e cinq sous forme de radicaux n’existe pas.
56 • Chapitre 3: Trouver des solutions
3.2 R´esoudre num´eriquement : fsolve
La commande fsolve est l’´equivalent num´erique de solve. Elle trouve
les racines d’une ou de plusieurs ´equations en utilisant une variante de la
m´ethode de Newton, et produit des solutions num´eriques approxim´ees.
>
fsolve({cos(x)-x = 0}, {x});
¦x = .7390851332¦
Pour une ´equation g´en´erale, fsolve cherche une racine r´eelle simple.
Pour un polynˆ ome, cependant, la commande cherche toutes les racines
r´eelles.
>
poly :=3*x^4 - 16*x^3 - 3*x^2 + 13*x + 16;
poly := 3 x
4
−16 x
3
−3 x
2
+ 13 x + 16
>
fsolve({poly},{x});
¦x = 1.324717957¦, ¦x = 5.333333333¦
Pour chercher plus d’une racine d’une ´equation g´en´erale, utilisez l’op-
tion avoid.
>
fsolve({sin(x)=0}, {x});
¦x = 0.¦
>
fsolve({sin(x)=0}, {x}, avoid={x=0});
¦x = −3.141592654¦
Pour chercher un nombre d´etermin´e de racines d’un polynˆ ome, utilisez
l’option maxsols.
>
fsolve({poly}, {x}, maxsols=1);
¦x = 1.324717957¦
L’option complex force Maple ` a chercher des racines complexes en
plus des racines r´eelles.
3.2 R´esoudre num´eriquement : fsolve • 57
>
fsolve({poly}, {x}, complex);
¦x = −.6623589786 −.5622795121 I¦,
¦x = −.6623589786 +.5622795121 I¦,
¦x = 1.324717957¦, ¦x = 5.333333333¦
Vous pouvez ´egalement sp´ecifier l’intervalle dans lequel chercher une
racine en particulier.
>
fsolve({cos(x)=0}, {x}, Pi..2*Pi);
¦x = 4.712388980¦
Dans plusieurs cas, fsolve peut ´echouer dans sa recherche d’une ra-
cine, mˆeme si une telle racine existe. Dans ces situations, sp´ecifier un
intervalle peut aider Maple. Pour am´eliorer la pr´ecision de solutions,
vous pouvez augmenter la valeur de la variable sp´eciale, Digits. Remar-
quez que dans l’exemple suivant, la solution trouv´ee ne garantit pas une
pr´ecision de trente d´ecimales ; cependant, Maple effectue toutes les ´etapes
de ses calculs ` a une pr´ecision d’au moins trente chiffres significatifs au lieu
des dix chiffres par d´efaut.
>
Digits := 30;
Digits := 30
>
fsolve({cos(x)=0}, {x});
¦x = 1.57079632679489661923132169164¦
Les limites de solve
La commande solve ne s’applique pas ` a toutes les situations. Souvenez-
vous que l’approche employ´ee par Maple est algorithmique et que ce der-
nier ne poss`ede pas n´ecessairement la capacit´e de faire appel aux trucs
que vous pouvez utiliser lorsque vous r´esolvez un probl`eme ` a la main.
Math´ematiquement parlant, les polynˆ omes de degr´e sup´erieur ou ´egal
`a cinq ne poss`edent pas de solution g´en´erale sous forme de radicaux. Maple
tente de les r´esoudre symboliquement le mieux possible, mais il est fort
possible que vous deviez avoir recours ` a une solution num´erique en cas
d’´echec.
58 • Chapitre 3: Trouver des solutions
La r´esolution d’´equations trigonom´etriques peut ´egalement ˆetre dif-
ficile. En fait, le travail avec toutes les ´equations transcendantes s’av`ere
plutˆ ot difficile.
>
solve({sin(x)=0}, {x});
¦x = 0¦
Remarquez que Maple retourne seulement une solution parmi une in-
finit´e. Cependant, si vous fixez la valeur de la variable _EnvAllSolutions
`a true (vrai), Maple retourne alors l’ensemble complet des solutions.
>
_EnvAllSolutions := true;
_EnvAllSolutions := true
>
solve({sin(x)=0}, {x});
¦x = π _Z1~¦
Le pr´efixe _Z de la variable indique que cette derni`ere poss`ede des
valeurs enti`eres. Le tilde (~) indique qu’une hypoth`ese a ´et´e plac´ee sur
cette variable ; dans le cas pr´esent, on suppose qu’il s’agit d’une variable
enti`ere. De plus, la commande fsolve vous permet de sp´ecifier l’intervalle
dans lequel Maple cherchera une solution. Ainsi, vous pouvez obtenir plus
de contrˆ ole sur les solutions calcul´ees.
>
fsolve({sin(x)=0}, {x}, 3..4);
¦x = 3.14159265358979323846264338328¦
Ces types de probl`emes sont communs ` a tous les syt`emes de calcul
symbolique et t´emoignent des limites naturelles d’une approche algorith-
mique ` a la r´esolution d’´equations.
Lorsque vous utilisez solve, rappelez-vous de bien v´erifier vos r´esul-
tats. Le prochain exemple met en ´evidence une incompr´ehension qui peut
survenir en raison de la gestion des singularit´es par Maple.
>
expr := (x-1)^2/(x^2-1);
3.2 R´esoudre num´eriquement : fsolve • 59
expr :=
(x −1)
2
x
2
−1
Maple trouve bien une solution
>
soln := solve({expr=0},{x});
soln := ¦x = 1¦
mais lorsqu’elle est ´evalu´ee en x = 1, on obtient 0/0.
>
eval(expr, soln);
Error, division by zero
La limite montre pourtant que x = 1 est presque une solution.
>
Limit(expr, x=1);
lim
x→1
(x −1)
2
x
2
−1
>
value (%);
0
Maple affiche une ligne verticale ` a l’endroit de l’asymptote, ` a moins de
sp´ecifier discont=true.
>
plot(expr, x=-5..5, y=-10..10);
–10
–8
–6
–4
–2
0
2
4
6
8
10
y
–4 –2 2 4
x
Maple enl`eve la singularit´e x = 1 de l’expression avant de la r´esoudre.
Peu importe la m´ethode ou les outils utilis´es pour r´esoudre les ´equations,
il est crucial de v´erifier les r´esultats obtenus. Fort heureusement, ces
v´erifications sont faciles au moyen de Maple.
60 • Chapitre 3: Trouver des solutions
3.3 D’autres solveurs
Maple contient plusieurs commandes solve sp´ecialis´ees. Puisque vous ris-
quez de ne pas les trouver aussi utiles que les fonctions plus g´en´erales
solve et fsolve, cette section n’en signale que quelques-unes. Si vous
d´esirez obtenir plus de d´etail ` a propos de ces commandes, utilisez le
syst`eme d’aide en ligne en entrant ? suivi du nom de commande sou-
hait´e `a l’invite de Maple.
Trouver des solutions enti`eres
La commande isolve trouve des solutions enti`eres aux ´equations en r´e-
solvant pour toutes les inconnues dans l’expression ou les expressions.
>
isolve({3*x-4*y=7});
¦x = 5 + 4 _Z1, y = 2 + 3 _Z1¦
Trouver des solutions modulo m
La commande msolve r´esout des ´equations enti`eres modulo m (la repr´e-
sentation positive pour les entiers) en r´esolvant pour toutes les inconnues
dans l’expression ou les expressions.
>
msolve({3*x-4*y=1,7*x+y=2},17);
¦y = 6, x = 14¦
Maple utilise les variables globales _Z1, . . ._Zn pour d´enoter les pa-
ram`etres entiers de la solution.
>
msolve({2^n=3},19);
¦n = 13 + 18 _Z1~¦
Le tilde (~) sur _Z1 indique que msolve a plac´e une hypoth`ese ` a propos
de _Z1 ; dans ce cas-ci, que _Z1 soit entier.
>
about( _Z1 );
3.4 Les polyn omes • 61
Originally _Z1, renamed _Z1~:
is assumed to be: integer
La section 5.2 d´ecrit comment vous pouvez placer vous-mˆeme des
hypoth`eses ` a propos d’inconnues.
R´esoudre des relations de r´ecurrence
La commande rsolve r´esout des relations de r´ecurrence, retournant une
expression correspondant au terme g´en´eral de la fonction.
>
rsolve({f(n)=f(n-1)+f(n-2),f(0)=1,f(1)=1},{f(n)});

f(n) = −
2
5

5 (−
2
1 −

5
)
n
1 −

5
+
2
5

5 (−
2

5 + 1
)
n

5 + 1

Consultez ´egalement la rubrique d’aide ?LREtools.
3.4 Les polyn omes
Pour Maple, un polyn ome est une expression contenant des incon-
nues ; chaque terme du polynˆ ome contient un produit des inconnues. Par
exemple, si le polynˆ ome contient seulement une inconnue, x, les termes
peuvent contenir x
3
, x
1
= x et x
0
= 1, comme dans le cas du polynˆ ome
x
3
−2x+1. Si plus d’une inconnue existe, un terme peut ´egalement conte-
nir un produit des inconnues, comme dans le polynˆ ome x
3
+3x
2
y+y
2
. Les
coefficients peuvent ˆetre entiers (comme dans les exemples pr´ec´edents), ra-
tionnels, irrationnels, d´ecimaux, complexes ou mˆeme faire appel ` a d’autres
variables.
>
x^2 - 1;
x
2
−1
>
x + y + z;
62 • Chapitre 3: Trouver des solutions
x +y +z
>
1/2*x^2 - sqrt(3)*x - 1/3;
1
2
x
2


3 x −
1
3
>
(1 - I)*x + 3 + 4*I;
(1 −I) x + 3 + 4 I
>
a*x^4 + b*x^3 + c*x^2 + d*x + f;
a x
4
+b x
3
+c x
2
+d x +f
Maple poss`ede des commandes permettant plusieurs types de mani-
pulations et de calculs math´ematiques sur les polynˆ omes ; les prochaines
sections en examinent quelques-uns.
Tri et regroupement
La commande sort arrange les termes d’un polynˆ ome dans l’ordre
d´ecroissant des degr´es de leurs inconnues. Plutˆ ot que de conserver une
deuxi`eme copie du polynˆ ome original dont les termes ont ´et´e tri´es, sort
modifie directement la mani`ere dont les termes sont emmagasin´es dans
le polynˆ ome de d´epart. Ainsi, si vous affichez le polynˆ ome apr`es l’avoir
pass´e `a sort, vous remarquerez qu’il demeure tri´e :
>
sort_poly := x + x^2 - x^3 + 1 - x^4;
sort_poly := x +x
2
−x
3
+ 1 −x
4
>
sort(sort_poly);
−x
4
−x
3
+x
2
+x + 1
>
sort_poly;
−x
4
−x
3
+x
2
+x + 1
3.4 Les polyn omes • 63
Maple classe les polynˆ omes multivari´es de deux mani`eres. La m´ethode
par d´efaut classe les termes selon leur degr´e total. Ainsi, x
2
y
2
sera plac´e
avant x
3
et y
3
. Selon l’autre option, les termes sont class´es selon l’ordre
lexicographique pur (plex). Lorsque vous choisissez cette option, le tri
examine d’abord les puissances de la premi`ere variable de la liste des
variables (cette liste est le second argument de la commande sort), puis
les puissances de la seconde variable. La diff´erence entre ces deux types
de tri se con¸ coit clairement au moyen d’un exemple.
>
mul_var_poly := y^3 + x^2*y^2 + x^3;
mul _var_poly := y
3
+x
2
y
2
+x
3
>
sort(mul_var_poly, [x,y]);
x
2
y
2
+x
3
+y
3
>
sort(mul_var_poly, [x,y], ’plex’);
x
3
+x
2
y
2
+y
3
La commande collect regroupe les coefficients de mˆeme degr´e dans
un polynˆ ome. Par exemple, lorsque les termes ax et bx se trouvent dans
le mˆeme polynˆ ome, Maple les regroupe en (a +b)x.
>
big_poly:=x*y + z*x*y + y*x^2 - z*y*x^2 + x + z*x;
big_poly := xy +z xy +y x
2
−z y x
2
+x +z x
>
collect(big_poly, x);
(y −z y) x
2
+ (y +z y + 1 +z) x
>
collect(big_poly, z);
(xy −y x
2
+x) z +xy +y x
2
+x
64 • Chapitre 3: Trouver des solutions
Op´erations math´ematiques
Vous pouvez effectuer plusieurs op´erations math´ematiques sur les po-
lynˆ omes. Parmi les op´erations les plus fondamentales, on trouve la division
(c’est-` a-dire diviser un polynˆ ome par un autre et en d´eterminer le quotient
et le reste). Maple fournit les commandes rem et quo pour d´eterminer le
reste (remainder en anglais) et le quotient d’une division polynomiale.
>
r := rem(x^3+x+1, x^2+x+1, x);
r := 2 +x
>
q := quo(x^3+x+1, x^2+x+1, x);
q := x −1
>
collect( (x^2+x+1) * q + r, x );
x
3
+x + 1
Dans certaines situations, il peut suffire de d´eterminer si un polynˆ ome
divise exactement un autre polynˆ ome. La commande divide v´erifie la
division polynomiale exacte.
>
divide(x^3 - y^3, x - y);
true
>
rem(x^3 - y^3, x - y, x);
0
Vous ´evaluez les polynˆ omes en des valeurs comme avec n’importe
quelle expression en utilisant la commande eval.
>
poly := x^2 + 3*x - 4;
poly := x
2
+ 3 x −4
>
eval(poly, x=2);
6
3.4 Les polyn omes • 65
Tab. 3.1 – Commandes servant ` a d´eterminer les coefficients polynomiaux
Commande Description
coeff extraire un coefficient
lcoeff trouver le coefficient du terme de plus haut degr´e
tcoeff trouver le coefficient du terme de plus faible degr´e
coeffs retourner une suite de tous les coefficients
degree d´eterminer le degr´e (sup´erieur) du polynˆ ome
ldegree d´eterminer le degr´e inf´erieur du polynˆ ome
>
mul_var_poly := y^2*x - 2*y + x^2*y + 1;
mul _var_poly := y
2
x −2 y +y x
2
+ 1
>
eval(mul_var_poly, {y=1,x=-1});
−1
Coefficients et degr´es
Les commandes degree et coeff d´eterminent le degr´e d’un polynˆ ome et
fournissent un m´ecanisme d’extraction des coefficients.
>
poly := 3*z^3 - z^2 + 2*z - 3*z + 1;
poly := 3 z
3
−z
2
−z + 1
>
coeff(poly, z^2);
−1
>
degree(poly,z);
3
Recherche de racines et factorisation
La commande solve d´etermine les racines d’un polynˆ ome tandis que
factor exprime le polynˆ ome sous une forme compl`etement factoris´ee.
66 • Chapitre 3: Trouver des solutions
>
poly1 := x^6 - x^5 - 9*x^4 + x^3 + 20*x^2 + 12*x;
poly1 := x
6
−x
5
−9 x
4
+x
3
+ 20 x
2
+ 12 x
>
factor(poly1);
x(x −2) (x −3) (x + 2) (x + 1)
2
>
poly2 := (x + 3);
poly2 := x + 3
>
poly3 := expand(poly2^6);
poly3 :=
x
6
+ 18 x
5
+ 135 x
4
+ 540 x
3
+ 1215 x
2
+ 1458 x + 729
>
factor(poly3);
(x + 3)
6
>
solve({poly3=0}, {x});
¦x = −3¦, ¦x = −3¦, ¦x = −3¦, ¦x = −3¦, ¦x = −3¦, ¦x = −3¦
>
factor(x^3 + y^3);
(x +y) (x
2
−xy +y
2
)
Maple factorise le polynˆ ome sur l’anneau contenant les coefficients
(entiers, rationnels, etc.). La commande factor vous permet ´egalement de
sp´ecifier un corps alg´ebrique de nombres sur lequel factoriser le polynˆ ome.
Consultez la rubrique d’aide ?factor pour obtenir plus de renseigne-
ments.
3.5 Le calcul diff´erentiel • 67
Tab. 3.2 – D’autres fonctions agissant sur des polynˆ omes
Fonction Description
content contenu d’un polynˆ ome multivari´e
compoly d´ecomposition polynomiale
discrim discriminant d’un polynˆ ome
gcd plus grand commun diviseur
gcdex algorithme ´etendu de division euclidienne
interp interpolation polynomiale
lcm plus petit commun multiple
norm norme d’un polynˆ ome
prem pseudo-reste
primpart partie primitive d’un polynˆ ome multivari´e
randpoly polynˆ ome al´eatoire
recipoly polynˆ ome r´eciproque
resultant r´esultante de deux polynˆ omes
roots racines sur un corps alg´ebrique de nombres
sqrfree factorisation libre de carr´es
3.5 Le calcul diff´erentiel
Maple offre plusieurs outils puissants permettant la r´esolution de
probl`emes de calcul diff´erentiel. Par exemple, il est utile pour calculer les
limites des fonctions. Calculez la limite d’une fonction rationnelle lorsque
x tend vers 1.
>
f := x -> (x^2-2*x+1)/(x^4 + 3*x^3 - 7*x^2 + x+2);
f := x →
x
2
−2 x + 1
x
4
+ 3 x
3
−7 x
2
+x + 2
>
Limit(f(x), x=1);
lim
x→1
x
2
−2 x + 1
x
4
+ 3 x
3
−7 x
2
+x + 2
>
value(%);
1
8
68 • Chapitre 3: Trouver des solutions
Il est ´egalement possible de calculer les limites ` a gauche et ` a droite
d’une fonction. Par exemple, consid´erez la limite de tan(x) lorsque x tend
vers π/2.
Calculez la limite ` a gauche en utilisant l’option left.
>
Limit(tan(x), x=Pi/2, left);
lim
x→(1/2 π)−
tan(x)
>
value(%);

Faites de mˆeme pour la limite ` a droite.
>
Limit(tan(x), x=Pi/2, right);
lim
x→(1/2 π)+
tan(x)
>
value(%);
−∞
Une autre op´eration facile ` a effectuer est la cr´eation d’une s´erie ap-
proximant une fonction donn´ee. Par exemple, utilisez la fonction
>
f := x -> sin(4*x)*cos(x);
f := x → sin(4 x) cos(x)
>
fs1 := series(f(x), x=0);
fs1 := 4 x −
38
3
x
3
+
421
30
x
5
+ O(x
6
)
Remarquez que, par d´efaut, la commande series produit un po-
lynˆ ome d’ordre 6. En modifiant la valeur de la variable sp´eciale Order, il
est possible d’augmenter ou de diminuer l’ordre d’une s´erie polynomiale.
L’utilisation de convert(fs1, polynom) supprime le terme d’ordre
de la s´erie de mani`ere que Maple puisse en tracer le graphique.
3.5 Le calcul diff´erentiel • 69
>
p := convert(fs1,polynom);
p := 4 x −
38
3
x
3
+
421
30
x
5
>
plot({f(x), p},x=-1..1, -2..2);
–2
–1
0
1
2
–1–0.8–0.6–0.4–0.2 0.2 0.4 0.6 0.8 1
x
En augmentant l’ordre de troncation de la s´erie ` a 12 et en recommen-
ant les op´erations pr´ec´edentes, on remarque l’am´elioration escompt´ee de
la pr´ecision de l’approximation.
>
Order := 12;
Order := 12
>
fs1 := series(f(x), x=0);
fs1 := 4 x −
38
3
x
3
+
421
30
x
5

10039
1260
x
7
+
246601
90720
x
9

6125659
9979200
x
11
+ O(x
12
)
>
p := convert(fs1,polynom);
p := 4 x −
38
3
x
3
+
421
30
x
5

10039
1260
x
7
+
246601
90720
x
9

6125659
9979200
x
11
>
plot({f(x), p}, x=-1..1, -2..2);
70 • Chapitre 3: Trouver des solutions
–2
–1
0
1
2
–1–0.8–0.6–0.4–0.2 0.2 0.4 0.6 0.8 1
x
Maple peut calculer symboliquement les d´eriv´ees et les int´egrales. Par
exemple, d´erivez une expression, int´egrez son r´esultat et comparez celui-ci
`a l’expression originale.
>
f := x -> x*sin(a*x) + b*x^2;
f := x → xsin(a x) +b x
2
>
Diff(f(x),x);

∂x
(xsin(a x) +b x
2
)
>
df := value(%);
df := sin(a x) +xcos(a x) a + 2 b x
>
Int(df, x);

sin(a x) +xcos(a x) a + 2 b xdx
>
value(%);

cos(a x)
a
+
cos(a x) +a xsin(a x)
a
+b x
2
>
simplify(%);
x(sin(a x) +b x)
3.5 Le calcul diff´erentiel • 71
Il n’est pas n´ecessaire d’utiliser les formes inertes Diff et Int en con-
jonction avec la commande value pour calculer symboliquement la d´eriv´ee
et l’int´egrale. Les r´esultats peuvent ˆetre calcul´es en une seule commande
en utilisant respectivement diff et int.
Vous pouvez ´egalement effectuer des int´egrales d´efinies. Par exemple,
recalculez l’int´egrale pr´ec´edente sur l’intervalle de x = 1 `a x = 2.
>
Int(df,x=1..2);

2
1
sin(a x) +xcos(a x) a + 2 b xdx
>
value(%);
2 sin(2 a) + 3 b −sin(a)
Consid´erez une int´egrale plus compliqu´ee.
>
Int(exp(-x^2), x);

e
(−x
2
)
dx
>
value(%);
1
2

π erf(x)
`
A quelques occasions, Maple ne peut d´eterminer si une variable est
r´eelle ou complexe, et retourne donc un r´esultat inattendu.
>
g := t -> exp(-a*t)*ln(t);
g := t → e
(−a t)
ln(t)
>
Int (g(t), t=0..infinity);


0
e
(−a t)
ln(t) dt
>
value(%);
72 • Chapitre 3: Trouver des solutions
lim
t→∞

e
(−a t)
ln(t) + Ei(1, a t) +γ + ln(a)
a
Ici, Maple assume que le param`etre est un nombre complexe. Il re-
tourne donc une r´eponse plus g´en´erale.
Dans les situations o` u vous savez que a est un nombre positif r´eel,
sp´ecifiez-le ` a Maple en utilisant la commande assume.
>
assume(a > 0):
>
ans := Int(g(t), t=0..infinity);
ans :=


0
e
(−a~ t)
ln(t) dt
>
value(%);

ln(a~)
a~

γ
a~
Le r´esultat est beaucoup plus simple. Le seul terme non ´el´ementaire est
la constante gamma. Le tilde (~) indique que a porte une hypoth`ese. Vous
devez maintenant supprimer cette hypoth`ese pour parcourir les exemples
ult´erieurs. Deux ´etapes sont n´ecessaires. La r´eponse, ans, contient a avec
des hypoth`eses. Si vous souhaitez repartir de z´ero et continuer ` a utiliser
ans, vous devez remplacer toutes les occurrences de a~ par a.
>
ans := subs(a =’a’, ans );
ans :=


0
e
(−a t)
ln(t) dt
Le premier argument, a = ’a’, m´erite une attention particuli`ere. Si
vous tapez a apr`es avoir plac´e une hypoth`ese sur a, Maple assume auto-
matiquement que vous parlez de la variable a~. En Maple, les guillemets
simples retardent l’´evaluation. Dans ce cas, ils assurent que Maple in-
terpr`ete le deuxi`eme a comme a et non a~.
Maintenant que vous avez supprim´e l’hypoth`ese sur a dans ans, vous
pouvez supprimer l’hypoth`ese sur a elle-mˆeme en lui affectant son propre
nom.
>
a := ’a’:
Utilisez les guillemets simples pour la mˆeme raison que pr´ec´edemment.
Pour plus de renseignements, consultez la section 5.2.
3.6 Les ´equations diff´erentielles : dsolve • 73
3.6 Les ´equations diff´erentielles : dsolve
Maple peut r´esoudre symboliquement plusieurs ´equations diff´erentielles
ordinaires (EDO), incluant les probl`emes de conditions initiales et de
conditions aux limites.
D´efinissez une EDO.
>
ode1 := {diff(y(t),t,t) + 5*diff(y(t),t) + 6*y(t) = 0};
ode1 := ¦(
d
2
dt
2
y(t)) + 5 (
d
dt
y(t)) + 6 y(t) = 0¦
D´efinissez les conditions initiales.
>
ic := {y(0)=0, D(y)(0)=1};
ic := ¦y(0) = 0, D(y)(0) = 1¦
R´esolvez au moyen de dsolve, en utilisant l’op´erateur union pour
former l’union des deux ensembles.
>
soln := dsolve(ode1 union ic, {y(t)});
soln := y(t) = −e
(−3 t)
+e
(−2 t)
Si vous souhaitez utiliser cette solution pour l’´evaluer en certains
points ou pour en tracer le graphique, rappelez-vous d’utiliser la com-
mande unapply pour d´efinir correctement une fonction Maple. La sec-
tion 3.1 discute davantage de cette question.
Vous pouvez extraire une valeur d’un ensemble solution au moyen de
la commande eval.
>
eval( y(t), soln );
−e
(−3 t)
+e
(−2 t)
Utilisez maintenant ce fait pour d´efinir y comme une fonction de t en
utilisant unapply :
>
y1:= unapply(%, t );
y1 := t → −e
(−3 t)
+e
(−2 t)
74 • Chapitre 3: Trouver des solutions
>
y1(a);
−e
(−3 a)
+e
(−2 a)
V´erifiez maintenant que y1 est bien une solution de l’EDO :
>
eval(ode1, y=y1);
¦0 = 0¦
et que y1 satisfait bien aux conditions initiales.
>
eval(ic, y=y1);
¦1 = 1, 0 = 0¦
Une autre m´ethode de v´erification des solutions est ´egalement dispo-
nible, bien qu’elle puisse sembler d´eroutante au premier abord. Donnez ` a
la nouvelle solution le nom y plutˆ ot que y1.
>
y := unapply( eval(y(t), soln), t );
y := t → −e
(−3 t)
+e
(−2 t)
Maintenant, lorsque vous entrez une ´equation contenant y, Maple uti-
lise cette fonction et en ´evalue le r´esultat, en une seule ´etape.
>
ode1;
¦0 = 0¦
>
ic;
¦1 = 1, 0 = 0¦
Si vous souhaitez modifier l’´equation diff´erentielle, vous ne voudrez
plus de cette d´efinition pour y(x) ; vous devrez donc supprimer cette
d´efinition au moyen de la commande suivante :
>
y := ’y’;
3.6 Les ´equations diff´erentielles : dsolve • 75
y := y
Maple reconnaˆıt ´egalement les fonctions sp´eciales, comme la fonction
de Dirac utilis´ee en physique.
>
ode2 := 10^6*diff(y(x),x,x,x,x) = Dirac(x-2) -
>
Dirac(x-4);
ode2 := 1000000 (
d
4
dx
4
y(x)) = Dirac(x −2) −Dirac(x −4)
Sp´ecifiez des conditions aux limites :
>
bc := {y(0)=0, D(D(y))(0)=0, y(5)=0};
bc := ¦(D
(2)
)(y)(0) = 0, y(0) = 0, y(5) = 0¦
sp´ecifiez ´egalement une valeur initiale.
>
iv := {D(D(y))(5)=0};
iv := ¦(D
(2)
)(y)(5) = 0¦
>
soln := dsolve({ode2} union bc union iv, {y(x)});
soln := y(x) =
1
6000000
Heaviside(x −2) x
3

1
750000
Heaviside(x −2) +
1
500000
Heaviside(x −2) x

1
1000000
Heaviside(x −2) x
2

1
6000000
Heaviside(x −4) x
3
+
1
93750
Heaviside(x −4) −
1
125000
Heaviside(x −4) x
+
1
500000
Heaviside(x −4) x
2

1
15000000
x
3
+
1
1250000
x
>
eval(y(x), soln);
76 • Chapitre 3: Trouver des solutions
1
6000000
Heaviside(x −2) x
3

1
750000
Heaviside(x −2)
+
1
500000
Heaviside(x −2) x

1
1000000
Heaviside(x −2) x
2

1
6000000
Heaviside(x −4) x
3
+
1
93750
Heaviside(x −4) −
1
125000
Heaviside(x −4) x
+
1
500000
Heaviside(x −4) x
2

1
15000000
x
3
+
1
1250000
x
>
y := unapply(%, x);
y := x →
1
6000000
Heaviside(x −2) x
3

1
750000
Heaviside(x −2) +
1
500000
Heaviside(x −2) x

1
1000000
Heaviside(x −2) x
2

1
6000000
Heaviside(x −4) x
3
+
1
93750
Heaviside(x −4) −
1
125000
Heaviside(x −4) x
+
1
500000
Heaviside(x −4) x
2

1
15000000
x
3
+
1
1250000
x
Cette valeur de y satisfait ` a l’´equation diff´erentielle, ` a la condition
aux limites et ` a la valeur initiale.
>
ode2;
3.6 Les ´equations diff´erentielles : dsolve • 77
24 Dirac(1, x −4) −12 Dirac(1, x −2)
+ 6 Dirac(1, x −2) x −6 Dirac(1, x −4) x
+ 8 Dirac(2, x −2) −8 Dirac(2, x −2) x
+ 2 Dirac(2, x −2) x
2
+ 16 Dirac(2, x −4) x
−2 Dirac(2, x −4) x
2
+
1
6
Dirac(3, x −2) x
3
+ 2 Dirac(3, x −2) x −Dirac(3, x −2) x
2

1
6
Dirac(3, x −4) x
3
−8 Dirac(3, x −4) x
+ 2 Dirac(3, x −4) x
2
−32 Dirac(2, x −4)

4
3
Dirac(3, x −2) +
32
3
Dirac(3, x −4) + 4 Dirac(x −2)
−4 Dirac(x −4) = Dirac(x −2) −Dirac(x −4)
>
simplify(%);
Dirac(x −2) −Dirac(x −4) = Dirac(x −2) −Dirac(x −4)
>
bc;
¦0 = 0¦
>
iv;
¦0 = 0¦
>
plot(y(x), x=0..5, axes=BOXED);
0
2e–07
4e–07
6e–07
8e–07
1e–06
0 1 2 3 4 5
x
Maintenant que vous n’utilisez plus y, vous devriez y enlever toute
r´ef´erence.
78 • Chapitre 3: Trouver des solutions
>
y := ’y’;
y := y
Maple peut ´egalement r´esoudre des syst`emes d’´equations diff´eren-
tielles ; par exemple, le syst`eme suivant form´e de deux ´equations simul-
tan´ees du second ordre.
>
de_sys := { diff(y(x),x,x)=z(x), diff(z(x),x,x)=y(x) };
de_sys := ¦
d
2
dx
2
y(x) = z(x),
d
2
dx
2
z(x) = y(x)¦
>
soln := dsolve(de_sys, {z(x),y(x)});
soln := ¦
y(x) = −_C1 sin(x) + _C2 e
x
−_C3 cos(x) + _C4 e
(−x)
,
z(x) = _C1 sin(x) + _C2 e
x
+ _C3 cos(x) + _C4 e
(−x)
¦
Si vous r´esolvez le syst`eme sans sp´ecifier de conditions suppl´emen-
taires, Maple produit automatiquement les constantes appropri´ees _C1,
. . ., _C4.
Observez encore qu’il est possible d’extraire et de d´efinir les solutions
`a l’aide des commandes eval et unapply :
>
y := unapply(eval(y(x), soln), x );
y := x → −_C1 e
(−x)
+ _C2 e
x
−_C3 sin(x) + _C4 cos(x)
>
y(1);
−_C1 e
(−1)
+ _C2 e −_C3 sin(1) + _C4 cos(1)
Vous pouvez d´er´ef´erencer les solutions lorsque vous en avez termin´e.
>
y := ’y’;
y := y
3.7 L’organisation de Maple • 79
3.7 L’organisation de Maple
Au d´emarrage, Maple ne charge en m´emoire que le noyau (en anglais
kernel ) de son programme. Ce noyau constitue la base du syst`eme, car
il contient les commandes fondamentales et primitives : l’interpr´eteur du
langage Maple (qui convertit les commandes saisies en instructions ma-
chine que le microprocesseur de votre ordinateur peut comprendre), des
algorithmes de calcul num´erique ´el´ementaire ainsi que des routines d’af-
fichage des r´esultats et d’op´erations d’entr´ee-sortie.
Le noyau est form´e de code C hautement optimis´e et totalise environ
10% de la taille du syst`eme. Les programmeurs de Maple ont d´elib´er´ement
conserv´e sa taille petite pour en pr´eserver la rapidit´e d’ex´ecution. Le
noyau de Maple ex´ecute les routines les plus fr´equentes en arithm´etique
enti`ere et rationnelle et dans la manipulation des polynˆ omes.
Les 90% restants du savoir math´ematique de Maple sont ´ecrits dans
le langage Maple et r´esident dans sa biblioth`eque (library en anglais). La
biblioth`eque se divise en deux groupes : la biblioth`eque principale (main
library) et les packages. Hi´erarchiquement, ces groupes de fonctions se
situent au-dessus du noyau.
La biblioth`eque principale contient les commandes Maple les plus
fr´equemment utilis´ees (excluant celles d´ej`a contenues dans le noyau).
Ces commandes sont charg´ees lorsqu’elles sont appel´ees — il n’est pas
n´ecessaire de les charger explicitement. Le langage Maple produit des
proc´edures tr`es compactes qui n’affichent pas de d´elai observable : vous
ne remarquerez probablement pas la diff´erence entre ces derni`eres et les
commandes du noyau ´ecrites en C.
Les derni`eres commandes de la biblioth`eque sont les packages. Chacun
des nombreux packages de Maple contient un groupe de commandes ef-
fectuant des calculs apparent´es. Par exemple, le package LinearAlgebra
contient des commandes pour la manipulation des matrices.
Vous pouvez utiliser une commande d’un package de trois mani`eres.
1. Utilisez le nom complet du package, suivi de la commande d´esir´ee.
package[cmd]( ... )
Si le package poss`ede un sous-package, utilisez le nom complet du pac-
kage, le nom complet du sous-package, suivi de la commande d´esir´ee.
package[souspackage][cmd](...)
Puis, entrez le nom abr´eg´e de la commande.
80 • Chapitre 3: Trouver des solutions
cmd(...)
2. Activez les noms abr´eg´es pour toutes les commandes d’un package en
utilisant la commande with.
with(package)
Si le package poss`ede un sous-package, utilisez la commande with de
la mani`ere suivante.
with(package[souspackage])
Puis, entrez le nom abr´eg´e de la commande.
cmd(...)
3. Activez le nom abr´eg´e d’une seule commande d’un package.
with(package, cmd)
Si le package poss`ede un sous-package, utilisez la commande with de
la mani`ere suivante.
with(package[souspackage], cmd)
Puis, entrez le nom abr´eg´e de la commande.
cmd(...)
Le prochain exemple utilise la commande Tangent du package
Student pour calculer la pente de la tangente de l’expression sin(x) au
point x = 0.
>
with(Student[Calculus1]);
3.8 Les packages Maple • 81
[AntiderivativePlot, ApproximateInt, ArcLength,
Asymptotes, Clear, CriticalPoints, DerivativePlot,
ExtremePoints, FunctionAverage, FunctionChart,
GetMessage, GetNumProblems, GetProblem, Hint,
InflectionPoints, Integrand, InversePlot,
MeanValueTheorem, NewtonQuotient, NewtonsMethod,
PointInterpolation, RiemannSum, RollesTheorem,
Roots, Rule, Show, ShowIncomplete, ShowSteps,
Summand, SurfaceOfRevolution, Tangent,
TaylorApproximation, Understand, Undo,
VolumeOfRevolution, WhatProblem]
>
Tangent(sin(x), x = 0);
x
Lorsque vous utilisez with(package), vous voyez apparaˆıtre une liste
de tous les noms abr´eg´es des commandes du package. De plus, Maple vous
avertit lorsqu’il red´efinit des noms d´ej`a existants.
3.8 Les packages Maple
Les packages inclus dans Maple permettent d’effectuer des tˆ aches dans
de nombreuses disciplines, du calcul diff´erentiel ´el´ementaire ` a la th´eorie
g´en´erale de la relativit´e. Les exemples de cette section ne se veulent pas
d´etaill´es et complets : ils ne sont que des illustrations de quelques com-
mandes dans des packages particuliers qui vous donneront un aper¸ cu des
capacit´es de Maple.
Liste des packages
Vous trouverez la liste de packages suivante dans la page d’aide
?packages. Pour obtenir une liste compl`ete des commandes d’un package
en particulier, consultez la page d’aide ?nomdupackage.
algcurves Outils pour l’´etude des vari´et´es (courbes) alg´ebriques unidi-
mensionnelles d´efinies par des polynˆ omes multivari´es.
codegen Outils de cr´eation, de manipulation et de traduction de proc´e-
dures Maple en d’autres langages. Ce package permet la diff´erentiation
82 • Chapitre 3: Trouver des solutions
automatique, l’optimisation de code, la traduction en C et en FOR-
TRAN, etc.
CodeGeneration Fonctions qui traduisent un programme Maple en
d’autres langages de programmation.
combinat Fonctions combinatoires incluant des commandes pour calculer
les permutations et les combinaisons de listes, de mˆeme que les parti-
tions enti`eres. (Utilisez plutˆ ot le package combstruct lorsque cela est
possible.)
combstruct Commandes qui permettent de g´en´erer et de compter les
structures combinatoires ainsi que de d´eterminer les ´equations des
fonctions g´en´eratrices permettant ce comptage.
context Outils de construction et de modification des menus contextuels
de l’interface graphique de Maple (affich´es, par exemple, en cliquant
sur une expression avec le bouton de droite de la souris).
CurveFitting Commandes qui permettent de tracer des courbes de ten-
dances.
DEtools Outils de manipulation, de r´esolution et d’affichage des syst`emes
d’´equations diff´erentielles ; espaces de phases et graphiques de champs.
diffalg Commandes de manipulation de syst`emes d’´equations diff´eren-
tielles polynomiales (EDO ou EDP).
difforms Commandes de gestion des formes diff´erentielles ; d´edi´e aux
probl`emes de g´eom´etrie diff´erentielle.
Domains Commandes qui permettent de cr´eer des domaines de calcul
(domains of computation en anglais) ; supporte le calcul sur les
polynˆ omes, les matrices de mˆeme que les s´eries sur des anneaux de
nombres, les anneaux finis, les anneaux de polynˆ omes et les anneaux
de matrices.
ExternalCalling Commandes effectuant des liens vers des fonctions ex-
ternes.
finance Commandes de calcul financier.
GaussInt Commandes qui permettent de travailler sur les nombres de
la forme a + bI (o` u a et b sont entiers) que l’on appelle les entiers
gaussiens ; commandes de calcul du PGCD, de factorisation et de
tests de primalit´e.
genfunc Commandes de manipulation des fonctions g´en´eratrices ration-
nelles.
geom3d Commandes de g´eom´etrie euclidienne tridimensionnelle pour
d´efinir et manipuler en trois dimensions points, lignes, plans, triangles,
sph`eres, poly`edres, etc.
3.8 Les packages Maple • 83
geometry Commandes de g´eom´etrie euclidienne bidimensionnelle servant
`a d´efinir et ` a manipuler en deux dimensions points, lignes, triangles
et cercles.
Groebner Commandes pour les calculs en base de Gr¨ obner ; en particu-
lier, outils de calcul pour les alg`ebres de Ore et les D-modules.
group Commandes permettant de travailler avec les groupes de permu-
tations et les groupes finiment pr´esent´es.
inttrans Commandes qui permettent de travailler avec les transforma-
tions d’int´egrales et leurs inverses.
LibraryTools Commandes de manipulation et de traitement de biblio-
th`eques.
liesymm Commandes servant ` a caract´eriser les sym´etries de contact des
syst`emes d’´equations aux d´eriv´ees partielles.
linalg Plus de 100 commandes de manipulation matricielle et vecto-
rielle ; de l’addition de matrices aux vecteurs et valeurs propres.
LinearAlgebra Commandes d’alg`ebre lin´eaire am´elior´ees servant ` a cr´eer
des types sp´eciaux de matrices, calculer avec de grandes matrices nu-
m´eriques et effectuer des op´erations d’alg`ebre matricielle.
LinearFunctionalSystems Commandes qui permettent de r´esoudre des
syst`emes lin´eaires de fonctions avec des coefficients polynomiaux,
d´eterminent le d´enominateur universel d’une solution rationnelle et
transforment un syst`eme de r´ecurrence matriciel en un syst`eme
´equivalent avec une matrice de tˆete ou de queue non singuli`ere.
ListTools Commandes de manipulation de listes.
LREtools Commandes de manipulation, d’affichage et de r´esolution de
relations de r´ecurrence lin´eaire.
Maplets Commandes permettant de cr´eer des fenˆetres, des boˆıtes de dia-
logue et d’autres interfaces visuelles qui interagissent avec l’utilisateur.
MathML Commandes qui importent et exportent des expressions Maple en
texte MathML.
Matlab Commandes qui exploitent plusieurs des fonctions matricielles nu-
m´eriques de Matlab, incluant les valeurs et les vecteurs propres, les
d´eterminants et la d´ecomposition LU. (Ce package est accessible seule-
ment si Matlab est install´e sur votre syst`eme.)
MatrixPolynomialAlgebra Ensemble d’outils de manipulation alg´e-
brique des polynˆ omes matriciels.
84 • Chapitre 3: Trouver des solutions
networks Outils de construction, de tra¸ cage et d’analyse des r´eseaux
combinatoires. Outils de gestion des graphes orient´es et d’expressions
arbitraires pour les poids des nœuds et des arˆetes.
numapprox Commandes de calcul d’approximations polynomiales de fonc-
tions sur un intervalle donn´e.
numtheory Commandes de th´eorie des nombres classique, tests de pri-
malit´e, calcul du n-i`eme nombre premier, g´en´eration de polynˆ omes
d’unit´es cyclotomiques. Ce package contient ´egalement des com-
mandes de gestion des convergents.
Ore_algebra Routines de calcul de base dans les alg`ebres d’op´erateurs
lin´eaires.
OrthogonalSeries Commandes de manipulation de s´eries de polynˆ omes
orthogonaux classiques ou, de mani`ere plus g´en´erale, de polynˆ omes
hyperg´eom´etriques.
orthopoly Commandes servant ` a g´en´erer diff´erents types de polynˆ omes
orthogonaux ; ce package s’av`ere utile pour la r´esolution d’´equations
diff´erentielles.
padic Commandes de calcul des approximations p-adiques de nombres
r´eels.
PDEtools Outils de manipulation, de r´esolution et d’affichage d’´equations
aux d´eriv´ees partielles.
plots Commandes pour diff´erents types de graphiques sp´ecialis´es, in-
cluant les graphiques d’isovaleurs, les graphiques bidimensionnels et
tridimensionnels de fonctions implicites, l’affichage de texte et de gra-
phiques dans diff´erents syst`emes de coordonn´ees.
plottools Commandes servant ` a g´en´erer et ` a manipuler des objets gra-
phiques.
PolynomialTools Commandes de manipulation d’objets polynomiaux.
polytools Commandes de manipulation d’objets polynomiaux.
powseries Commandes servant ` a cr´eer et manipuler des s´eries enti`eres
formelles repr´esent´ees par leur terme g´en´eral.
process Commandes permettant d’´ecrire des programmes Maple multi-
processus sous UNIX.
RandomTools Commandes permettant de travailler avec des objets al´ea-
toires.
RationalNormalForms Commandes permettant de construire la forme
normale polynomiale ou les formes rationnelles canoniques d’une fonc-
tion rationnelle, ou la repr´esentation minimale d’un terme hyperg´eo-
m´etrique.
3.8 Les packages Maple • 85
RealDomain Fournit un environnement dans lequel le syst`eme de nombres
assum´e est le syst`eme des nombres r´eels, et non le syst`eme des nombres
complexes.
ScientificConstants Commandes donnant acc`es aux valeurs de diff´e-
rentes quantit´es physiques utilis´ees couramment en physique ou en
chimie.
simplex Commandes d’optimisation lin´eaire utilisant la m´ethode du sim-
plexe.
Slode Commandes servant ` a trouver des solutions ` a des EDO lin´eaires
sous forme de s´eries enti`eres.
Sockets Commandes permettant les communications r´eseau avec Maple.
Les routines de ce package vous permettent de vous connecter ` a des
processus situ´es sur des hˆ otes distants (par Internet ou Intranet) et
´echanger des donn´ees avec ces processus.
SolveTools Commandes qui permettent de r´esoudre des syst`emes
d’´equations alg´ebriques. Ce package donne aux utilisateurs exp´eri-
ment´es l’acc`es aux routines appliqu´ees par la commande solve pour
un meilleur contrˆ ole du processus de r´esolution.
Spread Outils permettant de travailler avec les feuilles de calcul dans
Maple.
stats Manipulation statistique de donn´ees ; inclut des commandes pour
le calcul de la moyenne, l’´ecart type, les coefficients de corr´elation, la
variance et l’analyse de r´egression.
StringTools Commandes optimis´ees de manipulation des chaˆınes de ca-
ract`eres.
Student Sous-packages sp´ecifiques ` a certains cours. Dans des versions
futures de Maple, ce package sera ´elargi pour inclure d’autres sous-
packages li´es `a l’enseignement. Le premier de ceux-ci est Calculus1.
Calculus1 Commandes permettant de d´ecortiquer les ´etapes de la
diff´erentiation, de l’int´egration et du calcul des limites, la visua-
lisation de la m´ethode de Newton, les sommes de Riemann, la
longueur d’arc, les volumes de r´evolution, de mˆeme que des rou-
tines pour trouver les points critiques d’une expression.
sumtools Commandes de calcul de sommes d´efinies et ind´efinies. Com-
prend les algorithmes de Gosper et de Zeilberger.
Sumtools Outils permettant de calculer des formes ferm´ees de sommes
d´efinies et ind´efinies.
tensor Commandes permettant le calcul tensoriel et ses applications ` a
la th´eorie g´en´erale de la relativit´e.
86 • Chapitre 3: Trouver des solutions
Le package Student Calculus1 (une variable)
Le package Student[Calculus1] vous aide ` a effectuer les calculs de
diff´erentiation, d’int´egration et de limites. Consid´erez le probl`eme sui-
vant : trouvez la d´eriv´ee de la fonction 4 ∗ x
2
.
>
with(Student[Calculus1]):
>
infolevel[Student] := 1:
Pour voir la liste de toutes les commandes charg´ees par Maple, remplacez
les deux points par le point-virgule ` a la fin de la commande.
>
Diff(4*x^2, x);
d
dx
(4 x
2
)
Utilisez la r`egle constantmultiple.
>
Rule[constantmultiple](%);
Creating problem #1
d
dx
(4 x
2
) = 4 (
d
dx
(x
2
))
Utilisez la r`egle power.
>
Rule[power](%);
d
dx
(4 x
2
) = 8 x
Consid´erez maintenant cet exemple d’int´egration. Int´egrez x∗cos(x)+
x entre x = 0 et x = π.
>
Int(x*cos(x) + x, x=0..Pi);

π
0
xcos(x) +xdx
Utilisez la r`egle sum.
>
Rule[sum](%);
Creating problem #2
3.8 Les packages Maple • 87

π
0
xcos(x) +xdx =

π
0
xcos(x) dx +

π
0
xdx
Utilisez la r`egle power.
>
Rule[power](%);

π
0
xcos(x) +xdx =

π
0
xcos(x) dx +
1
2
π
2
Employez la commande Hint pour obtenir un indice sur la prochaine
´etape de r´esolution du probl`eme.
>
Hint(%);
[parts, x, sin(x)]
Utilisez cet indice avec la commande Rule.
>
Rule[%](%%);

π
0
xcos(x) +xdx = −

π
0
sin(x) dx +
1
2
π
2
Servez-vous de la r`egle sin pour terminer le calcul.
>
Rule[sin](%);

π
0
xcos(x) +xdx = −2 +
1
2
π
2
Employez le package Student[Calculus1] pour calculer la limite de
(1 + 1/x)
x
.
Utilisez la commande Understand pour sp´ecifier des r`egles qui servi-
ront au calcul d’une limite par la commande Limit sans les appliquer
directement. Sp´ecifiez ` a Understand les r`egles de la constante, de la
constante multiplicative, de la puissance et de la somme pour le pro-
chain exemple.
>
Understand(Limit, constant, ‘c*‘, power, sum);
88 • Chapitre 3: Trouver des solutions
Limit = [constant, constantmultiple, power, sum]
>
Limit((1 + 1/x)^x, x=infinity);
lim
x→∞
(1 +
1
x
)
x
Demandez un indice ` a propos de la prochaine ´etape ` a effectuer.
>
Hint(%);
Creating problem #3
Rewrite the expression as an exponential to prepare for
using l‘Hopital’s rule
[rewrite, (1 +
1
x
)
x
= e
(xln(1+
1
x
))
]
Utilisez la r`egle donn´ee par Hint.
>
Rule[%](%%);
lim
x→∞
(1 +
1
x
)
x
= lim
x→∞
e
(xln(1+
1
x
))
>
Hint(%);
[exp]
>
Rule[%](%%);
lim
x→∞
(1 +
1
x
)
x
= e
(lim
x→∞
xln(1+
1
x
))
>
Hint(%);
[lhopital , ln(1 +
1
x
)]
>
Rule[%](%%);
3.8 Les packages Maple • 89
lim
x→∞
(1 +
1
x
)
x
= e
(lim
x→∞
x
x+1
)
>
Hint(%);

rewrite,
x
x + 1
=
1
1 +
1
x
¸
¸
¸
>
Rule[%](%%);
lim
x→∞
(1 +
1
x
)
x
= e
Consid´erez la fonction −2/3∗x
2
+x. Tracez-en le graphique, de mˆeme
que la pente de sa tangente en x = 0.
>
Tangent(-2/3*x^2+x, x=0, -2..2, output=plot,
>
showtangent=true);
f(x)
The tangent at x = 0

The Tangent to the Graph of
f(x) = –2/3*x^2+x
at the Point (0, f(0))
–5
–4
–3
–2
–1
1
2
–2 –1 1 2
x
En quel endroit cette courbe traverse-t-elle l’axe des x?
>
Roots(-2/3*x^2+x);
[0,
3
2
]
Vous pouvez calculer l’aire sous la courbe entre ces deux points au
moyen de sommes de Riemann.
90 • Chapitre 3: Trouver des solutions
>
ApproximateInt(-2/3*x^2+x, x=0..3/2, method=midpoint,
>
output=plot, view=[0..1.6, -0.15..0.4]);
f(x)

An Approximation of the Integral of
f(x) = –2/3*x^2+x
on the Interval [0, 3/2]
Using a Midpoint Riemann Sum
Approximate Value: .3750000000
Area: .3768750000
–0.2
–0.1
0
0.1
0.2
0.3
0.4
0.2 0.4 0.6 0.8 1 1.2 1.4 1.6
x
Puisque le r´esultat n’est pas une bonne approximation, augmentez
`a 40 le nombre de boˆıtes utilis´ees.
>
ApproximateInt(-2/3*x^2+x, x=0..3/2, method=midpoint,
>
output=plot, view=[0..1.6, -0.15..0.4],
>
partition=40);
f(x)

An Approximation of the Integral of
f(x) = –2/3*x^2+x
on the Interval [0, 3/2]
Using a Midpoint Riemann Sum
Approximate Value: .3750000000
Area: .3751171867
–0.2
–0.1
0
0.1
0.2
0.3
0.4
0.2 0.4 0.6 0.8 1 1.2 1.4 1.6
x
Quelle est la valeur exacte ? Utilisez d’abord n boˆıtes et calculez la
formule de la somme.
>
ApproximateInt(-2/3*x^2+x, x=0..3/2, method=midpoint,
>
output=sum, partition=n);
3
2
n−1
¸
i=0

¸
¸

3
2
(i +
1
2
)
2
n
2
+
3
2
i +
1
2
n
¸

n
3.8 Les packages Maple • 91
Prenez ensuite la limite lorsque n tend vers ∞.
>
Limit( %, n=infinity );
lim
n→∞
3
2
n−1
¸
i=0

¸
¸

3
2
(i +
1
2
)
2
n
2
+
3
2
i +
1
2
n
¸

n
>
value(%);
3
8
Remarquez maintenant que vous pouvez obtenir le mˆeme r´esultat au
moyen d’une int´egrale.
>
Int(-2/3*x^2+x, x=0..3/2 );

3/2
0

2
3
x
2
+xdx
>
value(%);
3
8
Pour plus d’information sur le calcul diff´erentiel avec Maple, reportez-
vous au chapitre 6.
Le package LinearAlgebra
En alg`ebre lin´eaire, un ensemble de vecteurs lin´eairement ind´ependants
qui engendrent l’espace vectoriel se nomme une base. Il est possible d’ex-
primer n’importe quel ´el´ement de l’espace vectoriel comme une combinai-
son lin´eaire des ´el´ements de la base.
Un ensemble de vecteurs ¦v
1
, v
2
, v
3
, . . . , v
n
¦ est lin´eairement ind´epen-
dant si et seulement si, lorsque
c
1
v
1
+c
2
v
2
+c
3
v
3
+ +c
n
v
n
= 0
alors
c
1
= c
2
= c
3
= = c
n
= 0.
92 • Chapitre 3: Trouver des solutions
Probl`eme : D´eterminer une base de l’espace vectoriel g´en´er´e par les
vecteurs [1, −1, 0, 1], [5, −2, 3, −1] et [6, −3, 3, 0]. Exprimer le vecteur
[1, 2, 3, −5] par rapport ` a cette base.
Solution : Entrer les vecteurs.
>
with(LinearAlgebra):
>
v1:=<1|-1|0|1>:
>
v2:=<5|-2|3|-1>:
>
v3:=<6|-3|3|0>:
>
vector_space:=<v1,v2,v3>;
vector_space :=

1 −1 0 1
5 −2 3 −1
6 −3 3 0
¸
¸
Si les vecteurs sont lin´eairement ind´ependants, il forment une base.
Pour v´erifier l’ind´ependance lin´eaire, ´ecrivez l’´equation c
1
v
1
+c
2
v
2
+c
3
v
3
=
0.
c
1
[1, −1, 0, 1] +c
2
[5, −2, 3, −1] +c
3
[6, −3, 3, 0] = [0, 0, 0, 0]
Cette ´equation est ´equivalente ` a
c
1
+ 5c
2
+ 6c
3
= 0
−c
1
−2c
2
−3c
3
= 0
3c
2
+ 3c
3
= 0
c
1
−c
2
= 0
>
LinearSolve( Transpose(vector_space), <0,0,0,0> );

−_t3
3
−_t3
3
_t3
3
¸
¸
Les vecteurs sont lin´eairement d´ependants puisque chacun est un pro-
duit lin´eaire d’une variable. Ils ne peuvent donc pas former une base. La
commande RowSpace retourne une base pour un espace vectoriel donn´e.
>
b:=RowSpace(vector_space);
b := [[1, 0, 1, −1], [0, 1, 1, −2]]
3.8 Les packages Maple • 93
>
b1:=b[1]; b2:=b[2];
b1 := [1, 0, 1, −1]
b2 := [0, 1, 1, −2]
>
basis:=<b1,b2>;
basis :=
¸
1 0 1 −1
0 1 1 −2

Exprimer [1, 2, 3, −5] en coordonn´ees par rapport ` a cette base.
>
LinearSolve( Transpose(basis), <1|2|3|-5> );
¸
1
2

Pour obtenir davantage d’information ` a propos de ce package, ex´ecu-
tez la commande ?LinearAlgebra.
Le package Matlab
Le package Matlab vous permet d’appeler certaines fonctions de Matlab ` a
partir d’une session Maple, en supposant que Matlab soit install´e sur votre
syst`eme
1
. Matlab est une abr´eviation de matrix laboratory (laboratoire
de matrices) et est un package de calcul num´erique fort populaire, utilis´e
par des ing´enieurs et d’autres professionnels.
On doit d’abord ´etablir une connexion entre les deux produits avec
>
Matlab[openlink]();
Pour d´eterminer les valeurs et les vecteurs propres d’une matrice d’en-
tiers, on d´efinit d’abord la matrice souhait´ee avec la syntaxe de Maple.
>
A := Matrix([1,2,3],[1,2,3],[2,5,6]]):
On appelle ensuite la commande eig de Matlab.
1
Il existe ´egalement un Symbolic Computation Toolbox disponible pour Matlab qui
vous permet d’appeler des commandes Maple depuis Matlab.
94 • Chapitre 3: Trouver des solutions
>
P,W := Matlab[eig](A, eigenvectors=true):
Remarquez ce qui se trouve ` a la gauche de l’op´erateur d’affectation.
Le (P,W) sp´ecifie que deux objets seront g´en´er´es et assign´es aux variables
— les valeurs propres, ` a W, et les vecteurs propres, ` a P. L’affectation
multiple est ´egalement possible avec les commandes Maple, mais, puisque
les commandes Maple existantes sont con¸ cues pour ne retourner qu’un
seul r´esultat, cette fonctionnalit´e est peu utilis´ee.
Examinons les r´esultats.
>
W;

9.321825 0. 0.
0. −.5612673 10
−15
0.
0. 0. −.3218253
¸
¸
¸
¸
>
P;

−.3940365889964673 −.9486832980505138 −.5567547110202646
−.3940365889964672 −2.758331802155925 10
−16
−.5567547110202655
−.8303435030540421 .3162277660168383 .6164806432593667
¸
¸
¸
¸
Les commandes de ce package peuvent ´egalement prendre comme pa-
ram`etres des donn´ees en format Matlab. Consultez l’aide sous la rubrique
Matlab pour obtenir plus d’information sur les donn´ees Matlab accept´ees
par Maple.
Le package Statistics
Le package stats poss`ede plusieurs commandes d’analyse et de mani-
pulation de donn´ees, de mˆeme que plusieurs types de graphiques utilis´es
en statistique. Il contient ´egalement un grand ´eventail de distributions
statistiques.
stats est un exemple de package renfermant des sous-packages (sub-
packages en anglais).
`
A l’int´erieur de chaque sous-package se trouvent
plusieurs commandes group´ees par fonctionnalit´e.
>
with(stats);
[anova, describe, fit, importdata, random, statevalf ,
statplots, transform]
3.8 Les packages Maple • 95
Le package stats traite les donn´ees sous la forme de listes statis-
tiques, qui peuvent ˆetre de simples listes Maple. Une liste statistique peut
´egalement contenir des intervalles et des valeurs auxquelles des poids ont
´et´e assign´es. La diff´erence se comprend plus facilement au moyen d’un
exemple. marks est une liste standard,
>
marks :=
>
[64,93,75,81,45,68,72,82,76,73];
marks := [64, 93, 75, 81, 45, 68, 72, 82, 76, 73]
tout comme readings,
>
readings := [ 0.75, 0.75, .003, 1.01, .9125,
>
.04, .83, 1.01, .874, .002 ];
readings :=
[.75, .75, .003, 1.01, .9125, .04, .83, 1.01, .874, .002]
qui sont ´equivalentes ` a cette liste statistique.
>
readings := [ Weight(.75, 2), .003, Weight(1.01, 2),
>
.9125, .04, .83, .874, .002 ];
readings := [Weight(.75, 2), .003, Weight(1.01, 2),
.9125, .04, .83, .874, .002]
L’expression Weight(x,n) indique que la valeur x apparaˆıt n fois dans
la liste.
Si des diff´erences de moins de 0, 01 sont suffisamment petites pour
ˆetre n´egligeables, il est possible de les regrouper et de ne sp´ecifier qu’un
intervalle (en utilisant “..”).
>
readings := [ Weight(.75, 2), Weight(1.01, 2), .9125,
>
.04, .83, .874, Weight(0.002..0.003, 2) ];
readings := [Weight(.75, 2), Weight(1.01, 2), .9125, .04,
.83, .874, Weight(.002...003, 2)]
Le sous-package describe contient des commandes servant ` a l’analyse
de donn´ees.
>
describe[mean](marks);
96 • Chapitre 3: Trouver des solutions
729
10
>
describe[range](marks);
45..93
>
describe[range](readings);
.002..1.01
>
describe[standarddeviation](readings);
.4038750456
Ce package contient plusieurs distributions statistiques. G´en´erez des
donn´ees al´eatoires en utilisant la distribution normale, groupez-les en
classes et tracez un histogramme de ces classes.
>
random_data:=[random[normald](50)];
random_data := [1.253885017, −.8364873682,
−.4386378394, −1.140005385, .1529160443,
.7487697029, −.4908898750, −.6385850228,
.7648245898, −.04721150696, −1.463572278,
.4470293004, 1.342701867, 2.162605068,
−.2620109124, .1093403084, −.9886372087,
−.7765483851, −.1231141571, .3876183720,
1.625165927, 1.095665255, −.2068680316,
−1.283733823, 1.583279600, .3045008349,
−.7304597374, .4996033128, .8670709448,
−.1729739933, −.6819890237, .005183053789,
.8876933468, −.3758638317, 1.452138520,
2.858250470, .6917100232, .6341448687,
.6707087107, .5872984199, .03801888006,
−.1238893314, −.01231563388, −.7709242575,
−1.599692668, .8181350112, .08547526754,
.09467224460, −1.407989130, .4128440679]
>
ranges:=[-5..-2,-2..-1,-1..0,0..1,1..2,2..5];
3.8 Les packages Maple • 97
ranges := [−5.. −2, −2.. −1, −1..0, 0..1, 1..2, 2..5]
>
data_list:=transform[tallyinto](random_data,ranges);
data_list := [Weight(1..2, 6), Weight(−5.. −2, 0),
Weight(2..5, 2), Weight(−2.. −1, 5), Weight(0..1, 20),
Weight(−1..0, 17)]
>
statplots[histogram](data_list);
0
5
10
15
20
–6 –4 –2 2 4 6
Le package d’optimisation lin´eaire
Le package simplex contient des commandes d’optimisation lin´eaire grˆ ace
`a l’utilisation de l’algorithme du simplexe. L’optimisation lin´eaire permet
de trouver des solutions optimales ` a des ´equations soumises ` a certaines
contraintes.
Un exemple classique d’optimisation est le probl`eme de la livraison de
pizza. Imaginez-vous en livreur de pizza : vous devez livrer quatre pizzas
en quatre endroits diff´erents dispers´es dans la ville. Vous souhaitez livrer
toutes les quatre en utilisant le moins de carburant possible. Vous devez
´egalement vous rendre aux quatre endroits en moins de vingt minutes,
de mani`ere que les pizzas demeurent chaudes. Si vous cr´eez des ´equations
math´ematiques repr´esentant les routes menant aux quatre endroits ainsi
que leurs distances respectives, vous pouvez trouver la solution optimale,
c’est-` a-dire la solution qui vous fera utiliser le moins de carburant tout
en atteignant toutes les adresses dans le plus court d´elai possible. Les
contraintes de ce syst`eme particulier sont que vous devez avoir livr´e toutes
les quatre pizzas vingt minutes apr`es avoir quitt´e le restaurant.
Voici un petit syst`eme en guise d’exemple.
>
with(simplex);
98 • Chapitre 3: Trouver des solutions
Warning, the protected names maximize and minimize have
been redefined and unprotected
Warning, the name basis has been redefined
[basis, convexhull , cterm, define_zero, display, dual ,
feasible, maximize, minimize, pivot, pivoteqn, pivotvar,
ratio, setup, standardize]
Supposons que vous souhaitez maximiser l’expression w
>
w := -x+y+2*z;
w := −x +y + 2 z
soumise aux contraintes c1, c2 et c3.
>
c1 := 3*x+4*y-3*z <= 23;
c1 := 3 x + 4 y −3 z ≤ 23
>
c2 := 5*x-4*y-3*z <= 10;
c2 := 5 x −4 y −3 z ≤ 10
>
c3 := 7*x +4*y+11*z <= 30;
c3 := 7 x + 4 y + 11 z ≤ 30
>
maximize(w, {c1,c2,c3});
Dans ce cas, l’absence de r´eponse signifie que Maple ne peut trouver de
solution. Vous pouvez utiliser la commande feasible pour v´erifier que
l’ensemble des contraintes est valide.
>
feasible({c1,c2,c3});
true
Essayez ` a nouveau, en ajoutant une restriction ` a la solution.
>
maximize(w, {c1,c2,c3}, NONNEGATIVE);
3.9 Conclusion • 99
¦x = 0, z =
1
2
, y =
49
8
¦
3.9 Conclusion
Ce chapitre vous a pr´esent´e des caract´eristiques fondamentales de Maple
qui vous aideront grandement ` a mesure que vous apprendrez de nouvelles
m´ethodes de r´esolution de probl`emes plus complexes. La section 3.1 vous
a introduit aux commandes solve et fsolve de mˆeme qu’` a leur utilisation
ad´equate. Que vous utilisiez ou non les commandes solve, ces m´ethodes
s’av`ereront utiles ` a de nombreuses reprises.
Les derni`eres sections du pr´esent chapitre ont introduit les mani-
pulations, la commande solve et l’organisation de Maple et de ses bi-
blioth`eques de mani`ere `a vous donner un avant-goˆ ut de son potentiel.
`
A
ce point de votre lecture, vous ne connaissez pas encore tout ` a fait ce
logiciel. Vous en savez cependant suffisamment pour commencer ` a utiliser
Maple de mani`ere efficace.
`
A votre guise, vous pouvez interrompre ici votre ´etude pour travailler
(ou jouer !) avec Maple.
100 • Chapitre 3: Trouver des solutions
4 Tracer des graphiques
Quelquefois, la meilleure mani`ere de mieux comprendre une structure
math´ematique consiste ` a en tracer le graphique. Maple peut produire
plusieurs formes de graphiques : en deux ou trois dimensions, anim´es ou
non, affichables selon n’importe quel angle. Maple peut g´erer les formes
explicites, implicites et param´etriques et exploiter plusieurs syst`emes de
coordonn´ees. La flexibilit´e de Maple vous permet de manipuler ais´ement
des graphiques dans de nombreuses situations.
4.1 Graphiques en deux dimensions
Lorsqu’on lui demande de tracer une fonction donn´ee explicitement y =
f(x), Maple doit connaˆıtre la fonction et son domaine.
>
plot( sin(x), x=-2*Pi..2*Pi );
–1
–0.5
0
0.5
1
–6 –4 –2 2 4 6
x
Cliquer sur n’importe quel point de la fenˆetre du graphique fait af-
ficher les coordonn´ees de ce point. Les menus (que l’on retrouve sur la
barre de menu ou en cliquant avec le bouton droit de la souris sur le gra-
phique lui-mˆeme) vous permettent de modifier plusieurs caract´eristiques
101
102 • Chapitre 4: Tracer des graphiques
des graphiques et d’utiliser des options d’affichage r´esum´ees sous la ru-
brique ?plot,options.
Maple peut ´egalement tracer le graphe de fonctions d´efinies par l’uti-
lisateur.
>
f := x -> 7*sin(x) + sin(7*x);
f := x → 7 sin(x) + sin(7 x)
>
plot(f(x), x=0..10);
–6
–4
–2
0
2
4
6
2 4 6 8 10
x
Maple vous permet d’examiner plus en d´etail des intervalles, ` a la fois
en x et en y.
>
plot(f(x), x=0..10, y=4..8);
4
5
6
7
8
y
0 2 4 6 8 10
x
Maple peut mˆeme g´erer des domaines infinis.
>
plot( sin(x)/x, x=0..infinity);
4.1 Graphiques en deux dimensions • 103
0
infinity
x
Les graphiques param´etriques
Certains graphiques ne peuvent ˆetre sp´ecifi´es explicitement ; en d’autres
mots, il est impossible d’exprimer la variable d´ependante sous forme de
fonction y = f(x). Sur un cercle, par exemple, la plupart des valeurs de x
correspondent deux valeurs de y. Une solution consiste ` a rendre ` a la fois
x et y d´ependantes d’un autre param`etre, par exemple t. Le graphique
g´en´er´e `a partir de ces fonctions se nomme un graphique param´etrique.
Utilisez la syntaxe suivante pour utiliser les graphiques param´etriques.
plot( [ x-expr, y-expr, parametre=intervalle ] )
Vous tracez ainsi une liste contenant x-expr, y-expr, le nom et l’intervalle
du param`etre. Par exemple :
>
plot( [ t^2, t^3, t=-1..1 ] );
–1
–0.5
0
0.5
1
0.2 0.4 0.6 0.8 1
Les points (cos t, sint) forment un cercle.
>
plot( [ cos(t), sin(t), t=0..2*Pi ] );
104 • Chapitre 4: Tracer des graphiques
–1
–0.5
0.5
1
–1 –0.5 0.5 1
Plutˆ ot que de produire un cercle, le graphique ci-dessus ressemble da-
vantage ` a une ellipse puisque Maple, par d´efaut, d´eforme le graphique
pour lui faire prendre les dimensions de la fenˆetre. Voici le mˆeme gra-
phique pour lequel on a sp´ecifi´e le param`etre scaling=constrained. Il
est possible de changer l’´echelle des axes en utilisant les menus ou l’option
scaling.
>
plot( [ cos(t), sin(t), t=0..2*Pi ], scaling=constrained );
–1
–0.5
0.5
1
–1 –0.5 0.5 1
Le d´esavantage de constrained r´eside dans le fait que cette option
peut cacher d’importants d´etails lorsque les caract´eristiques d’une dimen-
sion apparaissent ` a une ´echelle beaucoup plus petite que les autres. Le
graphique suivant est trac´e sans l’option constrained (unconstrained).
>
plot( exp(x), x=0..3 );
4.1 Graphiques en deux dimensions • 105
2
4
6
8
10
12
14
16
18
20
0 0.5 1 1.5 2 2.5 3
x
Voici maintenant le mˆeme graphique, trac´e avec l’option
constrained.
>
plot( exp(x), x=0..3, scaling=constrained);
2
4
6
8
10
12
14
16
18
20
0123
x
Les coordonn´ees polaires
Les coordonn´ees cart´esiennes (ordinaires) sont les coordonn´ees par d´efaut
de Maple et ne repr´esentent qu’une des multiples mani`eres de sp´ecifier un
point dans l’espace ; les coordonn´ees polaires, (r, θ), peuvent ´egalement
ˆetre utilis´ees.
En coordonn´ees polaires, r est la distance du point ` a l’origine, et θ
repr´esente l’angle entre l’axe des x et la ligne passant par le point donn´e
et l’origine.
Maple peut tracer une fonction en coordonn´ees polaires ` a l’aide de
la commande polarplot. Pour acc´eder ` a la forme abr´eg´ee de cette com-
mande, vous devez d’abord appeler la commande with(plots).
>
with(plots):
106 • Chapitre 4: Tracer des graphiques
Figure 4.1 Le syst`eme de coordonn´ees polaires
θ
r
0
y
x
Utilisez la syntaxe suivante pour tracer les graphiques en coordonn´ees
polaires.
polarplot( r-expr, angle=intervalle )
En coordonn´ees polaires, vous pouvez sp´ecifier le cercle explicitement en
entrant r = 1.
>
polarplot( 1, theta=0..2*Pi, scaling=constrained );
–1
–0.5
0.5
1
–1 –0.5 0.5 1
Tout comme dans cette section ` a la page 103, le param`etre
scaling=constrained fait apparaˆıtre le cercle rond. Voici le graphique
de r = sin(3θ).
>
polarplot( sin(3*theta), theta=0..2*Pi );
4.1 Graphiques en deux dimensions • 107
–1
–0.8
–0.6
–0.4
–0.2
0
0.2
0.4
–0.8–0.6–0.4–0.2 0.2 0.4 0.6 0.8
Le graphique de r = θ est une spirale.
>
polarplot(theta, theta=0..4*Pi);
–10
–8
–6
–4
–2
2
4
6
8
–5 5 10
La commande polarplot accepte ´egalement les graphiques param´etri-
s´es ; vous pouvez donc exprimer le rayon et les coordonn´ees angulaires en
fonction d’un param`etre, par exemple t. La syntaxe est similaire aux gra-
phiques param´etriques en coordonn´ees cart´esiennes. Consultez la pr´esente
section, page 103.
polarplot( [ r-expr, angle-expr, param` etre=intervalle ] )
Les ´equations r = sin(t) et θ = cos(t) d´efinissent le graphique suivant.
>
polarplot( [ sin(t), cos(t), t=0..2*Pi ] );
108 • Chapitre 4: Tracer des graphiques
–0.4
–0.2
0.2
0.4
–1 –0.5 0.5 1
Voici le graphique de θ = sin(3r).
>
polarplot( [ r, sin(3*r), r=0..7 ] );
–4
–2
0
2
4
1 2 3 4 5 6
Les fonctions discontinues
Les fonctions poss´edant des discontinuit´es demandent davantage d’at-
tention. Consid´erez par exemple la fonction suivante, qui poss`ede deux
discontinuit´es en x = 1 et x = 2.
f(x) =

−1 si x < 1,
1 si 1 ≤ x < 2,
3 sinon.
Voici comment d´efinir f(x) dans Maple.
>
f := x -> piecewise( x<1, -1, x<2, 1, 3 );
f := x → piecewise(x < 1, −1, x < 2, 1, 3)
>
plot(f(x), x=0..3);
4.1 Graphiques en deux dimensions • 109
–1
0
1
2
3
0.5 1 1.5 2 2.5 3
x
Maple dessine des lignes presque verticales pr`es d’un point de discon-
tinuit´e. L’option discont=true indique qu’il peut y avoir des disconti-
nuit´es.
>
plot(f(x), x=0..3, discont=true);
–1
0
1
2
3
0.5 1 1.5 2 2.5 3
x
Les fonctions qui poss`edent des singularit´es (qui deviennent arbitrai-
rement grandes en un certain point) forment un autre cas particulier. La
fonction x → 1/(x −1)
2
poss`ede une singularit´e en x = 1.
>
plot( 1/(x-1)^2, x=-5..6 );
0
50000
100000
150000
200000
250000
–4 –2 2 4 6
x
110 • Chapitre 4: Tracer des graphiques
Dans le graphique pr´ec´edent, tous les d´etails int´eressants du graphique
sont perdus en raison du pic en x = 1. La solution consiste ` a visualiser la
fonction sur un intervalle restreint, par exemple entre y = −1 et y = 7.
>
plot( 1/(x-1)^2, x=-5..6, y=-1..7 );
–1
0
1
2
3
4
5
6
7
y
–4 –2 2 4 6
x
La fonction tangente poss`ede plusieurs singularit´es en x =
π
2
+πn, o` u
n est un entier.
>
plot( tan(x), x=-2*Pi..2*Pi );
1000
2000
3000
–6 –4 –2 2 4 6
x
Pour en voir les d´etails, on r´eduit l’intervalle entre y = −4 et y = 4,
par exemple.
>
plot( tan(x), x=-2*Pi..2*Pi, y=-4..4 );
–4
–3
–2
–1
0
1
2
3
4
y
–6 –4 –2 2 4 6
x
4.1 Graphiques en deux dimensions • 111
Maple dessine des lignes presque verticales pr`es des singularit´es ; vous
devez donc utiliser l’option discont=true.
>
plot( tan(x), x=-2*Pi..2*Pi, y=-4..4, discont=true );
–4
–3
–2
–1
0
1
2
3
4
y
–6 –4 –2 2 4 6
x
Graphiques multiples
Pour tracer plus d’une fonction dans un mˆeme graphique, il suffit de
donner ` a la commande plot une liste de fonctions.
>
plot( [ x, x^2, x^3, x^4 ], x=-10..10, y=-10..10 );
–10
–8
–6
–4
–2
0
2
4
6
8
10
y
–10 –8 –6 –4 –2 2 4 6 8 10
x
>
f := x -> piecewise( x<0, cos(x), x>=0, 1+x^2 );
f := x → piecewise(x < 0, cos(x), 0 ≤ x, 1 +x
2
)
>
plot( [ f(x), diff(f(x), x), diff(f(x), x, x) ],
>
x=-2..2, discont=true );
112 • Chapitre 4: Tracer des graphiques
–1
0
1
2
3
4
5
–2 –1 1 2
x
Cette technique fonctionne ´egalement pour les graphiques param´e-
triques.
>
plot( [ [ 2*cos(t), sin(t), t=0..2*Pi ],
>
[ t^2, t^3, t=-1..1 ] ], scaling=constrained );
–1
–0.5
0.5
1
–2 –1 1 2
En utilisant diff´erents styles de ligne (par exemple continue ou poin-
till´ee), il est ais´e de distinguer diff´erentes fonctions dans un mˆeme gra-
phique en sp´ecifiant le param`etre linestyle. Dans l’exemple suivant,
Maple utilise linestyle=SOLID pour la premi`ere fonction, sin(x)/x et
linestyle=DOT pour la seconde fonction, cos(x)/x.
>
plot( [ sin(x)/x, cos(x)/x ], x=0..8*Pi, y=-0.5..1.5,
>
linestyle=[1,4] );
4.1 Graphiques en deux dimensions • 113
–0.4
–0.2
0
0.2
0.4
0.6
0.8
1
1.2
1.4
y
5 10 15 20 25
x
Vous pouvez ´egalement changer le style de ligne en utilisant les menus
standard et contextuels. De mani`ere similaire, vous pouvez sp´ecifier les
couleurs des graphiques au moyen de l’option color. (Vous pouvez en
voir l’effet sur un affichage en couleurs, contrairement au pr´esent livre qui
n’affiche les lignes que selon diff´erentes teintes de gris.)
>
plot( [ [f(x), D(f)(x), x=-2..2],
>
[D(f)(x), (D@@2)(f)(x), x=-2..2] ],
>
color=[gold, plum] );
–1
0
1
2
3
4
1 2 3 4 5
Consultez la rubrique ?plot,color pour obtenir plus de d´etails sur
les couleurs dans Maple.
Tracer des points
Pour tracer des donn´ees num´eriques, appelez la fonction pointplot en
sp´ecifiant les donn´ees dans une liste de listes de la forme
[[x
1
, y
1
], [x
2
, y
2
], . . . , [x
n
, y
n
]].
Si la liste est longue, donnez-lui un nom.
>
data_list:=[[-2,4],[-1,1],[0, 0],[1,1],[2,4],[3,9],[4,16]];
114 • Chapitre 4: Tracer des graphiques
data_list :=
[[−2, 4], [−1, 1], [0, 0], [1, 1], [2, 4], [3, 9], [4, 16]]
>
pointplot(data_list);
0
2
4
6
8
10
12
14
16
–2 –1 1 2 3 4
Par d´efaut, Maple ne relie pas les points par des lignes droites ; l’option
style=line oblige ` a tracer ces lignes. Vous pouvez ´egalement utiliser les
menus pour indiquer ` a Maple de tracer les lignes.
>
pointplot( data_list, style=line );
0
2
4
6
8
10
12
14
16
–2 –1 1 2 3 4
Vous pouvez changer l’apparence des points eux-mˆemes ` a l’aide des
menus ou des options symbol et symbolsize.
>
data_list_2:=[[1,1], [2,2], [3,3], [4,4]];
data_list_2 := [[1, 1], [2, 2], [3, 3], [4, 4]]
>
pointplot(data_list_2, style=point, symbol=cross,
>
symbolsize=16);
4.1 Graphiques en deux dimensions • 115
1
1.5
2
2.5
3
3.5
4
1 1.5 2 2.5 3 3.5 4
Utilisez le package CurveFitting pour lisser une courbe passant par
une suite de points et appelez la commande plot pour en voir le r´esultat.
Pour plus d’information, reportez-vous ` a la rubrique ?CurveFitting.
Raffiner des graphiques
Maple comporte un algorithme de trac´e adaptatif. Il calcule la valeur de
la fonction en un nombre raisonnable de points approximativement ´e-
quidistants dans l’intervalle sp´ecifi´e. Il d´ecide ensuite de calculer plus de
points dans les intervalles o` u les valeurs fluctuent davantage. Cependant,
il peut arriver que cet algorithme adaptatif ne donne pas de r´esultats
satisfaisants.
>
plot(sum((-1)^(i)*abs(x-i/10), i=0..30), x=-1..4);
2.6
2.8
3
3.2
3.4
–1 0 1 2 3 4 5 6
x
Pour raffiner ce graphique, on peut indiquer ` a Maple de calculer da-
vantage de points.
>
plot(sum((-1)^(i)*abs(x-i/10), i=0..30), x=-1..4,
>
numpoints=500);
116 • Chapitre 4: Tracer des graphiques
2.6
2.8
3
3.2
3.4
–1 0 1 2 3 4 5 6
x
Consultez ?plot et ?plot,options pour en connaˆıtre davantage.
4.2 Graphiques en trois dimensions
Vous pouvez tracer le graphique d’une fonction de deux variables comme
une surface dans l’espace tridimensionnel. Cela vous permet de visualiser
cette derni`ere. La syntaxe de plot3d est similaire ` a celle de plot. Encore
une fois, une fonction donn´ee explicitement, z = f(x, y), est la plus facile
`a tracer.
>
plot3d( sin(x*y), x=-2..2, y=-2..2 );
Vous pouvez faire tourner le graphique en cliquant sur la fenˆetre avec
votre souris et en faisant bouger la boˆıte qui en d´efinit le contour. Les
menus vous permettent de modifier plusieurs caract´eristiques d’un gra-
phique.
Tout comme plot, plot3d peut tracer des fonctions d´efinies par l’uti-
lisateur.
4.2 Graphiques en trois dimensions • 117
>
f := (x,y) -> sin(x) * cos(y);
f := (x, y) → sin(x) cos(y)
>
plot3d( f(x,y), x=0..2*Pi, y=0..2*Pi );
Par d´efaut, Maple affiche le graphique comme une surface color´ee,
mais il est possible de modifier cette option en utilisant les menus ou
le param`etre style. Par exemple, style=hidden dessine le graphique
comme une structure en fil de fer.
>
plot3d( f(x,y), x=0..2*Pi, y=0..2*Pi, style=hidden );
Consultez ?plot3d,options pour obtenir une liste des options de
style.
Le domaine du deuxi`eme param`etre peut d´ependre du premier pa-
ram`etre.
>
plot3d( sqrt(x-y), x=0..9, y=-x..x );
118 • Chapitre 4: Tracer des graphiques
Les graphiques param´etriques
Certains graphiques ne peuvent ˆetre sp´ecifi´es explicitement ; en d’autres
mots, il est impossible d’exprimer la variable d´ependante sous forme de
fonction z = f(x, y). La sph`ere en est un exemple. Comme pour les
graphiques bidimensionnels (consultez la section Les graphiques pa-
ram´etriques de la page 103), une solution consiste ` a rendre ` a la fois
x, y et z d´ependantes de deux autres param`etres, par exemple s et t.
Le graphique produit ` a partir de ces fonctions se nomme un graphique
param´etrique. Utilisez la syntaxe suivante pour sp´ecifier les graphiques
param´etriques.
plot3d( [ x-expr, y-expr, z-expr ],
paramtre1=intervalle, paramtre2=intervalle )
En voici deux exemples.
>
plot3d( [ sin(s), cos(s)*sin(t), sin(t) ],
>
s=-Pi..Pi, t=-Pi..Pi );
>
plot3d( [ s*sin(s)*cos(t), s*cos(s)*cos(t), s*sin(t) ],
>
s=0..2*Pi, t=0..Pi );
4.2 Graphiques en trois dimensions • 119
Les coordonn´ees sph´eriques
Les coordonn´ees cart´esiennes (ordinaires) sont les coordonn´ees par d´efaut
de Maple et ne repr´esentent qu’une des multiples mani`eres de sp´ecifier un
point dans l’espace en trois dimensions ; les coordonn´ees sph´eriques sont
une autre option.
En coordonn´ees sph´eriques, les trois coordonn´ees sont r, la distance
du point ` a l’origine, l’angle θ dans le plan xy depuis l’axe des x et l’angle
φ depuis l’axe des z.
Figure 4.2 Le syst`eme de coordonn´ees sph´eriques
θ
r
φ
0
z
y
x
Maple peut tracer une fonction en coordonn´ees sph´eriques en utilisant
la commande sphereplot du package plots. Pour acc´eder ` a la forme
abr´eg´ee de cette commande, vous devez d’abord appeler la commande
with(plots). Pour ´eviter d’afficher la liste de toutes les commandes de
plots, tapez les deux-points plutˆ ot que le point-virgule.
>
with(plots):
Vous pouvez utiliser la commande sphereplot de la mani`ere suivante.
120 • Chapitre 4: Tracer des graphiques
sphereplot( r-expr, theta=intervalle, phi=intervalle )
Le graphique de r = (4/3)
θ
sinφ ressemble ` a ceci :
>
sphereplot( (4/3)^theta * sin(phi),
>
theta=-1..2*Pi, phi=0..Pi );
Le trac´e d’une sph`ere en coordonn´ees sph´eriques est simple : il suffit
de sp´ecifier le rayon, par exemple 1, et de laisser θ tourner tout le long de
l’´equateur et φ tourner du pˆ ole nord (φ = 0) au pˆole sud (φ = π).
>
sphereplot( 1, theta=0..2*Pi, phi=0..Pi,
>
scaling=constrained );
(Consultez la section 4.1 pour une explication de l’option
constrained.)
La commande sphereplot accepte ´egalement les graphiques para-
m´etris´es, c’est-` a-dire les graphiques qui sp´ecifient le rayon et les deux
coordonn´ees d’angle en fonction de deux autres param`etres, par exemple s
et t. La syntaxe est similaire ` a celle d’un graphique param´etrique en deux
dimensions en coordonn´ees cart´esiennes ; consultez la pr´esente section ` a
la page 118.
4.2 Graphiques en trois dimensions • 121
sphereplot([ r-expr, theta-expr, phi-expr ],
param1=intervalle, param2=intervalle)
Ici, r = exp(s) +t, θ = cos(s +t) et φ = t
2
.
>
sphereplot( [ exp(s)+t, cos(s+t), t^2 ],
>
s=0..2*Pi, t=-2..2 );
Les coordonn´ees cylindriques
On peut ´egalement sp´ecifier un point dans le syst`eme cylindrique en
sp´ecifiant les coordonn´ees r, θ et z. Ici, r et θ sont les cooronn´ees polaires
(voir la section 4.1) dans le plan xy et z est la coordonn´ee cart´esienne
usuelle en z.
Figure 4.3 Le syst`eme de coordonn´ees cylindriques
r θ
0
z
y
x
Maple trace les fonctions en coordonn´ees cylindriques au moyen de la
commande cylinderplot du package plots.
>
with(plots):
Vous pouvez tracer les graphiques en coordonn´ees cylindriques en appli-
quant la syntaxe suivante :
122 • Chapitre 4: Tracer des graphiques
cylinderplot( r-expr, angle=intervalle, z=intervalle )
Voici une version tridimensionnelle de la spirale montr´ee dans la sec-
tion 4.1.
>
cylinderplot( theta, theta=0..4*Pi, z=-1..1 );
Les cˆ ones sont facilement trac´es en coordonn´ees cylindriques : il suffit
de sp´ecifier r = z et de faire varier θ de 0 `a 2π.
>
cylinderplot( z, theta=0..2*Pi, z=0..1 );
cylinderplot accepte ´egalement les graphiques param´etriques. Leur
syntaxe est similaire ` a celle des graphiques param´etriques en coordonn´ees
cart´esiennes. Consultez la section Les graphiques param´etriques de la
page 118.
cylinderplot( [ r-expr, theta-expr, z-expr ],
param` etre1=intervalle,
param` etre2=intervalle )
L’image suivante est un graphique de la fonction r = st, θ = s et
z = cos(t
2
).
4.2 Graphiques en trois dimensions • 123
>
cylinderplot( [s*t, s, cos(t^2)], s=0..Pi, t=-2..2 );
Raffiner des graphiques
Si votre graphique n’est pas aussi lisse ou pr´ecis que vous le souhaitez,
vous pouvez indiquer ` a Maple d’en calculer plus de points. L’option le
permettant est
grid=[m, n]
o` u m est le nombre de points ` a utiliser pour la premi`ere coordonn´ee, et n
le nombre de points ` a utiliser pour la seconde coordonn´ee.
>
plot3d( sin(x)*cos(y), x=0..3*Pi, y=0..3*Pi, grid=[50,50] );
Dans le prochain exemple, un grand nombre de points (100) pour la
premi`ere coordonn´ee (theta) rend la spirale lisse. Cependant, la fonction
ne varie pas selon l’axe des z ; un nombre faible de points (5) est donc
suffisant.
>
cylinderplot( theta, theta=0..4*Pi, z=-1..1, grid=[100,5] );
124 • Chapitre 4: Tracer des graphiques
La valeur par d´efaut de grid est d’environ 25 points sur 25.
Mod`eles de coloriage et d’´eclairage
Deux m´ethodes permettent colorier une surface en trois dimensions. Dans
la premi`ere, une ou plusieurs sources lumineuses color´ees illuminent la
surface. Dans la seconde, la couleur de chaque point est fonction directe
de ses coordonn´ees.
Maple poss`ede un grand nombre de configurations de sources lumi-
neuses donnant des r´esultats esth´etiquement satisfaisants. Vous pouvez
choisir ces sources lumineuses par les menus ou au moyen de l’option
lightmodel. Pour colorier la surface directement, un certain nombre de
fonctions de coloriage pr´ed´efinies est ´egalement disponible par les menus
ou au moyen de l’option shading.
L’usage simultan´e de sources lumineuses et de coloriage direct peut
compliquer le rendu des couleurs. Utilisez des sources lumineuses ou un
coloriage direct. Voici une surface colori´ee avec un shading zgrayscale
sans ´eclairage.
>
plot3d( x*y^2/(x^2+y^4), x=-5..5,y=-5..5,
>
shading=zgrayscale, lightmodel=none );
4.3 L’animation • 125
Voici la mˆeme surface illumin´ee par le mod`ele d’´eclairage light1 sans
coloriage (shading).
>
plot3d( x*y^2/(x^2+y^4), x=-5..5,y=-5..5,
>
shading=none, lightmodel=light1 );
Dans le pr´esent manuel, les graphiques apparaissent en noir et blanc.
Essayez-les vous-mˆeme pour voir les effets de la couleur.
4.3 L’animation
Tracer des graphiques constitue une excellente mani`ere de repr´esenter
l’information ; cependant, des images statiques ne mettent pas toujours
en ´evidence certains comportements graphiques, comme la d´eformation
d’une balle qui rebondit.
Une animation Maple ressemble ` a une s´equence d’images d’un film :
une suite de graphiques s’affichent rapidement l’un apr`es l’autre. Les deux
commandes utilis´ees pour les animations, animate et animate3d, sont
d´efinies dans le package plots. Souvenez-vous qu’il vous faut d’abord
entrer la commande with(plots) pour exploiter ensuite ces fonctions
sous leur forme abr´eg´ee.
L’animation en deux dimensions
Vous pouvez sp´ecifier une animation bidimensionnelle selon la syntaxe qui
suit.
animate( y-expr, x=intervalle, temps=intervalle )
Les images suivantes sont un exemple d’animation.
>
with(plots):
126 • Chapitre 4: Tracer des graphiques
Warning, the name changecoords has been redefined
>
animate( sin(x*t), x=-10..10, t=1..2 );
x x
x x x x
x x x
x
x
x x x
x x
Pour faire d´efiler une animation, vous devez d’abord la s´electionner
en cliquant dessus. Puis, choisissez Play dans le menu Animation.
Par d´efaut, une animation en deux dimensions est form´ee de seize
graphiques (frames). Si le mouvement vous semble saccad´e, vous pouvez
augmenter le nombre d’images. Notez cependant que le calcul d’un grand
nombre d’images demande beaucoup de temps et accapare beaucoup de
m´emoire. La commande suivante peut ˆetre coll´ee dans Maple pour pro-
duire une animation de 50 images.
>
animate( sin(x*t), x=-10..10, t=1..2, frames=50);
Les options standard des commandes plot sont ´egalement disponibles.
Entrez l’exemple suivant dans Maple pour en voir l’animation.
>
animate( sin(x*t), x=-10..10, t=1..2,
>
frames=50, numpoints=100 );
Vous pouvez afficher n’importe quelle animation bidimensionnelle sous
la forme d’un graphique tridimensionnel statique. Par exemple, essayez de
tracer l’animation de sin(xt) ci-dessus comme une surface.
>
plot3d( sin(x*t), x=-10..10, t=1..2, grid=[50,100],
>
orientation=[135,45], axes=boxed , style=HIDDEN );
4.3 L’animation • 127
–10
10
x
1
2
t
–1
0
1
Que vous pr´ef´eriez une animation ou un graphique est une question de
goˆ ut et d´epend des concepts que l’animation ou le graphique doit mettre
en ´evidence.
L’animation de graphiques param´etriques est ´egalement possible (con-
sultez la section 4.1 de la page 103).
>
animate( [ a*cos(u), sin(u), u=0..2*Pi ], a=0..2 );
L’option coords indique ` a la commande animate d’utiliser un syst`eme
de coordonn´ees autre que les coordonn´ees cart´esiennes.
>
animate( theta*t, theta=0..8*Pi, t=1..4, coords=polar );
128 • Chapitre 4: Tracer des graphiques
Pour voir les animations, entrez ces commandes dans Maple.
L’animation en trois dimensions
Utilisez la commande animate3d pour animer des surfaces en trois di-
mensions. Vous pouvez utiliser la commande animate3d de la mani`ere
suivante.
animate3d( z-expr, x=intervalle, y=intervalle,
temps=intervalle )
Les images qui suivent sont un exemple d’une animation en trois di-
mensions.
>
animate3d( cos(t*x)*sin(t*y),
>
x=-Pi..Pi, y=-Pi..Pi, t=1..2 );
Par d´efaut, une animation tridimensionnelle est form´ee de huit gra-
phiques. De la mˆeme mani`ere que pour les animations en deux dimensions,
vous pouvez indiquer ` a Maple le nombre de graphiques ` a tracer au moyen
du param`etre frames.
>
animate3d( cos(t*x)*sin(t*y), x=-Pi..Pi, y=-Pi..Pi, t=1..2,
>
frames=16 );
La section 4.2 explique le fonctionnement des graphiques tridimen-
sionnels param´etriques, que vous pouvez ´egalement animer.
4.4 Annoter des graphiques • 129
>
animate3d( [s*time, t-time, s*cos(t*time)],
>
s=1..3, t=1..4, time=2..4, axes=boxed);
12
2 2
–3
2 2 2
2
2 2 2
Pour animer une fonction dans un syst`eme de coordonn´ees diff´erent
des coordonn´ees cart´esiennes, utilisez l’option coords. Pour les coor-
donn´ees sph´eriques, par exemple, utilisez coords=spherical.
>
animate3d( (1.3)^theta * sin(t*phi), theta=-1..2*Pi,
>
phi=0..Pi, t=1..8, coords=spherical );
Pour les coordonn´ees cylindriques, utilisez coords=cylindrical.
>
animate3d( sin(theta)*cos(z*t), theta=1..3, z=1..4,
>
t=1/4..7/2, coords=cylindrical );
Pour obtenir une liste des syst`emes de coordonn´ees accept´es par
Maple, consultez ?plots,changecoords.
4.4 Annoter des graphiques
Il est possible d’ajouter plusieurs types d’annotations textuelles aux gra-
phiques. L’option title imprime le titre choisi dans la fenˆetre du gra-
phique, centr´e et pr`es du haut.
>
plot( sin(x), x=-2*Pi..2*Pi, title="Plot of Sine" );
130 • Chapitre 4: Tracer des graphiques
Plot of Sine
–1
–0.5
0
0.5
1
–6 –4 –2 2 4 6
x
Prenez note qu’en sp´ecifiant le titre, vous devez placer des guillemets
doubles (") aux deux extr´emit´es du texte. Ce d´etail est tr`es important.
Maple utilise des guillemets doubles pour d´elimiter les chaˆınes de ca-
ract`eres : il consid`ere tout ce qui apparaˆıt entre les guillemets doubles
comme du texte qu’il doit prendre tel quel. Vous pouvez sp´ecifier la po-
lice, le style et la taille du titre au moyen de l’option titlefont. Consultez
?plot,options ou ?plot3d,options.
>
with(plots):
Warning, the name changecoords has been redefined
>
sphereplot( 1, theta=0..2*Pi, phi=0..Pi,
>
scaling=constrained, title="The Sphere",
>
titlefont=[HELVETICA, BOLD, 24] );
The Sphere
L’option labels vous permet de cr´eer des ´etiquettes aux axes, l’op-
tion labelsfont d´efinit la police et le style des ´etiquettes et l’option
labeldirections permet de placer les ´etiquettes des axes verticale-
ment ou horizontalement. Remarquez que les ´etiquettes ne doivent pas
4.4 Annoter des graphiques • 131
forc´ement ˆetre identiques au nom des variables de l’expression dont vous
tracez le graphique.
>
plot( x^2, x=0..3, labels=["time", "velocity"],
>
labeldirections=[horizontal,vertical] );
0 2 4 6 8
v e l o c i t y
0
.5
1
1
.5
2
2
.5
3
tim
e
Les ´etiquettes s’affichent seulement si les axes sont ´egalement affich´es.
Dans le cas des graphiques tridimensionnels, les axes ne sont pas affich´es
par d´efaut ; vous devez donc les sp´ecifier.
>
plot3d( sin(x*y), x=-1..1, y=-1..1,
>
labels=["length", "width", "height"], axes=FRAMED );
–1
1
length
–1
1
width
–0.8
0.8
height
L’option legend vous permet d’ajouter une l´egende de texte ` a votre
graphique.
>
plot( [sin(x), cos(x)], x=-3*Pi/2..3*Pi/2, linestyle=[1,4],
>
legend=["The Sine Function", "The Cosine Function"] );
132 • Chapitre 4: Tracer des graphiques
The Sine Function
The Cosine Function

–1
–0.5
0.5
1
–4 –2 2 4
x
Voyez ´egalement la section 4.5 ` a la page 134.
4.5 Les graphiques composites
Maple vous permet d’afficher plusieurs graphiques simultan´ement, apr`es
avoir donn´e des noms aux graphiques individuels. Puisque la structure
interne des graphiques est g´en´eralement tr`es longue ` a afficher, terminez
vos commandes d’affectation par deux points plutˆ ot que par un point-
virgule.
>
mon_graphique := plot( sin(x), x=-10..10 ):
Vous pouvez conserver le graphique pour un usage ult´erieur, comme toute
autre expression. Affichez-le en utilisant la commande display d´efinie
dans le package plots.
>
with(plots):
>
display( mon_graphique );
–1
–0.5
0
0.5
1
–10 –8 –6 –4 –2 2 4 6 8 10
x
La commande display permet de tracer plus d’un graphique ` a la fois.
Il suffit de lui sp´ecifier une liste de graphiques.
4.5 Les graphiques composites • 133
>
a := plot( [ sin(t), exp(t)/20, t=-Pi..Pi ] ):
>
b := polarplot( [ sin(t), exp(t), t=-Pi..Pi ] ):
>
display( [a,b] );
–1
–0.5
0
0.5
1
–1 –0.5 0.5 1
Cette technique vous permet d’afficher plusieurs graphiques de dif-
f´erents types sur les mˆemes axes. Vous pouvez ´egalement afficher des
graphiques tridimensionnels et mˆeme des animations.
>
c := sphereplot( 1, theta=0..2*Pi, phi=0..Pi ):
>
d := cylinderplot( 0.5, theta=0..2*Pi, z=-2..2 ):
>
display( [c,d], scaling=constrained );
Entrez la d´efinition pr´ec´edente de b et les commandes suivantes dans
Maple pour voir une animation et un graphique avec les mˆemes axes.
>
e := animate( m*x, x=-1..1, m=-1..1 ):
>
display( [b,e] );
Si vous affichez deux animations ou plus ensemble, assurez-vous que
ces derni`eres poss`edent toutes le mˆeme nombre d’images. Entrez l’exemple
suivant dans Maple pour voir deux animations simultan´ement.
>
f := animate3d( sin(x+y+t), x=0..2*Pi, y=0..2*Pi, t=0..5,
>
frames=20 ):
>
g := animate3d( t, x=0..2*Pi, y=0..2*Pi, t=-1.5..1.5,
>
frames=20):
>
display( [f,g] );
134 • Chapitre 4: Tracer des graphiques
Placer du texte dans les graphiques
Les options title et labels des commandes graphiques vous permettent
de placer des titres et des ´etiquettes dans vos graphiques. Les commandes
textplot et textplot3d vous donnent encore plus de flexibilit´e en vous
permettant de sp´ecifier la position exacte des ´el´ements de texte. Le pa-
ckage plots contient ces deux commandes.
>
with(plots):
Vous pouvez utiliser textplot and textplot3d de la mani`ere suivante.
textplot( [ x-coord, y-coord, "texte" ] ) ;
textplot3d( [ x-coord, y-coord, z-coord, "texte"] ) ;
Par exemple :
>
a := plot( sin(x), x=-Pi..Pi ):
>
b := textplot( [ Pi/2, 1, "Local Maximum" ] ):
>
c := textplot( [ -Pi/2, -1, "Local Minimum" ] ):
>
display( [a,b,c] );
Local Minimum
Local Maximum
–1
–0.5
0.5
1
–3 –2 –1 1 2 3
x
Consultez la rubrique ?plots,textplot pour obtenir plus de d´etails
sur la mani`ere de placer les ´el´ements de texte avec pr´ecision. Utilisez l’op-
tion font pour sp´ecifier la police de caract`eres employ´ee pour l’affichage.
Dans le graphique suivant, l’origine, un point de selle, est indiqu´ee par la
lettre P.
>
d := plot3d( x^2-y^2, x=-1..1, y=-1..1 ):
>
e := textplot3d( [0, 0, 0, "P"],
>
font=[HELVETICA, OBLIQUE, 22], color=white ):
>
display( [d,e], orientation=[68,45] );
4.6 Quelques graphiques particuliers • 135
P
4.6 Quelques graphiques particuliers
Le package plots contient plusieurs routines permettant de produire des
types de graphiques particuliers.
En voici quelques exemples. Pour obtenir davantage d’information sur
une commande particuli`ere, consultez la rubrique ?plots,commande.
>
with(plots):
Tracez des fonctions d´efinies implicitement au moyen de implicitplot.
>
implicitplot( x^2+y^2=1, x=-1..1, y=-1..1, scaling=
>
constrained );
–1
–0.5
0
0.5
1
y
–1 –0.5 0.5 1
x
L’image ci-dessous est un graphique de la r´egion satisfaisant aux
in´egalit´es x +y < 5, 0 < x et x ≤ 4.
>
inequal( {x+y<5, 0<x, x<=4}, x=-1..5, y=-10..10,
>
optionsexcluded=(color=yellow) );
136 • Chapitre 4: Tracer des graphiques
–10
–5
5
10
–1 1 2 3 4 5
Dans l’exemple suivant, l’axe vertical est trac´e `a une ´echelle logarith-
mique.
>
logplot( 10^x, x=0..10 );
1.
.1e2
.1e3
.1e4
.1e5
1e+05
1e+06
1e+07
1e+08
1e+09
1e+10
2 4 6 8 10
x
Un graphique semilogplot poss`ede un axe horizontal logarithmique.
>
semilogplot( 2^(sin(x)), x=1..10 );
0.6
0.8
1
1.2
1.4
1.6
1.8
2
1. 2. 4. 7. .1e2
x
Maple peut ´egalement tracer des graphiques o` u les deux axes pos-
s`edent des ´echelles logarithmiques.
>
loglogplot( x^17, x=1..7 );
4.6 Quelques graphiques particuliers • 137
1.
.1e2
.1e3
.1e4
.1e5
1e+05
1e+06
1e+07
1e+08
1e+09
1e+10
1e+11
1e+12
1e+13
1e+14
2. 4. 7.
x
Dans un densityplot, des teintes plus claires indiquent une plus
grande valeur de la fonction.
>
densityplot( sin(x*y), x=-1..1, y=-1..1 );
–1
–0.5
0.5
1
y
–1 –0.5 0.5 1
x
Le long des courbes suivantes, la fonction sin(xy) est constante,
comme dans une carte topographique.
>
contourplot(sin(x*y),x=-10..10,y=-10..10);
–10
–5
0
5
10
y
–10 –5 5 10
x
Une grille rectangulaire dans le plan complexe devient le graphique
suivant par la relation z → z
2
.
>
conformal( z^2, z=0..2+2*I );
138 • Chapitre 4: Tracer des graphiques
0
2
4
6
8
–4 –2 2 4
La commande fieldplot dessine un vecteur donn´e pour plusieurs
valeurs de x et y ; le graphique ainsi form´e est un champ de vecteurs de
mˆeme type qu’un champ magn´etique.
>
fieldplot( [y*cos(x*y), x*cos(x*y)], x=-1..1, y=-1..1);
–1
–0.5
0.5
1
y
–1 –0.5 0.5 1
x
Maple peut dessiner des courbes dans l’espace ` a trois dimensions.
>
spacecurve( [cos(t),sin(t),t], t=0..12 );
Ici, Maple

gonfle

la courbe pr´ec´edente pour en faire un tube.
>
tubeplot( [cos(t),sin(t),t], t=0..4*Pi, radius=0.5 );
4.6 Quelques graphiques particuliers • 139
La commande matrixplot affiche les valeurs d’un objet de type Ma-
trix.
>
A := LinearAlgebra[HilbertMatrix](8):
>
B := LinearAlgebra[ToeplitzMatrix]([1,2,3,4,-4,-3,-2,-1],
>
symmetric):
>
matrixplot( A+B, heights=histogram, axes=frame,
>
gap=0.25, style=patch);
2
4
6
8
row
2
4
6
8
column
–4
–2
0
2
4
L’image suivante est une d´emonstration d’un graphique root locus.
>
rootlocus( (s^5-1)/(s^2+1), s, -5..5, style=point,
>
adaptive=false );
–1
–0.5
0
0.5
1
–1.5 –1 –0.5 0 0.5 1 1.5
140 • Chapitre 4: Tracer des graphiques
La commande arrow affiche des fl`eches ou des vecteurs en deux ou
trois dimensions.
>
plots[arrow]( [<2, 1>, <3, 2>], [<2, 5>, <1, 4>], difference,
>
scaling=constrained );
1
2
3
4
5
1 1.5 2 2.5 3
En tapant ?plots `a l’invite, vous obtiendrez une liste de tous les types
de graphiques possibles dans Maple.
4.7 Manipuler des objets graphiques
Le package plottools contient des commandes permettant de cr´eer des
objets graphiques et de manipuler leurs graphiques correspondants. Utili-
sez with(plottools) pour acc´eder aux commandes par leur nom abr´eg´e.
>
with(plottools):
Les objets dans le package plottools ne s’affichent pas par eux-
mˆemes ; on doit y acc´eder par la commande display d´efinie dans le
package plots `a l’aide de la commande with.
>
with(plots):
Consid´erez l’exemple suivant.
>
display( dodecahedron(), scaling=constrained, style=patch );
4.7 Manipuler des objets graphiques • 141
Donnez un nom ` a l’objet.
>
s1 := sphere( [3/2,1/4,1/2], 1/4, color=red):
Remarquez que l’affectation se termine par deux points (:) ; si vous utili-
sez un point-virgule (;), Maple affiche une longue structure de graphique.
Encore une fois, vous devez utiliser display pour faire afficher le gra-
phique.
>
display( s1, scaling=constrained );
Placez une seconde sph`ere dans l’image et faites afficher les axes.
>
s2 := sphere( [3/2,-1/4,1/2], 1/4, color=red):
>
display( [s1, s2], axes=normal, scaling=constrained );
142 • Chapitre 4: Tracer des graphiques
0.4
0.6 –0.4
–0.2
0
0.2
0.4
1.3
1.4
1.5
1.6
1.7
Vous pouvez ´egalement cr´eer des cˆ ones au moyen de plottools.
>
c := cone([0,0,0], 1/2, 2, color=khaki):
>
display( c, axes=normal );
0.5
1
1.5
2
–0.4
–0.2
0.2
0.4
–0.4
–0.2
0.2
0.4
Exp´erimentez la capacit´e de Maple ` a faire tourner les objets.
>
c2 := rotate( c, 0, Pi/2, 0 ):
>
display( c2, axes=normal );
–0.4
–0.2
0.2
0.4
–0.4
–0.2
0.2
0.4
–2
–1.5
–1
–0.5
Vous pouvez aussi translater les objets.
>
c3 := translate( c2, 3, 0, 1/4 ):
>
display( c3, axes=normal );
4.7 Manipuler des objets graphiques • 143
–0.2
0.2
0.4
0.6
–0.4
–0.2
0
0.2
0.4
1
1.5
2
2.5
3
La commande hemisphere cr´ee un h´emisph`ere. Vous pouvez sp´ecifier
le rayon et les coordonn´ees de son centre ; sinon, n’´ecrivez rien entre les
parenth`eses pour accepter les valeurs par d´efaut.
>
cup := hemisphere():
>
display( cup );
>
cap := rotate( cup, Pi, 0, 0 ):
>
display( cap );
Les cˆ ot´es du dod´eca`edre mentionn´e plus tˆ ot dans cette section sont
tous des pentagones. Si vous ´elevez le point milieu de chaque penta-
gone au moyen de la commande stellate, l’objet r´esultant se nomme
144 • Chapitre 4: Tracer des graphiques
un dod´eca`edre ´etoil´e.
>
a := stellate( dodecahedron() ):
>
display( a, scaling=constrained, style=patch );
>
stelhs := stellate(cap, 2):
>
display( stelhs );
Plutˆ ot que de rendre le dod´eca`edre ´etoil´e, vous pouvez supprimer les
trois quarts de l’int´erieur de chaque pentagone.
>
a := cutout( dodecahedron(), 3/4 ):
>
display( a, scaling=constrained, orientation=[45, 30] );
>
hedgehog := [s1, s2, c3, stelhs]:
>
display( hedgehog, scaling=constrained,
4.8 Code des graphiques des planches en couleurs • 145
>
style=patchnogrid );
4.8 Code des graphiques des planches en
couleurs
Dans Maple, cr´eer des graphiques impressionnants ne n´ecessite souvent
que quelques lignes de code, ainsi que le montrent les exemples de la
pr´esente section. Cependant, d’autres graphiques demandent plusieurs
lignes de code. Les commandes utilis´ees pour les planches en couleurs
1
qui
ne sont pas indiqu´ees ici se trouvent dans le Maple Application Center.
Il existe deux mani`eres d’acc´eder au Maple Application Center.
– Ouvrez le navigateur Internet de votre choix et entrez
http ://www.mapleapps.com
– Dans le menu Help de votre session Maple 8, choisissez Maple on
the Web, puis Application Center.
Pour acc´eder au code des planches qui n’est pas affich´e dans ce manuel :
1. Acc´edez au Maple Application Center.
2. Rendez-vous au bas de la page. Dans la section Maple Tools, cliquez
sur Maple 8 Color Plates. Le code est disponible en format HTML
et sous forme de feuille Maple.
Des centaines de graphiques ainsi que des animations sont disponibles
dans la Maple Graphics Gallery et la Maple Animation Gallery. Pour
acc´eder ` a ces galeries, rendez-vous au Maple Application Center et cli-
quez sur Maple Graphics.
1
La plupart des planches en couleurs ont ´et´e export´ees et dessin´ees dans POV-
Ray
TM
. La duplication exacte des images peut de ce fait s’av´erer difficile.
146 • Chapitre 4: Tracer des graphiques
Note : Sur certains ordinateurs, il peut ˆetre n´ecessaire de diminuer la
valeur de l’option numpoints pour dessiner le graphique.
1. Probl`eme de Dirichlet pour un cercle
>
with(plots):
>
setoptions3d(scaling=constrained, projection=0.5,
>
style=patchnogrid):
>
f1 := (x, y) -> 0.5*sin(10*x*y):
>
f2 := t -> f1(cos(t), sin(t)):
>
a0 := evalf(Int(f2(t), t=-Pi..Pi)/Pi):
>
a := seq(evalf(Int(f2(t)*cos(n*t), t=-Pi..Pi)/Pi), n=1..50):
>
b := seq(evalf(Int(f2(t)*sin(n*t), t=-Pi..Pi)/Pi), n=1..50):
>
L := (r, s) -> a0/2+sum(’r^n*(a[n]*cos(n*s)+b[n]*sin(n*s))’,
>
’n’=1..50):
>
q := plot3d([r*cos(s), r*sin(s), L(r, s)], r=0..1, s=0..2*Pi,
>
color=[L(r, s), -L(r, s), 0.2], grid=[29, 100],
>
numpoints=10000):
>
p := tubeplot([cos(t), sin(t), f2(t), t=-Pi..Pi,
>
radius=0.015], tubepoints=70, numpoints=1500):
>
display3d({q, p}, orientation=[3, 89], lightmodel=light2);
2. Ensemble de Mandelbrot
L’ensemble de Mandelbrot est l’un des objets math´ematiques les plus
complexes en raison de sa nature cahotique. Le code de ce graphique
est disponible dans le Maple Application Center.
3. Oiseau en origami
L’oiseau en origami peut ˆetre affich´e comme un simple graphique ou
comme une animation Maple. Le code de ce graphique ainsi que de
l’animation sont disponibles dans le Maple Application Center.
4. Structure concho¨ıdale
Le code de cet objet ainsi que d’autres coquillages est disponible dans
le Maple Application Center.
5. Transformation de Gauss appliqu´ee `a un tore
>
sp := [rho*cos(2*Pi*t), rho*sin(2*Pi*t), 0, radius=b]:
>
pc := n -> [ (rho-r*cos(2*Pi*t))*cos(2*Pi/(n+t)),
>
(rho-r*cos(2*Pi*t))*sin(2*Pi/(n+t)),
>
-r*sin(2*Pi*t)]:
>
rho, r, b := 3, 1.1, 1:
>
with(plots):
>
s := spacecurve( {seq(pc(k), k=1..50)}, t=0..1, thickness=2,
>
color=blue, view=[-4.4..4.4, -4.4..4.4, -2.2..2.2]):
>
s2 := tubeplot( sp, t=0..1, tubepoints=20, color=green,
>
view=[-4.4..4.4, -4.4..4.4, -2.2..2.2], style=PATCHNOGRID,
>
lightmodel=light2 ):
>
display( {s,s2} );
6. Ruban de Moebius
4.9 Conclusion • 147
>
moebius := plot3d([4+x*cos(1/2*y), y, x*sin(1/2*y)],
>
x=-Pi..Pi, y=-0..2*Pi, coords=cylindrical, style=patchnogrid,
>
grid=[60,60], orientation=[-176, 45], lightmodel=light3,
>
shading=zhue, scaling=constrained):
>
plots[display](moebius);
7. Icosa`edre
>
with(geom3d):
>
icosahedron(p1, point(o, 0, 0, 0), 1):
>
stellate(p2, p1, 4):
>
p := draw(p2):
>
q := plottools[homothety](p,3):
>
plots[display]([p,q], scaling=constrained, style=patchnogrid,
>
lightmodel=light4, shading=xyz, orientation=[-107,81]);
Pour voir d’autres variations, modifiez la valeur de hauteur dans la
commande stellate.
8. Surface de r´evolution param´etris´ee
>
r1 := 2 + sin(7*t):
>
z1 := r1*cos(s):
>
r2 := 8+r1*sin(s):
>
plot3d([r2*sin(t), r2*cos(t), z1], s=0..2*Pi, t=0..2*Pi,
>
grid=[80, 80], axes=none, style=patchnogrid, lightmodel=light1);
9. Bonhomme de neige
Le graphique du bonhomme de neige est une animation. Le code de
cette animation est disponible dans le Maple Application Center.
10. Fonction de deux variables en coordonn´ees cart´esiennes
>
plot3d({sin(x^2+y^2), 2*cos(x^3+y^3)}, x=-3..3, y=-3..3,
>
style=patch, grid=[120, 120], axes=none, shading=zhue,
>
style=patchnogrid, scaling=constrained, orientation=[50,30]);
4.9 Conclusion
Ce chapitre a pr´esent´e les capacit´es d’affichage graphique de Maple en
deux et trois dimensions pour des fonctions explicites, implicites et pa-
ram´etriques. Les coordonn´ees cart´esiennes, polaires, sph´eriques et cylin-
driques ne sont que quelques-uns des syst`emes de coordonn´ees exploit´es
par Maple. De plus, vous pouvez animer un graphique et le colorier de
plusieurs mani`eres pour vous assurer d’une bonne compr´ehension de sa
nature.
148 • Chapitre 4: Tracer des graphiques
Utilisez les commandes contenues dans le package plots pour affi-
cher plusieurs graphiques de fonctions et d’expressions. Quelques-uns des
types particuliers de graphiques que vous pouvez cr´eer en utilisant ces
commandes sont les graphiques logarithmiques, de contour et de densit´e.
Les commandes du package plottools permettent de cr´eer et de mani-
puler des objets. Ces commandes rendent possibles la translation et la
rotation des entit´es graphiques, et peuvent mˆeme les rendre ´etoil´es.
5 L’´evaluation et la
simplification
Dans Maple, beaucoup de temps et d’efforts sont consacr´es `a la manipu-
lation d’expressions. Celle-ci sert ` a convertir des r´esultats sous une forme
famili`ere et v´erifier une r´eponse, ou ` a convertir une expression sous une
forme particuli`ere requise par certaines routines Maple.
Le probl`eme de la simplification s’av`ere ´etonnamment complexe en
math´ematiques symboliques. Ce qui est simple dans un contexte peut ne
pas l’ˆetre dans un autre ; chaque situation peut avoir sa propre d´efinition
d’une forme

simple

.
Maple fournit un jeu d’outils permettant de travailler avec les ex-
pressions pour y effectuer ` a la fois des manipulations math´ematiques et
structurelles. Les manipulations math´ematiques sont celles correspondant
`a une forme de processus math´ematique, par exemple la factorisation d’un
polynˆ ome ou la rationalisation du d´enominateur d’une expression ration-
nelle. Les manipulations structurelles sont quant ` a elles des outils fournis
par Maple pour acc´eder ` a certaines parties des structures de donn´ees du
logiciel qui repr´esentent des expressions et d’autres types d’objets, et les
modifier.
5.1 Manipulations math´ematiques
La r´esolution d’´equations ` a la main demande normalement d’effectuer une
s´equence de manipulations alg´ebriques. Vous pouvez ´egalement effectuer
ces ´etapes au moyen de Maple.
>
eq := 4*x + 17 = 23;
eq := 4 x + 17 = 23
149
150 • Chapitre 5: L’´evaluation et la simplification
Ici, vous devez soustraire 17 des deux cˆ ot´es de l’´equation. Pour ce faire,
il suffit de soustraire l’´equation 17=17 de eq. Assurez-vous de mettre des
parenth`eses autour de l’´equation sans nom.
>
eq - ( 17 = 17 );
4 x = 6
Divisez maintenant le r´esultat par 4. Remarquez qu’il n’est pas
n´ecessaire d’utiliser 4=4 dans ce cas.
>
% / 4;
x =
3
2
Les sections suivantes pr´esentent plusieurs autres manipulations com-
plexes.
D´evelopper des polynomes en sommes
Les sommes sont g´en´eralement plus faciles ` a comprendre que les produits ;
vous pouvez donc trouver utile de d´evelopper un polynˆ ome comme somme
de produits. La commande expand vous permet de le faire.
>
poly := (x+1)*(x+2)*(x+5)*(x-3/2);
poly := (x + 1) (x + 2) (x + 5) (x −
3
2
)
>
expand( poly );
x
4
+
13
2
x
3
+ 5 x
2

31
2
x −15
La commande expand d´eveloppe le num´erateur d’une expression ra-
tionnelle.
>
expand( (x+1)*(y^2-2*y+1) / z / (y-1) );
xy
2
z (y −1)
−2
xy
z (y −1)
+
x
z (y −1)
+
y
2
z (y −1)
−2
y
z (y −1)
+
1
z (y −1)
5.1 Manipulations math´ematiques • 151
Utilisez la commande normal pour annuler les facteurs communs ;
consultez la section Forme normale factoris´ee de la page 159.
La commande expand applique ´egalement les r`egles d’expansion de
plusieurs fonctions math´ematiques standard.
>
expand( sin(2*x) );
2 sin(x) cos(x)
>
ln( abs(x^2)/(1+abs(x)) );
ln(
[x[
2
1 +[x[
)
>
expand(%);
2 ln([x[) −ln(1 +[x[)
La commande combine applique les mˆemes r`egles, mais dans le sens
oppos´e. Consultez la pr´esente section ` a la page 158.
Vous pouvez aussi sp´ecifier des sous-expressions que vous ne voulez
pas d´evelopper comme argument de la commande expand.
>
expand( (x+1)*(y+z) );
xy +xz +y +z
>
expand( (x+1)*(y+z), x+1 );
(x + 1) y + (x + 1) z
Vous pouvez d´evelopper une expression sur un domaine sp´ecifique.
>
poly := (x+2)^2*(x-2)*(x+3)*(x-1)^2*(x-1);
poly := (x + 2)
2
(x −2) (x + 3) (x −1)
3
>
expand( poly );
x
7
+ 2 x
6
−10 x
5
−12 x
4
+ 37 x
3
+ 10 x
2
−52 x + 24
152 • Chapitre 5: L’´evaluation et la simplification
>
% mod 3;
x
7
+ 2 x
6
+ 2 x
5
+x
3
+x
2
+ 2 x
Cependant, la commande Expand est plus utile.
>
Expand( poly ) mod 3;
x
7
+ 2 x
6
+ 2 x
5
+x
3
+x
2
+ 2 x
Lorsque vous utilisez Expand avec mod, Maple effectue tous les calculs
interm´ediaires en arithm´etique modulo. Vous pouvez ´egalement ´ecrire vos
propres routines pour expand ; consultez la rubrique ?expand pour plus
de d´etails.
Regrouper les coefficients de meme degr´e
Une expression comme x
2
+ 2x + 1 −ax +b −cx
2
peut ˆetre plus facile ` a
lire si vous regroupez les coefficients de x
2
, x et les constantes ` a l’aide de
la commande collect.
>
collect( x^2 + 2*x + 1 - a*x + b - c*x^2, x );
(1 −c) x
2
+ (2 −a) x +b + 1
Le deuxi`eme argument de la commande collect sp´ecifie sur quelle
variable il doit regrouper les termes.
>
poly := x^2 + 2*y*x - 3*y + y^2*x^2;
poly := x
2
+ 2 y x −3 y +y
2
x
2
>
collect( poly, x );
(1 +y
2
) x
2
+ 2 y x −3 y
>
collect( poly, y );
y
2
x
2
+ (2 x −3) y +x
2
Vous pouvez regrouper les termes sur des variables ou des appels de
fonctions non ´evalu´es.
5.1 Manipulations math´ematiques • 153
>
trig_expr := sin(x)*cos(x) + sin(x) + y*sin(x);
trig_expr := sin(x) cos(x) + sin(x) +y sin(x)
>
collect( trig_expr, sin(x) );
(cos(x) + 1 +y) sin(x)
>
DE := diff(f(x),x,x)*sin(x) - diff(f(x),x)*sin(f(x))
>
+ sin(x)*diff(f(x),x) + sin(f(x))*diff(f(x),x,x);
DE := (
d
2
dx
2
f(x)) sin(x) −(
d
dx
f(x)) sin(f(x))
+ sin(x) (
d
dx
f(x)) + sin(f(x)) (
d
2
dx
2
f(x))
>
collect( DE, diff );
(−sin(f(x)) + sin(x)) (
d
dx
f(x))
+ (sin(x) + sin(f(x))) (
d
2
dx
2
f(x))
Vous ne pouvez regrouper les termes sur des sommes ou des produits.
>
big_expr := z*x*y + 2*x*y + z;
big_expr := z xy + 2 y x +z
>
collect( big_expr, x*y );
Error, (in collect) cannot collect y*x
Pour contourner ce probl`eme, effectuez d’abord une substitution.
Dans l’exemple pr´ec´edent, cr´eez une variable rempla¸ cant x*y, puis re-
groupez les termes sur cette nouvelle variable.
>
subs( x=xyprod/y, big_expr );
z xyprod + 2 xyprod +z
>
collect( %, xyprod );
(z + 2) xyprod +z
154 • Chapitre 5: L’´evaluation et la simplification
>
subs( xyprod=x*y, % );
(z + 2) y x +z
Dans la section 5.3 de la page 190, on explique l’usage de la commande
subs.
Si vous regroupez les coefficients de plus d’une variable ` a la fois, deux
options s’offrent ` a vous : employer la forme r´ecursive ou la forme dis-
tribu´ee. La forme r´ecursive regroupe d’abord les termes autour de la
premi`ere variable sp´ecifi´ee, puis la deuxi`eme, et ainsi de suite. C’est la
forme par d´efaut.
>
poly := x*y + z*x*y + y*x^2 - z*y*x^2 + x + z*x;
poly := y x +z xy +y x
2
−z y x
2
+x +z x
>
collect( poly, [x,y] );
(1 −z) y x
2
+ ((1 +z) y + 1 +z) x
La forme distribu´ee regroupe les coefficients de toutes les variables en
mˆeme temps.
>
collect( poly, [x,y], distributed );
(1 +z) x + (1 +z) y x + (1 −z) y x
2
La commande collect ne trie pas les termes ; pour ce faire, vous devez
utiliser la commande sort. Consultez la pr´esente section ` a la page 164.
Factoriser des polynomes et des fonctions rationnelles
Vous pouvez ´ecrire un polynˆ ome sous forme d’un produit de termes de plus
faible degr´e. Utilisez la commande factor pour factoriser des polynˆ omes.
>
factor( x^2-1 );
(x −1) (x + 1)
>
factor( x^3+y^3 );
5.1 Manipulations math´ematiques • 155
(x +y) (x
2
−y x +y
2
)
Vous pouvez ´egalement factoriser des fonctions rationnelles. La com-
mande factor factorise ` a la fois le num´erateur et le d´enominateur, et
annule ensuite leurs termes communs.
>
rat_expr := (x^16 - y^16) / (x^8 - y^8);
rat_expr :=
x
16
−y
16
x
8
−y
8
>
factor( rat_expr );
x
8
+y
8
>
rat_expr := (x^16 - y^16) / (x^7 - y^7);
rat_expr :=
x
16
−y
16
x
7
−y
7
>
factor(rat_expr);
(y +x) (x
2
+y
2
) (x
4
+y
4
) (x
8
+y
8
)
x
6
+y x
5
+y
2
x
4
+y
3
x
3
+y
4
x
2
+y
5
x +y
6
Sp´ecifier le corps de nombres alg´ebriques La commande factor fac-
torise un polynˆ ome sur l’anneau indiqu´e par les coefficients. Le polynˆ ome
suivant poss`ede des coefficients entiers ; ainsi, les termes de sa forme fac-
toris´ee poss`edent ´egalement des coefficients entiers.
>
poly := x^5 - x^4 - x^3 + x^2 - 2*x + 2;
poly := x
5
−x
4
−x
3
+x
2
−2 x + 2
>
factor( poly );
(x −1) (x
2
−2) (x
2
+ 1)
Dans le prochain exemple, les coefficients incluent

2. Remarquez la
diff´erence dans le r´esultat.
156 • Chapitre 5: L’´evaluation et la simplification
>
expand( sqrt(2)*poly );

2 x
5


2 x
4


2 x
3
+

2 x
2
−2

2 x + 2

2
>
factor( % );

2 (x
2
+ 1) (x −

2) (x +

2) (x −1)
Vous pouvez ´etendre explicitement le corps des coefficients en four-
nissant un deuxi`eme argument ` a la commande factor.
>
poly := x^4 - 5*x^2 + 6;
poly := x
4
−5 x
2
+ 6
>
factor( poly );
(x
2
−2) (x
2
−3)
>
factor( poly, sqrt(2) );
(x
2
−3) (x −

2) (x +

2)
>
factor( poly, { sqrt(2), sqrt(3) } );
(x −

3) (x +

3) (x −

2) (x +

2)
Vous pouvez ´egalement sp´ecifier l’extension en utilisant RootOf. Ici,
RootOf(x^2-2) repr´esente une solution ` a x
2
−2 = 0, soit

2 ou −

2.
>
factor( poly, RootOf(x^2-2) );
(x
2
−3) (x + RootOf(_Z
2
−2)) (x −RootOf(_Z
2
−2))
Consultez la rubrique ?evala pour plus d’information sur le calcul
dans un corps alg´ebrique de nombres.
5.1 Manipulations math´ematiques • 157
Factoriser dans des domaines sp´eciaux Utilisez la commande Factor
pour factoriser une expression sur les entiers modulo p pour un p premier.
La syntaxe est similaire ` a celle de la commande Expand.
>
Factor( x^2+3*x+3 ) mod 7;
(x + 6) (x + 4)
La commande Factor permet ´egalement les extensions alg´ebriques de
corps.
>
Factor( x^3+1 ) mod 5;
(x + 1) (x
2
+ 4 x + 1)
>
Factor( x^3+1, RootOf(x^2+x+1) ) mod 5;
(x + 1) (x + 4 RootOf(_Z
2
+ _Z + 1) + 4)
(x + RootOf(_Z
2
+ _Z + 1))
Pour obtenir des d´etails sur l’algorithme utilis´e, la factorisation des
polynˆ omes multivari´es ou la factorisation de polynˆ omes sur des corps
alg´ebriques de nombres, consultez la rubrique ?Factor.
Supprimer des exposants rationnels
En g´en´eral, il est pr´ef´erable de pr´esenter les expressions rationnelles sans
exposant rationnel au d´enominateur. La commande rationalize enl`eve
les racines du d´enominateur d’une expression rationnelle en multipliant
par un facteur convenable.
>
1 / ( 2 + root[3](2) );
1
2 + 2
(1/3)
>
rationalize( % );
2
5

1
5
2
(1/3)
+
1
10
2
(2/3)
>
(x^2+5) / (x + x^(5/7));
158 • Chapitre 5: L’´evaluation et la simplification
x
2
+ 5
x +x
(5/7)
>
rationalize( % );
(x
2
+ 5)
(x
(6/7)
−x
(12/7)
−x
(4/7)
+x
(10/7)
+x
(2/7)
−x
(8/7)
+x
2
)

(
x
3
+x)
Le r´esultat de rationalize est souvent plus long que l’original.
Combiner des termes
La commande combine applique certaines r`egles de transformation pour
de nombreuses fonctions math´ematiques.
>
combine( sin(x)^2 + cos(x)^2 );
1
>
combine( sin(x)*cos(x) );
1
2
sin(2 x)
>
combine( exp(x)^2 * exp(y) );
e
(2 x+y)
>
combine( (x^a)^2 );
x
(2 a)
Pour voir comment combine permet d’obtenir le r´esultat, donnez au
param`etre infolevel[combine] une valeur positive.
>
infolevel[combine] := 1;
infolevel
combine
:= 1
>
expr := Int(1, x) + Int(x^2, x);
5.1 Manipulations math´ematiques • 159
expr :=

1 dx +

x
2
dx
>
combine( expr );
combine: combining with respect to Int
combine: combining with respect to linear
combine: combining with respect to int
combine: combining with respect to linear
combine: combining with respect to Int
combine: combining with respect to linear
combine: combining with respect to int
combine: combining with respect to linear
combine: combining with respect to Int
combine: combining with respect to linear
combine: combining with respect to cmbplus
combine: combining with respect to cmbpwr
combine: combining with respect to power

x
2
+ 1 dx
La commande expand applique la plupart de ces r`egles de transforma-
tion en sens inverse. Consultez la section D´evelopper des polyn omes en
sommes `a la page 150.
Forme normale factoris´ee
Si une expression contient des fractions, vous pouvez trouver utile de
regrouper celles-ci en une seule et d’annuler les facteurs communs du nu-
m´erateur et du d´enominateur. La commande normal effectue ce processus,
qui m`ene g´en´eralement ` a des expressions plus simples.
>
normal( x + 1/x );
x
2
+ 1
x
>
expr := x/(x+1) + 1/x + 1/(1+x);
expr :=
x
x + 1
+
1
x
+
1
x + 1
>
normal( expr );
160 • Chapitre 5: L’´evaluation et la simplification
x + 1
x
>
expr := (x^2 - y^2) / (x-y)^3;
expr :=
x
2
−y
2
(x −y)
3
>
normal( expr );
x +y
(x −y)
2
>
expr := (x - 1/x) / (x-2);
expr :=
x −
1
x
x −2
>
normal( expr );
x
2
−1
x(x −2)
Utilisez le deuxi`eme argument, expanded, si vous souhaitez que
normal d´eveloppe le num´erateur et le d´enominateur.
>
normal( expr, expanded );
x
2
−1
x
2
−2 x
La commande normal agit r´ecursivement sur les fonctions, les en-
sembles et les listes.
>
normal( [ expr, exp(x+1/x) ] );
[
x
2
−1
x(x −2)
, e
(
x
2
+1
x
)
]
>
big_expr := sin( (x*(x+1)-x)/(x+2) )^2
>
+ cos( (x^2)/(-x-2) )^2;
5.1 Manipulations math´ematiques • 161
big_expr := sin(
(x + 1) x −x
x + 2
)
2
+ cos(
x
2
−x −2
)
2
>
normal( big_expr );
sin(
x
2
x + 2
)
2
+ cos(
x
2
x + 2
)
2
Remarquez dans le dernier exemple que la commande normal ne sim-
plifie que les fonctions rationnelles – et non les fonctions trigonom´etriques.
Un cas particulier La commande normal peut retourner une expression
sous forme ´etendue qui n’est pas aussi simple que la forme factoris´ee.
>
expr := (x^25-1) / (x-1);
expr :=
x
25
−1
x −1
>
normal( expr );
1 +x
5
+x
4
+x
3
+x
2
+x
18
+x
12
+x
14
+x
19
+x
17
+x
15
+x
9
+x
8
+x
11
+x
10
+x +x
16
+x
7
+x
24
+x
22
+x
23
+x
21
+x
20
+x
13
+x
6
Pour annuler le facteur commun (x − 1) du num´erateur et du d´e-
nominateur, utilisez la commande factor. Consultez la section 5.1 ` a la
page 154.
>
factor(expr);
(x
4
+x
3
+x
2
+x + 1) (x
20
+x
15
+x
10
+x
5
+ 1)
Simplifier des expressions
Les r´esultats des calculs de simplification de Maple peuvent ˆetre tr`es com-
pliqu´es. La commande simplify tente de trouver une expression plus
simple en effectuant une s´erie de manipulations.
>
expr := 4^(1/2) + 3;
expr :=

4 + 3
162 • Chapitre 5: L’´evaluation et la simplification
>
simplify( expr );
5
>
expr := cos(x)^5 + sin(x)^4 + 2*cos(x)^2
>
- 2*sin(x)^2 - cos(2*x);
expr :=
cos(x)
5
+ sin(x)
4
+ 2 cos(x)
2
−2 sin(x)
2
−cos(2 x)
>
simplify( expr );
cos(x)
4
(cos(x) + 1)
Maple poss`ede des r`egles de simplification pour les expressions trigo-
nom´etriques, logarithmiques et exponentielles de mˆeme que pour les ex-
pressions contenant des radicaux, des puissances, des expressions RootOf
ainsi que d’autres fonctions sp´eciales.
Lorsque vous sp´ecifiez une r`egle particuli`ere de simplification comme
argument ` a la commande simplify, seule cette r`egle (ou cette classe de
r`egles) sera utilis´ee.
>
expr := ln(3*x) + sin(x)^2 + cos(x)^2;
expr := ln(3 x) + sin(x)
2
+ cos(x)
2
>
simplify( expr, trig );
ln(3 x) + 1
>
simplify( expr, ln );
ln(3) + ln(x) + sin(x)
2
+ cos(x)
2
>
simplify( expr );
ln(3) + ln(x) + 1
Consultez la rubrique ?simplify pour obtenir une liste des r`egles de
simplification int´egr´ees.
5.1 Manipulations math´ematiques • 163
Simplification avec des hypoth`eses
Il est possible que Maple n’effectue pas une simplification comme vous
l’entendez ; cela survient lorsque vous connaissez les propri´et´es sp´eciales
d’une variable mais que Maple la traite d’une mani`ere plus g´en´erale.
>
expr := sqrt( (x*y)^2 );
expr :=

x
2
y
2
>
simplify( expr );

x
2
y
2
L’option assume=propri´ et´ e indique ` a la commande simplify d’as-
sumer que toutes les inconnues de l’expression poss`edent la propri´et´e.
>
simplify( expr, assume=real );
[xy[
>
simplify( expr, assume=positive );
xy
Vous pouvez ´egalement vous servir de la commande assume pour pla-
cer des hypoth`eses individuellement sur des variables. Consultez la section
5.2.
Simplification au moyen des relations accessoires
Vous pouvez quelquefois simplifier une expression en utilisant votre propre
r`egle de transformation. La commande simplify vous permet de le faire
en utilisant des relations accessoires.
>
expr := x*y*z + x*y + x*z + y*z;
expr := xy z +xy +xz +y z
>
simplify( expr, { x*z=1 } );
xy +y z +y + 1
164 • Chapitre 5: L’´evaluation et la simplification
Vous pouvez sp´ecifier une ou plusieurs relations accessoires dans un
ensemble ou une liste. La commande simplify consid`ere les ´equations
donn´ees comme des simplifications additionnelles.
Il est ´egalement possible de sp´ecifier l’ordre dans lequel simplify
effectue l’op´eration.
>
expr := x^3 + y^3;
expr := x
3
+y
3
>
siderel := x^2 + y^2 = 1;
siderel := x
2
+y
2
= 1
>
simplify( expr, {siderel}, [x,y] );
y
3
−xy
2
+x
>
simplify( expr, {siderel}, [y,x] );
x
3
−y x
2
+y
Dans le premier cas, Maple effectue la substitution x
2
= 1−y
2
dans la
premi`ere expression, puis tente d’effectuer une substituion pour les termes
en y
2
; n’en trouvant aucun, l’ex´ecution est arrˆet´ee.
Dans le second cas, Maple effectue la substitution y
2
= 1 − x
2
dans
la premi`ere expression, puis tente d’effectuer des substitutions pour les
termes en x
2
; n’en trouvant aucun, l’ex´ecution est arrˆet´ee.
Les manipulations de polynˆ omes en base de Gr¨ obner sont ` a la base du
fonctionnement de simplify. Pour obtenir davantage d’information sur
cette commande, consultez la rubrique ?simplify,siderels.
Trier des expressions alg´ebriques
Maple affiche les termes d’un polynˆ ome dans l’ordre o` u le polynˆ ome a
d’abord ´et´e cr´e´e. Vous pouvez en trier les termes par ordre d´ecroissant de
degr´e `a l’aide de la commande sort.
>
poly := 1 + x^4 - x^2 + x + x^3;
poly := 1 +x
4
−x
2
+x +x
3
5.1 Manipulations math´ematiques • 165
>
sort( poly );
x
4
+x
3
−x
2
+x + 1
Remarquez que sort r´eorganise les expressions alg´ebriques sur place
en rempla¸ cant le polynˆ ome original par sa copie tri´ee.
>
poly;
x
4
+x
3
−x
2
+x + 1
Vous pouvez trier des polynˆ omes multivari´es de deux mani`eres : par
degr´e total ou en ordre lexicographique. Maple utilise par d´efaut le tri
par degr´e total ; les termes sont alors r´earrang´es en ordre d´ecroissant de
degr´e. Avec ce tri, lorsque deux termes ont le mˆeme degr´e, Maple les trie
en ordre lexicographique (de telle sorte que a vienne avant b, et ainsi de
suite).
>
sort( x+x^3 + w^5 + y^2 + z^4, [w,x,y,z] );
w
5
+z
4
+x
3
+y
2
+x
>
sort( x^3*y + y^2*x^2, [x,y] );
x
3
y +x
2
y
2
>
sort( x^3*y + y^2*x^2 + x^4, [x,y] );
x
4
+x
3
y +x
2
y
2
Remarquez que l’ordre des variables dans la liste d´etermine l’ordon-
nancement de l’expression.
>
sort( x^3*y + y^2*x^2, [x,y] );
x
3
y +x
2
y
2
>
sort( x^3*y + y^2*x^2, [y,x] );
y
2
x
2
+y x
3
166 • Chapitre 5: L’´evaluation et la simplification
Vous pouvez ´egalement trier l’expression enti`ere en ordre lexicogra-
phique en utilisant l’option plex de la commande sort.
>
sort( x + x^3 + w^5 + y^2 + z^4, [w,x,y,z], plex );
w
5
+x
3
+x +y
2
+z
4
Encore une fois, l’ordre dans lequel sont donn´ees les inconnues au
moment de l’appel ` a sort d´etermine l’ordonnancement.
>
sort( x + x^3 + w^5 + y^2 + z^4, [x,y,z,w], plex );
x
3
+x +y
2
+z
4
+w
5
La commande sort peut ´egalement trier des listes. Consultez la sec-
tion 5.3.
Conversion entre diff´erentes formes
Vous pouvez ´ecrire plusieurs fonctions math´ematiques selon diverses
formes ´equivalentes. Par exemple, vous pouvez exprimer sin(x) en termes
de la fonction exponentielle. La commande convert permet d’effectuer
des conversions de ce genre. Pour plus d’information, consultez la ru-
brique ?convert.
>
convert( sin(x), exp );
−1
2
I (e
(I x)

1
e
(I x)
)
>
convert( cot(x), sincos );
cos(x)
sin(x)
>
convert( arccos(x), ln );
−I ln(x +I

−x
2
+ 1)
>
convert( binomial(n,k), factorial );
n!
k! (n −k)!
5.1 Manipulations math´ematiques • 167
L’argument parfrac indique que l’on souhaite obtenir des fractions
partielles.
>
convert( (x^5+1) / (x^4-x^2), parfrac, x );
x +
1
x −1

1
x
2
Vous pouvez ´egalement utiliser convert pour trouver une approxima-
tion fractionnelle ` a un nombre d´ecimal.
>
convert( .3284879342, rational );
19615
59713
Remarquez que les conversions ne sont pas n´ecessairement r´eci-
proques.
>
convert( tan(x), exp );
−I ((e
(I x)
)
2
−1)
(e
(I x)
)
2
+ 1
>
convert( %, trig );
−I ((cos(x) +I sin(x))
2
−1)
(cos(x) +I sin(x))
2
+ 1
La commande simplify nous r´ev`ele que cette expression est tan(x).
>
simplify( % );
sin(x)
cos(x)
Vous pouvez ´egalement vous servir de la commande convert pour
effectuer des manipulations structurelles sur des objets Maple. Consultez
la section 5.3.
168 • Chapitre 5: L’´evaluation et la simplification
5.2 Les hypoth`eses
Il existe deux mani`eres d’imposer des hypoth`eses sur des inconnues. Pour
modifier globalement les propri´et´es des inconnues, utilisez la commande
assume. Pour effectuer une seule op´eration avec des hypoth`eses sur des
inconnues, utilisez la commande assuming. Les commandes assume et
assuming sont expliqu´ees dans les sous-sections suivantes.
La commande assume
Le syst`eme d’hypoth`eses de Maple est un ensemble de routines permettant
de g´erer les propri´et´es des inconnues. La commande assume permet une
meilleure simplification d’expressions symboliques, particuli`erement avec
les fonctions retournant plusieurs valeurs comme les racines carr´ees.
>
sqrt(a^2);

a
2
Maple ne peut simplifier cette expression, ´etant donn´e que le r´esultat
est diff´erent pour les valeurs positives et n´egatives de a. Fournir une hy-
poth`ese sur la valeur de a permet ` a Maple de simplifier l’expression.
>
assume( a>0 );
>
sqrt(a^2);
a~
Utilisez la commande about pour obtenir de l’information sur les hy-
poth`eses ` a propos d’une inconnue.
>
about(a);
Originally a, renamed a~:
is assumed to be: RealRange(-infinity,Open(0))
Utilisez la commande additionally pour poser des hypoth`eses
suppl´ementaires sur une inconnue.
>
assume(m, nonnegative);
>
additionally( m<=0 );
>
about(m);
Originally m, renamed m~:
is assumed to be: 0
5.2 Les hypoth`eses • 169
Plusieurs fonctions font usage des hypoth`eses sur une inconnue. La
commande frac retourne la partie fractionnaire d’un nombre.
>
frac(n);
frac(n)
>
assume(n, integer);
>
frac(n);
0
La limite suivante d´epend de b.
>
limit(b*x, x=infinity);
signum(b) ∞
>
assume( b>0 );
>
limit(b*x, x=infinity);

Vous pouvez utiliser infolevel pour obtenir de Maple un rapport
d´etaill´e de l’activit´e d’une commande.
>
infolevel[int] := 2;
infolevel
int
:= 2
>
int( exp(c*x), x=0..infinity );
int/cook/nogo1:
Given Integral
Int(exp(c*x),x = 0 .. infinity)
Fits into this pattern:
Int(exp(-Ucplex*x^S1-U2*x^S2)*x^N*ln(B*x^DL)^M*cos(C1*x^R)
/((A0+A1*x^D)^P),x = t1 .. t2)
Definite integration: Can’t determine if the integral is
convergent.
Need to know the sign of --> -c
Will now try indefinite integration and then take limits.
int/indef1: first-stage indefinite integration
int/indef2: second-stage indefinite integration
int/indef2: applying derivative-divides
170 • Chapitre 5: L’´evaluation et la simplification
int/indef1: first-stage indefinite integration
lim
x→∞
e
(c x)
−1
c
La commande int doit connaˆıtre le signe de c (ou plutˆ ot le signe de -c).
>
assume( c>0 );
>
int( exp(c*x), x=0..infinity );
int/cook/nogo1:
Given Integral
Int(exp(x),x = 0 .. infinity)
Fits into this pattern:
Int(exp(-Ucplex*x^S1-U2*x^S2)*x^N*ln(B*x^DL)^M*cos(C1*x^R)
/((A0+A1*x^D)^P),x = t1 .. t2)
int/cook/IIntd1:
--> U must be <= 0 for converging integral
--> will use limit to find if integral is +infinity
--> or - infinity or undefined

Les logarithmes retournent plusieurs valeurs ; g´en´eralement, pour des
valeurs complexes de x, ln(e
x
) est diff´erent de x.
>
ln( exp( 3*Pi*I ) );
π I
Ainsi, Maple ne simplifie pas l’expression suivante, ` a moins de la savoir
correcte, par exemple lorsque x est r´eel.
>
ln(exp(x));
ln(e
x
)
>
assume(x, real);
>
ln(exp(x));
x~
Vous pouvez utiliser la commande is pour v´erifier directement les
propri´et´es des inconnues.
5.2 Les hypoth`eses • 171
>
is( c>0 );
true
>
is(x, complex);
true
>
is(x, real);
true
Dans le prochain exemple, Maple croit toujours que la variable a est
n´egative.
>
eq := xi^2 = a;
eq := ξ
2
= a~
>
solve( eq, {xi} );
¦ξ =

−a~ I¦, ¦ξ = −I

−a~¦
Pour retirer des hypoth`eses sur une variable, il suffit d’en d´esaffecter
le nom. Cependant, l’expression eq renvoie toujours ` a a~.
>
eq;
ξ
2
= a~
Vous devez retirer l’hypoth`ese sur a `a l’int´erieur de eq avant
de retirer l’hypoth`ese sur a. Tout d’abord, retirez les hypoth`eses sur a `a
l’int´erieur de eq.
>
eq := subs( a=’a’, eq );
eq := ξ
2
= a
Puis, d´esaffectez a.
172 • Chapitre 5: L’´evaluation et la simplification
>
a := ’a’;
a := a
Consultez la rubrique ?assume pour obtenir davantage d’information.
S’il ne vous est n´ecessaire de poser une hypoth`ese que pour une
seule ´evaluation, vous pouvez utiliser la commande assuming d´ecrite
dans la prochaine sous-section. Lorsque vous vous servez de la commande
assuming, vous n’avez pas besoin de retirer par la suite les hypoth`eses
sur les inconnues et les ´equations.
La commande assuming
Pour n’effectuer qu’une seule ´evaluation avec des hypoth`eses sur les noms
d’une expression, utilisez la commande assuming. Son utilisation est
´equivalente ` a la proc´edure consistant ` a appeler la commande assume,
`a ´evaluer l’expression, puis ` a retirer les hypoth`eses sur l’expression et ses
composantes. Cela facilite l’exp´erimentation de l’´evaluation d’une expres-
sion sous diff´erentes hypoth`eses.
>
about(a);
a:
nothing known about this object
>
sqrt(a^2) assuming a<0;
−a
>
about(a);
a:
nothing known about this object
>
sqrt(a^2) assuming a>0;
a
Vous pouvez ´evaluer une expression avec une hypoth`ese sur tous les
noms dans une expression :
5.3 Manipulations structurelles • 173
>
sqrt((a*b)^2) assuming positive;
a b~
ou avec des hypoth`eses sur des noms en particulier.
>
ln(exp(x)) + ln(exp(y)) assuming x::real, y::complex;
x~ + ln(e
y
)
Dans cet exemple, les doubles deux-points (::) indiquent l’affectation
d’une propri´et´e. En g´en´eral, les doubles deux-points sont utilis´es pour
v´erifier le type d’un objet. Pour plus d’information, r´ef´erez-vous ` a la ru-
brique ?type.
Pour en savoir davantage sur la commande assuming, consultez la
rubrique ?assuming.
5.3 Manipulations structurelles
Les manipulations structurelles sont des manipulations qui permettent,
entre autres choses, de choisir et de modifier des parties d’un objet, d’uti-
liser la connaissance de la structure ou la repr´esentation interne d’un
objet plutˆ ot que de travailler avec l’expression comme un objet purement
math´ematique. Dans les cas particuliers des listes et des ensembles, choisir
un ´el´ement est direct.
>
L := { Z, Q, R, C, H, O };
L := ¦O, R, Z, Q, H, C¦
>
L[3];
Z
Choisir des ´el´ements de listes et d’ensembles est facile, ce qui rend leur
manipulation ais´ee. Le concept de ce qui constitue les parties d’une ex-
pression g´en´erale est plus difficile. Cependant, plusieurs des commmandes
qui manipulent les listes et les ensembles s’appliquent ´egalement aux ex-
pressions g´en´erales.
174 • Chapitre 5: L’´evaluation et la simplification
Appliquer une fonction `a une liste ou un ensemble
Vous pouvez appliquer une fonction ou une commande ` a chacun des
´el´ements plutˆ ot qu’` a un objet en tant que tout. La commande map vous
permet d’effectuer cette application multiple.
>
f( [a, b, c] );
f([a, b, c])
>
map( f, [a, b, c] );
[f(a), f(b), f(c)]
>
map( expand, { (x+1)*(x+2), x*(x+2) } );
¦x
2
+ 2 x, x
2
+ 3 x + 2¦
>
map( x->x^2, [a, b, c] );
[a
2
, b
2
, c
2
]
Lorsque map est appel´ee avec plus de deux arguments, les arguments
suppl´ementaires sont pass´es `a la fonction.
>
map( f, [a, b, c], p, q );
[f(a, p, q), f(b, p, q), f(c, p, q)]
>
map( diff, [ (x+1)*(x+2), x*(x+2) ], x );
[2 x + 3, 2 x + 2]
La commande map2 est ´etroitement li´ee ` a map. L`a o` u map remplace
s´equentiellement le premier argument d’une fonction, map2 remplace le
deuxi`eme argument d’une fonction.
>
map2( f, p, [a,b,c], q, r );
[f(p, a, q, r), f(p, b, q, r), f(p, c, q, r)]
5.3 Manipulations structurelles • 175
>
map2( diff, x^y/z, [x,y,z] );
[
x
y
y
xz
,
x
y
ln(x)
z
, −
x
y
z
2
]
Vous pouvez utiliser map2 pour obtenir la liste de toutes les d´eriv´ees
partielles d’une expression.
>
map2( map, { [a,b], [c,d], [e,f] }, p, q );
¦[a(p, q), b(p, q)], [c(p, q), d(p, q)], [e(p, q), f(p, q)], ¦
Vous pouvez mˆeme utiliser seq conjointement avec map lorsque vous
les appliquez ` a des sous-´el´ements. Ici, seq produit une suite en appliquant
la fonction f aux ´el´ements d’un ensemble et d’une liste.
>
seq( f(i), i={a,b,c} );
f(a), f(b), f(c)
>
seq( f(p, i, q, r), i=[a,b,c] );
f(p, a, q, r), f(p, b, q, r), f(p, c, q, r)
Un autre exemple est le triangle de Pascal.
>
L := [ seq( i, i=0..5 ) ];
L := [0, 1, 2, 3, 4, 5]
>
[ seq( [ seq( binomial(n,m), m=L ) ], n=L ) ];
[[1, 0, 0, 0, 0, 0], [1, 1, 0, 0, 0, 0], [1, 2, 1, 0, 0, 0],
[1, 3, 3, 1, 0, 0], [1, 4, 6, 4, 1, 0], [1, 5, 10, 10, 5, 1]]
>
map( print, % );
176 • Chapitre 5: L’´evaluation et la simplification
[1, 0, 0, 0, 0, 0]
[1, 1, 0, 0, 0, 0]
[1, 2, 1, 0, 0, 0]
[1, 3, 3, 1, 0, 0]
[1, 4, 6, 4, 1, 0]
[1, 5, 10, 10, 5, 1]
[]
Les commandes add et mul fonctionnent comme seq, `a l’exception
qu’elles engendrent respectivement des sommes et des produits au lieu de
suites.
>
add( i^2, i=[5, y, sin(x), -5] );
50 +y
2
+ sin(x)
2
Les commandes map, map2, seq, add et mul peuvent ´egalement agir
sur des expressions g´en´erales. Consultez la section Les parties d’une
expression de la page 182.
Choisir des ´el´ements dans une liste ou un ensemble
Vous pouvez choisir certains ´el´ements d’une liste ou d’un ensemble en four-
nissant une fonction bool´eenne qui d´etermine les ´el´ements ` a s´electionner.
La fonction bool´eenne suivante retourne true si son argument est sup´e-
rieur ` a 3.
>
large := x -> is(x > 3);
large := x → is(3 < x)
Vous pouvez maintenant utiliser la commande select pour choisir les
´el´ements dans une liste ou un ensemble qui satisfont ` a la propri´et´e large.
>
L := [ 8, 2.95, Pi, sin(9) ];
L := [8, 2.95, π, sin(9)]
5.3 Manipulations structurelles • 177
>
select( large, L );
[8, π]
De fa¸ con similaire, la commande remove retire les ´el´ements de L qui
satisfont ` a la propri´et´e large et affiche comme r´esultat les ´el´ements res-
tants.
>
remove( large, L );
[2.95, sin(9)]
Pour effectuer les deux op´erations simultan´ement, utilisez la com-
mande selectremove.
>
selectremove( large, L);
[8, π], [2.95, sin(9)]
Servez-vous de la commande type pour d´eterminer le type d’une ex-
pression.
>
type( 3, numeric );
true
>
type( cos(1), numeric );
false
Ici, la syntaxe de select passe le troisi`eme argument, numeric, `a la
commande type.
>
select( type, L, numeric );
[8, 2.95]
Consultez la section Les parties d’une expression `a la page 182 pour
obtenir davantage d’information sur les types de donn´ees et sur la mani`ere
d’utiliser select et remove sur des expressions en g´en´eral.
178 • Chapitre 5: L’´evaluation et la simplification
Combiner deux listes
Il est possible de combiner des listes de plusieurs mani`eres. Voici une liste
de valeurs en x et une liste de valeurs en y.
>
X := [ seq( ithprime(i), i=1..6 ) ];
X := [2, 3, 5, 7, 11, 13]
>
Y := [ seq( binomial(6, i), i=1..6 ) ];
Y := [6, 15, 20, 15, 6, 1]
Pour tracer le graphique des valeurs en y en fonction des valeurs en
x, construisez une liste de listes : [ [x1,y1], [x2,y2], ... ]. Pour
chaque paire de valeurs, construisez donc une liste de deux ´el´ements.
>
pair := (x,y) -> [x, y];
pair := (x, y) → [x, y]
La commande zip peut combiner les listes X et Y selon la fonction
binaire pair.
>
P := zip( pair, X, Y );
P := [[2, 6], [3, 15], [5, 20], [7, 15], [11, 6], [13, 1]]
>
plot( P );
2
4
6
8
10
12
14
16
18
20
2 4 6 8 10 12
Si les deux listes sont de longueur diff´erente, zip retourne une liste
de la longueur de la plus courte.
5.3 Manipulations structurelles • 179
>
zip( (x,y) -> x.y, [a,b,c,d,e,f], [1,2,3] );
[a, 2 b, 3 c]
Vous pouvez sp´ecifier un quatri`eme argument ` a zip qui lui fait retour-
ner une liste aussi longue que la plus longue des deux listes, en utilisant
le quatri`eme param`etre pour remplacer les valeurs manquantes.
>
zip( (x,y) -> x.y, [a,b,c,d,e,f], [1,2,3], 99 );
[a, 2 b, 3 c, 99 d, 99 e, 99 f]
>
zip( igcd, [7657,342,876], [34,756,213,346,123], 6! );
[1, 18, 3, 2, 3]
La commande zip peut ´egalement combiner des vecteurs. Consultez
la rubrique ?zip pour obtenir plus d’information sur cette commande.
Trier des listes
Dans Maple, une liste est une structure de donn´ees fondamentale qui
pr´eserve l’ordre des ´el´ements. Les ´el´ements d’une liste demeurent dans le
mˆeme ordre que lorsque la liste a ´et´e cr´e´ee. Vous pouvez cependant cr´eer
une copie d’une liste tri´ee dans un autre ordre en utilisant la commande
sort. Entre autres fonctions, la commande sort trie les listes en ordre
croissant. Elle trie une liste de nombres en ordre num´erique.
>
sort( [1,3,2,4,5,3,6,3,6] );
[1, 2, 3, 3, 3, 4, 5, 6, 6]
La commande sort peut ´egalement trier une liste chaˆınes de ca-
ract`eres en ordre lexicographique.
>
sort( ["Mary", "has", "a", "little", "lamb"] );
[“Mary”, “a”, “has”, “lamb”, “little”]
180 • Chapitre 5: L’´evaluation et la simplification
Lorsque vous m´elangez des nombres et des chaˆınes, ou lorsqu’une liste
contient des expressions autres que des nombres ou des chaˆınes, la com-
mande sort applique les adresses machine, qui peuvent varier ` a chaque
session.
>
sort( [x, 1, "apple"] );
[1, “apple”, x]
>
sort( [-5, 10, sin(34)] );
[10, sin(34), −5]
Notez que, pour Maple, π n’est pas un nombre.
>
sort( [4.3, Pi, 2/3] );
[π, 4.3,
2
3
]
Vous pouvez sp´ecifier une fonction bool´eenne pour d´efinir un ordre
`a la liste. Cette fonction bool´eenne doit avoir deux arguments et retour-
ner true si le premier argument doit ˆetre plac´e avant le second. Vous
pouvez employer cette m´ethode pour trier une liste de nombres en ordre
d´ecroissant.
>
sort( [3.12, 1, 1/2], (x,y) -> evalb( x>y ) );
[3.12, 1,
1
2
]
La commande is sert ` a comparer des constantes comme π et sin(5)
avec des nombres purs.
>
bf := (x,y) -> is( x < y );
bf := (x, y) → is(x < y)
>
sort( [4.3, Pi, 2/3, sin(5)], bf );
[sin(5),
2
3
, π, 4.3]
5.3 Manipulations structurelles • 181
Vous pouvez ´egalement trier des chaˆınes de caract`eres par longueur.
>
shorter := (x,y) -> evalb( length(x) < length(y) );
shorter := (x, y) → evalb(length(x) < length(y))
>
sort( ["Mary", "has", "a", "little", "lamb"], shorter );
[“a”, “has”, “lamb”, “Mary”, “little”]
Maple ne poss`ede pas de m´ethode int´egr´ee pour trier des listes mixtes
de chaˆınes de caract`eres et de nombres (sauf par adresse machine). Pour
trier une liste mixte de chaˆınes et de nombres, vous pouvez effectuer les
op´erations suivantes.
>
big_list := [1,"d",3,5,2,"a","c","b",9];
big_list := [1, “d”, 3, 5, 2, “a”, “c”, “b”, 9]
Cr´eez deux listes ` a partir de l’originale, l’une contenant des nombres,
et l’autre des chaˆınes de caract`eres.
>
list1 := select( type, big_list, string );
list1 := [“d”, “a”, “c”, “b”]
>
list2 := select( type, big_list, numeric );
list2 := [1, 3, 5, 2, 9]
Triez maintenant les deux listes ind´ependamment.
>
list1 := sort(list1);
list1 := [“a”, “b”, “c”, “d”]
>
list2 := sort(list2);
list2 := [1, 2, 3, 5, 9]
Finalement, regroupez les deux listes.
182 • Chapitre 5: L’´evaluation et la simplification
>
sorted_list := [ op(list1), op(list2) ];
sorted_list := [“a”, “b”, “c”, “d”, 1, 2, 3, 5, 9]
La commande sort peut ´egalement servir ` a trier des expressions
alg´ebriques. Consultez la section 5.1.
La pr´esente section, ` a la page 176, donne davantage d’information ` a
propos des commandes de cet exemple.
Les parties d’une expression
Pour manipuler les d´etails d’une expression, vous devez en choisir les
parties individuelles. Trois cas simples pour illustrer cette situation font
appel aux ´equations, aux intervalles et aux fractions. La commande lhs
s´electionne le cˆ ot´e gauche d’une ´equation.
>
eq := a^2 + b^ 2 = c^2;
eq := a
2
+b
2
= c
2
>
lhs( eq );
a
2
+b
2
La commande rhs, de mani`ere similaire, en s´electionne le cˆ ot´e droit.
>
rhs( eq );
c
2
Les commandes lhs et rhs fonctionnent ´egalement pour les inter-
valles.
>
lhs( 2..5 );
2
>
rhs( 2..5 );
5
>
eq := x = -2..infinity;
5.3 Manipulations structurelles • 183
eq := x = −2..∞
>
lhs( eq );
x
>
rhs( eq );
−2..∞
>
lhs( rhs(eq) );
−2
>
rhs( rhs(eq) );

Les commandes numer et denom extraient respectivement le num´era-
teur et le d´enominateur d’une fraction.
>
numer( 2/3 );
2
>
denom( 2/3 );
3
>
fract := ( 1+sin(x)^3-y/x) / ( y^2 - 1 + x );
fract :=
1 + sin(x)
3

y
x
y
2
−1 +x
>
numer( fract );
x + sin(x)
3
x −y
>
denom( fract );
184 • Chapitre 5: L’´evaluation et la simplification
x(y
2
−1 +x)
Consid´erez l’expression
>
expr := 3 + sin(x) + 2*cos(x)^2*sin(x);
expr := 3 + sin(x) + 2 cos(x)
2
sin(x)
La commande whattype consid`ere expr comme une somme.
>
whattype( expr );
+
Utilisez la commande op pour lister les termes d’une somme ou, en
g´en´eral, les op´erandes d’une expression.
>
op( expr );
3, sin(x), 2 cos(x)
2
sin(x)
L’expression expr est form´ee de trois ´el´ements. Utilisez la commande
nops pour compter le nombre d’op´erandes d’une expression.
>
nops( expr );
3
Par exemple, vous pouvez choisir le troisi`eme terme de la mani`ere
suivante.
>
term3 := op(3, expr);
term3 := 2 cos(x)
2
sin(x)
term3 est un produit de trois facteurs.
>
whattype( term3 );

>
nops( term3 );
5.3 Manipulations structurelles • 185
3
>
op( term3 );
2, cos(x)
2
, sin(x)
Obtenez le second facteur de term3 de la mani`ere suivante.
>
factor2 := op(2, term3);
factor2 := cos(x)
2
C’est une exponentiation.
>
whattype( factor2 );
^
factor2 poss`ede deux op´erandes.
>
op( factor2 );
cos(x), 2
Le premier op´erande est une fonction et ne contient qu’un seul
op´erande.
>
op1 := op(1, factor2);
op1 := cos(x)
>
whattype( op1 );
function
>
op( op1 );
x
x est un symbole.
186 • Chapitre 5: L’´evaluation et la simplification
>
whattype( op(op1) );
symbol
Puisque vous n’avez pas assign´e une valeur ` a x, il ne contient qu’un
seule op´erande, soit lui-mˆeme.
>
nops( x );
1
>
op( x );
x
Vous pouvez repr´esenter le r´esultat de la recherche des op´erandes
d’une expression par un graphique appel´e arbre des expressions. L’arbre
des expressions de expr ressemble ` a ceci.
x
x
2
cos
x
2 ^ sin
sin * 3
+
Les op´erandes d’une liste ou d’un ensemble sont ses ´el´ements.
>
op( [a,b,c] );
a, b, c
>
op( {d,e,f} );
e, f, d
5.3 Manipulations structurelles • 187
`
A la pr´esente section (page 174), on d´ecrit comment la commande map
applique une fonction ` a tous les ´el´ements d’une liste ou d’un ensemble.
La fonctionnalit´e de map s’´etend aux expressions en g´en´eral.
>
map( f, x^2 );
f(x)
f(2)
Les commandes select et remove d´ecrites dans la section 5.3 de la
page 176 fonctionnent ´egalement pour des expressions en g´en´eral.
>
large := z -> evalb( is(z>3) = true );
large := z → evalb(is(3 < z) = true)
>
remove( large, 5+8*sin(x) - exp(9) );
8 sin(x) −e
9
Maple poss`ede plusieurs commandes utiles, comme la fonction bool´e-
enne dans un appel ` a select ou remove. La commande has d´etermine si
une expression contient une sous-expression sp´ecifique.
>
has( x*exp(cos(t^2)), t^2 );
true
>
has( x*exp(cos(t^2)), cos );
true
Quelques-unes des solutions du syst`eme d’´equations suivant con-
tiennent des r´ef´erences ` a RootOf.
>
sol := { solve( { x^2*y^2 = b*y, x^2-y^2 = a*x },
>
{x,y} ) };
sol := ¦¦y = 0, x = 0¦, ¦y = 0, x = a¦, ¦
y =
b
RootOf(_Z
6
−b
2
−a _Z
5
)
2
,
x = RootOf(_Z
6
−b
2
−a _Z
5
)¦¦
188 • Chapitre 5: L’´evaluation et la simplification
Utilisez select et has pour choisir ces solutions.
>
select( has, sol, RootOf );
¦¦y =
b
RootOf(_Z
6
−b
2
−a _Z
5
)
2
,
x = RootOf(_Z
6
−b
2
−a _Z
5
)¦¦
Vous pouvez ´egalement choisir ou retirer des sous-expressions par
type. La commande type d´etermine si une expression est d’un type donn´e.
>
type( 3+x, ‘+‘ );
true
Dans cet exemple, la commande select passe son troisi`eme argument,
‘+‘, `a type.
>
expr := ( 3+x ) * x^2 * sin( 1+sqrt(Pi) );
expr := (3 +x) x
2
sin(1 +

π)
>
select( type, expr, ‘+‘ );
3 +x
La commande hastype d´etermine si une expression contient une sous-
expression d’un certain type.
>
hastype( sin( 1+sqrt(Pi) ), ‘+‘ );
true
Utilisez la combinaison select(hastype,...) pour choisir les op´e-
randes d’une expression qui contient un certain type.
>
select( hastype, expr, ‘+‘ );
(3 +x) sin(1 +

π)
Si vous ˆetes int´eress´e aux sous-expressions d’un certain type plutˆ ot
qu’aux op´erandes qui les contiennent, utilisez la commande indets.
5.3 Manipulations structurelles • 189
>
indets( expr, ‘+‘ );
¦3 +x, 1 +

π¦
Les deux RootOf contenus dans sol sont de type RootOf. Puisqu’ils
sont identiques, l’ensemble retourn´e par indets contient seulement un
´el´ement.
>
indets( sol, RootOf );
¦RootOf(_Z
6
−b
2
−a _Z
5

`
A l’instar de RootOf, toutes les commandes n’ont pas leur propre
type ; vous pouvez cependant utiliser le type structur´e specfunc(type,
nom). Ce type identifie les fonctions appel´ees nom avec les arguments de
type type.
>
type( diff(y(x), x), specfunc(anything, diff) );
true
Vous pouvez utiliser ceci pour trouver toutes les d´eriv´ees d’une
´equation diff´erentielle.
>
DE := expand( diff( cos(y(t)+t)*sin(t*z(t)), t ) )
>
+ diff(x(t), t);
DE := −sin(t z(t)) sin(y(t)) cos(t) (
d
dt
y(t))
−sin(t z(t)) sin(y(t)) cos(t)
−sin(t z(t)) cos(y(t)) sin(t) (
d
dt
y(t))
−sin(t z(t)) cos(y(t)) sin(t)
+ cos(t z(t)) cos(y(t)) cos(t) z(t)
+ cos(t z(t)) cos(y(t)) cos(t) t (
d
dt
z(t))
−cos(t z(t)) sin(y(t)) sin(t) z(t)
−cos(t z(t)) sin(y(t)) sin(t) t (
d
dt
z(t)) + (
d
dt
x(t))
>
indets( DE, specfunc(anything, diff) );
¦

∂t
x(t),

∂t
y(t),

∂t
z(t)¦
190 • Chapitre 5: L’´evaluation et la simplification
Les op´erandes suivants de DE contiennent les d´eriv´ees.
>
select( hastype, DE, specfunc(anything, diff) );
−sin(t z(t)) sin(y(t)) cos(t) (
d
dt
y(t))
−sin(t z(t)) cos(y(t)) sin(t) (
d
dt
y(t))
+ cos(t z(t)) cos(y(t)) cos(t) t (
d
dt
z(t))
−cos(t z(t)) sin(y(t)) sin(t) t (
d
dt
z(t)) + (
d
dt
x(t))
DE ne poss`ede qu’un seul op´erande qui est lui-mˆeme une d´eriv´ee.
>
select( type, DE, specfunc(anything, diff) );
d
dt
x(t)
Maple reconnaˆıt plusieurs types. Consultez la rubrique ?type pour en
obtenir une liste partielle, de mˆeme que ?type,structured pour obtenir
davantage d’information sur les types structur´es comme specfunc.
La substitution
Il est souvent n´ecessaire de substituer une valeur ` a une variable (en
d’autres termes, d’´evaluer une expression en un point). Par exemple, pour
r´esoudre le probl`eme

Si f(x) = ln(sin(xe
cos(x)
)), trouvez f

(2)

, vous
devez substituer la valeur 2 ` a x dans la d´eriv´ee. La commande diff calcule
la d´eriv´ee.
>
y := ln( sin( x * exp(cos(x)) ) );
y := ln(sin(xe
cos(x)
))
>
yprime := diff( y, x );
yprime :=
cos(xe
cos(x)
) (e
cos(x)
−xsin(x) e
cos(x)
)
sin(xe
cos(x)
)
Utilisez maintenant la commande eval pour substituer une valeur ` a
x dans yprime.
>
eval( yprime, x=2 );
5.3 Manipulations structurelles • 191
cos(2 e
cos(2)
) (e
cos(2)
−2 sin(2) e
cos(2)
)
sin(2 e
cos(2)
)
La commande evalf retourne une approximation d´ecimale du r´esul-
tat.
>
evalf( % );
−0.1388047428
La commande effectue des substitutions syntaxiques, et non math´e-
matiques ; cela signifie que vous pouvez effectuer des substitutions pour
n’importe quelle sous-expression.
>
subs( cos(x)=3, yprime );
cos(xe
3
) (e
3
−xsin(x) e
3
)
sin(xe
3
)
Vous ˆetes cependant limit´e aux sous-expressions telles que Maple les
reconnaˆıt.
>
expr := a * b * c * a^b;
expr := a b c a
b
>
subs( a*b=3, expr );
a b c a
b
expr est un produit de quatre facteurs.
>
op( expr );
a, b, c, a
b
Le produit a*b n’est donc pas un facteur dans expr. Vous pouvez effec-
tuer la substitution a*b=3 de trois mani`eres : r´esoudre la sous-expression
pour une des variables :
>
subs( a=3/b, expr );
192 • Chapitre 5: L’´evaluation et la simplification
3 c (
3
b
)
b
utiliser une relation accessoire dans simplify :
>
simplify( expr, { a*b=3 } );
3 c a
b
ou encore utiliser la commande algsubs qui effectue des substitutions
alg´ebriques.
>
algsubs( a*b=3, expr);
3 c a
b
Remarquez que, dans le premier cas, toutes les occurrences de a ont
´et´e remplac´ees par 3/b, tandis que, dans le deuxi`eme et le troisi`eme cas,
les variables a et b demeurent dans le r´esultat.
Vous pouvez effectuer plusieurs substitutions ` a la fois par un seul
appel ` a subs.
>
expr := z * sin( x^2 ) + w;
expr := z sin(x
2
) +w
>
subs( x=sqrt(z), w=Pi, expr );
z sin(z) +π
La commande subs effectue les substitutions de gauche ` a droite.
>
subs( z=x, x=sqrt(z), expr );

z sin(z) +w
Si vous donnez un ensemble ou une liste de substitutions, la commande
subs effectue ces substitutions simultan´ement.
>
subs( { x=sqrt(Pi), z=3 }, expr );
3 sin(π) +w
5.3 Manipulations structurelles • 193
Remarquez que, en g´en´eral, vous devez ´evaluer explicitement le
r´esultat d’un appel ` a subs.
>
eval( % );
w
Utilisez la commande subsop pour remplacer un op´erande sp´ecifique
dans une expression.
>
expr := 5^x;
expr := 5
x
>
op( expr );
5, x
>
subsop( 1=t, expr );
t
x
L’op´erande d’ordre z´ero est g´en´eralement le nom de la fonction.
>
expr := cos(x);
expr := cos(x)
>
subsop( 0=sin, expr );
sin(x)
La pr´esente section, ` a la page 182, donne plus de d´etails sur les
op´erandes d’une expression.
Changer le type d’une expression
Vous pouvez trouver n´ecessaire de convertir une expression dans un autre
type. Consid´erez la s´erie de Taylor de sin(x).
>
f := sin(x);
194 • Chapitre 5: L’´evaluation et la simplification
f := sin(x)
>
t := taylor( f, x=0 );
t := x −
1
6
x
3
+
1
120
x
5
+ O(x
6
)
Puisque vous ne pouvez tracer le graphique d’une s´erie, vous devez
utiliser convert(..., polynom) pour la convertir d’abord en approxi-
mation polynomiale.
>
p := convert( t, polynom );
p := x −
1
6
x
3
+
1
120
x
5
De mani`ere similaire, le titre d’un graphique doit ˆetre une chaˆıne, et
non une expression g´en´erale. Vous pouvez utiliser convert(..., string)
pour convertir une expression en chaˆıne.
>
p_txt := convert( p, string );
p_txt := “x-1/6*x^3+1/120*x^ 5”
>
plot( p, x=-4..4, title=p_txt );
x–1/6*x^3+1/120*x^5
–1.5
–1
–0.5
0
0.5
1
1.5
–4 –3 –2 –1 1 2 3 4
x
La commande cat concat`ene tous ses arguments pour cr´eer une nou-
velle cha
ˆ
ine.
>
ttl := cat( convert( f, string ),
>
" and its Taylor approximation ",
>
p_txt );
5.3 Manipulations structurelles • 195
ttl := “sin(x) and its Taylor approximation x-1/6*`
x^3+1/120*x^5”
>
plot( [f, p], x=-4..4, title=ttl );
sin(x) and its Taylor approximation x–1/6*x^3+1/120*x^5
–1.5
–1
–0.5
0
0.5
1
1.5
–4 –3 –2 –1 1 2 3 4
x
Vous pouvez ´egalement convertir une liste en ensemble ou un ensemble
en liste.
>
L := [1,2,5,2,1];
L := [1, 2, 5, 2, 1]
>
S := convert( L, set );
S := ¦1, 2, 5¦
>
convert( S, list );
[1, 2, 5]
La commande convert peut effectuer plusieurs autres conversions
structurelles et math´ematiques. Consultez la rubrique ?convert pour ob-
tenir davantage d’information ` a ce sujet.
196 • Chapitre 5: L’´evaluation et la simplification
5.4 Les r`egles d’´evaluation
Dans un programme de math´ematiques symboliques comme Maple, la
question de l’´evaluation occupe une place importante. Lorsque vous as-
signez la valeur y `a x, la valeur z `a y et la valeur 5 ` a z, comment x doit-il
ˆetre ´evalu´e ?
Niveaux d’´evaluation
Dans la plupart des cas, Maple effectue une ´evaluation compl`ete des noms :
lorsque vous utilisez un nom ou un symbole, le logiciel v´erifie si ce nom
ou ce symbole poss`ede une valeur assign´ee. Le cas ´ech´eant, Maple rem-
place le nom par la valeur trouv´ee. Si cette valeur poss`ede elle-mˆeme une
valeur assign´ee, Maple effectue une autre substitution, et ainsi de suite de
mani`ere r´ecursive jusqu’` a ce qu’aucune substitution ne soit possible.
>
x := y;
x := y
>
y := z;
y := z
>
z := 5;
z := 5
Maple ´evalue maintenant x int´egralement : il remplace x par y, y par
z et finalement z par 5.
>
x;
5
Vous pouvez utiliser la commande eval pour contrˆ oler le niveau d’´e-
valuation d’une expression. Lorsque vous appelez eval avec un seul argu-
ment, eval ´evalue int´egralement son argument.
>
eval(x);
5
5.4 Les r`egles d’´evaluation • 197
Un deuxi`eme argument ` a eval sp´ecifie jusqu’o` u vous souhaitez ´evaluer
le premier argument.
>
eval(x, 1);
y
>
eval(x, 2);
z
>
eval(x, 3);
5
Les principales exceptions ` a la r`egle de l’´evaluation compl`ete sont
les structures de donn´ees sp´eciales comme les tableaux, les matrices et
les proc´edures, de mˆeme que le comportement des variables locales ` a
l’int´erieur d’une proc´edure.
´
Evaluation du dernier nom
Les structures de donn´ees array, table, matrix et proc poss`edent un
comportement d’´evaluation sp´ecial appel´e ´evaluation du dernier nom.
>
x := y;
x := y
>
y := z;
y := z
>
z := array( [ [1,2], [3,4] ] );
z :=
¸
1 2
3 4

Maple remplace x par y et y par z, mais arrˆete ` a ce point puisque
l’´evaluation du dernier nom, z, produirait un tableau, l’un des quatre
types sp´eciaux de structures.
198 • Chapitre 5: L’´evaluation et la simplification
>
x;
z
Maple utilise l’´evaluation du dernier nom pour les tableaux, les tables,
les matrices et les proc´edures pour conserver la repr´esentation compacte
des entr´ees de tableaux non assign´ees (par exemple T[3]) et les com-
mandes non ´evalu´ees (par exemple sin(x)). Vous pouvez forcer une
´evaluation compl`ete en appelant explicitement la commande eval.
>
eval(x);
¸
1 2
3 4

>
add2 := proc(x,y) x+y; end proc;
add2 := proc(x, y) x +y end proc
>
add2;
add2
Vous pouvez facilement forcer une ´evaluation compl`ete en utilisant
eval ou print.
>
eval(add2);
proc(x, y) x +y end proc
Remarquez qu’une ´evaluation compl`ete des proc´edures contenues dans
la biblioth`eque de Maple, par d´efaut, supprime le code de cette proc´edure.
Pour illustrer cette situation, examinez la commande erfi.
>
erfi;
erfi
>
eval(erfi);
proc(x : :algebraic) . . . end proc
5.4 Les r`egles d’´evaluation • 199
Assignez ` a la variable verboseproc de la commande interface la
valeur 2, et essayez ` a nouveau.
>
interface( verboseproc=2 );
>
eval(erfi);
proc(x : :algebraic)
option‘Copyright (c) 1996 Waterloo Maple Inc.`
All rights reserved.‘;
if nargs = 1 then
error “expecting 1 argument, got %1”, nargs
elif type(x, ’complex(float)’) thenevalf(’erfi’(x))
elif x = 0 then0
elif type(x, ’∞’) then
if type(x, ’¦undefined, cx_infinity¦’) then
undefined +undefined ∗ I
elif type(x, ’extended_numeric’) thenx
elif type('(x), ’∞’) then∞+∞∗ I
else CopySign(I, ·(x))
end if
elif type(x, ’undefined’) then
if type(x, ’extended_numeric’) thenundefined
elif type(x, ’imaginary’) thenundefined ∗ I
else undefined +undefined ∗ I
end if
elif type(x, ‘ ∗ ‘) and member(I, ¦op(x)¦) then
I ∗ erf(−I ∗ x)
elif type(x, ’complex(numeric)’) and csgn(x) < 0 then
−erfi(−x)
eliftype(x, ‘ ∗ ‘) and type(op(1, x), ’complex(numeric)’)
and csgn(op(1, x)) < 0then −erfi(−x)
elif type(x, ‘ + ‘) and traperror(sign(x)) = −1 then
−erfi(−x)
else ’erfi’(x)
end if
end proc
La valeur par d´efaut de verboseproc est 1.
200 • Chapitre 5: L’´evaluation et la simplification
>
interface( verboseproc=1 );
La rubrique d’aide ?interface explique les valeurs permises de
verboseproc et des autres variables d’interface.
´
Evaluation `a un niveau
Les variables locales d’une proc´edure sont appliqu´ees ` a l’´evaluation ` a un
niveau : si vous assignez une variable locale, le r´esultat de l’´evaluation est
la valeur la plus r´ecemment assign´ee directement ` a cette variable.
>
test:=proc()
>
local x, y, z;
>
x := y;
>
y := z;
>
z := 5;
>
x;
>
end proc:
>
test();
y
Comparez cette ´evaluation ` a l’exemple similaire pr´esent´e `a la
page 196. L’´evaluation compl`ete ` a l’int´erieur d’une proc´edure est rare-
ment n´ecessaire et peut mener ` a une proc´edure inefficace. Lorsque vous
d´esirez obtenir de l’´evaluation compl`ete `a l’int´erieur d’une proc´edure, uti-
lisez eval.
Commandes avec des r`egles sp´eciales d’´evaluation
Les commandes assigned et evaln Les fonctions assigned et evaln
´evaluent leurs arguments seulement au point o` u les arguments deviennent
des noms pour la premi`ere fois.
>
x := y;
x := y
>
y := z;
y := z
>
evaln(x);
x
5.4 Les r`egles d’´evaluation • 201
La commande assigned v´erifie si une valeur a ´et´e assign´ee `a un nom.
>
assigned( x );
true
La commande seq Pour cr´eer des suites d’expressions, la commande seq
n’´evalue pas ses arguments, de mani`ere que si une valeur a ´et´e assign´ee ` a
une variable, elle peut toujours l’utiliser comme une variable d’indice.
>
i := 2;
i := 2
>
seq( i^2, i=1..5 );
1, 4, 9, 16, 25
>
i;
2
Comparez ceci au comportement de sum.
>
sum( i^2, i=1..5 );
Error, (in sum) summation variable previously assigned,
second argument evaluates to 2 = 1 .. 5
Vous pouvez facilement r´esoudre ce probl`eme en utilisant les guille-
mets simples.
Empecher l’´evaluation d’une expression
Le langage Maple supporte l’utilisation des guillemets pour retarder l’´eva-
luation d’un niveau. Entourer un nom de guillemets simples (’) empˆeche
Maple d’´evaluer celui-ci.
>
i := 4;
i := 4
>
i;
202 • Chapitre 5: L’´evaluation et la simplification
4
>
’i’;
i
Utilisez cette m´ethode pour ´eviter le probl`eme suivant.
>
i;
4
>
sum( i^2, i=1..5 );
Error, (in sum) summation variable previously assigned,
second argument evaluates to 4 = 1 .. 5
>
sum( ’i^2’, ’i’=1..5 );
55
>
i;
4
L’´evaluation compl`ete d’une expression entour´ee de guillemets sup-
prime un niveau de ces guillemets.
>
x := 0;
x := 0
>
’’’x’+1’’;
’’x’ + 1’
>
%;
’x’ + 1
>
%;
5.4 Les r`egles d’´evaluation • 203
x + 1
>
%;
1
Entourer une expression de guillemets retarde l’´evaluation, mais n’em-
pˆeche pas les simplifications automatiques ni les calculs arithm´etiques.
>
’1-1’;
0
>
’p+q-i-p+3*q’;
4 q −i
Lorsque vous entourez une simple variable de guillemets simples, le
r´esultat retourn´e est le nom de la variable. Vous pouvez employer cette
m´ethode pour d´esaffecter une variable.
>
x := 1;
x := 1
>
x;
1
>
x := ’x’;
x := x
>
x;
x
Cependant, en g´en´eral, vous devez utiliser evaln.
>
i := 4;
204 • Chapitre 5: L’´evaluation et la simplification
i := 4
>
a[i] := 9;
a
4
:= 9
Remarquez que ’a[i]’ est a[i] et non a[4].
>
’a[i]’;
a
i
Vous devez utilser evaln pour d´esaffecter a[i].
>
evaln( a[i] );
a
4
>
a[i] := evaln( a[i] );
a
4
:= a
4
Utiliser les variables entour´ees de guillemets comme arguments
de fonctions
Quelques commandes Maple se servent de noms comme moyen de retour-
ner de l’information en plus de la valeur retourn´ee de mani`ere standard.
La commande divide assigne le quotient au nom global q.
>
divide( x^2-1, x-1, ’q’ );
true
>
q;
x + 1
Rappelez-vous d’utiliser un nom entour´e de guillemets afin de vous
assurer de ne pas passer de variable allou´ee `a la proc´edure. Vous pouvez
´eviter d’utiliser les guillemets si vous vous assurez que le nom utilis´e n’a
pas de valeur assign´ee.
5.4 Les r`egles d’´evaluation • 205
>
q := 2;
q := 2
>
divide( x^2-y^2, x-y, q );
Error, wrong number (or type) of parameters in function
divide
>
q := evaln(q);
q := q
>
divide( x^2-y^2, x-y, q );
true
>
q;
x +y
Les commandes rem, quo, irem et iquo se comportent de mani`ere simi-
laire.
Concat´enation de noms
La concat´enation est une mani`ere de former de nouveaux noms de va-
riables bas´es sur d’autres noms.
>
a||b;
ab
L’op´erateur de concat´enation,

||

, dans un nom, entraˆıne l’´evalu-
ation du cˆ ot´e droit de l’op´erateur, mais pas celui du cˆ ot´e gauche.
>
a := x;
a := x
>
b := 2;
206 • Chapitre 5: L’´evaluation et la simplification
b := 2
>
a||b;
a2
>
c := 3;
c := 3
>
a||b||c;
a23
Si un nom issu d’une concat´enation ne forme pas un seul symbole,
Maple n’´evalue pas la concat´enation.
>
a := x;
a := x
>
b := y+1;
b := y + 1
>
new_name := a||b;
new_name := a[[(y + 1)
>
y := 3;
y := 3
>
new_name;
a4
Vous pouvez vous servir des noms concat´en´es pour assigner et cr´eer
des expressions.
5.5 Conclusion • 207
>
i := 1;
i := 1
>
b||i := 0;
b1 := 0
Ici, les guillemets simples sont n´ecessaires.
>
sum( ’a||k’ * x^k, k=0..8 );
a0 +a1 x +a2 x
2
+a3 x
3
+a4 x
4
+a5 x
5
+a6 x
6
+a7 x
7
+ a8 x
8
Lorsque vous omettez les guillemets simples, Maple ´evalue a||k `a ak.
>
sum( a||k * x^k, k=0..8 );
ak +ak x +ak x
2
+ak x
3
+ak x
4
+ak x
5
+ak x
6
+ak x
7
+ ak x
8
Vous pouvez ´egalement utiliser la concat´enation pour former des titres
de graphiques.
5.5 Conclusion
Dans ce chapitre, vous avez vu comment effectuer plusieurs types de ma-
nipulations sur des expressions, depuis l’addition de deux ´equations ` a la
s´election de parties d’une expression g´en´erale. Cependant, les commandes
que vous avez vues ici vous permettent de transformer une expression sous
plusieurs formes, souvent celles que vous jugez les plus simples. Si tel n’est
pas le cas, vous pouvez utiliser les relations accessoires pour sp´ecifier vos
propres r`egles de simplification, ou encore des hypoth`eses pour sp´ecifier
des propri´et´es des inconnues.
Vous avez ´egalement vu que, dans la plupart des cas, Maple effectue
l’´evaluation compl`ete des variables. Il existe cependant quelques excep-
tions, comme l’´evaluation du dernier nom pour certaines grandes struc-
tures de donn´ees, l’´evaluation ` a un seul niveau des variables locales d’une
proc´edure ainsi que l’´evaluation retard´ee au moyen des guillemets simples.
208 • Chapitre 5: L’´evaluation et la simplification
6 Exemples tir´es du calcul
diff´erentiel
Le pr´esent chapitre illustre par quelques exemples la mani`ere dont Maple
vous aide ` a pr´esenter et ` a r´esoudre des probl`emes de calcul diff´erentiel. La
premi`ere section d´ecrit les concepts ´el´ementaires de la d´eriv´ee et de l’in-
t´egrale ; la deuxi`eme traite des ´equations diff´erentielles ordinaires ; enfin,
la troisi`eme section porte sur les ´equations aux d´eriv´ees partielles.
6.1 Calcul diff´erentiel ´el´ementaire
Vous verrez ici plusieurs exemples montrant la mani`ere d’illustrer des
id´ees et de r´esoudre des probl`emes de calcul diff´erentiel. Le package
Student[Calculus1] contient plusieurs commandes qui s’av`erent par-
ticuli`erement utiles dans ce domaine.
La d´eriv´ee
La prsente section illustre la signification graphique de la d´eriv´ee en tant
que pente de la droite tangente, puis montre comment d´eterminer l’en-
semble des points d’inflexion d’une fonction.
D´efinissez la fonction f: x → exp(sin(x)) de la mani`ere suivante.
>
f := x -> exp( sin(x) );
f := x → e
sin(x)
Trouvez la d´eriv´ee de f ´evalu´ee en x
0
= 1.
>
x0 := 1;
209
210 • Chapitre 6: Exemples tir´es du calcul diff´erentiel
x0 := 1
p
0
et p
1
sont deux points situ´es sur le graphique de f.
>
p0 := [ x0, f(x0) ];
p0 := [1, e
sin(1)
]
>
p1 := [ x0+h, f(x0+h) ];
p1 := [1 +h, e
sin(1+h)
]
La commande NewtonQuotient du package Student calcule la pente
de la s´ecante passant par p
0
et p
1
.
>
with(Student[Calculus1]):
Utilisez NewtonQuotient pour trouver une expression pour la pente.
>
m := NewtonQuotient(f(x), x=x0, h=h);
m := −
e
sin(1)
−e
sin(1+h)
h
Si h = 1, la pente est donn´ee par
>
eval( m, h=1 );
e
sin(2)
−e
sin(1)
La commande evalf nous donne une approximation d´ecimale de ce
r´esultat.
>
evalf( % );
0.162800903
Lorsque h tend vers z´ero, les valeurs de la pente de la s´ecante semblent
converger.
>
h_values := seq( NewtonQuotient( f(x), x=1.0, h=1.0/i^2 ),
>
i=1..20);
6.1 Calcul diff´erentiel ´el´ementaire • 211
h_values := 0.1628009030, 1.053234748, 1.174305789,
1.210917616, 1.226806975, 1.235154852, 1.240091510,
1.243256512, 1.245408615, 1.246939100, 1.248066842,
1.248921648, 1.249585493, 1.250111128, 1.250534250,
1.250880512, 1.251167122, 1.251406908, 1.251609743,
1.251782800
Voici l’´equation de la pente de la s´ecante.
>
y - p0[2] = m * ( x - p0[1] );
y −e
sin(1)
=
(e
sin(1+h)
−e
sin(1)
) (x −1)
h
La commande isolate r´ecrit l’´equation sous la forme pente-ordonn´ee
`a l’origine.
>
isolate( %, y );
y =
(e
sin(1+h)
−e
sin(1)
) (x −1)
h
+e
sin(1)
Vous devez faire de cette ´equation une fonction.
>
secant := unapply( rhs(%), x );
secant := x →
(e
sin(1+h)
−e
sin(1)
) (x −1)
h
+e
sin(1)
Vous pouvez maintenant tracer la s´ecante et la fonction elle-mˆeme
sur le mˆeme graphique pour diff´erentes valeurs de h. Tout d’abord, vous
devez cr´eer une suite de graphiques.
>
S := seq( plot( [f(x), secant(x)], x=0..4,
>
view=[0..4, 0..4] ),
>
h=h_values ):
La commande display du package plots peut afficher les graphiques
de la suite sous forme d’animation.
>
with(plots):
Warning, the name changecoords has been redefined
212 • Chapitre 6: Exemples tir´es du calcul diff´erentiel
>
display( S, insequence=true, view=[0..4, 0..4] );
x
x
x x
x
x
x x x x
x
x
x x
x
x
x x x
x
Dans la limite lorsque h tend vers z´ero, la pente est donn´ee par
>
Limit( m, h=0 );
lim
h→0
e
sin(1+h)
−e
sin(1)
h
La valeur de cette limite est
>
value( % );
e
sin(1)
cos(1)
Bien entendu, cette r´eponse est la valeur de f

(x
0
). Pour vous assurer
de ceci, d´efinissez d’abord la fonction f1 comme ´etant la d´eriv´ee premi`ere
de f. Puisque f est une fonction, utilisez D. L’op´erateur D calcule la d´eriv´ee
d’une fonction, alors que diff calcule la d´eriv´ee d’une expression. Pour
en savoir plus, consultez la rubrique ?operators,D.
>
f1 := D(f);
f1 := x → cos(x) e
sin(x)
Maintenant, vous pouvez voir que f1(x
0
) est ´egale ` a la limite ci-
dessus.
>
f1(x0);
e
sin(1)
cos(1)
6.1 Calcul diff´erentiel ´el´ementaire • 213
Dans le cas pr´esent, la d´eriv´ee seconde existe.
>
diff( f(x), x, x );
−sin(x) e
sin(x)
+ cos(x)
2
e
sin(x)
Encore une fois, d´efinissez la fonction f2 comme la d´eriv´ee seconde
de f.
>
f2 := unapply( %, x );
f2 := x → −sin(x) e
sin(x)
+ cos(x)
2
e
sin(x)
Lorsque vous tracez le graphique de f de mˆeme que ses d´eriv´ees
premi`ere et seconde, vous pouvez remarquer que f augmente lorsque f1
est positive, et que la concavit´e de f est tourn´ee vers le bas lorsque f2
est n´egative.
>
plot( [f(x), f1(x), f2(x)], x=0..10 );
–2
–1
0
1
2
2 4 6 8 10
x
Le graphique de f poss`ede un point d’inflexion l` a o` u la d´eriv´ee seconde
change de signe ; ces changements de signe peuvent survenir aux valeurs
de x telles que f2(x) s’annule.
>
sol := { solve( f2(x)=0, x ) };
214 • Chapitre 6: Exemples tir´es du calcul diff´erentiel
sol :=

arctan

¸
¸
2
1
2

5 −
1
2

−2 + 2

5
¸

, −arctan

¸
¸
2
1
2

5 −
1
2

−2 + 2

5
¸

+π,
arctan(−
1
2

1
2

5, −
1
2

−2 −2

5),
arctan(−
1
2

1
2

5,
1
2

−2 −2

5)
¸
Deux de ces solutions sont complexes.
>
evalf( sol );
¦0.6662394321, 2.475353222,
−1.570796327 + 1.061275064 I,
−1.570796327 −1.061275064 I, ¦
Dans cet exemple, seules les solutions r´eelles sont d’int´erˆet. Vous pou-
vez utiliser la commande select pour choisir les constantes r´eelles dans
l’ensemble solution.
>
infl := select( type, sol, realcons );
infl :=

arctan

¸
¸
2
1
2

5 −
1
2

−2 + 2

5
¸

, −arctan

¸
¸
2
1
2

5 −
1
2

−2 + 2

5
¸

>
evalf( infl );
¦0.6662394325, 2.475353222¦
Du graphique trac´e pr´ec´edemment, vous pouvez remarquer que f2
change en effet de signe en ces valeurs de x. L’ensemble des points d’in-
flexion devient donc
>
{ seq( [x, f(x)], x=infl ) };
6.1 Calcul diff´erentiel ´el´ementaire • 215

arctan

¸
¸
2
1
2

5 −
1
2

−2 + 2

5
¸

, e

¸
¸
¸
2
1/2

5−1/2

−2+2

5

1+4
(1/2

5−1/2)
2
−2+2

5
¸

¸
¸
¸
¸
¸
¸
¸
,

−arctan

¸
¸
2
1
2

5 −
1
2

−2 + 2

5
¸

+π, e

¸
¸
¸
2
1/2

5−1/2

−2+2

5

1+4
(1/2

5−1/2)
2
−2+2

5
¸

¸
¸
¸
¸
¸
¸
¸

>
evalf( % );
¦[2.475353222, 1.855276958],
[0.6662394325, 1.855276958]¦
Puisque la fonction f est p´eriodique, elle poss`ede une infinit´e de points
d’inflexion. Vous pouvez les obtenir tous en d´epla¸ cant horizontalement les
deux points d’inflexion ci-dessus par des multiples entiers de 2π.
Une approximation de Taylor
Voyons maintenant comment utiliser Maple pour analyser le terme d’er-
reur d’une approximation par s´erie de Taylor. Voici la formule de Taylor.
>
taylor( f(x), x=a );
f(a) + D(f)(a) (x −a) +
1
2
(D
(2)
)(f)(a) (x −a)
2
+
1
6
(D
(3)
)(f)(a)
(x −a)
3
+
1
24
(D
(4)
)(f)(a) (x −a)
4
+
1
120
(D
(5)
)(f)(a) (x −a)
5
+
O((x −a)
6
)
Vous pouvez utiliser cette formule pour calculer une approximation
polynomiale d’une fonction f pr`es de x = a.
>
f := x -> exp( sin(x) );
f := x → e
sin(x)
>
a := Pi;
216 • Chapitre 6: Exemples tir´es du calcul diff´erentiel
a := π
>
taylor( f(x), x=a );
1 −(x −π) +
1
2
(x −π)
2

1
8
(x −π)
4
+
1
15
(x −π)
5
+
O((x −π)
6
)
Avant de tracer le graphique de l’approximation de Taylor, vous devez
convertir cette s´erie en un polynˆ ome.
>
poly := convert( %, polynom );
poly := 1 −x +π +
1
2
(x −π)
2

1
8
(x −π)
4
+
1
15
(x −π)
5
Tracez maintenant le graphique de f avec celui de poly.
>
plot( [f(x), poly], x=0..10, view=[0..10, 0..3] );
0
0.5
1
1.5
2
2.5
3
2 4 6 8 10
x
L’expression (1/6!)f
(6)
(ξ)(x−a)
6
nous donne l’erreur de l’approxima-
tion, o` u ξ est un nombre compris entre x et a. La d´eriv´ee sixi`eme de f
est
>
diff( f(x), x$6 );
−sin(x) e
sin(x)
+ 16 cos(x)
2
e
sin(x)
−15 sin(x)
2
e
sin(x)
+ 75 sin(x) cos(x)
2
e
sin(x)
−20 cos(x)
4
e
sin(x)
−15 sin(x)
3
e
sin(x)
+ 45 sin(x)
2
cos(x)
2
e
sin(x)
−15 sin(x) cos(x)
4
e
sin(x)
+ cos(x)
6
e
sin(x)
6.1 Calcul diff´erentiel ´el´ementaire • 217
L’usage de l’op´erateur s´equentiel $ dans la commande pr´ec´edente vous
permet de raccourcir l’appel de la fonction. Sans cet op´erateur, vous de-
vriez entrer , x six fois pour calculer la d´eriv´ee d’ordre 6. D´efinissez la
fonction f6 comme ´etant cette d´eriv´ee.
>
f6 := unapply( %, x );
f6 := x → −sin(x) e
sin(x)
+ 16 cos(x)
2
e
sin(x)
−15 sin(x)
2
e
sin(x)
+ 75 sin(x) cos(x)
2
e
sin(x)
−20 cos(x)
4
e
sin(x)
−15 sin(x)
3
e
sin(x)
+ 45 sin(x)
2
cos(x)
2
e
sin(x)
−15 sin(x) cos(x)
4
e
sin(x)
+ cos(x)
6
e
sin(x)
Vous pouvez maintenant calculer l’erreur de l’approximation.
>
err := 1/6! * f6(xi) * (x - a)^6;
err :=
1
720
(−sin(ξ) e
sin(ξ)
+ 16 cos(ξ)
2
e
sin(ξ)
−15 sin(ξ)
2
e
sin(ξ)
+ 75 sin(ξ) cos(ξ)
2
e
sin(ξ)
−20 cos(ξ)
4
e
sin(ξ)
−15 sin(ξ)
3
e
sin(ξ)
+ 45 sin(ξ)
2
cos(ξ)
2
e
sin(ξ)
−15 sin(ξ) cos(ξ)
4
e
sin(ξ)
+ cos(ξ)
6
e
sin(ξ)
)(x −π)
6
Le graphique pr´ec´edent indique que l’erreur (en valeur absolue) est
faible pour x compris entre 2 et 4.
>
plot3d( abs( err ), x=2..4, xi=2..4,
>
style=patch, axes=boxed );
2
4
x
2
4
xi
0
0.16
218 • Chapitre 6: Exemples tir´es du calcul diff´erentiel
Pour d´eterminer l’erreur exacte, vous devez effectuer une analyse
compl`ete de l’expression err dans les deux r´egions ferm´ees par x = 2,
x = 4, ξ = a et ξ = x (soit pour x compris entre 2 et 4 et pour ξ com-
pris entre a et x). La commande curve du package plottools permet
d’illustrer ces deux r´egions.
>
with(plots): with(plottools):
Warning, the name changecoords has been redefined
Warning, the name arrow has been redefined
>
display( curve( [ [2,2], [2,a], [4,a], [4,4], [2,2] ] ),
>
labels=[x, xi] );
2
2.5
3
3.5
4
xi
2 2.5 3 3.5 4
x
Les d´eriv´ees partielles de err vous permettent de d´eterminer les ex-
tr´emums de err `a l’int´erieur de ces deux r´egions. Vous devez alors ´etudier
err aux bords du domaine. Les d´eriv´ees partielles de err sont
>
err_x := diff(err, x);
err_x :=
1
120
(−sin(ξ) e
sin(ξ)
+ 16 cos(ξ)
2
e
sin(ξ)
−15 sin(ξ)
2
e
sin(ξ)
+ 75 sin(ξ) cos(ξ)
2
e
sin(ξ)
−20 cos(ξ)
4
e
sin(ξ)
−15 sin(ξ)
3
e
sin(ξ)
+ 45 sin(ξ)
2
cos(ξ)
2
e
sin(ξ)
−15 sin(ξ) cos(ξ)
4
e
sin(ξ)
+ cos(ξ)
6
e
sin(ξ)
)(x −π)
5
>
err_xi := diff(err, xi);
6.1 Calcul diff´erentiel ´el´ementaire • 219
err_xi :=
1
720
(−cos(ξ) e
sin(ξ)
−63 sin(ξ) cos(ξ) e
sin(ξ)
+ 91 cos(ξ)
3
e
sin(ξ)
−210 sin(ξ)
2
cos(ξ) e
sin(ξ)
+ 245 sin(ξ) cos(ξ)
3
e
sin(ξ)
−35 cos(ξ)
5
e
sin(ξ)
−105 sin(ξ)
3
cos(ξ) e
sin(ξ)
+ 105 sin(ξ)
2
cos(ξ)
3
e
sin(ξ)
−21 sin(ξ) cos(ξ)
5
e
sin(ξ)
+ cos(ξ)
7
e
sin(ξ)
)(x −π)
6
Les deux d´eriv´ees partielles sont nulles au point critique.
>
sol := solve( {err_x=0, err_xi=0}, {x, xi} );
sol := ¦x = π, ξ = ξ¦
L’erreur est ´egalement nulle en ce point.
>
eval( err, sol );
0
Vous devez maintenant regrouper un ensemble de valeurs critiques.
La plus grande valeur critique borne l’erreur maximale.
>
critical := { % };
critical := ¦0¦
La d´eriv´ee partielle err_xi est nulle en un point critique situ´e sur
l’une des deux fronti`eres x = 2 ou x = 4.
>
sol := { solve( err_xi=0, xi ) };
220 • Chapitre 6: Exemples tir´es du calcul diff´erentiel
sol := ¦
1
2
π, arctan(RootOf(%1, index = 4),
RootOf(_Z
2
+ RootOf(%1, index = 4)
2
−1)), arctan(
RootOf(%1, index = 1),
RootOf(_Z
2
+ RootOf(%1, index = 1)
2
−1)), arctan(
RootOf(%1, index = 5),
RootOf(_Z
2
+ RootOf(%1, index = 5)
2
−1)), arctan(
RootOf(%1, index = 2),
RootOf(_Z
2
+ RootOf(%1, index = 2)
2
−1)), arctan(
RootOf(%1, index = 6),
RootOf(_Z
2
+ RootOf(%1, index = 6)
2
−1)), arctan(
RootOf(%1, index = 3),
RootOf(_Z
2
+ RootOf(%1, index = 3)
2
−1))¦
%1 := −56 −161 _Z + 129 _Z
2
+ 308 _Z
3
+ 137 _Z
4
+ 21 _Z
5
+ _Z
6
>
evalf(sol);
¦−1.570796327 + 0.8535664710 I, 1.570796327,
−0.3257026605, −1.570796327 + 2.473801030 I,
0.6948635283, −1.570796327 + 1.767486929 I,
−1.570796327 + 3.083849212 I¦
Il est recommand´e de v´erifier l’ensemble solution en tra¸ cant le gra-
phique de la solution.
>
plot( eval(err_xi, x=2), xi=2..4 );
–0.2
0
0.2
0.4
0.6
2.2 2.4 2.6 2.8 3 3.2 3.4 3.6 3.8 4
xi
6.1 Calcul diff´erentiel ´el´ementaire • 221
Deux solutions de err_xi=0 semblent exister entre 2 et 4 l` a o` u solve
n’en a trouv´e aucune : π/2 est inf´erieur ` a 2. Vous devez donc utiliser des
m´ethodes num´eriques. Si x = 2, alors ξ doit ˆetre situ´e dans l’intervalle
situ´e entre 2 et a.
>
sol := fsolve( eval(err_xi, x=2), xi, 2..a );
sol := 2.446729125
En ce point, l’erreur est
>
eval( err, {x=2, xi=sol});
0.07333000221 (2 −π)
6
Ajoutez maintenant cette valeur ` a l’ensemble des valeurs critiques.
>
critical := critical union {%};
critical := ¦0, 0.07333000221 (2 −π)
6
¦
Si x = 4, alors ξ doit ˆetre situ´e entre a et 4.
>
sol := fsolve( eval(err_xi, x=4), xi, a..4 );
sol := 3.467295314
En ce point, l’erreur est
>
eval( err, {x=4, xi=sol} );
−0.01542298119 (4 −π)
6
>
critical := critical union {%};
critical :=
¦0, 0.07333000221 (2 −π)
6
, −0.01542298119 (4 −π)
6
¦
`
A la fronti`ere ξ = a, l’erreur est
>
B := eval( err, xi=a );
222 • Chapitre 6: Exemples tir´es du calcul diff´erentiel
B := −
1
240
(x −π)
6
La d´eriv´ee B1 de B est nulle en un point critique.
>
B1 := diff( B, x );
B1 := −
1
40
(x −π)
5
>
sol := { solve( B1=0, x ) };
sol := ¦π¦
En ce point critique, l’erreur est
>
eval( B, x=sol[1] );
0
>
critical := critical union { % };
critical :=
¦0, 0.07333000221 (2 −π)
6
, −0.01542298119 (4 −π)
6
¦
`
A la derni`ere fronti`ere, ξ = x, l’erreur est
>
B := eval( err, xi=x );
B :=
1
720
(−sin(x) e
sin(x)
+ 16 cos(x)
2
e
sin(x)
−15 sin(x)
2
e
sin(x)
+ 75 sin(x) cos(x)
2
e
sin(x)
−20 cos(x)
4
e
sin(x)
−15 sin(x)
3
e
sin(x)
+ 45 sin(x)
2
cos(x)
2
e
sin(x)
−15 sin(x) cos(x)
4
e
sin(x)
+ cos(x)
6
e
sin(x)
)(x −π)
6
Encore une fois, vous devez trouver le point o` u la d´eriv´ee s’annule.
>
B1 := diff( B, x );
6.1 Calcul diff´erentiel ´el´ementaire • 223
B1 :=
1
720
(−cos(x) e
sin(x)
−63 sin(x) cos(x) e
sin(x)
+ 91 cos(x)
3
e
sin(x)
−210 sin(x)
2
cos(x) e
sin(x)
+ 245 sin(x) cos(x)
3
e
sin(x)
−35 cos(x)
5
e
sin(x)
−105 sin(x)
3
cos(x) e
sin(x)
+ 105 sin(x)
2
cos(x)
3
e
sin(x)
−21 sin(x) cos(x)
5
e
sin(x)
+ cos(x)
7
e
sin(x)
)(x −π)
6
+
1
120
(
−sin(x) e
sin(x)
+ 16 cos(x)
2
e
sin(x)
−15 sin(x)
2
e
sin(x)
+ 75 sin(x) cos(x)
2
e
sin(x)
−20 cos(x)
4
e
sin(x)
−15 sin(x)
3
e
sin(x)
+ 45 sin(x)
2
cos(x)
2
e
sin(x)
−15 sin(x) cos(x)
4
e
sin(x)
+ cos(x)
6
e
sin(x)
)(x −π)
5
>
sol := { solve( B1=0, x ) };
sol := ¦π¦
Il est bon de v´erifier la solution en tra¸ cant le graphique.
>
plot( B1, x=2..4 );
0
0.2
0.4
0.6
0.8
2.2 2.4 2.6 2.8 3 3.2 3.4 3.6 3.8 4
x
Le graphique de B1 indique qu’une solution existe entre 2.1 et 2.3.
Puisque solve ne peut trouver cette solution, vous devez ` a nouveau re-
courir aux m´ethodes num´eriques.
>
fsolve( B1=0, x, 2.1..2.3 );
2.180293062
Ajoutez cette solution num´erique ` a l’ensemble des solutions symbo-
liques.
224 • Chapitre 6: Exemples tir´es du calcul diff´erentiel
>
sol := sol union { % };
sol := ¦2.180293062, π¦
L’ensemble suivant contient les erreurs extrˆemes ` a la fronti`ere ξ = x.
>
{ seq( B, x=sol ) };
¦0, 0.04005698601 (2.180293062 −π)
6
¦
Agrandissez maintenant l’ensemble des grandes erreurs.
>
critical := critical union %;
critical := ¦0, −0.01542298119 (4 −π)
6
,
0.04005698601 (2.180293062 −π)
6
,
0.07333000221 (2 −π)
6
¦
Enfin, vous devez ajouter l’erreur aux quatre coins de l’ensemble des
valeurs critiques.
>
critical := critical union
>
{ eval( err, {xi=2, x=2} ),
>
eval( err, {xi=2, x=4} ),
>
eval( err, {xi=4, x=2} ),
>
eval( err, {xi=4, x=4} ) };
6.1 Calcul diff´erentiel ´el´ementaire • 225
critical := ¦0, −0.01542298119 (4 −π)
6
,
0.04005698601 (2.180293062 −π)
6
,
0.07333000221 (2 −π)
6
,
1
720
(−sin(2) e
sin(2)
+ 16 cos(2)
2
e
sin(2)
−15 sin(2)
2
e
sin(2)
+ 75 sin(2) cos(2)
2
e
sin(2)
−20 cos(2)
4
e
sin(2)
−15 sin(2)
3
e
sin(2)
+ 45 sin(2)
2
cos(2)
2
e
sin(2)
−15 sin(2) cos(2)
4
e
sin(2)
+ cos(2)
6
e
sin(2)
)(2 −π)
6
,
1
720
(−sin(2) e
sin(2)
+ 16 cos(2)
2
e
sin(2)
−15 sin(2)
2
e
sin(2)
+ 75 sin(2) cos(2)
2
e
sin(2)
−20 cos(2)
4
e
sin(2)
−15 sin(2)
3
e
sin(2)
+ 45 sin(2)
2
cos(2)
2
e
sin(2)
−15 sin(2) cos(2)
4
e
sin(2)
+ cos(2)
6
e
sin(2)
)(4 −π)
6
,
1
720
(−sin(4) e
sin(4)
+ 16 cos(4)
2
e
sin(4)
−15 sin(4)
2
e
sin(4)
+ 75 sin(4) cos(4)
2
e
sin(4)
−20 cos(4)
4
e
sin(4)
−15 sin(4)
3
e
sin(4)
+ 45 sin(4)
2
cos(4)
2
e
sin(4)
−15 sin(4) cos(4)
4
e
sin(4)
+ cos(4)
6
e
sin(4)
)(2 −π)
6
,
1
720
(−sin(4) e
sin(4)
+ 16 cos(4)
2
e
sin(4)
−15 sin(4)
2
e
sin(4)
+ 75 sin(4) cos(4)
2
e
sin(4)
−20 cos(4)
4
e
sin(4)
−15 sin(4)
3
e
sin(4)
+ 45 sin(4)
2
cos(4)
2
e
sin(4)
−15 sin(4) cos(4)
4
e
sin(4)
+ cos(4)
6
e
sin(4)
)(4 −π)
6
¦
Vous devez maintenant d´eterminer le maximum en valeur absolue des
´el´ements de critical. Tout d’abord, appliquez la commande abs aux
´el´ements de critical.
>
map( abs, critical );
226 • Chapitre 6: Exemples tir´es du calcul diff´erentiel
¦0, 0.04005698601 (2.180293062 −π)
6
,
0.07333000221 (2 −π)
6
, 0.01542298119 (4 −π)
6
, −
1
720
(
−sin(2) e
sin(2)
+ 16 cos(2)
2
e
sin(2)
−15 sin(2)
2
e
sin(2)
+ 75 sin(2) cos(2)
2
e
sin(2)
−20 cos(2)
4
e
sin(2)
−15 sin(2)
3
e
sin(2)
+ 45 sin(2)
2
cos(2)
2
e
sin(2)
−15 sin(2) cos(2)
4
e
sin(2)
+ cos(2)
6
e
sin(2)
)(2 −π)
6
, −
1
720
(−sin(2) e
sin(2)
+ 16 cos(2)
2
e
sin(2)
−15 sin(2)
2
e
sin(2)
+ 75 sin(2) cos(2)
2
e
sin(2)
−20 cos(2)
4
e
sin(2)
−15 sin(2)
3
e
sin(2)
+ 45 sin(2)
2
cos(2)
2
e
sin(2)
−15 sin(2) cos(2)
4
e
sin(2)
+ cos(2)
6
e
sin(2)
)(4 −π)
6
, −
1
720
(−sin(4) e
sin(4)
+ 16 cos(4)
2
e
sin(4)
−15 sin(4)
2
e
sin(4)
+ 75 sin(4) cos(4)
2
e
sin(4)
−20 cos(4)
4
e
sin(4)
−15 sin(4)
3
e
sin(4)
+ 45 sin(4)
2
cos(4)
2
e
sin(4)
−15 sin(4) cos(4)
4
e
sin(4)
+ cos(4)
6
e
sin(4)
)(2 −π)
6
, −
1
720
(−sin(4) e
sin(4)
+ 16 cos(4)
2
e
sin(4)
−15 sin(4)
2
e
sin(4)
+ 75 sin(4) cos(4)
2
e
sin(4)
−20 cos(4)
4
e
sin(4)
−15 sin(4)
3
e
sin(4)
+ 45 sin(4)
2
cos(4)
2
e
sin(4)
−15 sin(4) cos(4)
4
e
sin(4)
+ cos(4)
6
e
sin(4)
)(4 −π)
6
¦
Trouvez ensuite l’´el´ement maximal. La commande max requiert une
suite de nombres ; vous devez donc utiliser la commande op pour trans-
former l’ensemble des valeurs en une suite.
>
max_error := max( op(%) );
max_error := 0.07333000221 (2 −π)
6
Ce nombre est approximativement
>
evalf( max_error );
0.1623112756
6.1 Calcul diff´erentiel ´el´ementaire • 227
Vous pouvez maintenant tracer f, son approximation de Taylor et une
paire de courbes indiquant la bande d’erreur.
>
plot( [ f(x), poly, f(x)+max_error, f(x)-max_error ],
>
x=2..4,
>
color=[ red, blue, brown, brown ] );
0.5
1
1.5
2
2.5
2 2.2 2.4 2.6 2.8 3 3.2 3.4 3.6 3.8 4
x
Ce graphique montre que l’erreur r´eelle demeure bien en-d´e¸c` a de l’es-
timation de l’erreur.
L’int´egrale
L’int´egrale d’une fonction peut ˆetre consid´er´ee comme une mesure de l’aire
comprise entre l’axe des x et la courbe de cette fonction. La d´efinition
de l’int´egrale de Riemann repose sur cette interpr´etation graphique de
l’int´egrale.
>
f := x -> 1/2 + sin(x);
f := x →
1
2
+ sin(x)
Par exemple, la commande ApproximateInt que l’on trouve dans
le package Student[Calculus1] avec pour param`etres method = left,
partition = 6 et output = plot dessine le graphique de f avec 6 boˆıtes.
La hauteur de chaque boˆıte est la valeur de f ´evalu´ee sur le coin gauche
de chacune d’entre elles.
>
with(Student[Calculus1]):
>
ApproximateInt( f(x), x=0..10, method=left, partition=6,
>
output=plot);
228 • Chapitre 6: Exemples tir´es du calcul diff´erentiel
f(x)

An Approximation of the Integral of
f(x) = 1/2+sin(x)
on the Interval [0, 10]
Using a Left-endpoint Riemann Sum
Approximate Value: 6.839071529
Area: 6.845601763
–1
–0.5
0.5
1
1.5
2 4 6 8 10
x
Changez output = plot pour output = sum pour calculer l’aire des
boˆıtes.
>
ApproximateInt( f(x), x=0..10, method=left, partition=6,
>
output=sum);
5
3

5
¸
i=0
(
1
2
+ sin(
5
3
i))

Ce nombre est approximativement
>
evalf( % );
6.845601766
L’approximation de l’aire s’am´eliore ` a mesure que plus de boˆıtes sont
utilis´ees. Augmentez le nombre de boˆıtes jusqu’` a 12 et calculez la valeur
de ApproximateInt pour chacune de ces boˆıtes.
>
seq( evalf(ApproximateInt( f(x), x=0..10, method=left,
>
partition=n^2)), n=3..14);
6.948089404, 6.948819107, 6.923289158, 6.902789479,
6.888196447, 6.877830054, 6.870316620, 6.864739771,
6.860504866, 6.857222010, 6.854630209, 6.852550665
Utilisez l’option output = animation pour cr´eer une animation de la
somme de Riemann.
6.1 Calcul diff´erentiel ´el´ementaire • 229
>
ApproximateInt( f(x), x=0..4*Pi, method=left, partition=6,
>
output=animation, iterations=7);
f(x)

AnApproximationoftheIntegralof
f(x)=1/2+sin(x)
ontheInterval[0,4*Pi]
UsingaLeft-endpointRiemannSum
ApproximateValue:6.283185307
Area:6.283185309
–1
–0.5
0
0.5
1
1.5
2 4 6 8 10 12
x
f(x)

AnApproximationoftheIntegralof
f(x)=1/2+sin(x)
ontheInterval[0,4*Pi]
UsingaLeft-endpointRiemannSum
ApproximateValue:6.283185307
Area:6.283185308
–1
–0.5
0
0.5
1
1.5
2 4 6 8 10 12
x
f(x)

AnApproximationoftheIntegralof
f(x)=1/2+sin(x)
ontheInterval[0,4*Pi]
UsingaLeft-endpointRiemannSum
ApproximateValue:6.283185307
Area:6.283185308
–1
–0.5
0
0.5
1
1.5
2 4 6 8 10 12
x
f(x)

AnApproximationoftheIntegralof
f(x)=1/2+sin(x)
ontheInterval[0,4*Pi]
UsingaLeft-endpointRiemannSum
ApproximateValue:6.283185307
Area:6.283185311
–1
–0.5
0
0.5
1
1.5
2 4 6 8 10 12
x
f(x)

AnApproximationoftheIntegralof
f(x)=1/2+sin(x)
ontheInterval[0,4*Pi]
UsingaLeft-endpointRiemannSum
ApproximateValue:6.283185307
Area:6.283185308
–1
–0.5
0
0.5
1
1.5
2 4 6 8 10 12
x
f(x)

AnApproximationoftheIntegralof
f(x)=1/2+sin(x)
ontheInterval[0,4*Pi]
UsingaLeft-endpointRiemannSum
ApproximateValue:6.283185307
Area:6.283185309
–1
–0.5
0
0.5
1
1.5
2 4 6 8 10 12
x
f(x)

AnApproximationoftheIntegralof
f(x)=1/2+sin(x)
ontheInterval[0,4*Pi]
UsingaLeft-endpointRiemannSum
ApproximateValue:6.283185307
Area:6.283185309
–1
–0.5
0
0.5
1
1.5
2 4 6 8 10 12
x
Dans la limite, ` a mesure que le nombre de boˆıtes augmente, le r´esultat
se rapproche de l’int´egrale d´efinie.
>
Int( f(x), x=0..10 );

10
0
1
2
+ sin(x) dx
La valeur de l’int´egrale est
>
value( % );
6 −cos(10)
en nombres d´ecimaux, cette valeur est approximativement
>
evalf( % );
6.839071529
L’int´egrale ind´efinie de f est
>
Int( f(x), x );

1
2
+ sin(x) dx
230 • Chapitre 6: Exemples tir´es du calcul diff´erentiel
>
value( % );
1
2
x −cos(x)
D´efinissez la fonction F comme ´etant l’inverse de la d´eriv´ee.
>
F := unapply( %, x );
F := x →
1
2
x −cos(x)
Choisissez la constante d’int´egration de telle sorte que F(0) = 0.
>
F(x) - F(0);
1
2
x −cos(x) + 1
>
F := unapply( %, x );
F := x →
1
2
x −cos(x) + 1
Lorsque vous tracez le graphique de F et les boˆıtes ensemble, vous
pouvez remarquer que F augmente davantage lorsque sa boˆıte correspon-
dante est plus grande.
>
with(plots):
>
display( [ plot( F(x), x=0..10, color=blue, legend="F(x)" ),
>
ApproximateInt( f(x), x=0..10, partition=14,
>
method=left, output=plot) ] );
F(x)
f(x)

An Approximation of the Integral of
f(x) = 1/2+sin(x)
on the Interval [0, 10]
Using a Left-endpoint Riemann Sum
Approximate Value: 6.839071529
Area: 6.954499888
–1
–0.5
0
0.5
1
1.5
2 4 6 8 10
x
6.1 Calcul diff´erentiel ´el´ementaire • 231
En sp´ecifiant method = right ou method = midpoint lorsque vous
utilisez la commande ApproximateInt, vous pouvez dessiner et addition-
ner des boˆıtes ´evalu´ees en leur coin droit ou en leur point milieu.
D´eriv´ees partielles mixtes
Cette section d´ecrit l’op´erateur diff´erentiel D et donne un exemple d’une
fonction dont les d´eriv´ees partielles mixtes sont diff´erentes.
Consid´erez la fonction suivante.
>
f := (x,y) -> x * y * (x^2-y^2) / (x^2+y^2);
f := (x, y) →
xy (x
2
−y
2
)
x
2
+y
2
La fonction f n’est pas d´efinie ` a l’origine.
>
f(0,0);
Error, (in f) numeric exception: division by zero
En (x, y) = (r cos(θ), r sin(θ)), la valeur de la fonction est
>
f( r*cos(theta), r*sin(theta) );
r
2
cos(θ) sin(θ) (r
2
cos(θ)
2
−r
2
sin(θ)
2
)
r
2
cos(θ)
2
+r
2
sin(θ)
2
La valeur de f tend vers z´ero lorsque r tend vers z´ero.
>
Limit( %, r=0 );
lim
r→0
r
2
cos(θ) sin(θ) (r
2
cos(θ)
2
−r
2
sin(θ)
2
)
r
2
cos(θ)
2
+r
2
sin(θ)
2
>
value( % );
0
Ainsi, vous pouvez prolonger f par continuit´e `a l’origine en la
d´efinissant ´egale ` a z´ero en ce point.
>
f(0.,0.) := 0;
232 • Chapitre 6: Exemples tir´es du calcul diff´erentiel
f(0., 0.) := 0
L’affectation pr´ec´edente ajoute une entr´ee dans la table de rappels
(en anglais remember table) de Maple. Voici le graphique de f.
>
plot3d( f, -3..3, -3..3 );
La d´eriv´ee partielle de f par rapport ` a son premier param`etre, x, est
>
fx := D[1](f);
fx := (x, y) →
y (x
2
−y
2
)
x
2
+y
2
+ 2
x
2
y
x
2
+y
2
−2
x
2
y (x
2
−y
2
)
(x
2
+y
2
)
2
Cette formule n’est cependant pas valide ` a l’origine.
>
fx(0,0);
Error, (in fx) division by zero
Vous devez donc utiliser la d´efinition de la d´eriv´ee exprim´ee sous forme
d’une limite.
>
fx(0,0) := limit( ( f(h,0) - f(0,0) )/h, h=0 );
fx(0, 0) := 0
En (x, y) = (r cos(θ), r sin(θ)), la valeur de fx est
>
fx( r*cos(theta), r*sin(theta) );
6.1 Calcul diff´erentiel ´el´ementaire • 233
r sin(θ) (r
2
cos(θ)
2
−r
2
sin(θ)
2
)
r
2
cos(θ)
2
+r
2
sin(θ)
2
+ 2
r
3
cos(θ)
2
sin(θ)
r
2
cos(θ)
2
+r
2
sin(θ)
2
−2
r
3
cos(θ)
2
sin(θ) (r
2
cos(θ)
2
−r
2
sin(θ)
2
)
(r
2
cos(θ)
2
+r
2
sin(θ)
2
)
2
>
combine( % );
3
4
r sin(3 θ) −
1
4
r sin(5 θ)
Lorsque la distance r entre (x, y) et (0, 0) tend vers z´ero, [f
x
(x, y) −
f
x
(0, 0)[ tend ´egalement vers z´ero.
>
Limit( abs( % - fx(0,0) ), r=0 );
lim
r→0

3
4
r sin(3 θ) −
1
4
r sin(5 θ)

>
value( % );
0
Ainsi, f
x
est continue en (0, 0).
Sym´etriquement, les mˆemes arguments s’appliquent ` a la d´eriv´ee de f
par rapport ` a son second param`etre, y.
>
fy := D[2](f);
fy := (x, y) →
x(x
2
−y
2
)
x
2
+y
2
−2
xy
2
x
2
+y
2
−2
xy
2
(x
2
−y
2
)
(x
2
+y
2
)
2
>
fy(0,0) := limit( ( f(0,k) - f(0,0) )/k, k=0 );
fy(0, 0) := 0
Voici la d´eriv´ee seconde mixte de f.
>
fxy := D[1,2](f);
234 • Chapitre 6: Exemples tir´es du calcul diff´erentiel
fxy := (x, y) →
x
2
−y
2
x
2
+y
2
+ 2
x
2
x
2
+y
2
−2
x
2
(x
2
−y
2
)
(x
2
+y
2
)
2
−2
y
2
x
2
+y
2
−2
y
2
(x
2
−y
2
)
(x
2
+y
2
)
2
+ 8
x
2
y
2
(x
2
−y
2
)
(x
2
+y
2
)
3
Encore une fois, cette formule n’est pas valide ` a l’origine.
>
fxy(0,0);
Error, (in fxy) numeric exception: division by zero
La d´efinition de la d´eriv´ee sous forme de limite est
>
Limit( ( fx(0,k) - fx(0,0) )/k, k=0 );
lim
k→0
−1
>
fxy(0,0) := value( % );
fxy(0, 0) := −1
L’autre d´eriv´ee seconde mixte est
>
fyx := D[2,1](f);
fyx := (x, y) →
x
2
−y
2
x
2
+y
2
+ 2
x
2
x
2
+y
2
−2
x
2
(x
2
−y
2
)
(x
2
+y
2
)
2
−2
y
2
x
2
+y
2
−2
y
2
(x
2
−y
2
)
(x
2
+y
2
)
2
+ 8
x
2
y
2
(x
2
−y
2
)
(x
2
+y
2
)
3
`
A l’origine, vous devez utiliser la d´efinition de la d´eriv´ee sous forme
de limite.
>
Limit( ( fy(h, 0) - fy(0,0) )/h, h=0 );
lim
h→0
1
>
fyx(0,0) := value( % );
fyx(0, 0) := 1
6.2
´
Equations diff´erentielles ordinaires • 235
Remarquez que les deux d´eriv´ees partielles mixtes sont diff´erentes ` a
l’origine.
>
fxy(0,0) <> fyx(0,0);
−1 = 1
>
evalb( % );
true
Les d´eriv´ees partielles mixtes sont ´egales seulement si elles sont conti-
nues. En tra¸ cant le graphique de fxy, on peut remarquer que cette fonc-
tion n’est pas continue en (0, 0).
>
plot3d( fxy, -3..3, -3..3 );
Maple peut vous aider ` a r´esoudre plusieurs autres probl`emes de calcul
diff´erentiel ´el´ementaire. La rubrique ?Student[Calculus1] est une bonne
source de r´ef´erence.
6.2
´
Equations diff´erentielles ordinaires
Maple dispose de toute une gamme d’outils permettant de r´esoudre, de
manipuler et de tracer le graphique d’´equations diff´erentielles ordinaires
et de syst`emes d’´equations diff´erentielles.
236 • Chapitre 6: Exemples tir´es du calcul diff´erentiel
La commande dsolve
La commande la plus utilis´ee pour ´etudier le comportement des ´equations
diff´erentielles ordinaires (EDO) dans Maple est dsolve. Vous pouvez uti-
liser cet outil polyvalent pour obtenir ` a la fois des solutions exactes et des
solutions num´eriques pour un grand nombre d’EDO. La syntaxe de base
de dsolve est la suivante.
dsolve(eqns, vars)
Ici, eqns repr´esente un ensemble d’´equations diff´erentielles et de valeurs
initiales, et vars repr´esente l’ensemble de variables pour lesquelles on sou-
haite r´esoudre.
Voici une ´equation diff´erentielle et une condition initiale.
>
eq := diff(v(t),t)+2*t = 0;
eq := (
d
dt
v(t)) + 2 t = 0
>
ini := v(1) = 5;
ini := v(1) = 5
Utilisez dsolve pour obtenir la solution.
>
dsolve( {eq, ini}, {v(t)} );
v(t) = −t
2
+ 6
Si vous omettez une ou plusieurs des conditions initiales, dsolve re-
tourne des constantes arbitraires de la forme _Cnumber. _Cnumber.
>
eq := diff(y(x),x$2) - y(x) = 1;
eq := (
d
2
dx
2
y(x)) −y(x) = 1
>
dsolve( {eq}, {y(x)} );
¦y(x) = e
x
_C2 +e
(−x)
_C1 −1¦
6.2
´
Equations diff´erentielles ordinaires • 237
Pour sp´ecifier des conditions initiales pour la d´eriv´ee d’une fonction,
utilisez la notation suivante.
D(fcn)(var_valeur) = valeur
(D@@n)(fcn)(var_valeur) = valeur
La notation D correspond ` a la d´eriv´ee. La notation D@@n repr´esente la
d´eriv´ee d’ordre n. Voici une ´equation diff´erentielle et des conditions ini-
tiales requ´erant la d´eriv´ee.
>
de1 := diff(y(t),t$2) + 5*diff(y(t),t) + 6*y(t) = 0;
de1 := (
d
2
dt
2
y(t)) + 5 (
d
dt
y(t)) + 6 y(t) = 0
>
ini := y(0)=0, D(y)(0)=1;
ini := y(0) = 0, D(y)(0) = 1
Encore une fois, utilisez dsolve pour trouver la solution.
>
dsolve( {de1, ini}, {y(t)} );
y(t) = e
(−2 t)
−e
(−3 t)
De plus, dsolve peut retourner une solution sous forme param´etrique,
[x=f(_T), y(x)=g(_T)], o` u _T est un param`etre.
L’option explicit Maple peut retourner la solution d’une ´equation
diff´erentielle sous forme implicite.
>
de2 := diff(y(x),x$2) = (ln(y(x))+1)*diff(y(x),x);
de2 :=
d
2
dx
2
y(x) = (ln(y(x)) + 1) (
d
dx
y(x))
>
dsolve( {de2}, {y(x)} );
238 • Chapitre 6: Exemples tir´es du calcul diff´erentiel
¦y(x) = _C1¦,

y(x)
1
_a ln(_a) + _C1
d_a −x −_C2 = 0
¸
Utilisez l’option explicit pour indiquer ` a Maple de chercher une
solution explicite du premier r´esultat.
>
dsolve( {de2}, {y(x)}, explicit );
¦y(x) = _C1¦,

y(x) = RootOf

_Z
1
_f ln(_f ) + _C1
d_f +x + _C2

Cependant, dans certains cas, Maple peut ne pas ˆetre en mesure de
trouver une solution explicite.
Il existe ´egalement une option implicit pour forcer Maple ` a donner
ses r´esultats sous forme implicite.
L’option method=laplace Il est souvent possible de r´eduire la com-
plexit´e d’un probl`eme en utilisant les transform´ees de Laplace. Les trans-
form´ees font correspondre ` a une ´equation diff´erentielle une ´equation alg´e-
brique, beaucoup plus simple ` a r´esoudre. La difficult´e de cette m´ethode
r´eside dans la transformation des ´equations au nouveau domaine et par-
ticuli`erement la transformation des solutions sous leur ancienne forme.
La m´ethode des transform´ees de Laplace peut g´erer des EDO lin´eaires
d’ordre arbitraire, de mˆeme que certains cas d’EDO lin´eaires ` a coefficients
non constants, ` a supposer que Maple puisse trouver les transform´ees.
Cette m´ethode fonctionne ´egalement avec les syst`emes d’´equations cou-
pl´ees.
Consid´erons le probl`eme de dynamique classique suivant. Deux poids
de masses m et αm reposent sur un plan sans frottement et sont reli´es par
un ressort dont la constante de rappel est k. Quelles sont les trajectoires
de chaque poids si le premier est sujet ` a une force ponctuelle unitaire u(t)
en t = 1 ?
D´efinissons tout d’abord les ´equations diff´erentielles qui s’appliquent
au probl`eme. La deuxi`eme loi de Newton gouverne le mouvement du pre-
mier poids : la masse m multipli´ee par l’acc´el´eration doit ˆetre ´egale ` a
la somme des forces appliqu´ees sur le premier poids, incluant la force
ext´erieure u(t).
6.2
´
Equations diff´erentielles ordinaires • 239
>
eqn1 :=
>
alpha*m*diff(x[1](t),t$2) = k*(x[2](t) - x[1](t)) + u(t);
eqn1 := αm(
d
2
dt
2
x
1
(t)) = k (x
2
(t) −x
1
(t)) + u(t)
Il en va de mˆeme pour le second poids.
>
eqn2 := m*diff(x[2](t),t$2) = k*(x[1](t) - x[2](t));
eqn2 := m(
d
2
dt
2
x
2
(t)) = k (x
1
(t) −x
2
(t))
Appliquez une force ponctuelle unitaire au premier poids en t = 1.
>
u := t -> Heaviside(t-1);
u := t → Heaviside(t −1)
Au temps t = 0, les deux masses sont au repos ` a leurs emplacements
respectifs.
>
ini := x[1](0) = 2, D(x[1])(0) = 0,
>
x[2](0) = 0, D(x[2])(0) = 0 ;
ini := x
1
(0) = 2, D(x
1
)(0) = 0, x
2
(0) = 0, D(x
2
)(0) = 0
R´esolvez le probl`eme en utilisant la m´ethode de la transform´ee de
Laplace.
>
dsolve( {eqn1, eqn2, ini}, {x[1](t), x[2](t)},
>
method=laplace );
240 • Chapitre 6: Exemples tir´es du calcul diff´erentiel

x
2
(t) =
1
2
(t
2
k α +αk −2 t k α −2 αm
+ 2 αcosh(

%1 (t −1)
αm
) m+t
2
k +k −2 t k)
Heaviside(t −1)

((1 + 2 α +α
2
) k m)
−2
α(−1 + cosh(

%1 t
αm
))
1 +α
, x
1
(t) =

Heaviside(t −1) cosh(

%1 (t −1)
αm
)
k (1 +α)
2
−2
αcosh(

%1 t
αm
)
1 +α
+e
(−

%1 t
αm
)
+e
(

%1 t
αm
)
+ (
1
2
k Heaviside(t −1) (1 +α) t
2
−k Heaviside(t −1) (1 +α) t + 2 α
2
mk
+ Heaviside(t −1) m+
1
2
Heaviside(t −1) αk
+ 2 αmk +
1
2
Heaviside(t −1) k)

((1 +α)
2
k m)
¸
%1 := −αmk (1 +α)
´
Evaluez le r´esultat en fixant des valeurs pour les constantes.
>
ans := eval( %, {alpha=1/10, m=1, k=1} );
6.2
´
Equations diff´erentielles ordinaires • 241
ans := ¦x
2
(t) =
50
121
(
11
10
t
2
+
9
10

11
5
t +
1
5
cosh(
1
10

−11

100 (t −1)))
Heaviside(t −1) +
2
11

2
11
cosh(
1
10

−11

100 t), x
1
(t)
= −
100
121
Heaviside(t −1) cosh(
1
10

−11

100 (t −1))

2
11
cosh(
1
10

−11

100 t) +e
(−1/10

−11

100 t)
+e
(1/10

−11

100 t)
+
5
11
Heaviside(t −1) t
2

10
11
Heaviside(t −1) t +
2
11
+
155
121
Heaviside(t −1)¦
Vous pouvez transformer la solution pr´ec´edente en deux fonctions,
y
1
(t) et y
2
(t), de la mani`ere suivante. Tout d’abord, ´evaluez l’expression
x[1](t) en sa solution pour extraire l’expression x
1
(t).
>
eval( x[1](t), ans );

100
121
Heaviside(t −1) cosh(
1
10

−11

100 (t −1))

2
11
cosh(
1
10

−11

100 t) +e
(−1/10

−11

100 t)
+e
(1/10

−11

100 t)
+
5
11
Heaviside(t −1) t
2

10
11
Heaviside(t −1) t +
2
11
+
155
121
Heaviside(t −1)
Transformez ensuite l’expression en fonction au moyen d’unapply.
>
y[1] := unapply( %, t );
y
1
:= t →

100
121
Heaviside(t −1) cosh(
1
10

−11

100 (t −1))

2
11
cosh(
1
10

−11

100 t) +e
(−1/10

−11

100 t)
+e
(1/10

−11

100 t)
+
5
11
Heaviside(t −1) t
2

10
11
Heaviside(t −1) t +
2
11
+
155
121
Heaviside(t −1)
242 • Chapitre 6: Exemples tir´es du calcul diff´erentiel
Vous pouvez ´egalement effectuer les deux ´etapes en mˆeme temps.
>
y[2] := unapply( eval( x[2](t), ans ), t );
y
2
:= t →
50
121
(
11
10
t
2
+
9
10

11
5
t +
1
5
cosh(
1
10

−11

100 (t −1)))
Heaviside(t −1) +
2
11

2
11
cosh(
1
10

−11

100 t)
Tracez maintenant les deux fonctions.
>
plot( [ y[1](t), y[2](t) ], t=-3..6 );
2
4
6
8
10
12
14
–2 2 4 6
t
Plutˆ ot que d’appliquer dsolve(..., method=laplace), vous pouvez
utiliser la transform´ee de Laplace ` a la main. Le package inttrans d´efinit
la transform´ee de Laplace et son inverse (de mˆeme que plusieurs autres
transform´ees int´egrales).
>
with(inttrans);
[addtable, fourier, fouriercos, fouriersin, hankel , hilbert,
invfourier, invhilbert, invlaplace, invmellin, laplace,
mellin, savetable]
Les transform´ees de Laplace des ´equations diff´erentielles eqn1 et eqn2
sont :
>
laplace( eqn1, t, s );
αm(s (s laplace(x
1
(t), t, s) −x
1
(0)) −D(x
1
)(0)) =
k (laplace(x
2
(t), t, s) −laplace(x
1
(t), t, s)) +
e
(−s)
s
6.2
´
Equations diff´erentielles ordinaires • 243
et
>
laplace( eqn2, t, s );
m(s (s laplace(x
2
(t), t, s) −x
2
(0)) −D(x
2
)(0)) =
k (laplace(x
1
(t), t, s) −laplace(x
2
(t), t, s))
´
Evaluez l’ensemble form´e des deux transform´ees en leurs conditions
initiales.
>
eval( {%, %%}, {ini} );
¦ms
2
laplace(x
2
(t), t, s) =
k (laplace(x
1
(t), t, s) −laplace(x
2
(t), t, s)),
αms (s laplace(x
1
(t), t, s) −2) =
k (laplace(x
2
(t), t, s) −laplace(x
1
(t), t, s)) +
e
(−s)
s
¦
Vous devez maintenant r´esoudre cet ensemble d’´equations alg´ebriques
pour les transform´ees de Laplace des deux fonctions x
1
(t) et x
2
(t).
>
sol := solve( %, { laplace(x[1](t),t,s),
>
laplace(x[2](t),t,s) } );
sol := ¦laplace(x
2
(t), t, s) =
k (2 αms
2
e
s
+ 1)
e
s
s
3
m(k +αms
2
+αk)
,
laplace(x
1
(t), t, s) =
(ms
2
+k) (2 αms
2
e
s
+ 1)
e
s
s
3
m(k +αms
2
+αk)
¦
Maple a r´esolu le probl`eme alg´ebrique ; vous devez maintenant prendre
la transform´ee inverse de Laplace pour en extraire les fonctions x
1
(t) et
x
2
(t) .
>
invlaplace( %, s, t );
244 • Chapitre 6: Exemples tir´es du calcul diff´erentiel

x
2
(t) = k

1
2
(t
2
k α +αk −2 t k α −2 αm
+ 2 αcosh(

%1 (t −1)
αm
) m+t
2
k +k −2 t k)
Heaviside(t −1)

((1 +α)
2
k
2
)
−2
αm(−1 + cosh(

%1 t
αm
))
k (1 +α)

/m, x
1
(t) =

Heaviside(t −1) cosh(

%1 (t −1)
αm
)
k (1 +α)
2
−2
αcosh(

%1 t
αm
)
1 +α
+e
(−

%1 t
αm
)
+e
(

%1 t
αm
)
+ (
1
2
k Heaviside(t −1) (1 +α) t
2
−k Heaviside(t −1) (1 +α) t + 2 α
2
mk
+ Heaviside(t −1) m+
1
2
Heaviside(t −1) αk
+ 2 αmk +
1
2
Heaviside(t −1) k)

((1 +α)
2
k m)
¸
%1 := −αmk (1 +α)
´
Evaluez-les en fixant des valeurs pour les constantes.
>
eval( %, {alpha=1/10, m=1, k=1} );
6.2
´
Equations diff´erentielles ordinaires • 245
¦x
2
(t) =
50
121
(
11
10
t
2
+
9
10

11
5
t +
1
5
cosh(
1
10

−11

100 (t −1)))
Heaviside(t −1) +
2
11

2
11
cosh(
1
10

−11

100 t), x
1
(t)
= −
100
121
Heaviside(t −1) cosh(
1
10

−11

100 (t −1))

2
11
cosh(
1
10

−11

100 t) +e
(−1/10

−11

100 t)
+e
(1/10

−11

100 t)
+
5
11
Heaviside(t −1) t
2

10
11
Heaviside(t −1) t +
2
11
+
155
121
Heaviside(t −1)¦
Comme on devait s’y attendre, on obtient la mˆeme solution que par
la m´ethode pr´ec´edente.
L’option type=series La m´ethode des s´eries pour r´esoudre des ´equa-
tions diff´erentielles consiste ` a trouver une fonction symbolique approxim´ee
des ´equations de la mani`ere suivante. Maple trouve d’abord une ap-
proximation des ´equations sous forme de s´erie. Il r´esout ensuite cette
approximation de mani`ere symbolique au moyen de m´ethodes exactes.
Cette technique s’av`ere utile lorsque les algorithmes standard de Maple
ne suffisent pas ` a la tˆ ache et qu’une solution symbolique est tout de mˆeme
pr´ef´erable ` a une solution purement num´erique. La m´ethode des s´eries est
souvent d’un grand secours avec les EDO non lin´eaires ou de grand ordre.
Lorsque Maple applique la m´ethode des s´eries, il assume qu’il existe
une solution de la forme
x
c


¸
i=0
a
i
x
i

o` u c est un nombre rationnel.
Consid´erez l’´equation diff´erentielle suivante.
>
eq := 2*x*diff(y(x),x,x) + diff(y(x),x) + y(x) = 0;
eq := 2 x(
d
2
dx
2
y(x)) + (
d
dx
y(x)) + y(x) = 0
Demandez ` a Maple de r´esoudre l’´equation.
246 • Chapitre 6: Exemples tir´es du calcul diff´erentiel
>
dsolve( {eq}, {y(x)}, type=series );
y(x) = _C1

x(1 −
1
3
x +
1
30
x
2

1
630
x
3
+
1
22680
x
4

1
1247400
x
5
+ O(x
6
)) + _C2
(1 −x +
1
6
x
2

1
90
x
3
+
1
2520
x
4

1
113400
x
5
+ O(x
6
))
Utilisez rhs pour extraire la solution ; convertissez-la ensuite en po-
lynˆ ome.
>
rhs(%);
_C1

x(1 −
1
3
x +
1
30
x
2

1
630
x
3
+
1
22680
x
4

1
1247400
x
5
+ O(x
6
)) + _C2
(1 −x +
1
6
x
2

1
90
x
3
+
1
2520
x
4

1
113400
x
5
+ O(x
6
))
>
poly := convert(%, polynom);
poly := _C1

x
(1 −
1
3
x +
1
30
x
2

1
630
x
3
+
1
22680
x
4

1
1247400
x
5
)
+ _C2 (1 −x +
1
6
x
2

1
90
x
3
+
1
2520
x
4

1
113400
x
5
)
Vous pouvez maintenant tracer le graphique de la solution pour
diff´erentes valeurs des constantes arbitraires _C1 et _C2.
>
[ seq( _C1=i, i=0..5 ) ];
[_C1 = 0, _C1 = 1, _C1 = 2, _C1 = 3, _C1 = 4, _C1 = 5]
>
map(subs, %, _C2=1, poly);
6.2
´
Equations diff´erentielles ordinaires • 247
[1 −x +
1
6
x
2

1
90
x
3
+
1
2520
x
4

1
113400
x
5
,
%1 + 1 −x +
1
6
x
2

1
90
x
3
+
1
2520
x
4

1
113400
x
5
,
2 %1 + 1 −x +
1
6
x
2

1
90
x
3
+
1
2520
x
4

1
113400
x
5
,
3 %1 + 1 −x +
1
6
x
2

1
90
x
3
+
1
2520
x
4

1
113400
x
5
,
4 %1 + 1 −x +
1
6
x
2

1
90
x
3
+
1
2520
x
4

1
113400
x
5
,
5 %1 + 1 −x +
1
6
x
2

1
90
x
3
+
1
2520
x
4

1
113400
x
5
]
%1 :=

x(1 −
1
3
x +
1
30
x
2

1
630
x
3
+
1
22680
x
4

1
1247400
x
5
)
>
plot( %, x=1..10 );
–4
–3
–2
–1
0
1
2
3
2 4 6 8 10
x
L’option type=numeric Bien que les m´ethodes des s´eries pour la r´e-
solution des EDO soient bien comprises et ad´equates pour trouver des
approximations justes de la variable d´ependante, elles pr´esentent cepen-
dant certaines limitations. Pour produire un r´esultat, la s´erie r´esultante
doit converger ; de plus, Maple doit calculer plusieurs d´eriv´ees dans le pro-
cessus de recherche de la solution, ce qui peut s’av´erer coˆ uteux en temps
comme en m´emoire. Pour ces raisons, des solveurs num´eriques alternatifs
ont ´et´e con¸ cus.
Voici une ´equation diff´erentielle et une condition initiale.
>
eq := x(t) * diff(x(t), t) = t^2;
eq := x(t) (
d
dt
x(t)) = t
2
248 • Chapitre 6: Exemples tir´es du calcul diff´erentiel
>
ini := x(1) = 2;
ini := x(1) = 2
Le r´esultat de la commande dsolve avec l’option numeric est une proc´e-
dure qui retourne une liste d’´equations.
>
sol := dsolve( {eq, ini}, {x(t)}, type=numeric );
sol := proc(rkf45_x) . . . end proc
La solution satisfait ` a la condition initiale.
>
sol(1);
[t = 1, x(t) = 2.]
>
sol(0);
[t = 0, x(t) = 1.82574790049820024]
Utilisez la commande eval pour choisir une valeur particuli`ere de la
liste des ´equations.
>
eval( x(t), sol(1) );
2.
Vous pouvez ´egalement cr´eer une paire ordonn´ee.
>
eval( [t, x(t)], sol(0) );
[0, 1.82574790049820024]
Le package plots contient une commande, odeplot, permettant de
tracer le r´esultat de dsolve( ..., type=numeric).
>
with(plots):
>
odeplot( sol, [t, x(t)], -1..2 );
6.2
´
Equations diff´erentielles ordinaires • 249
1.8
2
2.2
2.4
2.6
2.8
x
–1 –0.5 0 0.5 1 1.5 2
t
Consultez la rubrique ?plots,odeplot pour obtenir la syntaxe de
odeplot.
Voici un syst`eme de deux EDO.
>
eq1 := diff(x(t),t) = y(t);
eq1 :=

∂t
x(t) = y(t)
>
eq2 := diff(y(t),t) = x(t)+y(t);
eq2 :=

∂t
y(t) = x(t) + y(t)
>
ini := x(0)=2, y(0)=1;
ini := x(0) = 2, y(0) = 1
Dans ce cas particulier, la proc´edure de solution retourne une liste de
trois ´equations.
>
sol1 := dsolve( {eq1, eq2, ini}, {x(t),y(t)},
>
type=numeric );
sol1 := proc(rkf45_x) . . . end proc
>
sol1(0);
[t = 0, x(t) = 2., y(t) = 1.]
>
sol1(1);
250 • Chapitre 6: Exemples tir´es du calcul diff´erentiel
[t = 1, x(t) = 5.58216755967155986,
y(t) = 7.82688931187210190]
La commande odeplot peut maintenant tracer y(t) en fonction de
x(t),
>
odeplot( sol1, [x(t), y(t)], -3..1, labels=["x","y"] );
–4
–2
0
2
4
6
8
y
2 3 4 5 6
x
x(t) et y(t) en fonction de t,
>
odeplot( sol1, [t, x(t), y(t)], -3..1,
>
labels=["t","x","y"], axes=boxed );
–3
1
t
2
6
x
–4
8
y
ou toute autre combinaison.
Soyez prudent lorsque vous utilisez des m´ethodes num´eriques. Il
n’existe pas de r`egles universelles permettant de pr´evenir ces effets ; ainsi,
aucun logiciel ne peut anticiper toutes les conditions. La solution consiste
`a utiliser l’option startinit pour indiquer ` a la commande dsolve (ou
plutˆ ot `a la proc´edure retourn´ee par dsolve) de commencer ` a la valeur
initiale pour chaque calcul en un point (x, y(x)).
Vous pouvez sp´ecifier l’algorithme que dsolve(..., type=numeric)
doit utiliser en r´esolvant une ´equation diff´erentielle. Reportez-vous ` a la
rubrique ?dsolve,numeric.
6.2
´
Equations diff´erentielles ordinaires • 251
Un exemple : les s´eries de Taylor
Dans sa forme g´en´erale, une solution d’une EDO g´en´er´ee par une m´ethode
de s´eries demande la formation d’une s´erie de Taylor autour de t = 0
pour une certaine fonction f(t). Vous devez ainsi obtenir et manipuler
les d´eriv´ees d’ordre sup´erieur de cette fonction, soit f

(t), f

(t), f

(t) et
ainsi de suite.
Une fois les d´eriv´ees ainsi obtenues, vous pouvez les remplacer dans
la repr´esentation de f(t) en s´erie de Taylor.
>
taylor(f(t), t);
f(0) + D(f)(0) t +
1
2
(D
(2)
)(f)(0) t
2
+
1
6
(D
(3)
)(f)(0) t
3
+
1
24
(D
(4)
)(f)(0) t
4
+
1
120
(D
(5)
)(f)(0) t
5
+ O(t
6
)
Comme exemple, consid´erez la loi du refroidissement de Newton :

dt
= −
1
10
(θ −20), θ(0) = 100.
En utilisant l’op´erateur D, vous pouvez facilement introduire l’´equa-
tion ci-dessus dans Maple.
>
eq := D(theta) = -1/10*(theta-20);
eq := D(θ) = −
1
10
θ + 2
>
ini := theta(0)=100;
ini := θ(0) = 100
La premi`ere ´etape consiste ` a obtenir le nombre requis de d´eriv´ees
d’ordre sup´erieur. D´eterminez ce nombre en fonction de l’ordre de la s´erie
de Taylor. Si vous utilisez la valeur par d´efaut de la variable Order fournie
par Maple,
>
Order;
6
vous devez g´en´erer des d´eriv´ees jusqu’` a l’ordre
252 • Chapitre 6: Exemples tir´es du calcul diff´erentiel
>
dev_order := Order - 1;
dev_order := 5
Vous pouvez maintenant utiliser seq pour g´en´erer une suite des d´eri-
v´ees d’ordre sup´erieur de theta(t).
>
S := seq( (D@@(dev_order-n))(eq), n=1..dev_order );
S := (D
(5)
)(θ) = −
1
10
(D
(4)
)(θ), (D
(4)
)(θ) = −
1
10
(D
(3)
)(θ),
(D
(3)
)(θ) = −
1
10
(D
(2)
)(θ), (D
(2)
)(θ) = −
1
10
D(θ),
D(θ) = −
1
10
θ + 2
La d´eriv´ee cinqui`eme est une fonction de la d´eriv´ee quatri`eme, la
d´eriv´ee quatri`eme est une fonction de la d´eriv´ee troisi`eme, et ainsi de
suite. Ainsi, si vous effectuez des substitutions par rapport ` a S, vous
pouvez exprimer toutes les d´eriv´ees comme des fonctions de theta. Par
exemple, le troisi`eme ´el´ement de S est le suivant :
>
S[3];
(D
(3)
)(θ) = −
1
10
(D
(2)
)(θ)
En rempla¸ cant par rapport ` a S sur le cˆ ot´e droit de l’´egalit´e, on ob-
tient :
>
lhs(%) = subs( S, rhs(%) );
(D
(3)
)(θ) = −
1
1000
θ +
1
50
Pour effectuer cette substitution sur toutes les d´eriv´ees ` a la fois, uti-
lisez la commande map.
>
L := map( z -> lhs(z) = eval(rhs(z), {S}), [S] );
6.2
´
Equations diff´erentielles ordinaires • 253
L := [(D
(5)
)(θ) =
1
100
(D
(3)
)(θ), (D
(4)
)(θ) =
1
100
(D
(2)
)(θ),
(D
(3)
)(θ) =
1
100
D(θ), (D
(2)
)(θ) =
1
100
θ −
1
5
,
D(θ) = −
1
10
θ + 2]
Vous devez ´evaluer les d´eriv´ees en t = 0.
>
L(0);
[(D
(5)
)(θ)(0) =
1
100
(D
(3)
)(θ)(0),
(D
(4)
)(θ)(0) =
1
100
(D
(2)
)(θ)(0),
(D
(3)
)(θ)(0) =
1
100
D(θ)(0), (D
(2)
)(θ)(0) =
1
100
θ(0) −
1
5
,
D(θ)(0) = −
1
10
θ(0) + 2]
G´en´erez maintenant la s´erie de Taylor.
>
T := taylor(theta(t), t);
T := θ(0) + D(θ)(0) t +
1
2
(D
(2)
)(θ)(0) t
2
+
1
6
(D
(3)
)(θ)(0)
t
3
+
1
24
(D
(4)
)(θ)(0) t
4
+
1
120
(D
(5)
)(θ)(0) t
5
+ O(t
6
)
Remplacez les d´eriv´ees dans la s´erie.
>
subs( op(L(0)), T );
θ(0) + (−
1
10
θ(0) + 2) t + (
1
200
θ(0) −
1
10
) t
2
+
(−
1
6000
θ(0) +
1
300
) t
3
+ (
1
240000
θ(0) −
1
12000
) t
4
+
(−
1
12000000
θ(0) +
1
600000
) t
5
+ O(t
6
)
´
Evaluez maintenant les s´eries aux conditions initiales et convertissez-
les en polynˆ ome.
>
eval( %, ini );
254 • Chapitre 6: Exemples tir´es du calcul diff´erentiel
100 −8 t +
2
5
t
2

1
75
t
3
+
1
3000
t
4

1
150000
t
5
+ O(t
6
)
>
p := convert(%, polynom);
p := 100 −8 t +
2
5
t
2

1
75
t
3
+
1
3000
t
4

1
150000
t
5
Vous pouvez maintenant tracer le graphique de la r´eponse.
>
plot(p, t=0..30);
–20
0
20
40
60
80
100
5 10 15 20 25 30
t
Cet exemple particulier poss`ede la solution analytique suivante.
>
dsolve( {eq(t), ini}, {theta(t)} );
θ(t) = 20 + 80 e
(−1/10 t)
>
q := rhs(%);
q := 20 + 80 e
(−1/10 t)
Vous pouvez maintenant comparer la s´erie obtenue ` a la solution
exacte.
>
plot( [p, q], t=0..30 );
6.2
´
Equations diff´erentielles ordinaires • 255
–20
0
20
40
60
80
100
5 10 15 20 25 30
t
Plutˆ ot que de calculer la s´erie de Taylor manuellement, vous pouvez
utiliser l’option series de la commande dsolve.
>
dsolve( {eq(t), ini}, {theta(t)}, ’series’ );
θ(t) =
100 −8 t +
2
5
t
2

1
75
t
3
+
1
3000
t
4

1
150000
t
5
+ O(t
6
)
Lorsqu’une solution explicite est impossible `a trouver
Dans certains cas, il peut ˆetre impossible d’exprimer la solution d’une
EDO lin´eaire explicitement. Dans ce cas, la commande dsolve peut re-
tourner des solutions contenant la structure de donn´ees DESol. DESol
est une expression repr´esentant la solution d’une ´equation diff´erentielle
sans la calculer explicitement. Ainsi, DESol est similaire ` a RootOf, qui
repr´esente les racines d’une expression. Cela vous permet de manipuler
l’expression r´esultante de mani`ere symbolique avant d’utiliser toute autre
approche.
>
de := (x^7+x^3-3)*diff(y(x),x,x) + x^4*diff(y(x),x)
>
+ (23*x-17)*y(x);
de :=
(x
7
+x
3
−3) (
d
2
dx
2
y(x)) +x
4
(
d
dx
y(x)) + (23 x −17) y(x)
dsolve ne peut trouver une solution exacte de de.
>
dsolve( {de}, {y(x)} );
256 • Chapitre 6: Exemples tir´es du calcul diff´erentiel
y(x) = DESol

(
d
2
dx
2
_Y(x)) +
x
4
(
d
dx
_Y(x))
x
7
+x
3
−3
+
(23 x −17) _Y(x)
x
7
+x
3
−3
¸
,
¦_Y(x)¦

Vous pouvez maintenant essayer une autre m´ethode sur l’´el´ement DESol
lui-mˆeme. Par exemple, trouvez une approximation sous forme de s´erie.
>
series(rhs(%), x);
_Y(0) + D(_Y)(0) x −
17
6
_Y(0) x
2
+
(−
17
18
D(_Y)(0) +
23
18
_Y(0)) x
3
+
(
289
216
_Y(0) +
23
36
D(_Y)(0)) x
4
+
(
289
1080
D(_Y)(0) −
833
540
_Y(0)) x
5
+ O(x
6
)
diff et int fonctionnent ´egalement avec DESol.
Tracer le graphique d’´equations diff´erentielles ordinaires
Plusieurs ´equations diff´erentielles ne peuvent ˆetre r´esolues analytique-
ment. Dans ces cas, il peut ˆetre avantageux d’en tracer le graphique.
>
ode1 :=
>
diff(y(t), t$2) + sin(t)^2*diff(y(t),t) + y(t) = cos(t)^2;
ode1 := (
d
2
dt
2
y(t)) + sin(t)
2
(
d
dt
y(t)) + y(t) = cos(t)
2
>
ic1 := y(0) = 1, D(y)(0) = 0;
ic1 := y(0) = 1, D(y)(0) = 0
Essayez tout d’abord de r´esoudre cette EDO analytiquement au
moyen de dsolve.
6.2
´
Equations diff´erentielles ordinaires • 257
>
dsolve({ode1, ic1}, {y(t)} );
La commande dsolve n’a rien retourn´e, indiquant ainsi qu’elle ne pouvait
trouver de solution. Essayez alors les m´ethodes de Laplace.
>
dsolve( {ode1, ic1}, {y(t)}, method=laplace );
Encore une fois, dsolve n’a pas trouv´e de solution. Puisque l’usage de
dsolve s’est av´er´e infructueux, essayez la commande DEplot qui se trouve
dans le package DEtools.
>
with(DEtools):
DEplot est un traceur g´en´eral d’EDO que vous pouvez utiliser en suivant
la syntaxe ci-dessous :
DEplot( ode, dep-var, intervalle, [ini-conds] )
Ici, ode est l’´equation diff´erentielle que vous souhaitez tracer, dep-var est
la variable d´ependante, intervalle est le domaine de la variable ind´epen-
dante et ini-conds repr´esente la liste des conditions initiales.
Voici un graphique de la fonction satisfaisant ` a la fois ` a l’´equation
diff´erentielle ode1 et aux conditions initiales ic1 ci-dessus.
>
DEplot( ode1, y(t), 0..20, [ [ ic1 ] ] );
0.2
0.4
0.6
0.8
1
y(t)
0 5 10 15 20
t
Vous pouvez raffiner le graphique en sp´ecifiant une ´echelle (stepsize)
plus fine.
>
DEplot( ode1, y(t), 0..20, [ [ ic1 ] ], stepsize=0.2 );
258 • Chapitre 6: Exemples tir´es du calcul diff´erentiel
0.2
0.4
0.6
0.8
1
y(t)
0 5 10 15 20
t
Si vous sp´ecifiez plus qu’une liste de conditions initiales, DEplot trace
une solution pour chacune.
>
ic2 := y(0)=0, D(y)(0)=1;
ic2 := y(0) = 0, D(y)(0) = 1
>
DEplot( ode1, y(t), 0..20, [ [ic1], [ic2] ], stepsize=0.2 );
0.2
0.4
0.6
0.8
1
1.2
1.4
y(t)
5 10 15 20
t
DEplot peut ´egalement tracer les solutions d’un ensemble d’´equations
diff´erentielles.
>
eq1 := diff(y(t),t) + y(t) + x(t) = 0;
eq1 := (
d
dt
y(t)) + y(t) + x(t) = 0
>
eq2 := y(t) = diff(x(t), t);
eq2 := y(t) =
d
dt
x(t)
6.2
´
Equations diff´erentielles ordinaires • 259
>
ini1 := x(0)=0, y(0)=5;
ini1 := x(0) = 0, y(0) = 5
>
ini2 := x(0)=0, y(0)=-5;
ini2 := x(0) = 0, y(0) = −5
Le syst`eme {eq1, eq2} poss`ede deux variables d´ependantes, x(t) et
y(t) ; vous devez donc donner une liste de variables d´ependantes.
>
DEplot( {eq1, eq2}, [x(t), y(t)], -5..5,
>
[ [ini1], [ini2] ] );
–60
–40
–20
0
20
40
60
y
–60 –40 –20 20 40 60
x
Remarquez que DEplot g´en`ere ´egalement un champ de vecteurs (ainsi
qu’illustr´e ci-dessus) d`es qu’il est utile de le faire. Consultez la rubrique
?DEtools,DEplot pour obtenir davantage de d´etails sur la mani`ere de
tracer des EDO.
DEplot3d est la version tridimensionnelle de DEplot. La syntaxe de
base de DEplot3d est similaire ` a celle de DEplot. Consultez la rubrique
?DEtools,DEplot3d pour obtenir plus de d´etails. Voici un graphique tri-
dimensionnel du syst`eme trac´e en deux dimensions pr´ec´edemment.
>
DEplot3d( {eq1, eq2}, [x(t), y(t)], -5..5,
>
[ [ini1], [ini2] ] );
260 • Chapitre 6: Exemples tir´es du calcul diff´erentiel
–4
–2
0
2
4
t
–60
–40
–20
0
20
40
60
x(t)
–40
–20
0
20
40
y(t)
Voici un exemple d’un graphique d’un syst`eme de trois ´equations
diff´erentielles.
>
eq1 := diff(x(t),t) = y(t)+z(t);
eq1 :=
d
dt
x(t) = y(t) + z(t)
>
eq2 := diff(y(t),t) = -x(t)-y(t);
eq2 :=
d
dt
y(t) = −y(t) −x(t)
>
eq3 := diff(z(t),t) = x(t)+y(t)-z(t);
eq3 :=
d
dt
z(t) = x(t) + y(t) −z(t)
Voici deux listes de conditions initiales.
>
ini1 := [x(0)=1, y(0)=0, z(0)=2];
ini1 := [x(0) = 1, y(0) = 0, z(0) = 2]
>
ini2 := [x(0)=0, y(0)=2, z(0)=-1];
ini2 := [x(0) = 0, y(0) = 2, z(0) = −1]
La commande DEplot3d trace deux solutions au syst`eme d’´equations
diff´erentielles {eq1, eq2, eq3}, une solution pour chaque liste de valeurs
initiales.
6.2
´
Equations diff´erentielles ordinaires • 261
>
DEplot3d( {eq1, eq2, eq3}, [x(t), y(t), z(t)], t=0..10,
>
[ini1, ini2], stepsize=0.1, orientation=[-171, 58] );
–1
2
x
–1
2
y
–1
2
z
Coefficients discontinus d’une ´equation
Dans plusieurs situations pratiques, les coefficients d’une solution ` a un
syst`eme sont discontinus. Maple propose plusieurs mani`eres par lesquelles
il est possible de d´ecrire un syst`eme en termes d’EDO et d’inclure, de
mani`ere significative, des descriptions de ces coefficients discontinus.
La fonction de Heaviside La fonction de Heaviside permet de mod´eliser
des coefficients retard´es ou d´efinis par morceaux. Vous pouvez utiliser
Heaviside avec dsolve pour trouver les solutions ` a la fois num´eriques et
symboliques.
>
eq := diff(y(t),t) = -y(t)*Heaviside(t-1);
eq :=

∂t
y(t) = −y(t) Heaviside(t −1)
>
ini := y(0) = 3;
ini := y(0) = 3
>
dsolve({eq, ini}, {y(t)});
y(t) = 3 e
((−t+1) Heaviside(t−1))
Transformez la solution en une fonction que l’on peut tracer.
>
rhs( % );
262 • Chapitre 6: Exemples tir´es du calcul diff´erentiel
3 e
((−t+1) Heaviside(t−1))
>
f := unapply(%, t);
f := t → 3 e
((−t+1) Heaviside(t−1))
>
plot(f, 0..4);
0.5
1
1.5
2
2.5
3
0 1 2 3 4
R´esolvez la mˆeme ´equation num´eriquement.
>
sol1 := dsolve({eq, ini}, {y(t)}, type=numeric);
sol1 := proc(rkf45_x) . . . end proc
Vous pouvez utiliser la commande odeplot du package plots pour
tracer le graphique de la solution.
>
with(plots):
>
odeplot( sol1, [t, y(t)], 0..4 );
0.5
1
1.5
2
2.5
3
y
0 1 2 3 4
t
6.2
´
Equations diff´erentielles ordinaires • 263
La fonction Delta de Dirac De mani`ere similaire, vous pouvez utiliser
la fonction de Dirac pour produire des coefficients d’impulsion.
>
eq := diff(y(t),t) = -y(t)*Dirac(t-1);
eq :=
d
dt
y(t) = −y(t) Dirac(t −1)
>
ini := y(0) = 3;
ini := y(0) = 3
>
dsolve({eq, ini}, {y(t)});
y(t) = 3 e
(−Heaviside(t−1))
Transformez la solution en une fonction que vous pouvez tracer.
>
f := unapply( rhs( % ), t );
f := t → 3 e
(−Heaviside(t−1))
>
plot( f, 0..4 );
1.2
1.4
1.6
1.8
2
2.2
2.4
2.6
2.8
3
0 1 2 3 4
Cependant, la solution num´erique ne consid`ere pas la valeur non nulle
de Dirac(0).
>
sol2 := dsolve({eq, ini}, {y(t)}, type=numeric);
sol2 := proc(rkf45_x) . . . end proc
264 • Chapitre 6: Exemples tir´es du calcul diff´erentiel
Encore une fois, utilisez odeplot du package plots pour tracer la
solution num´erique.
>
with(plots, odeplot);
[odeplot]
>
odeplot( sol2, [t,y(t)], 0..4 );
2
2.5
3
3.5
4
y
0 1 2 3 4
t
Fonctions d´efinies par morceaux La commande piecewise vous permet
de construire des fonctions compliqu´ees par l’approximation de certaines
de ses sections par des fonctions analytiques, puis en regroupant ces mul-
tiples approximations pour repr´esenter la fonction compl`ete. Examinez
tout d’abord le comportement de piecewise.
>
f:= x -> piecewise(1<=x and x<2, 1, 0);
f := x → piecewise(1 ≤ x and x < 2, 1, 0)
>
f(x);

1, if , 1 −x ≤ 0 and x −2 < 0 ;
0, otherwise.
Remarquez que l’ordre des conditions est important. La fonction retourne
la valeur true d`es qu’une condition retourne la valeur true.
>
plot(f, 0..3);
6.2
´
Equations diff´erentielles ordinaires • 265
0
0.2
0.4
0.6
0.8
1
0.5 1 1.5 2 2.5 3
Ainsi, vous pouvez utiliser cette fonction d´efinie par morceaux comme
coefficient.
>
eq := diff(y(t),t) = 1-y(t)*f(t);
eq :=

∂t
y(t) = 1 −y(t)

1, if 1 −t ≤ 0 and t −2 < 0 ;
0, otherwise.

>
ini := y(0)=3;
ini := y(0) = 3
>
sol3 := dsolve({eq, ini}, {y(t)}, type=numeric);
sol3 := proc(rkf45_x) . . . end proc
Encore une fois, utilisez la commande odeplot du package plots pour
tracer le r´esultat.
>
with(plots, odeplot):
>
odeplot( sol3, [t, y(t)], 0..4 );
3
4
5
6
7
y
0 1 2 3 4
t
266 • Chapitre 6: Exemples tir´es du calcul diff´erentiel
Le package DEtools contient plusieurs commandes vous permettant
d’examiner, de manipuler, de tracer et de r´esoudre des ´equations diff´eren-
tielles. Consultez la rubrique ?DEtools pour plus de d´etails.
6.3
´
Equations aux d´eriv´ees partielles
En g´en´eral, les ´equations aux d´eriv´ees partielles (EDP) sont tr`es difficiles ` a
r´esoudre. Maple fournit plusieurs commandes permettant de r´esoudre, de
manipuler et de tracer les EDP. Certaines de ces commandes se trouvent
dans la biblioth`eque standard, mais la plupart d’entre elles sont situ´ees
dans le package PDEtools.
La commande pdsolve
La commande pdsolve permet de r´esoudre plusieurs ´equations aux
d´eriv´ees partielles. La syntaxe de base de la commande pdsolve est la
suivante :
pdsolve( pde, var )
Ici, pde est l’´equation aux d´eriv´ees partielles et var est la variable pour
laquelle on souhaite r´esoudre.
Voici une ´equation ondulatoire unidimensionnelle.
>
wave := diff(u(x,t), t,t) - c^2 * diff(u(x,t), x,x);
wave := (

2
∂t
2
u(x, t)) −c
2
(

2
∂x
2
u(x, t))
On souhaite r´esoudre pour u(x,t). Chargeons d’abord en m´emoire
PDEtools.
>
with(PDEtools):
>
sol := pdsolve( wave, u(x,t) );
sol := u(x, t) = _F1(c t +x) + _F2(c t −x)
Remarquez que la solution est en termes de deux fonctions arbitraires,
_F1 et _F2. Pour tracer la solution, il vous faut un ensemble particulier
de fonctions.
6.3
´
Equations aux d´eriv´ees partielles • 267
>
f1 := xi -> exp(-xi^2);
f1 := ξ → e
(−ξ
2
)
>
f2 := xi -> piecewise(-1/2<xi and xi<1/2, 1, 0);
f2 := ξ → piecewise(
−1
2
< ξ and ξ <
1
2
, 1, 0)
Substituez ces expressions dans la solution.
>
eval( sol, {_F1=f1, _F2=f2, c=1} );
u(x, t) = e
(−(t+x)
2
)
+

1 −t +x <
1
2
and t −x <
1
2
0 otherwise

Vous pouvez utiliser la commande rhs pour extraire la solution.
>
rhs(%);
e
(−(t+x)
2
)
+

1 −t +x <
1
2
and t −x <
1
2
0 otherwise

unapply transforme l’expression en fonction.
>
f := unapply(%, x,t);
f := (x, t) →
e
(−(t+x)
2
)
+ piecewise(−t +x <
1
2
and t −x <
1
2
, 1, 0)
Vous pouvez maintenant tracer la solution.
>
plot3d( f, -8..8, 0..5, grid=[40,40] );
268 • Chapitre 6: Exemples tir´es du calcul diff´erentiel
Changer la variable d´ependante dans une EDP
Voici l’´equation de la chaleur en une dimension.
>
heat := diff(u(x,t),t) - k*diff(u(x,t), x,x) = 0;
heat := (
d
dt
u(x, t)) −k (
d
2
dx
2
u(x, t)) = 0
Essayez de trouver une solution de la forme X(x)T(t). Pour ce faire,
utilisez l’option HINT de pdsolve pour sugg´erer ` a Maple une piste ` a
suivre.
>
pdsolve( heat, u(x,t), HINT=X(x)*T(t));
(u(x, t) = X(x) T(t)) &where

d
dt
T(t) = k _c
1
T(t),
d
2
dx
2
X(x) = _c
1
X(x)¦]
Le r´esultat est correct, mais difficile ` a lire.
De mani`ere alternative, vous pouvez sp´ecifier ` a pdsolve d’utiliser une
s´eparation de variables (sous forme de produit, ‘*‘) et ensuite de r´esoudre
l’EDO r´esultante en utilisant l’option ’build’.
>
sol := pdsolve(heat, u(x,t), HINT=‘*‘, ’build’);
sol := u(x, t) = e
(

_c
1
x)
_C3 e
(k _c
1
t)
_C1 +
_C3 e
(k _c
1
t)
_C2
e
(

_c
1
x)
´
Evaluez la solution en des valeurs sp´ecifiques pour les constantes.
>
S := eval( rhs(sol), {_C3=1, _C1=1, _C2=1, k=1, _c[1]=1} );
6.3
´
Equations aux d´eriv´ees partielles • 269
S := e
x
e
t
+
e
t
e
x
Vous pouvez tracer le graphique de la solution.
>
plot3d( S, x=-5..5, t=0..5 );
Il peut ˆetre avis´e de v´erifier la solution avec l’´equation originale.
>
eval( heat, u(x,t)=rhs(sol) );
%1 _C3 k _c
1
e
(k _c
1
t)
_C1 +
_C3 k _c
1
e
(k _c
1
t)
_C2
%1
−k (_c
1
%1 _C3 e
(k _c
1
t)
_C1 +
_C3 e
(k _c
1
t)
_C2 _c
1
%1
) = 0
%1 := e
(

_c
1
x)
>
simplify(%);
0 = 0
Tracer le graphique d’´equations aux d´eriv´ees partielles
Les solutions de plusieurs EDP peuvent ˆetre trac´ees grˆ ace ` a la com-
mande PDEplot que l’on trouve dans le package PDEtools.
>
with(PDEtools):
Vous pouvez utiliser la commande PDEplot avec la syntaxe suivante.
PDEplot( pde, var, ini, s=intervalle )
Ici, pde est l’EDP, var est la variable ind´ependante, ini est une courbe
param´etrique de l’espace tridimensionnel de param`etre s et intervalle est
le domaine de s.
270 • Chapitre 6: Exemples tir´es du calcul diff´erentiel
Consid´erez cette ´equation aux d´eriv´ees partielles.
>
pde := diff(u(x,y), x) + cos(2*x) * diff(u(x,y), y) = -sin(y);
pde := (

∂x
u(x, y)) + cos(2 x) (

∂y
u(x, y)) = −sin(y)
Utilisez la courbe donn´ee par z = 1 + y
2
comme condition initiale,
c’est-` a-dire x = 0, y = s et z = 1 +s
2
.
>
ini := [0, s, 1+s^2];
ini := [0, s, 1 +s
2
]
PDEplot trace la courbe des conditions initiales et la surface de solu-
tion.
>
PDEplot( pde, u(x,y), ini, s=-2..2 );
–2
2
x
–2
2
y
1
7
u(x,y)
Pour tracer la surface, Maple calcule ces courbes caract´eristiques de
base. La courbe des conditions initiales est ici plus facile ` a distinguer.
>
PDEplot( pde, u(x,y), ini, s=-2..2, basechar=only );
–2
2
x
–2
2
y
1
5
u(x,y)
6.4 Conclusion • 271
L’option basechar=true indique ` a PDEplot de dessiner ` a la fois les
courbes caract´eristiques et la surface, de mˆeme que la courbe des condi-
tions initiales qui est toujours pr´esente.
>
PDEplot( pde, u(x,y), ini, s=-2..2, basechar=true );
–2
2
x
–2
2
y
1
7
u(x,y)
Plusieurs des options usuelles de plot3d sont ´egalement disponibles ;
consultez la rubrique ?plot3d,options. L’option initcolor modifie la
couleur de la courbe des valeurs initiales.
>
PDEplot( pde, u(x,y), ini, s=-2..2,
>
basechar=true, initcolor=white,
>
style=patchcontour, contours=20,
>
orientation=[-43,45] );
–2
2
x
–2
2
y
1
7
u(x,y)
6.4 Conclusion
Ce chapitre vous a d´emontr´e l’utilit´e de Maple lorsque vient le temps
d’´etudier et de r´esoudre des probl`emes faisant usage du calcul diff´erentiel.
Vous avez vu comment Maple peut illustrer des concepts comme la d´eriv´ee
et les int´egrales de Riemann, comment Maple vous aide ` a analyser le
272 • Chapitre 6: Exemples tir´es du calcul diff´erentiel
terme d’erreur d’une approximation de Taylor de mˆeme que sa puissance
dans la r´esolution et la manipulation, tant symbolique que num´erique,
des ´equations diff´erentielles et des ´equations aux d´eriv´ees partielles.
7 Entr´ees et sorties
Vous pouvez effectuer la majeure partie de votre travail ` a l’int´erieur des
feuilles de calcul de Maple : calculer, tracer des fonctions et documenter
les r´esultats. Cependant, il est possible qu’` a un certain moment vous de-
viez importer des donn´ees ou exporter des r´esultats pour interagir avec
une autre personne ou un autre logiciel. Les donn´ees peuvent ˆetre des me-
sures exp´erimentales ou des nombres g´en´er´es par d’autres programmes.
Une fois les donn´ees import´ees dans Maple, vous pouvez utiliser les ca-
pacit´es graphiques du logiciel pour visualiser les r´esultats et les capacit´es
alg´ebriques pour construire ou examiner un mod`ele math´ematique.
Maple propose plusieurs mani`eres d’importer et d’exporter des don-
n´ees num´eriques brutes et des graphiques. Il pr´esente les r´esultats
alg´ebriques et num´eriques dans des formats compatibles ` a leur utilisa-
tion sous FORTRAN ou C, ou le syst`eme de typographie math´ematique
L
A
T
E
X. Vous pouvez mˆeme exporter une feuille de calcul enti`ere en un
fichier texte (pour inclusion dans un courriel) ou sous forme d’un docu-
ment L
A
T
E
X. Vous pouvez couper et coller des r´esultats et exporter des
expressions isol´ees ou des feuilles enti`eres.
Le pr´esent chapitre aborde les aspects les plus courants de l’expor-
tation et de l’importation d’information vers et depuis des fichiers. On y
verra comment Maple interagit avec le syst`eme de fichiers et avec d’autres
logiciels.
7.1 Lire des fichiers
On utilise g´en´eralement la lecture de fichiers dans Maple pour deux rai-
sons : pour obtenir des donn´ees et pour r´ecup´erer une liste de commandes
Maple enregistr´ees dans un fichier.
273
274 • Chapitre 7: Entr´ees et sorties
La premi`ere situation survient g´en´eralement dans le cas de donn´ees
exp´erimentales. Vous pouvez sauvegarder les nombres en les s´eparant par
des espaces et des sauts de ligne dans un fichier texte, puis les faire lire
par Maple pour les ´etudier. Vous pouvez tr`es facilement effectuer ces
op´erations en utilisant respectivement les commandes ExportMatrix et
ImportMatrix.
Dans la seconde situation, on cherche ` a lire des commandes Maple se
trouvant dans un fichier texte. Vous recevez peut-ˆetre une feuille de calcul
sous format texte, ou vous ´ecrivez une proc´edure Maple en utilisant votre
´editeur de texte favori et en le sauvegardant dans un fichier texte avant
de l’ex´ecuter. Pour ce faire, vous pouvez couper et coller des commandes
dans Maple ou encore utiliser la commande read. La pr´esente section
discute de cette seconde option.
Lire des colonnes de nombres depuis un fichier
Maple manipule les donn´ees ais´ement, mais lorsque ces derni`eres sont
g´en´er´ees hors du logiciel, vous devez pr´ealablement les importer avant de
les manipuler. Tr`es souvent, ces donn´ees externes sont stock´ees sous la
forme de colonnes de nombres dans un fichier texte. Le fichier data.txt
ci-dessous en est un exemple.
0 1 0
1 .5403023059 .8414709848
2 -.4161468365 .9092974268
3 -.9899924966 .1411200081
4 -.6536436209 -.7568024953
5 .2836621855 -.9589242747
6 .9601702867 -.2794154982
La commande ImportMatrix permet de lire de telles colonnes de nombres.
Utilisez ImportMatrix de la mani`ere suivante.
ImportMatrix( "nomfichier", delimiter=cha ıne )
Ici, nomfichier est le nom du fichier que vous souhaitez lire au moyen
d’ImportMatrix, et chaˆıne est le caract`ere qui d´elimite les entr´ees. La
valeur par d´efaut de chaˆıne est un caract`ere de tabulation repr´esent´e par
"\t". Dans le fichier data.txt, les entr´ees sont s´epar´ees par des espaces.
La valeur de chaˆıne est donc " ".
>
L := ImportMatrix( "data.txt", delimiter=" " );
7.1 Lire des fichiers • 275
L :=

0 1 0
1 0.5403023059 0.8414709848
2 −0.4161468365 0.9092974268
3 −0.9899924966 0.1411200081
4 −0.6536436209 −0.7568024953
5 0.2836621855 −0.9589242747
6 0.9601702867 −0.2794154982
¸
¸
¸
¸
¸
¸
¸
¸
¸
¸
Maintenant, par exemple, vous pouvez tracer le graphique de la troi-
si`eme colonne en fonction de la premi`ere. Utilisez la commande convert
pour choisir les premi`ere et troisi`eme entr´ees dans chaque colonne.
>
convert( L[[1..-1],[1,3]], listlist );
[[0, 0], [1, 0.8414709848], [2, 0.9092974268],
[3, 0.1411200081], [4, −0.7568024953],
[5, −0.9589242747], [6, −0.2794154982]]
La commande plot peut tracer le graphique de telles listes directe-
ment.
>
plot(%);
–0.8
–0.6
–0.4
–0.2
0
0.2
0.4
0.6
0.8
1 2 3 4 5 6
Pour s´electionner la seconde colonne de nombres, vous devez tenir
compte du fait que L[5,2] est le second nombre de la cinqui`eme sous-
liste.
>
L[5,2];
−0.6536436209
Les donn´ees souhait´ees sont donc les suivantes.
276 • Chapitre 7: Entr´ees et sorties
>
L[ 1..-1, 2 ];

1
0.5403023059
−0.4161468365
−0.9899924966
−0.6536436209
0.2836621855
0.9601702867
¸
¸
¸
¸
¸
¸
¸
¸
¸
¸
Convertissons ces donn´ees sous forme de liste.
>
convert(L[1..-1,2],list);
[1, 0.5403023059, −0.4161468365, −0.9899924966,
−0.6536436209, 0.2836621855, 0.9601702867]
>
stats[describe,mean](%) ;
0.1034788321
Vous pouvez aussi effectuer des calculs sur la matrice L en utilisant
le package LinearAlgebra.
>
LinearAlgebra[Transpose](L) . L;
[91. , 1.30278930720000119 , −6.41489848119999984]
[1.30278930720000119 , 3.87483111270157598 ,
−0.109078174475632172]
[−6.41489848119999984 , −0.109078174475632172 ,
3.12516888746710864]
Pour plus d’information au sujet des options de commandes telles que
ImportMatrix, consultez la rubrique d’aide ?ImportMatrix.
Lire des commandes depuis un fichier
Certains utilisateurs Maple trouvent utile d’´ecrire des programmes Maple
dans un fichier texte au moyen de leur ´editeur favori, puis de les importer
dans Maple. Vous pouvez coller les commandes du fichier texte dans votre
feuille de calcul ou utiliser la commande read.
7.1 Lire des fichiers • 277
Lorsque vous lisez un fichier au moyen de la commande read, Maple
traite chaque ligne du fichier comme une commande. Il ex´ecute les com-
mandes et affiche les r´esultats dans votre feuille de calcul, mais il ne place
pas, par d´efaut, les commandes du fichier dans votre feuille de calcul.
Utilisez la commande read en suivant cette syntaxe.
read "nomfichier" ;
Voici le fichier de commandes Maple ks.tst.
S := n -> sum( binomial(n, beta)
* ( (2*beta)!/2^beta - beta!*beta ), beta=1..n );
S( 19 );
Lorsque vous lisez le fichier, Maple affiche les r´esultats, mais pas les com-
mandes.
>
read "ks.tst";
S := n →
n
¸
β=1
binomial(n, β) (
(2 β)!
2
β
−β! β)
1024937361666644598071114328769317982974
Lorsque vous fixez la valeur de la variable interface echo `a 2, Maple
ins`ere les commandes du fichier dans votre feuille de calcul.
>
interface( echo=2 );
>
read "ks.tst";
>
S := n -> sum( binomial(n, beta)
>
* ( (2*beta)!/2^beta - beta!*beta ), beta=1..n );
S := n →
n
¸
β=1
binomial(n, β) (
(2 β)!
2
β
−β! β)
>
S( 19 );
1024937361666644598071114328769317982974
La commande read peut ´egalement lire des fichiers dans le format
interne de Maple ; consultez la section 7.2.
278 • Chapitre 7: Entr´ees et sorties
7.2
´
Ecrire des donn´ees dans un fichier
Apr`es avoir utilis´e Maple pour effectuer un calcul, vous pouvez enregistrer
le r´esultat dans un fichier. Vous pouvez traiter le r´esultat ult´erieurement,
avec Maple ou avec un autre programme.
´
Ecrire des colonnes de donn´ees num´eriques dans un fichier
Si le r´esultat d’un calcul Maple est une longue liste ou un grand tableau
de nombres, vous pouvez le convertir en une matrice et ´ecrire les nombres
dans un fichier de mani`ere structur´ee. La commande ExportMatrix ´ecrit
les colonnes de donn´ees num´eriques dans un fichier, vous permettant d’im-
porter les nombres dans un autre programme. Vous pouvez utiliser la
commande ExportMatrix avec la syntaxe suivante.
ExportMatrix( "nomfichier", donn´ ees )
Ici, nomfichier est la chaˆıne contenant le nom du fichier o` u ExportMatrix
doit sauvegarder les donn´ees, et donn´ees est une matrice. Remarquez
que toute liste, tout vecteur, toute liste de listes ou toute matrice cr´e´ee `a
partir d’une table peut ´egalement ˆetre converti en une matrice en utilisant
le constructeur Matrix (consultez la rubrique d’aide ?Matrix).
>
L:=LinearAlgebra[RandomMatrix](5);
L :=

−66 −65 20 −90 30
55 5 −7 −21 62
68 66 16 −56 −79
26 −36 −34 −8 −71
13 −41 −62 −50 28
¸
¸
¸
¸
¸
¸
>
ExportMatrix("matrixdata.txt", L):
Si les donn´ees sont plac´ees dans un vecteur ou dans tout autre ob-
jet qui peut ˆetre converti au type Vector, il est possible d’utiliser la
commande ExportVector. Pour plus d’information, reportez-vous ` a la
rubrique ?Vector.
>
L := [ 3, 3.1415, -65, 0 ];
L := [3, 3.1415, −65, 0]
>
V := Vector(L);
7.2
´
Ecrire des donn´ees dans un fichier • 279
V :=

3
3.1415
−65
0
¸
¸
¸
¸
>
ExportVector( "vectordata.txt", V ):
Vous pouvez ´etendre ces routines de mani`ere qu’elles ´ecrivent des
donn´ees plus complexes, comme des nombres complexes ou des expres-
sions symboliques. Consultez les rubriques d’aide ?ExportMatrix et
?ExportVector pour obtenir plus d’information.
Sauvegarder des expressions au format interne de Maple
Lorsque vous construisez une expression ou une proc´edure compliqu´ee,
vous pouvez avoir besoin de la sauvegarder pour un usage ult´erieur ` a
l’int´erieur de Maple. Si vous sauvegardez cette expression ou cette proc´e-
dure au format interne de maple, ce dernier pourra ensuite la r´ecup´erer
efficacement. Cela s’accomplit en utilisant la commande save pour ´ecrire
l’expression dans un fichier dont le nom se termine par les caract`eres

.m

. Utilisez la commande save avec la syntaxe suivante.
save seqnoms, "nomfichier.m" ;
Ici, seqnoms est une suite de noms. Remarquez que vous ne pouvez
enregistrer que des objets qui ont au pr´ealable ´et´e nomm´es. La commande
save enregistre les objets dans nomfichier.m. Le .m indique que save
´ecrit le fichier en utilisant le format interne de Maple.
Voici quelques expressions.
>
qbinomial := (n,k) -> product(1-q^i, i=n-k+1..n) /
>
product(1-q^i, i=1..k );
qbinomial := (n, k) →
n
¸
i=n−k+1
(1 −q
i
)
k
¸
i=1
(1 −q
i
)
>
expr := qbinomial(10, 4);
280 • Chapitre 7: Entr´ees et sorties
expr :=
(1 −q
7
) (1 −q
8
) (1 −q
9
) (1 −q
10
)
(1 −q) (1 −q
2
) (1 −q
3
) (1 −q
4
)
>
nexpr := normal( expr );
nexpr := (q
6
+q
5
+q
4
+q
3
+q
2
+q + 1) (q
4
+ 1) (q
6
+q
3
+ 1)
(q
8
+q
6
+q
4
+q
2
+ 1)
Vous pouvez maintenant enregistrer ces expressions dans le fichier
qbinom.m.
>
save qbinomial, expr, nexpr, "qbinom.m";
La commande efface les trois expressions de la m´emoire. Ainsi, expr
s’´evalue ` a son propre nom.
>
restart:
>
expr;
expr
Utilisez la commande read pour r´ecup´erer les expressions sauve-
gard´ees dans qbinom.m.
>
read "qbinom.m";
Remarquez que expr a retrouv´e sa valeur originale.
>
expr;
(1 −q
7
) (1 −q
8
) (1 −q
9
) (1 −q
10
)
(1 −q) (1 −q
2
) (1 −q
3
) (1 −q
4
)
Consultez la section 7.1 pour plus d’information sur la commande
read.
Convertir au format L
A
T
E
X
T
E
X est un programme permettant la pr´esentation de textes math´ema-
tiques. De son cˆ ot´e, L
A
T
E
X est un package macro de T
E
X. La commande
latex convertit les expressions Maple au format L
A
T
E
X. Ainsi, vous pouvez
utiliser Maple pour r´esoudre un probl`eme, convertir le r´esultat en code
L
A
T
E
X et l’inclure dans un document L
A
T
E
X. Utilisez la commande latex
de la mani`ere suivante.
7.2
´
Ecrire des donn´ees dans un fichier • 281
latex( expr, "nomfichier" )
L’objet expr peut ˆetre n’importe quelle expression math´ematique. Les
expressions sp´ecifiques ` a Maple, comme les proc´edures, ne peuvent ˆetre
export´ees en format L
A
T
E
X. Le champ nomfichier est optionnel ; il sp´ecifie
`a Maple d’´ecrire le r´esultat de la commande dans le fichier indiqu´e. Si vous
ne sp´ecifiez pas de nom de fichier, Maple ´ecrit le r´esultat directement dans
votre feuille.
La commande latex ´ecrit le code L
A
T
E
X correspondant de l’expression
Maple expr dans le fichier filename. Si filename existe, latex l’´ecrase
pour ´ecrire le nouveau fichier. Vous pouvez omettre filename ; dans ce
cas, latex affiche le code L
A
T
E
X `a l’´ecran et vous pouvez le couper et le
coller dans votre document L
A
T
E
X.
>
latex( a/b );
{\frac {a}{b}}
>
latex( Limit( int(f(x), x=-n..n), n=infinity ) );
\lim _{n\rightarrow \infty }\int _{-n}^{n}\!f
\left( x \right) {dx}
La commande latex produit des commandes lisibles en mode math.
Cependant, elle ne produit pas la commande pour entrer et sortir du mode
math et ne tente aucun saut de ligne ni aucun alignement particulier.
La commande latex peut traduire la plupart des types d’expres-
sions math´ematiques, incluant les int´egrales, les limites, les sommes, les
produits et les matrices. Vous pouvez ´etendre les possibilit´es de la com-
mande latex en d´efinissant des proc´edures portant des noms de la forme
‘latex/nomfonction‘. De telles proc´edures formatent les appels de la
fonction functionname. Il est sugg´er´e de produire le r´esultat de telles
commandes de formatage au moyen de la commande printf. La com-
mande latex se sert de writeto pour rediriger le r´esultat lorsqu’un nom
de fichier est sp´ecifi´e.
La commande latex ne g´en`ere pas les commandes requises par L
A
T
E
X
pour mettre le syst`eme de typographie en mode math´ematique ($...$, par
exemple).
L’exemple suivant montre la g´en´eration de code L
A
T
E
X pour une ´equa-
tion form´ee d’une int´egrale et de sa valeur. Remarquez l’usage de Int,
la forme inerte de int, pour empˆecher l’´evaluation du cˆ ot´e gauche de
l’´equation.
282 • Chapitre 7: Entr´ees et sorties
>
Int(1/(x^4+1),x) = int(1/(x^4+1),x);

1
x
4
+ 1
dx =
1
8

2 ln(
x
2
+x

2 + 1
x
2
−x

2 + 1
) +
1
4

2 arctan(x

2 + 1)
+
1
4

2 arctan(x

2 −1)
>
latex(%);
\int \! \left( {x}^{4}+1 \right) ^{-1}{dx}=1/8
\,\sqrt {2}\ln \left( {\frac {{x}^{2}+x\sqrt
{2}+1}{{x}^{2}-x\sqrt {2}+1}} \right) +1/4\,
\sqrt {2}\arctan \left( x\sqrt {2}+1 \right) +
1/4\,\sqrt {2}\arctan \left( x\sqrt {2}-1
\right)
La section 7.3 explique comment enregistrer une feuille compl`ete en
format L
A
T
E
X.
7.3 Exporter des feuilles compl`etes
Bien entendu, vous pouvez enregistrer vos feuilles de calcul au moyen des
options Save ou Save As du menu File. Vous pouvez ´egalement exporter
une feuille sous six autres formats : texte, texte Maple, L
A
T
E
X, HTML,
HTML avec MathML, RTF et XML au moyen du sous-menu Export As
que l’on trouve ´egalement dans le menu File. Cela vous permet de traiter
une feuille de calcul hors de Maple.
Texte
Vous pouvez enregistrer une feuille de calcul en texte en choisissant l’op-
tion Export As du menu File et Plain Text du sous-menu qui apparaˆıt.
Dans ce cas, Maple fait pr´ec´eder chaque entr´ee du signe > et d’un espace.
Maple reproduit les symboles sp´eciaux comme les int´egrales et les expo-
sants au moyen de caract`eres ; cependant, vous ne pouvez exporter les
graphiques sous forme de texte. L’exemple suivant est une portion de
feuille Maple export´ee en format texte.
An Indefinite Integral
by Jane Maplefan
Calculation
Look at the integral Int(x^2*sin(x-a),x);. Notice that its
7.3 Exporter des feuilles compl`etes • 283
integrand, x^2*sin(x-a);, depends on the parameter a;.
Give the integral a name so that you can refer to it later.
> expr := Int(x^2 * sin(x-a), x);
/
| 2
expr := | x sin(x - a) dx
|
/
The value of the integral is an anti-derivative of the
integrand.
> answer := value( % );
Texte Maple
Le texte Maple n’est que du texte sp´ecialement marqu´e qui conserve la
distinction entre le texte, les entr´ees de Maple et ses sorties. Ainsi, vous
pouvez exporter une feuille de calcul en texte Maple, envoyer le texte par
courriel et votre destinataire peut importer ce texte dans son programme
et r´eg´en´erer une grande part de la structure originale de votre feuille.
En lisant ou en collant du texte, Maple traite chacune des lignes qui
commencent par un prompt Maple suivi d’un espace (> ) comme une
entr´ee Maple, chaque ligne qui commence avec un di`ese (#) comme du
texte, et ignore toutes les autres lignes.
Vous pouvez exporter une feuille enti`ere en texte Maple en choisissant
Export As du menu File et Maple Text dans le sous-menu qui apparaˆıt
alors. Le texte suivant est une portion d’une feuille export´ee en texte
Maple.
# An Indefinite Integral
# by Jane Maplefan
# Calculation
# Look at the integral Int(x^2*sin(x-a),x);. Notice that its
# integrand, x^2*sin(x-a);, depends on the parameter a;.
# Give the integral a name so that you can refer to it later.
> expr := Int(x^2 * sin(x-a), x);
/
| 2
expr := | x sin(x - a) dx
|
/
284 • Chapitre 7: Entr´ees et sorties
# The value of the integral is an anti-derivative of the
# integrand.
> answer := value( % );
Pour ouvrir une feuille en format texte Maple, choisissez Open du
menu File. Dans la bo
ˆ
ite de dialogue qui apparaˆıt alors, choisissez Maple
Text dans la liste d´eroulante des types de fichiers. Double-cliquez sur le
fichier souhait´e et choisissez encore Maple Text dans la boˆıte de dialogue
qui apparaˆıt.
Vous pouvez ´egalement copier et coller du texte Maple grˆ ace au menu
Edit. Si vous copiez une partie de votre feuille en texte Maple et le collez
ensuite dans une autre application, le texte coll´e apparaˆıt sous forme de
texte Maple. De mani`ere similaire, si vous collez du texte Maple dans votre
feuille en utilisant Paste Maple Text du menu Edit, Maple conserve
la structure du texte Maple. Par contre, si vous utilisez l’option Paste
habituelle, Maple ne conserve aucune structure : si vous collez dans une
zone d’entr´ee, il interpr`ete tout le texte coll´e comme une entr´ee, et si
vous le collez dans une zone de texte, Maple interpr`ete tout le texte coll´e
comme du texte standard.
L
A
T
E
X
Vous pouvez exporter une feuille Maple en format L
A
T
E
X en choisissant
Export As du menu File et LaTeX du sous-menu qui apparaˆıt. Le
fichier .tex que Maple g´en`ere est prˆet `a ˆetre compil´e par L
A
T
E
X. Toutes
les distributions de Maple incluent les fichiers de style n´ecessaires.
Si votre feuille contient des graphiques incorpor´es, Maple g´en`ere les
fichiers PostScript correspondant aux graphiques de mˆeme que le code
L
A
T
E
X permettant d’inclure ces fichiers PostScript dans votre document
L
A
T
E
X.
L’exemple suivant est une portion d’une feuille Maple export´ee en
format L
A
T
E
X.
%% Created by Maple 8.00 (IBM INTEL NT)
%% Source Worksheet: tut1.mws
%% Generated: Thu Apr 18 9:47:33 2002
\documentclass{article}
\usepackage{maple2e}
\DefineParaStyle{Author}
\DefineParaStyle{Heading 1}
\DefineParaStyle{Maple Output}
\DefineParaStyle{Maple Plot}
\DefineParaStyle{Title}
7.3 Exporter des feuilles compl`etes • 285
\DefineCharStyle{2D Comment}
\DefineCharStyle{2D Math}
\DefineCharStyle{2D Output}
\DefineCharStyle{Hyperlink}
\begin{document}
\begin{maplegroup}
\begin{Title}
An Indefinite Integral
\end{Title}
\begin{Author}
by Jane Maplefan
\end{Author}
\end{maplegroup}
\section{Calculation}
Look at the integral
\mapleinline{inert}{2d}{Int(x^2*sin(x-a),x);}{%
$\int x^{2}\,\mathrm{sin}(x - a)\,dx$%
}. Notice that its integrand,
\mapleinline{inert}{2d}{x^2*sin(x-a);}{%
$x^{2}\,\mathrm{sin}(x - a)$%
}, depends on the parameter
\mapleinline{inert}{2d}{a;}{%
$a$%
}.
Les fichiers de style L
A
T
E
X supposent que vous imprimez le fichier .tex
en utilisant le pilote d’imprimante dvips. Vous pouvez changer ce d´efaut
en sp´ecifiant une option ` a la commande L
A
T
E
X \usepackage dans l’en-tˆete
de votre fichier .tex.
La section Imprimer des graphiques de la page 288 explique com-
ment enregistrer des graphiques directement. Vous pouvez inclure ces fi-
chiers graphiques dans votre document L
A
T
E
X `a l’aide de la commande
L
A
T
E
X \mapleplot.
HTML et HTML avec MathML
Vous pouvez exporter une feuille Maple en format HTML (HyperText
Markup Language) en choisissant Export As du menu File et HTML
du sous-menu qui apparaˆıt. Le fichier .html g´en´er´e par Maple peut ˆetre
286 • Chapitre 7: Entr´ees et sorties
charg´e dans n’importe quel navigateur HTML. Vous pouvez ´egalement
exporter une feuille Maple en format HTML avec MathML (Mathema-
tical Markup Language) en choisissant Export As du menu File, puis
HTML with MathML. MathML est la norme Internet sanctionn´ee par
le World Wide Web Consortium (W3C) pour la communication de for-
mules math´ematiques structur´ees entre des applications math´ematiques.
Pour plus d’information ` a propos de MathML, consultez la rubrique
?MathML.
Maple g´en`ere des fichiers .gif pour repr´esenter les ´equations et les
graphiques de votre feuille de calcul. Il convertit les formules math´ema-
tiques et les graphiques en format MathML ou .gif, selon que vous ayiez
choisi l’exportation en format HTML avec MathML ou HTML seul.
L’exemple suivant est une feuille Maple export´ee en HTML. Remar-
quez que les autres documents HTML (incluant une table des mati`eres),
qui ont ´et´e cr´e´es lors de l’exportation de la feuille originale, sont appel´es
par cette portion de code.
<html>
<head>
<title>tut1.htm</title>
<!-- Created by Maple 8.00, IBM INTEL NT -->
</head>
<frameset cols="25%,*">
<frame src="tut1TOC.htm" name="TableOfContents">
<frame src="tut11.htm" name="Content">
<noframes>
Sorry, this document requires that your browser support
frames.
<a href="tut11.htm" target="Content">This link</a>
will take you to a non-frames presentation of the document.
</noframes>
</frameset>
</html>
L’exemple suivant est une portion du fichier tut11.htm mentionn´e
dans le fichier pr´ec´edent.
<b><font color=#000000 size=5>Calculation</font></b>
</p>
<p align=left>
<font color=#000000>Look at the integral </font>
<img src="tut11.gif" width=120 height=60 alt="[Maple Math]"
align=middle>
7.3 Exporter des feuilles compl`etes • 287
<font color=#000000>. Notice that its integrand, </font>
<img src="tut12.gif" width=89 height=50 alt="[Maple Math]"
align=middle>
<font color=#000000>, depends on the parameter </font>
<img src="tut13.gif" width=13 height=32 alt="[Maple Math]"
align=middle>
<font color=#000000>.</font>
</p>
<p align=left>
<font color=#000000>Give the integral a name so that you
can refer to it later.</font>
</p>
<p align=left><a name="expr command">
<tt>&gt; </tt>
<b><font color=#FF0000>expr := Int(x^2 * sin(x-a),
x);</font></b>
</p>
<p align=center>
<img src="tut14.gif" width=169 height=49 alt="[Maple Math]">
</p>
<p align=left>
<font color=#000000>The value of the integral is </font>
<a href="tut4.html" target="_top">an anti-derivative</a>
<font color=#000000> of the integrand.</font>
</p>
RTF
Vous pouvez exporter une feuille Maple en format RTF (Rich Text For-
mat) en choisissant Export As du menu File et RTF du sous-menu
qui apparaˆıt. Le fichier .rtf g´en´er´e par Maple peut ˆetre charg´e dans
n’importe quel traitement de texte qui supporte le format RTF. Maple
incorpore les graphiques et les ´el´ements math´ematiques format´es sous la
forme de bitmaps inclus dans des m´etafichiers Windows. Les feuilles de
calcul (spreadsheets) ne sont pas pleinement export´ees, mais les cellules
visibles de mˆeme que les en-tˆetes de colonnes et de lignes sont export´es.
L’exemple suivant est le d´ebut d’une feuille Maple export´ee en format
RTF.
{\rtf1\ansi\ansicpg1252\deff0\deflang1033
{\fonttbl
{\f0 Times New Roman}
{\f1 Symbol}
288 • Chapitre 7: Entr´ees et sorties
{\f2 Courier New}
}
{\colortbl
\red205\green205\blue205;
\red255\green0\blue0;
\red0\green0\blue0;
\red0\green0\blue255;
}
{\stylesheet
{\s0 \widctlpar}
{\s1\qr footer_header}
{\*\cs12\f2\fs24\cf1\i0 \b \ul0 \additive Maple Input}
{\*\cs13\f0\fs24\cf2\i0 \b0 \ul0 \additive 2D Comment}
{\*\cs14\f0\fs24\cf1\i0 \b0 \ul0 \additive 2D Input}
{\*\cs15\f0\fs24\cf3\i0 \b0 \ul0 \additive 2D Output}
XML
Pour exporter une feuille Maple en format XML (Extensible Markup
Language), choisissez Export As du menu File, puis XML. Le fichier
.xml g´en´er´e par Maple peut ˆetre charg´e comme une feuille Maple tradi-
tionnelle. Les documents XML sont charg´es en choisissant Open du menu
File.
Le texte suivant est un extrait d’une feuille Maple export´ee en XML.
<section><exchange><para pstyle=’Normal’ prompt=’> ’><mapletext
maple-input=’true’ cstyle=’Maple Input’>a;</mapletext></para>
</exchange></section>
7.4 Imprimer des graphiques
Sur la plupart des plateformes, Maple affiche par d´efaut les graphiques di-
rectement dans la feuille (on parle de graphiques ins´er´es). Vous pouvez
utiliser la commande plotsetup pour changer ce comportement. La com-
mande suivante indique ` a Maple d’afficher le graphique dans une fenˆetre
s´epar´ee de votre ´ecran.
>
plotsetup(window);
Lorsque votre graphique s’affiche dans une fenˆetre s´epar´ee, vous pou-
vez l’imprimer par le menu File comme toute autre feuille Maple.
7.4 Imprimer des graphiques • 289
On appelle la commande plotsetup en appliquant la syntaxe sui-
vante.
plotsetup( TypePilote, plotoutput="nomfichier",
plotoption="options" )
Ici, TypePilote est le pilote graphique que Maple doit utiliser, nomfichier
est le nom du fichier de sortie et options est une chaˆıne d’options reconnues
par le pilote sp´ecifi´e.
La commande suivante indique ` a Maple d’envoyer le graphique en
format PostScript dans le fichier myplot.ps.
>
plotsetup( postscript, plotoutput="myplot.ps" );
Le graphique g´en´er´e par la commande plot ci-dessous n’apparaˆıt pas
`a l’´ecran ; il est envoy´e dans le fichier myplot.ps.
>
plot( sin(x^2), x=-4..4 );
Maple peut ´egalement g´en´erer des graphiques au format HP Laser-
jet. Il envoie le graphique g´en´er´e par la commande plot3d au fichier
myplot.hp.
>
plotsetup( hpgl, plotoutput="myplot.hp",
>
plotoptions=laserjet );
>
plot3d( tan(x*sin(y)), x=-Pi/3..Pi/3, y=-Pi..Pi);
Si vous souhaitez imprimer plus d’un graphique, vous devez modi-
fier l’option plotoutput entre chaque graphique ; sinon, chaque nouveau
graphique ´ecrasera le pr´ec´edent.
>
plotsetup( plotoutput="myplot2.hp" );
>
plot( exp@sin, 0..10 );
Une fois les graphiques export´es, vous devez sp´ecifier ` a Maple que les
graphiques doivent de nouveau ˆetre ins´er´es ` a travers les feuilles.
>
plotsetup( inline );
Consultez la rubrique ?plot,device pour une description des pilotes
graphiques reconnus par Maple.
290 • Chapitre 7: Entr´ees et sorties
7.5 Conclusion
Dans ce chapitre, nous avons vu un grand nombre de possibilit´es d’entr´ees
et de sorties de Maple : comment imprimer des graphiques, comment
enregistrer et r´ecup´erer des expressions Maple individuellement, comment
lire et ´ecrire des donn´ees num´eriques et comment exporter une feuille
Maple en document L
A
T
E
X ou HTML.
De plus, Maple poss`ede plusieurs commandes d’entr´ees et de sorties
de bas niveau comme fprintf, fscanf, writeline, readbytes, fopen et
fclose. Consultez les pages d’aide pour plus de d´etails.
Les pages d’aide sont en quelque sorte un manuel de r´ef´erence inter-
actif. Elles sont toujours au bout des doigts lorsque vous utilisez Maple.
Tout comme un manuel de r´ef´erence traditionnel, utilisez-les en ´etudiant
l’index ou en les cherchant une ` a une. En particulier, l’option de recherche
d’un texte entier est une m´ethode de recherche de l’information sup´erieure
`a un index traditionnel. Les hyperliens rendent ais´ee la recherche de sujets
connexes.
Le but de ce livre est de donner au lecteur une bonne base de connais-
sances ` a partir de laquelle il pourra explorer Maple. Il se concentre donc
sur l’usage interactif du logiciel. Bien entendu, Maple est un langage com-
plet et fournit plusieurs outils de programmation. En fait, la majorit´e des
commandes de Maple sont enregistr´ees dans le langage Maple, puisque
ce langage de haut niveau est de loin sup´erieur aux langages de pro-
grammation traditionnels pour des tˆ aches math´ematiques. Le Guide de
programmation de Maple 8 vous introduit ` a la programmation sous
Maple.
8 Les maplets
En utilisant le package Maplets, vous pouvez cr´eer des fenˆetres, des boˆıtes
de dialogue et d’autres interfaces visuelles qui interagissent avec l’utilisa-
teur.
Les utilisateurs peuvent effectuer des calculs ou tracer des graphiques
de fonctions sans utiliser l’interface de la feuille de travail.
Le pr´esent chapitre est destin´e en priorit´e aux utilisateurs des maplets.
Son contenu peut ´egalement s’av´erer utile aux programmeurs de maplets.
8.1 Exemple de maplet
Vous pouvez cr´eer une interface qui demande l’entr´ee d’information de
la part de l’utilisateur. Par exemple, une maplet d’int´egration pourrait
ressembler ` a l’exemple suivant.
291
292 • Chapitre 8: Les maplets
8.2 Terminologie
maplet Une maplet est une collection d’´el´ements incluant, sans s’y limi-
ter, des fenˆetres et leur disposition, des boˆıtes de dialogue et des actions.
Une mapplet diff`ere des autres fenˆetres et boˆıtes de dialogue en ce qu’elle
contient elle-mˆeme des fenˆetres et des boˆıtes de dialogue.
auteur de maplet Un auteur de maplet est un programmeur qui utilise
du code Maple pour cr´eer une maplet.
utilisateur de maplet Un utilisateur de maplet est quelqu’un qui inter-
agit avec une maplet.
disposition La disposition d´efinit comment les ´el´ements d’une maplet
sont affich´es.
fenetre Une fenˆetre est un ´el´ement d’une maplet. Une fenˆetre ne doit pas
ˆetre vue comme une maplet, mais plutˆ ot comme un ´el´ement de maplet.
Une maplet peut contenir plus d’une fenˆetre, et chaque fenˆetre, ` a son tour,
peut contenir plusieurs ´el´ements r´egissant la disposition et la fonction de
cette fenˆetre.
8.3 Comment d´emarrer le package Maplets • 293
boıte de dialogue Une boˆıte de dialogue est un ´el´ement d’une maplet.
Contrairement ` a une fenˆetre, qui peut contenir d’autres ´el´ements comme
des boutons, une boˆıte de dialogue poss`ede une structure pr´ed´efinie : un
auteur peut sp´ecifier les options d’une boˆıte de dialogue, mais ne peut lui
ajouter d’´el´ements.
8.3 Comment d´emarrer le package Maplets
Si vous recevez une feuille Maple contenant du code provenant du package
Maplets, vous devez d’abord charger ce dernier en m´emoire. Appuyez sur
Enter apr`es ces deux groupes d’ex´ecution possibles.
>
restart:
>
with(maplets[Elements]);
Important : Vous devez poss´eder la version 1.2.2 du Java
TM
Runtime
Environment Version (ou la version 1.3 si vous travaillez sous Red Hat
Linux 7.0) sur votre syst`eme local. Si cet environnement n’est pas install´e,
communiquez avec votre administrateur de syst`eme.
8.4 Comment appeler une maplet `a partir d’une
feuille Maple
Pour d´emarrer une maplet, appuyez sur Enter apr`es les derniers deux-
points (:) ou le dernier point-virgule (;), ou n’importe o` u dans un groupe
d’ex´ecution pour lancer l’ex´ecution du code Maplets. Dans l’exemple sui-
vant, la maplet est ´ecrite en un seul groupe d’ex´ecution. Vous pouvez ap-
puyer sur Enter n’importe o` u dans le groupe d’ex´ecution pour d´emarrer
la maplet.
>
mymaplet := Maplet ([
>
["Hello World", Button("OK", Shutdown())]
>
]):
>
maplets[Display](mymaplet);
Dans l’exemple suivant, la maplet est ´ecrite comme deux groupes
d’ex´ecution. Elle doit ˆetre d´efinie avant d’utiliser la commande Display.
294 • Chapitre 8: Les maplets
>
with(maplets[Elements]):
>
my2maplet := Maplet ([
>
["Hello World #2", Button("OK", Shutdown())]
>
]):
>
maplets[Display](my2maplet);
8.5 Comment fermer une maplet
Si la maplet contient un bouton Cancel, cliquez sur ce bouton. Sinon,
cliquez sur le bouton de fermeture appropri´e pour votre plateforme. Par
exemple :
Sous UNIX :
1. Cliquez sur l’icˆ one – situ´ee dans le coin sup´erieur gauche de la fenˆetre
de la maplet. Un menu d´eroulant apparaˆıt.
Note : Cette icˆ one varie selon votre gestionnaire de th`emes.
2. Choisissez Close.
Sous Windows :
– Cliquez sur l’icˆ one X situ´ee dans le coin sup´erieur droit de la barre
de titre de votre maplet. Cette derni`ere se ferme.
8.6 Comment utiliser les Maplets et la fenetre
Maple (modalit´e)
Lorsqu’une maplet est en cours d’ex´ecution, la feuille Maple est inac-
cessible. Si vous d´eplacez le curseur au-dessus de cette feuille, une icˆ one
(horloge sous UNIX, sablier sous Windows) apparaˆıt, indiquant que la
feuille de travail est inaccessible. La maplet doit ˆetre ferm´ee ou auto-
ris´ee `a compl´eter une action avant que la feuille Maple soit de nouveau
accessible.
8.7 Comment activer la fenetre d’une maplet
1. Cliquez sur un champ de saisie de la maplet. Ce champ apparaˆıt en
surbrillance.
8.8 Comment arreter puis red´emarrer une maplet • 295
2. Entrez l’expression, les nombres ou le texte appropri´es.
8.8 Comment arreter puis red´emarrer une maplet
Lorsque les calculs ` a effectuer par une maplet sont longs, il vous est tou-
jours possible d’interrompre le processus en cours.
1. Pour arrˆeter la maplet en cours, cliquez sur le bouton X (ou l’icˆ one de
fermeture appropri´ee pour votre plateforme) qui figure dans sa barre
de titre.
2. Pour red´emarrer la maplet, ex´ecutez-la ` a nouveau au moyen de l’outil
lastmaplet.
>
maplets[Display](lastmaplet);
8.9 Comment utiliser les raccourcis de l’interface
graphique
Listes d´eroulantes
Certaines maplets contiennent des listes d´eroulantes. Voici comment les
utiliser efficacement.
1. Entrez le premier caract`ere de l’´el´ement de la liste que vous souhaitez
atteindre. La liste se d´eplace automatiquement jusqu’` a un ´el´ement
commen¸ cant par la lettre saisie.
2. Continuez ` a ajouter des caract`eres du nom de l’´el´ement voulu jusqu’` a
ce que la s´election d´esir´ee soit affich´ee en surbrillance.
Remarquez que cette m´ethode ne s’applique pas aux listes d´eroulantes
cr´e´ees avec l’´el´ement ComboBox.
La barre d’espacement et la touche TAB
Vous pouvez utiliser la souris pour cliquer sur un bouton comme Can-
cel ou OK. Vous pouvez ´egalement utiliser les touches Tab et la barre
d’espacement de la mani`ere suivante.
1. Utilisez la touche Tab pour positionner le curseur sur le bouton de
votre choix.
2. Appuyez sur la barre d’espacement. La commande choisie est
ex´ecut´ee.
296 • Chapitre 8: Les maplets
8.10 Conclusion
Pour obtenir plus d’information sur les maplets, reportez-vous ` a la ru-
brique ?maplets ou au Guide d’introduction ` a la programmation (Maple
Introductory Programming Guide), au chapitre 9.
Index
!, 8
π, 12
%, 8
->, 19
:, 28
:=, 18
;, 28
_C, 78
_Z, 55
\, 8
about, 168
add, 176
additionally, 168
affectation multiple, 94
affectations
invalides, 20
nommer, 18
noms valides, 19
affichage du r´esultat
supprimer, 28
afficher
proc´edures, 198
alg`ebre lin´eaire, 91
algsubs, 192
algsubs, 41
animate, 125
coords, 127
frames, 126
animate3d, 128
coords, 129
frames, 128
animations, 211
afficher, 126, 133
en coordonn´ees sph´eriques,
129
en deux dimensions, 125
images des, 126, 128, 133
param´etriques, 3-D, 128
param´etriques, 2-D, 127
tridimensionnelles, 128
annotations, 129, 134
ApproximateInt, 89–91, 227–
229
approximation de fonctions en
s´eries, 68–70
approximations
`a virgule flottante, 9
d´ecimales, 9
arbre des expressions, 186
arithm´etique ´el´ementaire, 6
arrow, 140
assign, 53
assignations
d’ensembles d’´equations, 53
multiples, 21
assigned, 200
assume, 172
additionally, 168
integer, 169
nonnegative, 168
assuming, 172
axes, 131
boˆıte de dialogue, see ma-
plets,boˆıte de dialogue
bordure (bounding box), 116
cˆot´e droit, 182
cˆot´e gauche, 182
cˆones, tracer le graphique, 122
cˆot´e droit d’une ´egalit´e, 39
cˆot´e gauche d’une ´egalit´e, 39
calcul diff´erentiel, 209
297
298 • Index
calcul diff´erentiel, 66–72, 86
Calculus1
ApproximateInt, 89–91,
227–229
Hint, 87–89
Roots, 89
Rule, 86–89
Tangent, 89
Understand, 87
chaˆınes, 31
concat´ener, 194
champ de vecteurs, 138
coeff, 65
coefficients, 65
collect
distributed, 154
coloriage, 124
combine, 37, 158
combiner des listes, 178
commandes, see noms de com-
mandes sp´ecifiques
compter, 40
concat´enation, 194, 205–207
concat´enation
chaˆınes, 32
suites d’expressions, 21
conditions
initiales, 237, 270
cone, 142
conformal, 137
constantes, 12
d’int´egration, 230
continuit´e, prolonger par, 231
contourplot, 137
conversion
sous forme de listes, 276
convert, 35, 275
binary, 14
exp, 35, 166
factorial, 166
hex, 14
list, 35, 195, 276
ln, 166
parfrac, 167
polynom, 194, 216
rational, 167
set, 35, 195
sincos, 166
string, 194
convertir, 35
des expressions en fonctions,
51
en cha
ˆ
ines, 194
en listes et en ensembles, 195
s´eries en polynˆ omes, 194, 216
s´eries en polynˆ omes, 68
coordonn´ees
cylindriques, 121
polaires, 105, 127
et fonctions explicites, 106
et fonctions param´e-
triques, 107
sph´eriques, 119
coordonn´ees polaires, 127
coordonn´ees sph´eriques, 119
correspondance
sur des ensembles, 174
sur des expressions, 187
sur des listes, 174
courbes dans l’espace, 138
cutout, 144
cylinderplot, 121
D, 231, 237, 251
d´enominateurs, 183
d´eriv´ees, 70, 209
d´efinition, 210
partielles, 218, 232
d´eriv´ees partielles, 218
d´efinition, 232
mixtes, 233
d´esaffectation, 203
Index • 299
d´enominateurs, 39
commun, 37, 159
d´evelopper
des expressions, 34
modulo m, 152
degr´e d’un polynˆ ome, 65
degree, 65
denom, 39, 183
densityplot, 137
DEplot, 257
DEplot3d, 259
DESol, 255
deux-points, 28
Diff, 86
diff, 190
differentiation, 86
Digits, 13
Dirac, 75, 263
display, 140
display, 132, 211
divide, 64
dodecahedron, 140
dsolve, 73, 236
explicit, 238
implicit, 238
method=laplace, 239
startinit, 250
type=numeric, 248
type=series, 245
dynamique classique, 238
´ecart type, 95
echo, 277
EDO, 73
conditions initiales, 237
dsolve, 236
m´ethode des transform´ees de
Laplace, 238
num´eriques, 247
s´eries, 245
tracer le graphique, 256
EDP, 266
conditions initiales, 270
tracer le graphique, 269
empty_set, 25
ensembles, 23
convertir en, 195
correspondances, 38
diff´erence, 26
intersection, 24
minus, 26
op´erandes des, 186
op´erations sur les, 25–26
s´electionner dans, 176
union, 24
vides, 25
entiers, 7
calculs sur, 7
commandes pour, 8–9
pr´ecision arbitraire, 8
solutions enti`eres, 60
entiers gaussiens, 15
´equation
d’onde, 266
de la chaleur, 268
´equations
aux d´eriv´ees partielles, 266
cˆ ot´e droit d’une ´egalit´e, 39
cˆ ot´e gauche d’une ´egalit´e, 39
´equations diff´erentielles
syst`emes d’, 78
ordinaires, 73, 236
erreurs d’arrondi, 250
eval, 64, 73, 190, 196
evalf, 10, 210
evaln, 200
´evaluation, 196–207
`a un niveau, 200
`a un nom, 200
assigned, 200
compl`ete, 196
du dernier nom, 197
300 • Index
en un point, 47
et les guillemets, 201
et substitution, 193
evaln, 200
forcer l’´evaluation compl`ete,
198
niveaux, 197
num´erique, 10, 12, 13
retard´ee, 201
´evaluer
des variables locales, 200
matrices, 197
proc´edures, 197
tableaux, 30, 197
tables, 197
exp, 11
Expand, 152
expand, 34, 150
exporter
en HTML, 285
en HTML avec MathML, 286
en L
A
T
E
X, 284
en RTF, 287
en texte, 282
en texte Maple, 283
XML, 288
ExportMatrix, 278
ExportVector, 278
expressions
convertir en fonctions, 51
identification de, 184
ind´etermin´ees des, 188
non ´evalu´ees, 15, 201
op´erandes des, 184
requˆete sur le contenu des,
187
types des, 188
Factor, 157
factor, 34
vs. solve, 65
factorielle, 8
factorisation, 157
modulo p, 157
factoriser, 34, 154
feuilles
sauvegarder, 282
fichiers
´ecrire des colonnes dans, 278
lecture de colonnes depuis,
274
lecture de commandes de-
puis, 276
lecture de donn´ees depuis,
274
fieldplot, 138
fonction de Heaviside, 261
fonction delta de Dirac, 263
fonctions
`a partir d’expressions, 51
affectation, 19
arguments, 20
d´efinies par morceaux, 264
de coloriage, 124
discontinues
tracer le graphique, 108
math´ematiques, 15–16
prolongement par continuit´e,
231
rationnelles
factoriser, 154
forme normale factoris´ee, 159
frac, 169
fractions
d´enominateurs de, 39, 183
num´erateurs de, 39, 183
partielles, 167
sur le mˆeme d´enominateur,
37, 159
fsolve, 56, 221
graphiques, 101–148
Index • 301
graphiques
´echelle de type
constrained, 104
root loci, 139
afficher, 132
afficher les coordonn´ees, 101
algorithme adaptatif pour,
115
animations, see animations,
211
annotations, 129, 134
bordure (bounding box),
116
cartes topographiques, 137
champs de vecteurs, 138
coloriage, 124
conformes, 137
contours, 137
coordonn´ees polaires, 105
coordonn´ees sph´eriques, 119
couleurs, sp´ecifier, 113
courbes dans l’espace, 138
courbes dans l’espace tridi-
mensionnel, 138
courbes param´etriques, 103
cylinderplot, 121
cylindres, 121, 122
dans des fenˆetres s´epar´ees,
288
de densit´e, 137
domaine, 117
EDO, 256
EDP, 269
exporter vers un fichier, 288
fonctions de coloriage, 124
fonctions discontinues, 108
fonctions explicites, 101, 116
fonctions implicites, 135
imprimer, 288
in´egalit´es, 135
ins´er´es, 288
listes de nombres, 275
Matrices, 139
mod`eles d’´eclairage, 124
niveaux de gris, 124
objets, 140
pilotes, 288
plusieurs, 132
raffiner, 115, 123
s´eries, 194
singularit´es, 109
sph`eres, 120
sphereplot, 119
styles de lignes, 112
styles de lignes, sp´ecifier, 112
styles de points, sp´ecifier,
114
sur un axe logarithmique,
136
surface color´ee, 117
surfaces, 116
surfaces param´etriques, 118,
120
tangente, 89
texte, 134
titres, 129, 194, 207
tourner, 116, 142
tracer des points, 113
tracer plusieurs courbes, 111
translater, 142
tridimensionnels, 116
tubes, 138
graphiques param´etriques
2-D, 103
3-D, 118
cylindres, 122
en coordonn´ees polaires, 107
sph`eres, 120
guillemets, 201
guillemets anglais, 31
hastype, 188
302 • Index
Heaviside, 239, 261
hemisphere, 143
Hint, 87–89
histogrammes, 97, 139
HP Laserjet, 289
HTML, 285
hypoth`eses
poser, 168
retirer, 72, 171
voir, 168
implicitplot, 135
ImportMatrix, 274
imprimer
des graphiques, 288
ind´etermin´ees, 188
indets, 188
inequal, 135
infolevel, 158, 169
int´egrales, 70, 227, 230
constantes des, 230
d´efinies, 71, 229
de Riemann, 227
ind´efinies, 70, 229
int´egrales, 91
interface
echo, 277
verboseproc, 199
inttrans package, 242
invlaplace, 243
is, 170, 180
isolate, 211
isolve, 60
Java Runtime Environment, 293
laplace, 242
L
A
T
E
X, 280, 284
lecture
de code, 276
de colonnes, 274
de commandes, 276
de fichiers, 276
length, 32, 181
lhs, 39, 182
lightmode, 124
Limit, 66, 87, 91
limites, 66, 87, 212
LinearAlgebra, 91
listes, 22
´el´ements de, 22
combiner, 178
convertir en, 195
correspondances, 38
d´esordonn´es, 23
op´erandes des, 186
op´erations sur les, 25–26
ordonn´ees, 22
s´electionner dans, 176
trier, 179
vides, 25
loglogplot, 136
logplot, 136
Loi du refroidissement de New-
ton, 251
majuscules-minuscules, 12
map, 24, 38, 174
map2, 174
Maple Animation Gallery, 145
Maple Application Center, 145
Maple Graphics Gallery, 145
Maple Introductory Program-
ming Guide, 296
Maplets, 291–296
maplets
activer, 294
arrˆeter, 295
auteur, 292
boˆıte de dialogue, 292
champ de saisie, 294
ComboBox, 295
Display, 293
Index • 303
disposition, 292
Elements, 293
exemple de l’int´egration, 291
fenˆetre, 292
fermer, 294
listes d´eroulantes, 295
raccourcis, 295
red´emarrer, 295
travailler avec, 294
utilisateur, 292
MathML, 286
Matlab, 93
matrices
´evaluer, 197
Transpose, 276
matrixplot, 139
max, 226
mise en page, 280
mod, 14
d´evelopper, 152
factorisation, 157
mod`eles d’´eclairage, 124
modp, 15
mods, 15
modulo, 14–15
moyenne, 95
msolve, 60
mul, 176
niveaux d’´evaluation, 197
nombre d’op´erandes, 40
nombres ` a virgule flottante, 12–
14
pr´ecision par d´efaut, 12
vs. nombres rationnels, 9–11
nombres complexes, 14
nombres d´ecimaux, 12–14
nombres imaginaires, 14
nombres rationnels, 7–10
vs. nombres ` a virgule flot-
tante, 9–11
nommer, 18
nops, 23, 40, 184
normal, 37
expanded, 160
notation fl`eche, 19
notation indic´ee, 25
noyau, 79
num´erateurs, 183
num´erateurs, 39
numer, 39, 183
objet
graphique, 140
objets graphiques, 140
odeplot, 248, 264
oleplot, 262
op, 40, 184
op, 226
op´erandes
de listes et d’ensembles, 186
des expressions, 184
nombre de, 40, 184
s´electionner, 184
op´erateur idem, 8
optimisation
lin´eaire, 97
Order, 68, 251
packages
charger, 80
liste des, 81
utiliser des commandes dans
les, 79
PDEplot, 270–271
pi, 12
piecewise, 264
graphiques, 108
plex, 62
color
color, 113
plot
304 • Index
color, 112
discont, 109, 111
labels, 130
labelsfont, 130
legend, 131
linestyle, 112
numpoints, 115
style=hidden, 117
style=line, 114
symbol, 114
symbolsize, 114
title, 129, 194
plot3d, 116
axes, 131
grid, 123
lightmodel, 124
shading, 124
plots
animate, 125
animate3d, 128
arrow, 140
plotsetup, 288
plottools, 140
plusieurs assignations, 21
plusieurs courbes dans un gra-
phique, 111
plusieurs graphiques, 132
point-virgule, 28
pointplot, 113
polynˆ omes, 61–66
coefficients de, 63, 65
d´evelopper, 150
degr´e de, 65
division de, 63
factoriser, 154
regrouper les termes, 152
reste, 63
trier les ´el´ements, 164–166
PostScript, 289
pr´ecision
entiers, 8
print, 27
proc´edures
´evaluer, 197
afficher, 198
prolonger par continuit´e, 231
quo, 63
quotient
polynˆ omes, 63
remember tables, 232
r´esultats, exacts vs. approxima-
tifs, 9
r´esoudre
ensembles d’´equations, 45
ensembles de variables, 45
et v´erifier, 47–49
in´egalit´es, 49
modulo m, 60
num´eriquement, 56
r´ecurrences, 61
solutions enti`eres, 60
syst`emes d’´equations, 46, 49
rationalize, 157
read, 277
relations accessoires, 33, 41, 192
relations de r´ecurrence, 61
rem, 63
remove, 177
restart, 280
reste de polynˆ omes, 63
retarder l’´evaluation, 201
retirer des hypoth`eses, 171
rhs, 39, 182
rootlocus, 139
RootOf, 55, 187
supprimer les occurrences
de, 55
Roots, 89
rotate, 142
Index • 305
RowSpace, 92
rsolve, 61
RTF, 287
Rule, 86–89
s´electionner
dans des listes et des en-
sembles, 176
des constantes r´eelles, 214
des sous-expressions, 184,
187
op´erandes, 184
s´eries, 245
convertir en polynˆ omes, 194
s´eries de Taylor, 193, 215, 227,
251, 253
s´eparateurs de commandes, 28
sauvegarder
listes de nombres, 278
matrices, 278
tableaux de nombres, 278
save, 279
select, 176
has, 188
hastype, 188
realcons, 214
type, 188
selectremove, 177
semilogplot, 136
seq, 201, 252
seq, 175
series, 68
simplex, 97
simplifications, 32–35
au moyen des relations acces-
soires, 33, 41
sp´ecifier les r`egles, 33
simplify, 33, 41, 161–164
au moyen des relations acces-
soires, 163, 192
avec hypoth`eses, 163
singularit´es, graphiques, 109
NewtonQuotient, 210
solutions
multiples, 49
param´etriques, 46
solve, 219
vs. factor, 65
sommes de Riemann, 89, 228
sort, 62, 164–166, 179
sous-expressions, 40
spacecurve, 138
specfunc, 189
sph`eres, 120
sphere, 141
sphereplot, 119
spirales, 107, 123
sqrt, 11
startinit, 250
stats, 94
stellate, 143
Student
Calculus1, 86–91
subs, 29, 191, 192
subsop, 193
substitutions, 29, 190
suites d’expressions, 20
sum, 201
supprimer l’affichage du r´esultat,
28
tableaux, 26
´evaluer, 30, 197
choisir les ´el´ements, 28
correspondances, 38
imprimer, 27
tables, 30
´evaluer, 197
tables de rappel, 232
Tangent, 89
tangente
tracer le graphique, 89
306 • Index
tests de primalit´e, 8
T
E
X, 280
texte Maple, 283
texte, exporter, 282
textplot, 134
textplot3d, 134
titres
de graphiques, 129, 194, 207
tourner des graphiques tridimen-
sionnels, 116
trac´e adaptatif de graphiques,
115
transform´ees de Laplace, 238,
242
inverse, 243
translate, 142
Transpose, 276
triangle de Pascal, 175
trier
d´efinir une relation d’ordre,
180
des listes, 179
des polynˆ omes, 62
en ordre lexicographique, 62,
166, 179
en ordre num´erique, 179
les ´el´ements d’une expres-
sion, 164–166
par degr´e total, 165
par longueur, 181
tubeplot, 138
type, 177, 188
specfunc, 189
types de donn´ees, 20
unapply, 51, 211
Understand, 87
variables locales, ´evaluer, 200
vecteurs, 92
transpos´ee de, 92
verboseproc, 199
whattype, 184
XML, 288
zip, 178

ii •

Waterloo Maple Inc. 57 Erb Street West Waterloo, ON N2L 6C2 Canada

Maple et Maple 8 sont des marques d´pos´es de Waterloo Maple Inc. e e c 2002, 2001, 2000, 1998, 1996 Waterloo Maple Inc. Tous droits r´serv´s. La reproduction ou la traduction, mˆme partielle, e e e e e e par quelque proc´d´ que ce soit, est interdite sans l’autorisation ´crite du e ` d´tenteur des droits d’auteur, a l’exception de courts extraits en rapport avec un compte rendu ou une analyse savante. L’utilisation en relation avec quelque forme de stockage et de recherche d’information, d’adaptae e tion ´lectronique, de logiciel d’ordinateur, ou avec toute autre m´thode e e semblable ou diff´rente, connue ou conue ult´rieurement, est interdite. L’utilisation de noms descriptifs g´n´raux, de noms d´pos´s, de e e e e marques de commerce, etc., dans la pr´sente publication, mˆme s’ils ne e e sont pas express´ment d´sign´s, n’est pas une indication que de tels noms, e e e e en vertu de la Loi sur les marques de commerce, peuvent cons´quemment ˆtre librement employ´s par quiconque. e e Imprim´ au Canada e ISBN 1-894511-33-6

Table des mati`res e

1 Introduction ` Maple a 1.1 Les autres manuels . . . . . . . . . . . . . . . . . . . . . . 2 Math´matiques de base avec Maple e 2.1 Introduction . . . . . . . . . . . . . . . . . . . . . . . . . . 2.2 Calculs num´riques . . . . . . . . . . . . . . . . . . . . . . e Calculs sur des entiers . . . . . . . . . . . . . . . . . . . . Arithm´tique exacte – Rationnels, irrationnels et constantes e Approximations a virgule flottante . . . . . . . . . . . . . ` Arithm´tique avec des nombres sp´ciaux . . . . . . . . . . e e Fonctions math´matiques . . . . . . . . . . . . . . . . . . e 2.3 Calculs symboliques de base . . . . . . . . . . . . . . . . . 2.4 Affecter des noms a des expressions . . . . . . . . . . . . . ` 2.5 Les principaux types d’objets Maple . . . . . . . . . . . . Les suites d’expressions . . . . . . . . . . . . . . . . . . . Les listes . . . . . . . . . . . . . . . . . . . . . . . . . . . . Les ensembles . . . . . . . . . . . . . . . . . . . . . . . . . Les op´rations sur les ensembles et les listes . . . . . . . . e Les tableaux . . . . . . . . . . . . . . . . . . . . . . . . . Les tables . . . . . . . . . . . . . . . . . . . . . . . . . . . Les chaˆ ınes . . . . . . . . . . . . . . . . . . . . . . . . . . 2.6 La manipulation d’expressions . . . . . . . . . . . . . . . . La commande simplify . . . . . . . . . . . . . . . . . . . La commande factor . . . . . . . . . . . . . . . . . . . . La commande expand . . . . . . . . . . . . . . . . . . . . La commande convert . . . . . . . . . . . . . . . . . . . . La commande normal . . . . . . . . . . . . . . . . . . . . La commande combine . . . . . . . . . . . . . . . . . . . . La commande map . . . . . . . . . . . . . . . . . . . . . . Les commandes lhs et rhs . . . . . . . . . . . . . . . . . iii

1 3 5 5 7 7 9 12 14 15 16 18 20 20 22 23 25 26 30 31 32 33 34 34 35 37 37 38 39

iv

Table des mati`res e

2.7

Les commandes numer et denom . . . . . . . . . . . . . Les commandes nops et op . . . . . . . . . . . . . . . Questions courantes sur la manipulation d’expressions Conclusion . . . . . . . . . . . . . . . . . . . . . . . .

. . . .

. . . .

39 40 41 43 45 45 47 49 50 51 53 55 56 57 60 60 60 61 61 62 64 65 65 67 73 79 81 81 86 91 93 94 97 99 101 101 103 105 108

3 Trouver des solutions 3.1 R´solution au moyen de solve . . . . . . . . e V´rifier les solutions . . . . . . . . . . . . . . e Restreindre les solutions . . . . . . . . . . . . Explorer les solutions . . . . . . . . . . . . . . La commande unapply . . . . . . . . . . . . . La commande assign . . . . . . . . . . . . . La commande RootOf . . . . . . . . . . . . . 3.2 R´soudre num´riquement : fsolve . . . . . . e e Les limites de solve . . . . . . . . . . . . . . 3.3 D’autres solveurs . . . . . . . . . . . . . . . . Trouver des solutions enti`res . . . . . . . . . e Trouver des solutions modulo m . . . . . . . R´soudre des relations de r´currence . . . . . e e 3.4 Les polynˆmes . . . . . . . . . . . . . . . . . o Tri et regroupement . . . . . . . . . . . . . . Op´rations math´matiques . . . . . . . . . . e e Coefficients et degr´s . . . . . . . . . . . . . . e Recherche de racines et factorisation . . . . . 3.5 Le calcul diff´rentiel . . . . . . . . . . . . . . e 3.6 Les ´quations diff´rentielles : dsolve . . . . . e e 3.7 L’organisation de Maple . . . . . . . . . . . . 3.8 Les packages Maple . . . . . . . . . . . . . . . Liste des packages . . . . . . . . . . . . . . . Le package Student Calculus1 (une variable) . Le package LinearAlgebra . . . . . . . . . . . Le package Matlab . . . . . . . . . . . . . . . Le package Statistics . . . . . . . . . . . . . . Le package d’optimisation lin´aire . . . . . . e 3.9 Conclusion . . . . . . . . . . . . . . . . . . . 4 Tracer des graphiques 4.1 Graphiques en deux dimensions Les graphiques param´triques . e Les coordonn´es polaires . . . . e Les fonctions discontinues . . .

. . . . . . . . . . . . . . . . . . . . . . . . . . . . .

. . . . . . . . . . . . . . . . . . . . . . . . . . . . .

. . . . . . . . . . . . . . . . . . . . . . . . . . . . .

. . . . . . . . . . . . . . . . . . . . . . . . . . . . .

. . . . . . . . . . . . . . . . . . . . . . . . . . . . .

. . . . . . . . . . . . . . . . . . . . . . . . . . . . .

. . . . . . . . . . . . . . . . . . . . . . . . . . . . .

. . . .

. . . .

. . . .

. . . .

. . . .

. . . .

. . . .

. . . .

. . . .

. . . .

. . . .

. . . .

. . . .

. . . .

. . . .

Table des mati`res e

• v

4.2

4.3

4.4 4.5 4.6 4.7 4.8 4.9

Graphiques multiples . . . . . . . . . . . . . . Tracer des points . . . . . . . . . . . . . . . . Raffiner des graphiques . . . . . . . . . . . . Graphiques en trois dimensions . . . . . . . . Les graphiques param´triques . . . . . . . . . e Les coordonn´es sph´riques . . . . . . . . . . e e Les coordonn´es cylindriques . . . . . . . . . e Raffiner des graphiques . . . . . . . . . . . . Mod`les de coloriage et d’´clairage . . . . . . e e L’animation . . . . . . . . . . . . . . . . . . . L’animation en deux dimensions . . . . . . . L’animation en trois dimensions . . . . . . . . Annoter des graphiques . . . . . . . . . . . . Les graphiques composites . . . . . . . . . . . Placer du texte dans les graphiques . . . . . . Quelques graphiques particuliers . . . . . . . Manipuler des objets graphiques . . . . . . . Code des graphiques des planches en couleurs Conclusion . . . . . . . . . . . . . . . . . . .

. . . . . . . . . . . . . . . . . . .

. . . . . . . . . . . . . . . . . . .

. . . . . . . . . . . . . . . . . . .

. . . . . . . . . . . . . . . . . . .

. . . . . . . . . . . . . . . . . . .

. . . . . . . . . . . . . . . . . . .

. . . . . . . . . . . . . . . . . . .

111 113 115 116 118 119 121 123 124 125 125 128 129 132 134 135 140 145 147 149 149 150 152 154 157 158 159 161 163 163 164 166 168 168 172 173 174 176 178 179

5 L’´valuation et la simplification e 5.1 Manipulations math´matiques . . . . . . . . . . . . . . e D´velopper des polynˆmes en sommes . . . . . . . . . e o Regrouper les coefficients de mˆme degr´ . . . . . . . . e e Factoriser des polynˆmes et des fonctions rationnelles o Supprimer des exposants rationnels . . . . . . . . . . . Combiner des termes . . . . . . . . . . . . . . . . . . . e Forme normale factoris´e . . . . . . . . . . . . . . . . Simplifier des expressions . . . . . . . . . . . . . . . . Simplification avec des hypoth`ses . . . . . . . . . . . e Simplification au moyen des relations accessoires . . . Trier des expressions alg´briques . . . . . . . . . . . . e Conversion entre diff´rentes formes . . . . . . . . . . . e 5.2 Les hypoth`ses . . . . . . . . . . . . . . . . . . . . . . e La commande assume . . . . . . . . . . . . . . . . . . La commande assuming . . . . . . . . . . . . . . . . . 5.3 Manipulations structurelles . . . . . . . . . . . . . . . Appliquer une fonction a une liste ou un ensemble . . ` Choisir des ´l´ments dans une liste ou un ensemble . . ee Combiner deux listes . . . . . . . . . . . . . . . . . . . Trier des listes . . . . . . . . . . . . . . . . . . . . . .

. . . . . . . . . . . . . . . . . . . .

. . . . . . . . . . . . . . . . . . . .

vi

Table des mati`res e

5.4

5.5

Les parties d’une expression . . . . . . . . . . . . . . . . . La substitution . . . . . . . . . . . . . . . . . . . . . . . . Changer le type d’une expression . . . . . . . . . . . . . . Les r`gles d’´valuation . . . . . . . . . . . . . . . . . . . . e e Niveaux d’´valuation . . . . . . . . . . . . . . . . . . . . . e ´ Evaluation du dernier nom . . . . . . . . . . . . . . . . . ´ Evaluation a un niveau . . . . . . . . . . . . . . . . . . . . ` Commandes avec des r`gles sp´ciales d’´valuation . . . . . e e e Empˆcher l’´valuation d’une expression . . . . . . . . . . e e Utiliser les variables entour´es de guillemets comme argue ments de fonctions . . . . . . . . . . . . . . . . . . Concat´nation de noms . . . . . . . . . . . . . . . . . . . e Conclusion . . . . . . . . . . . . . . . . . . . . . . . . . .

182 190 193 196 196 197 200 200 201 204 205 207 209 209 209 215 227 231 235 236 251 255 256 261 266 266 268 269 271 273 273 274 276 278 278 279 280 282

6 Exemples tir´s du calcul diff´rentiel e e 6.1 Calcul diff´rentiel ´l´mentaire . . . . . . . . . . . . . . . e ee La d´riv´e . . . . . . . . . . . . . . . . . . . . . . . . . . e e Une approximation de Taylor . . . . . . . . . . . . . . . L’int´grale . . . . . . . . . . . . . . . . . . . . . . . . . . e D´riv´es partielles mixtes . . . . . . . . . . . . . . . . . e e ´ 6.2 Equations diff´rentielles ordinaires . . . . . . . . . . . . e La commande dsolve . . . . . . . . . . . . . . . . . . . Un exemple : les s´ries de Taylor . . . . . . . . . . . . . e Lorsqu’une solution explicite est impossible a trouver . . ` Tracer le graphique d’´quations diff´rentielles ordinaires e e Coefficients discontinus d’une ´quation . . . . . . . . . . e ´ e e 6.3 Equations aux d´riv´es partielles . . . . . . . . . . . . . La commande pdsolve . . . . . . . . . . . . . . . . . . . e Changer la variable d´pendante dans une EDP . . . . . Tracer le graphique d’´quations aux d´riv´es partielles . e e e 6.4 Conclusion . . . . . . . . . . . . . . . . . . . . . . . . .

. . . . . . . . . . . . . . . .

7 Entr´es et sorties e 7.1 Lire des fichiers . . . . . . . . . . . . . . . . . . . . . . . . Lire des colonnes de nombres depuis un fichier . . . . . . Lire des commandes depuis un fichier . . . . . . . . . . . . ´ 7.2 Ecrire des donn´es dans un fichier . . . . . . . . . . . . . e ´ Ecrire des colonnes de donn´es num´riques dans un fichier e e Sauvegarder des expressions au format interne de Maple . A Convertir au format L TEX . . . . . . . . . . . . . . . . . . 7.3 Exporter des feuilles compl`tes . . . . . . . . . . . . . . . e

. . . . . . . . . . . . . . 292 Comment d´marrer le package Maplets . . . . . . . . . . . . 293 e Comment appeler une maplet a partir d’une feuille Maple 293 ` Comment fermer une maplet . . . . . . . . . . . . . 295 8. . . . . . . . . . . . . . . . . . . . . .10 Conclusion . . . . . . . 294 e Comment arrˆter puis red´marrer une maplet . 294 Comment utiliser les Maplets et la fenˆtre Maple (modalit´)294 e e Comment activer la fenˆtre d’une maplet . . . . . . . . . . XML . .Table des mati`res e • vii 7. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 296 . . . . . . . . . . A L TEX . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 295 e e Comment utiliser les raccourcis de l’interface graphique . . . . . 295 Listes d´roulantes . . Conclusion . .1 8. . . . . . . . 282 283 284 285 287 288 288 290 maplets 291 Exemple de maplet . .7 8. . . . . . . . . . .2 8. . . . . . . . . . . . . . . Imprimer des graphiques . . . . . . . . HTML et HTML avec MathML RTF . . . . . . . .6 8.8 8. . . . . . . . . 295 e La barre d’espacement et la touche Tab . . . .4 7. . . . . . . . . . . . . .5 8.9 Texte . . . . . . . . . . . . . . . . . . . . Texte Maple . . . . . .3 8. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .5 8 Les 8. . . . . 291 Terminologie . . . . . .4 8. . . . . . . . . . . . . . . . . . . . .

e e e Les utilisateurs de Maple ont trouv´ plusieurs mani`res d’utiliser son e e langage et ses feuilles. e Cette capacit´ symbolique permet a Maple de calculer des solutions e ` analytiques exactes a de nombreux probl`mes math´matiques incluant ` e e syst`mes d’´quations. Une feuille est un document flexible permettant d’explorer des id´es math´matiques et de cr´er des rapports complexes. Les chercheurs de plusieurs domaines consid`rent ´galement Maple e e comme un outil essentiel a leur travail. En compl´ment a ces op´rations symboliques. leurs c a ee chiffriers et mˆme leurs langages de programmation tel FORTRAN. une vaste e e e ` e gamme de routines graphiques facilite la visualisation de donn´es math´e e matiques complexes . et un lane e e gage de programmation complet et accessible permet le d´veloppement sur e mesure de nouvelles fonctions et applications. Maple est en effet tout indiqu´ pour ` e 1 . Ces e utilisateurs gagnent en rapidit´ dans la r´solution de probl`mes math´e e e e matiques courants et consignent les r´sultats de leurs calculs dans des e rapports techniques professionnels. e e sait ´galement manipuler les expressions et les symboles sous-jacents. En effet. On acc`de facilement a l’´tendue des fonctions math´matiques de e ` e e Maple par son interface graphique prenant la forme de feuilles (worksheets ). des algorithmes num´riques fournissent des r´ponses e e approxim´es aux probl`mes ne poss´dant pas de solution exacte.1 Introduction ` Maple a On appelle le logiciel Maple un syst`me de calcul symbolique. tout en demeurant capable d’´valuer des expressions num´riques. qui requi`rent des valeurs num´riques pour toutes leurs variables. leurs calculatrices. Les ing´nieurs et les professionnels dans des industries aussi vari´es e e que l’agriculture et l’a´rospatiale utilisent Maple comme un outil puissant e rempla¸ant ` la fois leurs manuels de r´f´rence. ´voquant e e ainsi sa capacit´ ` manipuler l’information de mani`re symbolique ou e a e alg´brique. contrairement aux logiciels math´matiques stane e dard. ´quations diff´rentielles et probl`mes e e e e e e d’alg`bre lin´aire. e e Maple. int´grales.

et permet le calcul et le trac´ e e e de graphiques sur demande. mais ´galement faciles a mettre a jour. les styles font clairement ressortir e e ee les mots cl´s et les titres . les documents Maple peuvent ˆtre e structur´s en utilisant des outils modernes tels les styles. leurs ´tudiants ` e e peuvent ainsi se concentrer sur les concepts fondamentaux. e La premi`re cat´gorie consiste en l’utilisation de Maple comme d’un e e environnement interactif de r´solution de probl`mes. e e e Son caract`re symbolique ´largit grandement l’´ventail des probl`mes e e e e qu’ils peuvent ainsi traiter. cependant. Les professeurs emploient Maple en classe. structur´s et dynamiques ou de modifier une ´quation et d’ace e tualiser sa solution automatiquement. son interface documente les ´tapes de e e e sa recherche d’une solution. Plusieurs types de documents peuvent profiter des caract´ristiques e des feuilles Maple. il est facile de les traduire en d’autres formats comme A L TEX. RTF ou HTML. Elle permet aussi de modifier ais´ment l’une e de ces ´tapes. e La seconde cat´gorie utilise Maple en tant que syst`me de cr´ation e e e de documents techniques. ou mˆme d’en ins´rer une nouvelle. e e lorsqu’on travaille sur un probl`me. cr´ant ainsi des feuilles qui sont non seulee ment claires et faciles a cr´er. deux grandes cat´gories d’utilisation dominent. Il est en effet possible de cr´er des documents e interactifs. Traditionnellement. Maple permet a son e ` utilisateur de se concentrer sur de beaucoup plus grands probl`mes en e le lib´rant d’erreurs m´caniques .2 • Chapitre 1: Introduction ` Maple a la formulation. Par exemple. Ces caract´ristiques facilitent la r´daction de rapports e e ou mˆme d’ouvrages math´matiques et sont aussi appropri´es pour la e e e cr´ation et la pr´sentation d’expos´s. la division en souse e e sections cache des sections arides et riches en d´tails qui peuvent ˆtre e e distrayantes aux yeux de l’observateur . l’essai d’une m´thode de r´solution e e e n´cessite parfois plusieurs heures et plusieurs pages. Chacun utilise Maple d’une mani`re toute personnelle selon ses bee soins . Le langage math´matique naturel e de Maple facilite l’entr´e des ´quations. ` e e ` ` Puisque les composantes des feuilles sont directement associ´es a la struce ` ture du document. Que ce soit pour le e e e d´veloppement d’un nouveau mod`le math´matique ou pour l’analyse e e e d’une strat´gie financi`re. De plus. les hyperliens autorisent la cr´ation de r´f´rences dynamiques qui am`nent le lecteur aux pages renfermant de l’information e . la r´solution et l’exploration de mod`les math´matiques. la division en e sous-sections et les hyperliens. Plutˆt que de e o s’astreindre a des manipulations alg´briques fastidieuses. facilement et efficacement. il est possible d’en apprendre beaucoup sur e e un probl`me. ravivant l’enseignement traditionnel au coll`ge et a l’universit´ en introduisant des probl`mes e ` e e et des exercices qui exploitent l’interactivit´ du logiciel.

Ces guides e peuvent toutefois etre achet´s chez des libraires sp´cialis´s ou directement aupr`s de e e e e Waterloo Maple Inc. mais ´galement sur le trac´ de graphiques. la cr´ation d’animations e e e et l’exportation de feuilles en d’autres formats.1. le syst`me d’aide de Maple se r´v`le plus pratique que tout autre e e e texte traditionnel. la nature interactive de Maple permet de calcue ler et de r´pondre a des questions durant une pr´sentation. En effet. e e 1. 1 . coller et ex´cuter imm´diatement. Il discute syst´mati` e quement des concepts cl´s et construit un cadre d’apprentissage qui vous e guidera dans votre utilisation de l’interface et du langage Maple. Ce livre constitue votre introduction a Maple. Enfin. Ces quelques concepts simples vous permettront e d’utiliser Maple a son meilleur. Ce manuel vous donnera un aper¸u des fonctionnalit´s de Maple. On peut ainsi e ` e clairement et efficacement d´montrer pourquoi une m´thode de r´solution e e e a priori acceptable s’av`re en fait inappropri´e.1 Les autres manuels • 3 compl´mentaire. Plus important encore. ` Consid´rez ce livre d’abord comme un guide . Vous trouverez ´galement des exemples que vous poue vez copier. Une e ` attention particuli`re est plac´e non seulement sur la recherche de solue e tions. et introduisant les obe e jets Maple. ou pourquoi une modifie e cation a un processus de manufacturation entraˆ des pertes ou engendre ` ıne des profits. le Guide d’introduction a la programmation (Maple 8 Introductory Program` ming Guide) et le Guide de programmation avanc´e (Maple 8 Advanced e 1. Programming Guide) Le Guide de prise en main (Getting Started Guide) contient une introduction a l’interface graphique et un tutoriel r´sumant l’utilisation ` e La version ´tudiante n’inclut pas les deux guides de programmation. les commandes et les m´thodes mises a votre disposition. d´crivant a c e e ` la fois ses capacit´s symboliques et num´riques.1 Les autres manuels Trois autres manuels (en anglais) d´crivent le fonctionnement de Maple : e le Guide de prise en main (Maple 8 Getting Started Guide). l’aide en ligne constie tuera votre manuel de r´f´rence. puisque l’on peut y rechercher ee de l’information de plusieurs mani`res et qu’il se trouve toujours accese sible. il pr´sente la philosophie et les m´thodes d’utilisation sugg´r´es par les e e ee concepteurs du syst`me.

la programmation num´rique. Enfin. les entr´es-sorties. les graphiques et le code e e compil´. e . sur le tour guid´ du logiciel (New User’s Tour ). le Guide de programmation avanc´e (Advanced Programming e Guide) couvre des concepts de programmation comme les modules. les structures de donn´es. A l’int´rieur. vous y trouverez de l’information supe pl´mentaire a l’intention des nouveaux utilisateurs au sujet du syst`me e ` e d’aide en ligne.4 • Chapitre 1: Introduction ` Maple a de Maple pour r´soudre des probl`mes math´matiques et cr´er des doe e e e ` cuments techniques. sur e les exemples de feuilles de travail ainsi que sur le site Web de Waterloo Maple. les boucles et les e m´canismes de d´cision. les entr´es-sorties. les proc´dures. Le Guide d’introduction a la programmation (Introductory Program` ming Guide) pr´sente les concepts fondamentaux de la programmation e sous Maple : les expressions. le d´bogage et e e e e e les Maplets.

1 Introduction Les calculs les plus simples dans Maple sont num´riques. Maple peut e fonctionner comme une calculatrice traditionnelle avec les entiers et les 5 .2 Math´matiques de base e avec Maple Ce chapitre commence par une discussion a propos des calculs num´riques ` e exacts avec Maple. du sujet sur lequel vous souhaitez obtenir plus d’information. Les chapitres subs´quents donneront a ces commandes ainsi e ` qu’` d’autres un traitement plus approfondi. vous pouvez utiliser le syst`me d’aide en ligne. Des renseignements sur les calculs symboliques de base et les commandes d’affectation suivent. ?commande 2. tapez simplement a l’invite Maple un ` ` point d’interrogation (?) suivi du nom de la commande ou. dans d’autres cas. Pour obtenir de e l’aide a propos d’une commande. ` e Vous tirerez le meilleur parti de ce livre en utilisant votre ordinateur pour esssayer les diff´rents exemples que vous rencontrerez au fil de votre e lecture. Ce chapitre explique les commandes n´cessaires pour commencer e a ` travailler. Les deux derni`res sections ´noncent les e e principaux types d’objets de base et donnent des instructions concernant la manipulation d’objets et les commandes les plus utiles a cet ´gard. qui diff`rent l´g`rement de ceux effectu´s par d’autres e e e e applications. a Si vous souhaitez comprendre davantage les rouages du syst`me e Maple.

5. 3 > 1 + 3/2. consid´rez cet exemple simple. 3 2 Remarquez que Maple effectue des calculs exacts avec des nombres e rationnels. > 1 + 2. Pour Maple. Maple peut faire beaucoup plus. 1 .6 • Chapitre 2: Math´matiques de base avec Maple e nombres a virgule flottante. et non 1. le nombre rationnel 3/2 et son approximation d´cimale 1. o Pour le moment. 5 2 > 2*(3+1/3)/(5/3-4/5). et non la virgule. Par exemple. Un point-virgule indique la fin de chaque calcul.5 sont deux objets e compl`tement diff´rents. Entrez l’expression en utilisant la syntaxe ` naturelle1 .8754/2.d. 1. e e La possibilit´ de repr´senter des expressions de mani`re exacte permet e e e a ` Maple de pr´server beaucoup plus d’information a propos de leur origine e ` et de leur structure. C’est donc le point. : Le logiciel Maple utilise la syntaxe anglo-saxonne pour la repr´sentation e des nombres d´cimaux.437700000 Bien entendu.t. l’origine et la structure d’un nombre comme N. Le r´sultat de 1 + 1/2 est 3/2. 100 13 > 2. qu’il faut utiliser pour e saisir de tels nombres. e > 1 + 1/2. comme vous pourrez le voir bientˆt.

2 Calculs num´riques e • 7 0. 72 > 5*3. Maple peut travailler non seulement avec des nombres rationnels. les ensembles. les polynˆmes sur un anneau ainsi que plusieurs autres constructions math´matiques. 60 . les variables. l’avantage en sera d’autant plus grand.3. N’oubliez pas de terminer chaque commande par un point-virgule. les ` o suites. Maple est un langage de programmation e complet contenant des proc´dures.2. 3 > 75 . Il peut manipuler les e entiers. des tableaux et d’autres structures de e donn´es.5235987758 est beaucoup moins ´vidente que pour une quantit´ exacte comme e e 1 π 6 Lorsque vous commencerez a travailler avec des expressions plus com` plexes. De plus. les nombres a virgule flottante. e 2. mais ´galement avec des expressions arbitraires.2 Calculs num´riques e Calculs sur des entiers Les calculs sur des entiers sont directs. > 1 + 2. 15 > 120/2.

8 •

Chapitre 2: Math´matiques de base avec Maple e

Maple peut ´galement travailler avec des nombres entiers arbitrairee ment grands. La limite pratique sur les entiers est d’environ 228 chiffres, en fonction principalement de la vitesse et des ressources de votre ordinateur. Maple n’´prouve aucun probl`me a calculer de grands entiers, e e ` compter le nombre de chiffres d’un nombre ou factoriser des entiers. Pour des nombres et d’autres types de donn´es qui s’´tendent sur plus d’une e e ligne a l’´cran, Maple utilise le caract`re (\) pour indiquer que le r´sultat ` e e e est continu. La barre oblique et la coupure de ligne doivent ˆtre ignor´es. e e
> 100!;

933262154439441526816992388562667004907\ 15968264381621468592963895217599993229\ 91560894146397615651828625369792082722\ 37582511852109168640000000000000000000\ 00000
> length(%);

158 La r´ponse indique le nombre de chiffres contenus dans le dernier e exemple. L’op´rateur idem (%) est tout simplement une notation abr´g´e e e e affichant le r´sultat pr´c´dent. Pour rappeler le deuxi`me ou le troisi`me e e e e e r´sultat pr´c´dent, utilisez respectivement %% et %%%. e e e
> ifactor(60);

(2)2 (3) (5) En plus de ifactor, Maple poss`de plusieurs commandes pour trae vailler avec des entiers permettant le calcul du plus grand commun diviseur (PGCD) de deux entiers, la division euclidienne et les tests de primalit´. Consultez les exemples ci-dessous ainsi que la table 2.1. e
> igcd(123, 45);

3
> iquo(25,3);

2.2 Calculs num´riques e

• 9

Tab. 2.1 – Commandes op´rant sur des entiers e Fonction abs factorial iquo irem iroot isqrt max, min mod surd Description valeur absolue d’une expression factorielle d’un entier quotient d’une division enti`re e reste d’une division enti`re e racine enti`re approxim´e d’un entier e e racine carr´e enti`re approxim´e d’un entier e e e maximum et minimum d’un ensemble d’entr´es e arithm´tique modulo e racine r´elle d’un entier e

8
> isprime(18002676583);

true

Arithm´tique exacte – Rationnels, irrationnels et constantes e
Une propri´t´ importante de Maple est sa capacit´ ` effectuer l’arithm´ee ea e tique rationnelle exacte, et ainsi de travailler avec des nombres rationnels (fractions) sans avoir a les r´duire a leurs approximations d´cimales. ` e ` e
> 1/2 + 1/3;

5 6 Maple g`re les nombres rationnels et produit un r´sultat exact. La e e e distinction entre des r´sultats exacts et approximatifs est importante. La facult´ d’effectuer des calculs exacts au moyen d’ordinateurs vous permet e de r´soudre une toute nouvelle gamme de probl`mes. e e Maple peut effecter des approximations en virgule flottante si n´cese saire. En fait, le logiciel peut travailler avec des nombres a virgule flottante ` de plusieurs milliers de chiffres pour des estimations pr´cises d’expressions e exactes.
> Pi;

10

Chapitre 2: Math´matiques de base avec Maple e

π
> evalf(Pi, 100);

3.1415926535897932384626433832795028841\ 97169399375105820974944592307816406286\ 208998628034825342117068 Il est important d’apprendre comment Maple distingue les repr´sene tations exactes des valeurs de leurs approximations d´cimales. e Voici un exemple de nombre rationnel (exact).
> 1/3;

1 3 Le nombre suivant est son approximation d´cimale (avec une pr´cision e e par d´faut de dix chiffres). e
> evalf(%);

0.3333333333 Ces r´sultats ne sont pas les mˆmes math´matiquement, et ne sont e e e pas non plus les mˆmes pour Maple. e Chaque fois que vous entrez un nombre sous forme d´cimale, e Maple le consid`re comme une approximation a virgule flottante. En e ` fait, la pr´sence d’un nombre d´cimal dans une expression force Maple a e e ` produire un r´sultat en virgule flottante, puisqu’il ne peut ˆtre certain e e de produire une solution exacte, mˆme a partir de donn´es partiellement e ` e exactes.
> 3/2*5;

15 2
> 1.5*5;

7.5

2.2 Calculs num´riques e

• 11

e Ainsi, il est recommand´ de n’utiliser des nombres d´cimaux que e lorsque vous souhaitez forcer Maple a travailler avec des expressions ` non exactes. Vous pouvez saisir des quantit´s exactes en utilisant la repr´sentation e e symbolique, comme π, comparativement a 3.14. Maple traite les nombres ` irrationnels comme des quantit´s exactes. Voici comment repr´senter la e e racine carr´e de 2 dans Maple. e
> sqrt(2);

2

Voici un autre exemple de racine carr´e. e
> sqrt(3)^2;

3 Maple connaˆ les constantes arithm´tiques standard comme π et la ıt e base des logarithmes naturels, e. Il travaille avec ces nombres comme avec des quantit´s exactes. e
> Pi;

π
> sin(Pi);

0 La fonction exponentielle est repr´sent´e par la fonction Maple exp. e e
> exp(1);

e
> ln(exp(5));

5 Le deuxi`me exemple peut paraˆ e ıtre ´trange. Souvenez-vous que e lorsque Maple produit une notation math´matique typographique , e il essaie de repr´senter les expressions math´matiques de la mani`re dont e e e

12

Chapitre 2: Math´matiques de base avec Maple e

vous les ´cririez vous-mˆme. Ainsi, vous entrez π comme Pi et Maple e e l’affiche comme π. Maple tient compte des majuscules et des minuscules ; soyez donc certain de les respecter en faisant r´f´rence a ces constantes. Les noms ee ` Pi, pi et PI ne sont pas ´quivalents ! Les noms Pi et PI sont employ´s e e pour afficher respectivement les lettres grecques minuscule et majuscule π et Π. Pour obtenir davantage d’information sur les constantes de Maple, tapez ?constants ` l’invite. a

Approximations ` virgule flottante a
Mˆme si Maple pr´f`re travailler avec des valeurs exactes, il peut retoure ee ner une approximation d´cimale d’une longueur maximale de 238 chiffres e lorsque cela lui est demand´. e Dix ou vingt chiffres exacts semblent ad´quats pour la plupart des e situations ; cependant, deux probl`mes particuliers limitent s´rieusement e e l’utilit´ d’un tel syst`me. e e Tout d’abord, en soustrayant deux nombres d´cimaux d’ordres de e grandeur presque identiques, l’erreur relative de la diff´rence peut ˆtre e e tr`s grande : si chacun des deux nombres originaux sont identiques pour e leurs dix-sept premiers chiffres (sur vingt), leur diff´rence est un nombre e de vingt chiffres dont on ne connaˆ que trois chiffres significatifs ! Dans ıt ce cas, une pr´cision de quarante chiffres serait n´cessaire pour obtenir en e e fin de calcul un r´sultat pr´cis a environ vingt chiffres significatifs. e e ` Ensuite, la forme math´matique d’un r´sultat est plus concise, come e pacte et utile que sa valeur num´rique. Par exemple, une fonction expoe nentielle fournit plus d’information sur la nature d’un ph´nom`ne qu’un e e grand ensemble de nombres de vingt chiffres significatifs. Une description analytique exacte peut ´galement d´terminer le comportement d’une e e fonction en extrapolant a des r´gions pour lesquelles aucune donn´e n’est ` e e disponible. La commande evalf convertit une expression num´rique exacte en un e nombre d´cimal. e
> evalf(Pi);

3.141592654 Par d´faut, Maple calcule le r´sultat a l’aide de dix chiffres de pr´cie e ` e sion ; vous pouvez cependant sp´cifier un nombre arbitraire de chiffres. Il e suffit de le sp´cifier apr`s l’expression num´rique en utilisant la notation e e e suivante.

2.2 Calculs num´riques e > evalf(Pi, 200);

• 13

3.1415926535897932384626433832795028841\ 97169399375105820974944592307816406286\ 20899862803482534211706798214808651328\ 23066470938446095505822317253594081284\ 81117450284102701938521105559644622948\ 9549303820 Vous pouvez ´galement forcer Maple a effectuer tous ses calculs avec e ` e e des approximations d´cimales en incluant au moins un nombre d´cimal dans chaque expression. Les nombres a virgule flottante sont conta` e gieux : si une expression contient ne serait-ce qu’un seul nombre d´cimal, Maple ´value l’expression enti`re en arithm´tique a virgule flottante. e e e `
> 1/3 + 1/4 + 1/5.3;

0.7720125786
> sin(0.2);

.1986693308 Alors que le second argument optionnel de la commande evalf d´termine le nombre de chiffres a afficher pour ce calcul en particulier, la e ` variable sp´ciale Digits fixe le nombre de chiffres d´cimaux pour tous les e e calculs subs´quents. e
> Digits := 20;

Digits := 20
> sin(0.2);

0.19866933079506121546 Digits est maintenant fix´ ` vingt, le nombre de chiffres que Maple ea utilisera maintenant pour chaque ´tape d’un calcul. Sur ce plan, Maple e fonctionne comme une calculatrice ou un ordinateur classique. Souvenezvous que, lorsque vous ´valuez une expression num´rique compliqu´e, des e e e erreurs peuvent s’accumuler et rendre le r´sultat final moins pr´cis que e e

Par exe emple. > convert(247. . I est le symbole par d´faut de Maple pour la racine carr´e de e √ e moins un. une ligne de nombres comme 221 peut devenir ambigu¨. 3). Arithm´tique avec des nombres sp´ciaux e e Maple peut ´galement travailler avec des nombres complexes. 5 1 + I 13 13 Vous pouvez aussi travailler sous d’autres bases avec d’autres syst`mes e de nombres. 1] Maple retourne une conversion en base enti`re comme une liste de e nombres . [2.14 • Chapitre 2: Math´matiques de base avec Maple e les vingt chiffres qu’il contient. Cependant. 11110111 > convert(1023. En g´n´ral. Maple est e tr`s flexible si une grande pr´cision d´cimale est importante dans votre e e e travail. binary).2*I). il est en g´n´ral de e e e e e mise d’en augmenter la valeur pour obtenir plus de pr´cision. sp´cialement pour de grandes bases. Remarquez que Maple liste e e les chiffres dans l’ordre. a > (2 + 5*I) + (1 . base. Maple effectue ´galement l’arithm´tique dans des anneaux finis et des e e corps. 2. du plus significatif au moins significatif. hex). c’est-`-dire I = −1. e e le r´sultat final d´pendant du probl`me. d´terminer la valeur que doit e e e prendre Digits pour obtenir une pr´cision donn´e n’est pas chose facile. 3FF > convert(17. 3 + 4I > (1 + I)/(3 . autrement.I).

o > ln(Pi). −1 > modp(27. 0 Lorsque Maple ne peut trouver une forme plus simple. Fonctions math´matiques e Maple connaˆ toutes les fonctions math´matiques standard (consultez la ıt e table 2. e Maple peut ´galement travailler avec les entiers gaussiens. Tapez ?GaussInt pour plus d’information sur e ces commandes.2.4).2 pour une liste partielle). 3 La valeur par d´faut de la commande mod est la repr´sentation posie e tive.2 Calculs num´riques e > 27 mod 4. ln(π) . il laisse l’expression telle quelle plutˆt que de la convertir en une forme inexacte. mais vous pouvez changer cette option (consultez l’´cran d’aide ?mod e pour plus de d´tails). > sin(Pi/4). Le package e GaussInt contient une trentaine de commandes permettant de travailler avec ces nombres sp´ciaux. 1√ 2 2 > ln(1).4). > mods(27. • 15 3 Les repr´sentations sym´triques et positives sont ´galement dispoe e e nibles.

3 Calculs symboliques de base Maple sait comment travailler avec des inconnues et des expressions les contenant. etc. LegendreKc1. erfc Heaviside Dirac MeijerG Zeta LegendreKc. arctan. LegendrePic. BesselK. arccos. LegendrePic1 hypergeom Description fonctions trigonom´triques e fonctions trigonom´triques e hyperboliques fonctions trigonom´triques e inverses fonction exponentielle logarithme naturel logarithme en base 10 racine carr´e alg´brique e e arrondir a l’entier le plus pr`s ` e tronquer a la partie enti`re ` e partie fractionnaire fonctions de Bessel fonction binomiale fonctions d’erreur et d’erreur compl´mentaire e fonction de Heaviside fonction delta de Dirac fonction G de Meijer fonction zeta de Riemann int´grales elliptiques de Legendre e fonction hyperg´om´trique e e 2. etc.16 • Chapitre 2: Math´matiques de base avec Maple e Tab. cosh. cos. arcsin. sinh.2 – Quelques fonctions math´matiques connues de Maple e Fonction sin. LegendreEc. BesselJ. exp ln log[10] sqrt round trunc frac BesselI. etc. . tan. > (1 + x)^2. LegendreEc1. tanh. 2. BesselY binomial erf.

cos(x) > Sum(n^2. %.2. (1 + x)2 e Comme il est mentionn´ ` la section Calculs num´riques de la page 7. 1 + 2 x + x2 > factor(%). ea l’op´rateur idem. e e e e e > Diff(sin(x).3 Calculs symboliques de base • 17 (1 + x)2 > (1 + x) + (3 .2*x). n2 n > value(%). est une notation abr´g´e de la commande pr´c´dente. d sin(x) dx > value(%). > expand((1 + x)^2). x). 4−x Remarquez que Maple simplifie automatiquement la seconde expression. n). Maple poss`de des centaines de commandes pour travailler avec des e expressions symboliques. 1 3 1 2 1 n − n + n 3 2 6 .

` > var := x. e ` e > eqs := x = y + 2. 10). var := x > terme := x*y. x− 1 5 1 1 1 3 x + x − x7 + x9 + O(x10 ) 6 120 5040 362880 Toutes les fonctions math´matiques mentionn´es dans la section e e pr´c´dente acceptent ´galement les inconnues comme arguments. x). eqs := x = y + 2 . nom := expression . x^2+x+1. 2+x Cr´ez une s´rie. Appliquez la syntaxe suivante.18 • Chapitre 2: Math´matiques de base avec Maple e Divisez un polynˆme en x par un autre. C’est pourquoi Maple vous e permet de nommer des objets. o > rem(x^3+x+1. e e e 2.4 Affecter des noms ` des expressions a Utiliser l’op´rateur idem ou taper une expression chaque fois que vous e souhaitez l’employer peut s’av´rer fastidieux. terme := x y Vous pouvez mˆme donner des noms a des ´quations. e e > series(sin(x). Vous pouvez affecter un nom a n’importe quelle expression Maple. x=0.

De plus. Cela indique a Maple comment ´valuer la fonce ` e ` ce point de votre tion lorsqu’elle apparaˆ dans les expressions Maple.. Maple utilise ces noms e e a ` des fins de classification interne.4 Affecter des noms ` des expressions a • 19 Sous Maple. 70 60 50 40 30 20 10 –4 –2 0 2 x 4 Vous en apprendrez davantage sur la commande plot au chapitre 4. f := x → x2 .2. Les noms polynomial. vous pouvez dessiner des graphiques simples au moyen de la commande plot. e e Vous pouvez d´finir vos propres fonctions a l’aide de la notation e ` fl`che (->) de Maple. > f := x -> x^2. x= -5. L’op´ration d’affectation (:=) peut ensuite associer le nom d’une fonce tion a la d´finition de cette fonction. L’expression suivante d´finit f comme ´tant e ` e e e la fonction mettre au carr´ . ´vitez e de commencer un nom par le caract`re soulign´ . e e e mais ils ne peuvent pas commencer par un nombre. A ıt lecture. f := x → 2 x2 − 3 x + 4 > plot (f(x).. RoOt_lOcUs_pLoT et value2 sont des noms Maple valides. > f := x -> 2*x^2 -3*x +4. test_data. les noms peuvent contenir n’importe quel caract`re ale phanum´rique en plus du caract`re soulign´ (underscore en anglais). tandis que sa d´finition de la fonction (utilisant la e notation fl`che) est a droite. tandis que 2ndphase (parce qu’il commence par un nombre) et x&y (parce que & n’est pas un caract`re alphanum´rique) sont des noms invalides. Le nom de la fonction se place a ` e ` gauche du signe :=.5).

les tables (tables ) et les chaˆ ınes (strings ). Error. 2. e e > 1. on obtient le carr´ de l’argument e e de f. en ´valuant f en un argument.14. Error. 4. 2. les tableaux (arrays ).20 • Chapitre 2: Math´matiques de base avec Maple e Puis. Maple affiche un message vous informant e e e e que le nom choisi est prot´g´. 3. e e > Pi := 3.5 Les principaux types d’objets Maple La pr´sente section examine les principaux types d’objets Maple. incluant e les suites d’expressions. 4 . 1. Si vous tentez d’assigner un objet a un e e e e ` nom qui est pr´d´fini ou r´serv´. Les suites d’expressions La structure de donn´es de base de Maple est la suite d’expressions . 3. 25 > f(y+1). 3}. les listes. les ensembles (sets ). e C’est un groupe d’expressions Maple s´par´es par des virgules. 2. > f(5). (y + 1)2 Tous les noms ne sont pas disponibles comme variables : Maple en a pr´d´fini et r´serv´ quelques-uns. attempting to assign to ‘set‘ which is protected 2. attempting to assign to ‘Pi‘ which is protected > set := {1.

w Une suite d’expressions n’est ni une liste. h := 3. pour une suite S. a3 . 4. 3. 6. 3.g. > a||b. g. l’op´ration e ` e e touche a chacun de ses ´l´ments.h := 3. y. e e Les suites permettent d’´tendre les capacit´s de plusieurs op´rations e e e de base de Maple. ab Lorsque vous appliquez la concat´nation a une s´quence. w. elle pr´serve l’ordre et la r´p´tition des ´l´ments. a2 . 6. 1. S := 1. 4 > a||S. a1 . L’op´rateur de concat´nation sous e e e Maple est le || .2. e e e e Par exemple. 2. et vous pouvez l’utiliser de la mani`re suivante.5 Les principaux types d’objets Maple > x. ni un ensemble. Par exemple : > f. 2. Les objets e e e ee respectent l’ordre dans lequel ils ont ´t´ entr´s et si un objet est entr´ deux ee e e fois. Vous remarquerez d’autres propri´t´s des suites a mesure que vous parcourrez ce manuel. Les suites ee ` sont souvent utilis´es pour construire d’autres objets complexes par des e op´rations comme la concat´nation. les deux copies demeurent dans la suite. a4 Vous pouvez aussi effectuer plusieurs assignations en utilisant des suites d’expressions. y. la concat´nation est une op´ration de e e base permettant de former des noms. 1 . Par exemple. f. C’est une structure de donn´es particuli`re qui poss`de ses caract´ristiques propres. • 21 x. vous pouvez ` ee ajouter a un nom a des suffixes form´s de chaque ´l´ment de S en ` e ee concat´nant a et S : e > S := 1. z. z. Ainsi.

2 x] > participants := [Simon. lettres := [a. Francois. data_list := [1. 3. Martin. Francois .a] et [a.a]. [a. c. e e ee Ainsi. 2.a.a. [b. Sylvain] Ainsi.c. e e > data_list := [1.c.b. une liste est une suite d’expressions encadr´e par des crochets.c]. x^2+3*x-1. e > [a. e Maple conserve l’ordre et la r´p´tition des ´l´ments dans une liste. a. c] . 2*x].a].c. Martin. 1 Les listes e Une liste est form´e en encadrant un nombre quelconque d’objets Maple (s´par´s par des virgules) par des crochets. [a.b. [a. 5]. 5] > polynomes := [x^2+3. c]. Kim. b.a] sont trois listes diff´rentes.b. [b. a]. a] La conservation de l’ordre vous permet de retrouver un ´l´ment paree ticulier d’une liste sans avoir a vous soucier d’un possible d´placement de ` e celui-ci.22 • Chapitre 2: Math´matiques de base avec Maple e > f. b. > lettres := [a. polynomes := [x2 + 3.c. [b. 3.b.c]. participants := [Simon. 4. Sylvain].b. 2. [a. x2 + 3 x − 1. 3 > h. 4. c. b.c]. Kim.

c}.5 Les principaux types d’objets Maple > lettres[2].0. Les ensembles Maple permet la gestion d’ensembles au sens math´matique du terme. {a. y. inconnues := {x. 10. y. 10} > inconnues := {x. • 23 b Utilisez la commande nops pour d´terminer le nombre total d’´l´e ee ments d’une liste.a. b.c. {a. {c. 1. c} Rappelez-vous que. > nops(lettres).b. z}.a}. L’ensemble suivant contient donc trois ´l´ments. 2. des virgules s´parent les e objets . 0. c}. e > data_set := {1. cependant. un ensemble est une suite d’expressions encadr´e par des accoe lades. c}. Ainsi. e Tout comme dans une suite ou dans une liste. {a. b. e ee et non deux. z} Ainsi.a}. {a. 0. 3 La section Les commandes nops et op de la page 40 traite en profondeur de cette commande et de ses usages. les trois ensembles suivants sont idene e tiques : > {a. les accolades d´signent l’objet en tant qu’ensemble.b. ni la r´p´tition des ´l´ments dans les e e ee ensembles : ces derniers poss`dent ainsi les mˆmes propri´t´s que leurs e e ee ´quivalents math´matiques.b. l’entier 2 est distinct de son approximation num´rique 2. 2}. data_set := {−1. b. pour Maple. .2. -1. Maple ne conserve ni l’ordre.

a} La commande nops compte le nombre d’´l´ments d’un ensemble.0} Les propri´t´s que revˆtent les ensembles font de ceux-ci des outils paree e ticuli`rement utiles dans Maple.b.a. tout ee comme pour une liste.1.b.0}. b.a}. > nombres := {0. L’op´ration de correspondance (mapping ) vous permet d’applie quer une fonction simultan´ment a tous les ´l´ments de n’importe quelle e ` ee structure. nombres := {0. > map(g. incluant les op´rateurs e e de base de l’intersection et de l’union en utilisant la notation intersect et union. {1. e e Maple fournit plusieurs op´rateurs ensemblistes.2. g( π). Pi/3. {a. π. tout comme ils le sont en math´matiques.3. Pi/2.d. g( π)} 3 2 . 2 Pour plus d’information. Pi}. π} 3 2 1 1 {g(0).24 • Chapitre 2: Math´matiques de base avec Maple e > {1. {1.c} union {c. 2. 2. Souvent utilis´e. d. la commande map s’av`re tr`s utile pour les ene e e sembles. > nops(%).y. nombres). 1 1 π. c.c} intersect {0. e} > {1. > {a. g(π). 2.e}. consultez la section Les commandes nops et op de la page 40. 2.

Sophie Maple reconnaˆ les ensembles et les listes vides (qui ne contiennent ıt aucun ´l´ment). u e ee e e > participants[2]. Sophie.2. • 25 {0. utilisez la notation indic´e ee e [n ] . nombres).5 Les principaux types d’objets Maple > map(sin. participants). data_set := {3. Josee] > member(Sophie. 5. 1. 7} > member(2. true > data_set := {5. false Pour choisir des ´l´ments depuis une liste. 6. . data_set). ` > participants := [JeanSebastien. a Les op´rations sur les ensembles et les listes e La commande member permet de v´rifier l’appartenance d’un objet a un e ` ensemble ou a une liste. participants := [JeanSebastien. Josee]. 1√ 3} 2 D’autres exemples d´montrant l’utilisation de map figurent dans la e ` section La commande map de la page 38 et Appliquer une fonction a une liste ou un ensemble ` la page 174. Sophie. 6. 7}. 3. o` n d´signe la position de l’´l´ment d´sir´ dans la liste. ee > empty_set := {}.

Chaque ´l´ment est toujours associ´ ` un e e e ee e a indice. 5}.3. 4. Vous pouvez ´galement d´finir ou e e e e modifier individuellement chacun des ´l´ments d’un tableau sans pour ee autant red´finir ce dernier enti`rement. 4} Les tableaux Les tableaux (arrays en anglais) sont une extension d’une autre structure de donn´es : la liste. de la commande union.3).. Supprimez des ´l´ments d’un ee ensemble par la commande minus. old _set := {2. 3. empty _list := [] Vous pouvez cr´er un nouvel ensemble a partir d’autres ensembles a e ` ` l’aide. 4} > new_set := old_set union {2. 5} > third_set := old_set minus {2. carres := array(1. les e indices peuvent ˆtre nuls ou n´gatifs.26 • Chapitre 2: Math´matiques de base avec Maple e empty _set := {} > empty_list := [].. Imaginez une liste comme un groupe d’´l´ments o` e ee u chacun est associ´ ` un nombre entier positif. La structure de tableau (array) est une g´n´ralisation de cette id´e. son indice. qui repr´sente ea e sa position dans la liste. par exemple. mais cet indice n’est pas forc´ment unidimensionnel. De plus. new _set := {2. > old_set := {2. 3. 3. e > carres := array(1. e e On doit d´clarer le tableau de mani`re que Maple connaisse le nombre e e de dimensions souhait´. 4} union {}. []) . 5}. third _set := {3.

D´finissez un tableau e e e de dimensions 3 × 3. 4. Pour afficher le contenu e ` du tableau.5 Les principaux types d’objets Maple • 27 Assignez des ´l´ments au tableau. vous devez utiliser une commande comme print. si vous pr´f´rez..1.3.. carres[2] := 2^2. > carres[2]. 8. carres 1 := 1 carres 2 := 4 carres 3 := 9 Ou. cubes := [1.3. 4 Vous devez d´clarer les tableaux a l’avance. []) . > carres. 9] Le tableau pr´c´dent ne poss`de qu’une dimension. Plusieurs commandes peuvent ˆtre ee e entr´es a la mˆme invite en autant que chacune d’entre elles se termine e ` e par le deux-points ou le point-virgule. ee e e > cubes := array( 1. [1. effectuez toutes ces op´rations en mˆme temps. [1. carres > print(carres).. Cependant. > carres[1] := 1.3.8.27] ). 27] Vous pouvez choisir un seul ´l´ment en utilisant la notation appliqu´e ee e aux listes. > pwrs := array(1. pwrs := array(1. en e e e g´n´ral.3. 1.. carres[3] := 3^2.3).. les tableaux peuvent en avoir plus d’une.2.

2 := 1 pwrs 1. 3 := 1 Poursuivez maintenant avec le reste du tableau.3] := 27:   1 1 1 2 4 8 3 9 27 Vous pouvez s´lectionner un ´l´ment en sp´cifiant a la fois sa rang´e e ee e ` e et sa colonne. pwrs[1.1].3. Ainsi. vous pouvez d´finir le tableau pwrs de la mani`re suie e vante : > pwrs2 := array( 1.3] := 8: pwrs[3.27]] ).. vous ee pouvez terminer chaque commande par le deux-points (:) plutˆt que par o le point-virgule habituel (. pwrs[1.1] := 3: > print(pwrs). [2. pwrs[2. tout comme le point-virgule.28 • Chapitre 2: Math´matiques de base avec Maple e Ce tableau est de dimension deux (deux ensembles d’indices). [3.3] := 1.2] := 4: pwrs[3. 1. > pwrs[2. utilisez e e e des listes imbriqu´es dans d’autres listes : cr´ez une liste dans laquelle e e chaque ´l´ment est une autre liste qui contient les ´l´ments d’une rang´e ee ee e du tableau. ee e e > pwrs[1. > pwrs[2.2] := 1. Le e deux-points.2] := 9: pwrs[2. Pour ce faire. 1 := 1 pwrs 1.8]. Assignez d’abord les ´l´ments de la premi`re rang´e. pour supprimer l’affichage du r´sultat. est un s´parateur de come mandes.3.9.). 8 Vous pouvez d´finir un tableau bidimensionnel et ses ´l´ments tout a e ee ` e ` ee e la fois en appliquant une m´thode similaire a celle qui a ´t´ employ´e pour l’exemple unidimensionnel montr´ pr´c´demment.4.3].1.. Si vous pr´f´rez.1] := 1. . [[1. pwrs 1.1] := 2: > pwrs[3.

2) = 6 (2. y =expr2.. expr := z 2 + 3 . ee Supposons que vous souhaitez remplacer chaque apparition du nombre 2 dans pwrs par le nombre 9.2. . 1. 2. 1. cependant. e > expr := z^2 + 3. 2) = 2 (1.[7.2.2.. 1.2. 1. 1.2. [[5.. Si vous ` le souhaitez.. utilisez la commande subs. 1.. Sa syntaxe de base est la suivante : subs( x =expr1.2. expr_principale ) Par exemple. Ainsi.[3. vous pouvez ´galement d´clarer les ´l´ments du tableau en e e ee mˆme temps que vous d´clarez le tableau lui-mˆme.6]. e e e > tableau3 := array( 1.   tableau3 := array(1. 1) = 1 (1. 2. 1) = 3 (1. 2) = 8 ]) Maple n’´tend pas automatiquement le nom d’un tableau a la e ` repr´sentation de tous ses ´l´ments. pour certaines commandes. 2. 2. 1) = 5 (2.. 2) = 4 (2. [ (1..2]. Pour effectuer des substitutions de ce genre.8]]] ).2. e ee vous devez sp´cifier que vous souhaitez effectuer une op´ration sur les e e ´l´ments.5 Les principaux types d’objets Maple • 29 1 1 1 2 4 8 pwrs2 := 3 9 27 Les tableaux ne sont pas limit´s ` deux dimensions . supposons que vous souhaitez remplacer z par x + y dans une ´quation. 1.4]]. > [[[1. ceux e a qui contiennent plus de deux dimensions sont difficiles a afficher. 1. 1) = 7 (2. ..

mais encore l’´valuation compl`te affiche ´galement e e e e les ´l´ments du tableau. e > subs( {2=9}. > evalm(pwrs). vous devez forcer Maple a ´valuer compl`tement le nom du `e e tableau tant pour ce qui est de ses composantes que pour ce qui regarde son nom.   1 1 1 9 4 8 3 9 27 Non seulement cette commande permet la substitution des ´l´ments ee comme il est souhait´. de la mˆme mani`re que grˆce ` la commande ee e e a a print.three=trois]). pwrs En effet. traduit := table([two = deux . et non seulement limit´s ` e e a des nombres entiers. one = un]) .   1 1 1 2 4 8 3 9 27 Les tables ` e Une table est une extension de tableau. > subs( {2=9}. pwrs ). A la diff´rence d’un tableau. evalm(pwrs) ). > traduit := table([one=un. three = trois .30 • Chapitre 2: Math´matiques de base avec Maple e > subs( {z=x+y}. en utilisant la commande d’´valuation de matrices evalm. les indices d’une table peuvent ˆtre quelconques. (x + y)2 + 3 Cependant. expr).two=deux. vous pourriez ˆtre d´¸u de d´couvrir que la commande e ec e suivante ne fonctionne pas.

2.5 Les principaux types d’objets Maple > traduit[two];

• 31

deux Mˆme si les tables semblent a premi`re vue revˆtir peu d’int´rˆt, e ` e e ee elles sont en fait des structures puissantes. Les tables vous permettent de travailler avec des notations naturelles dans vos structures de donn´es. e Par exemple, vous pouvez afficher les propri´t´s physiques de certains ee mat´riaux en utilisant une table Maple. e
> earth_data := table( [ mass=[5.976*10^24,kg], > radius=[6.378164*10^6,m], > circumference=[4.00752*10^7,m] ] );

earth_data := table([radius = [.6378164000 107 , m], circumference = [.4007520000 108 , m], mass = [.5976000000 1025 , kg ] ])
> earth_data[mass];

[.5976000000 1025 , kg ] Dans cet exemple, chacun des indices est un nom et chaque entr´e est e une liste. Ce n’est en fait qu’un exemple tr`s simple ; la plupart du temps, e des indices beaucoup plus g´n´raux sont pr´f´rables. Ainsi, vous pourriez e e ee construire une table dont les indices sont des formules alg´briques et dont e les valeurs sont les d´riv´es de ces formules. e e

Les chaınes
ee Une chaıne est un autre objet Maple cr´´ en encadrant un nombre quelconque de caract`res par des guillemets anglais. e
> "Ceci est une chaine.";

“Ceci est une chaine.” Les chaˆ ınes sont des unit´s indivisibles que l’on peut consid´rer comme e e des constantes : on ne peut leur assigner une valeur.
> "mon age" := 22; Error, invalid left hand side of assignment

32

Chapitre 2: Math´matiques de base avec Maple e

Comme les ´l´ments des listes ou des tableaux, on peut acc´der indiviee e duellement aux diff´rents caract`res d’une chaˆ en utilisant la notation e e ıne des crochets.
> mystr := "I ate the whole thing.";

mystr := “I ate the whole thing.”
> mystr[11..-2];

“whole thing” L’op´rateur de concat´nation (“||”) ou la commande cat sont utilis´s e e e pour joindre deux chaˆ ınes ensemble. La commande length, de son cˆt´, oe est employ´e pour d´terminer le nombre de caract`res dans une chaˆ e e e ıne.
> newstr := cat("I can’t believe ", mystr);

newstr := “I can’t believe I ate the whole thing.”
> length(newstr);

38 Il existe plusieurs autres commandes qui agissent sur des chaˆ ınes et ınes comme arguments. Pour d’autres d’autres encore qui prennent des chaˆ exemples, reportez-vous a l’´cran d’aide ?StringTools. ` e

2.6

La manipulation d’expressions

De nombreuses commandes Maple permettent la manipulation d’expressions. Il vous est ainsi possible de transformer les r´sultats de commandes e Maple en des formes famili`res, ou encore de manipuler vos propres exe pressions en des formes que Maple peut reconnaˆ ıtre. Dans cette section, vous apprendrez les commandes les plus couramment utilis´es ` cet effet. e a

2.6 La manipulation d’expressions

• 33

La commande simplify
Vous pouvez choisir cette commande pour appliquer des r`gles de simplie fication a une expression. Maple connaˆ certaines r`gles de simplification ` ıt e pour divers types d’expressions et de formes comme les fonctions trigonom´triques, les radicaux, les fonctions logarithmiques, les fonctions exe ponentielles, les puissances ainsi que plusieurs autres fonctions sp´ciales. e
> expr := cos(x)^5 + sin(x)^4 + 2*cos(x)^2 > - 2*sin(x)^2 - cos(2*x);

expr := cos(x)5 + sin(x)4 + 2 cos(x)2 − 2 sin(x)2 − cos(2 x)
> simplify(expr);

cos(x)5 + cos(x)4 Pour effectuer seulement un certain type de simplification, sp´cifiez le e type souhait´. e
> simplify(sin(x)^2 + ln(2*y) + cos(x)^2);

1 + ln(2) + ln(y)
> simplify(sin(x)^2 + ln(2*y) + cos(x)^2, ’trig’);

1 + ln(2 y)
> simplify(sin(x)^2 + ln(2*y) + cos(x)^2, ’ln’);

sin(x)2 + ln(2) + ln(y) + cos(x)2 Avec les relations accessoires (side relations ), vous pouvez ´galement appliquer vos propres r`gles de simplification. e e
> siderel := {sin(x)^2 + cos(x)^2 = 1};

siderel := {sin(x)2 + cos(x)2 = 1}
> trig_expr := sin(x)^3 - sin(x)*cos(x)^2 + 3*cos(x)^3;

34

Chapitre 2: Math´matiques de base avec Maple e

trig _expr := sin(x)3 − sin(x) cos(x)2 + 3 cos(x)3
> simplify(trig_expr, siderel);

2 sin(x)3 − 3 cos(x) sin(x)2 + 3 cos(x) − sin(x)

La commande factor
La commande factor factorise les expressions polynomiales.
> big_poly := x^5 - x^4 - 7*x^3 + x^2 + 6*x;

big _poly := x5 − x4 − 7 x3 + x2 + 6 x
> factor(big_poly);

x (x − 1) (x − 3) (x + 2) (x + 1)
> rat_expr := (x^3 - y^3)/(x^4 - y^4);

rat _expr :=

x3 − y 3 x4 − y 4

Le num´rateur et le d´nominateur contiennent tous les deux le facteur e e commun x − y ; ainsi, la factorisation annule ces termes.
> factor(rat_expr);

x2 + x y + y 2 (y + x) (x2 + y 2 ) Maple peut factoriser les polynˆmes univari´s et multivari´s sur le o e e domaine de coefficients sp´cifi´. Vous pouvez ´galement factoriser les e e e polynˆmes sur des extensions alg´briques. Voyez ?factor pour plus de o e d´tails a ce sujet. e `

La commande expand
Essentiellement, la commande expand est l’inverse de la commande factor. Elle permet l’expansion de termes multipli´s de mˆme que plue e sieurs autres expansions. Pour cette raison, expand figure parmi les commandes de manipulation les plus utiles. Bien que l’on puisse imaginer par

2.6 La manipulation d’expressions

• 35

son nom que le r´sultat qu’elle produit soit plus long et plus complexe que e l’expression originale, il n’en est pas toujours ainsi. En fait, l’expansion de certaines expressions permet de grandes simplifications.
> expand((x+1)*(x+2));

x2 + 3 x + 2
> expand(sin(x+y));

sin(y) cos(x) + cos(y) sin(x)
> expand(exp(a+ln(b)));

ea b La commande expand est tr`s flexible ; non seulement il est pose sible de pr´ciser que certaines sous-expressions doivent ˆtre laiss´es telles e e e quelles au cours de l’expansion, mais des r`gles d’expansion personnalis´es e e peuvent ´galement ˆtre programm´es. e e e Lorsqu’on utilise Maple pour la premi`re fois, on est port´ a croire que e e` la commande simplify est la commande la plus utile. Malheureusement, o le mot simplify est plutˆt vague. Lorsqu’on lui demande de simplifier une expression, Maple examine cette derni`re, essaie plusieurs techniques, puis e tente d’appliquer la r`gle de simplification la plus appropri´e. Cela peut e e prendre du temps. De plus, Maple peut ne pas ˆtre en mesure de devie ner ce que vous souhaitez accomplir, puisque aucune r`gle math´matique e e universelle ne d´finit ce qui est plus simple . e Lorsque vous connaissez quelles manipulations rendront votre expression plus simple a vos yeux, sp´cifiez-les directement. En particulier, la ` e commande expand figure parmi les plus utiles. Elle permet souvent une simplification substantielle des expressions et reformule ces derni`res sous e une forme pratique pour plusieurs autres commandes.

La commande convert
Cette commande convertit les expressions entre diff´rentes formes. e
> convert(cos(x),exp);

1 (I x) 1 1 + e 2 2 e(I x)

36

Chapitre 2: Math´matiques de base avec Maple e

Tab. 2.3 – Conversions courantes Argument Description polynom d’une s´rie a un polynˆme e ` o exp, expln, expsincos d’une expression trigonom´trique a une e ` forme exponentielle parfrac d’une expression rationnelle a une ` fraction partielle rational d’un nombre a virgule flottante a une ` ` forme rationnelle radians, degrees des degr´s aux radians e set, list, listlist entre diff´rentes structures de donn´es e e
> convert(1/2*exp(x) + 1/2*exp(-x),trig);

cosh(x)
> A := Matrix([[a,b],[c,d]]);

A :=

a b c d

> convert(A, ’listlist’);

[[a, b], [c, d]]
> convert(A, ’set’);

{a, b, c, d}
> convert(%, ’list’);

[a, b, c, d]

’expanded’). de produits et de puissances en un seul terme. dans plusieurs cas. e(2 x+y) > combine((x^a)^2. e e > rat_expr_2 := (x^2 . e La commande combine Cette commande combine les termes de sommes. la commande normal met les fractions ` au mˆme d´nominateur. e num´rateur e d´nominateur e o` num´rateur et d´nominateur sont deux polynˆmes relativement preu e e o miers a coefficients entiers. Ainsi. e > combine(exp(x)^2*exp(y). rat _expr _2 := x2 − y 2 (−y + x)3 > normal(rat_expr_2). l’inverse des transformations appliqu´es par la commande expand.exp). Ces transformations sont. x(2 a) . y+x y 2 − 2 x y + x2 L’option expanded transforme les expressions rationnelles en forme normale factoris´e. power).6 La manipulation d’expressions • 37 La commande normal Cette commande transforme les expressions rationnelles en forme normale factoris´e (factored normal form).y^2)/(x .2.y)^3 . y+x (−y + x)2 > normal(rat_expr_2.

1 3 π.ln(x). Mˆme s’il est possible d’´crire des e e e boucles dans un programme pour accomplir ces tˆches.x^2]. 2 π] 2 2 [0.38 • Chapitre 2: Math´matiques de base avec Maple e La commande map Cette commande est tr`s utile lorsque vous travaillez sur des listes. y). Prenez le e e temps n´cessaire pour vous assurer que vous connaissez bien l’utilisation e de map. [ d d d 2 sin(x).b. y ). 1. vous pouvez utiliser les commandes suivantes : > fcn_list := [sin(x). x2 ] > map(Diff. [f(a. 3*Pi/2.b. x.c]. des ene sembles et des tableaux. Maple ` passe les derniers a la commande initiale. 0] Si vous donnez a la commande map plus de deux arguments. fcn_list. f(b). f(b. x. y). [a. l’utilit´ et la puisa e sance de la commande map ne devraient pas ˆtre sous-estim´es. > map( f. La e ` ee commande map applique une commande a chaque ´l´ment de la structure ` ee de donn´es ou de l’expression fournie. > map(sin. pour d´river chaque ´l´ment d’une liste par rapport a e ee ` x. x). f(c)] > data_list := [0. 2*Pi]. f(c. [a. l’une des plus puissantes fonctions de Maple. x. ` > map( f. x ] dx dx dx . [f(a). ln(x). fcn_list := [sin(x). data_list := [0. ln(x). data_list). x. Elle fournit un moyen commode de g´rer plusieurs e solutions ou d’appliquer une op´ration a chaque ´l´ment d’un tableau.c] ). y)] Par exemple. π. −1. Pi/2.

2.6 La manipulation d’expressions > map(value, %);

• 39

[cos(x),

1 , 2 x] x

Non seulement la proc´dure peut ˆtre une commande existante, mais e e vous pouvez ´galement cr´er une op´ration a appliquer sur une liste. Par e e e ` exemple, supposons que vous voulez mettre au carr´ chaque ´l´ment d’une e ee liste.
> map(x->x^2, [-1,0,1,2,3]);

[1, 0, 1, 4, 9]

Les commandes lhs et rhs
Ces deux commandes vous permettent de prendre respectivement le cˆt´ oe oe gauche (left-hand side) et le cˆt´ droit (right-hand side) d’une expression.
> eqn1 := x+y=z+3;

eqn1 := y + x = z + 3
> lhs(eqn1);

y+x
> rhs(eqn1);

z+3

Les commandes numer et denom
Ces deux commandes servent a extraire respectivement le num´rateur et ` e le d´nominateur d’une expression rationnelle. e
> numer(3/4);

3
> denom(1/(1 + x));

40

Chapitre 2: Math´matiques de base avec Maple e

x+1

Les commandes nops et op
Ces deux commandes s’av`rent utiles pour diviser des expressions en plue sieurs parties et en extraire les sous-expressions. La commande nops vous indique combien de parties contient une expression.
> nops(x^2);

2
> nops(x + y + z);

3 La commande op vous permet d’acc´der aux diff´rentes parties d’une e e expression, qu’elle retourne sous forme de suite d’expressions.
> op(x^2);

x, 2 Vous pouvez ´galement acc´der a des ´l´ments en particulier en e e ` ee sp´cifiant leur indice, ou une plage d’indices. e
> op(1, x^2);

x
> op(2, x^2);

2
> op(2..-2, x+y+z+w);

y, z

2.6 La manipulation d’expressions

• 41

Questions courantes sur la manipulation d’expressions
Comment substituer un produit de deux inconnues ? Utilisez les relae tions accessoires pour sp´cifier une identit´ . La substituion directe ne e fonctionne g´n´ralement pas, puisque Maple cherche une correspondance e e exacte avant de remplacer.
> expr := a^3*b^2;

expr := a3 b2
> subs(a*b=5, expr);

a3 b2 Ici, la commande subs a ´chou´ dans sa tentative de substitution. e e Utilisez la commande simplify pour obtenir la r´ponse souhait´e. e e
> simplify(expr, {a*b=5});

25 a Vous pouvez ´galement essayer la commande algsubs, qui effectue e une substitution alg´brique. e
> algsubs(a*b=5, expr);

25 a Pourquoi le r´sultat de simplify n’est-il pas sous sa forme la plus e simple ? Par exemple :
> expr2 := cos(x)*(sec(x)-cos(x));

expr2 := cos(x) (sec(x) − cos(x))
> simplify(expr2);

1 − cos(x)2 La forme attendue ´tait sin(x)2 . e

42

Chapitre 2: Math´matiques de base avec Maple e

Encore une fois, utilisez les relations accessoires pour sp´cifier l’idene tit´. e
> simplify(%, {1-cos(x)^2=sin(x)^2});

sin(x)2 La question de la simplification est compliqu´e en raison de la dife ficult´ ` d´finir ce qu’est une forme simple pour une expression. La ea e conception d’une forme simple pour un utilisateur peut ˆtre tr`s diff´rente e e e de celle d’un autre utilisateur ; de plus, l’id´e d’une forme la plus simple e peut varier d’une situation a l’autre. ` Comment mettre en ´vidence la constante dans 2x + 2y ? Actuele lement, cette op´ration n’est pas possible dans Maple puisque son sime plificateur distribue automatiquement le nombre sur le produit, croyant qu’une somme est plus simple qu’un produit. Dans la plupart des cas, cela est vrai. Si vous entrez l’expression
> 2*(x + y);

2x + 2y vous remarquez que Maple multiplie automatiquement la constante dans l’expression. Comment peut-on alors g´rer de telles expressions, lorsque l’on doit e mettre des constantes ou des signes n´gatifs en ´vidence ? Advenant le e e besoin de factoriser ces expressions, utilisez la prochaine substitution.
> expr3 := 2*(x + y);

expr3 := 2 x + 2 y
> subs( 2=deux, expr3 );

x deux + y deux
> factor(%);

deux (x + y)

2.7 Conclusion

• 43

2.7

Conclusion

Dans ce chapitre, vous avez vu plusieurs des types d’objets que Maple peut manipuler : les suites, les ensembles et les listes. Vous avez ´galement e vu plusieurs commandes, dont expand, factor et simplify, qui figurent parmi les plus utiles pour manipuler et simplifier des expressions alg´e briques. D’autres, comme map, sont utiles pour les ensembles, les listes et les tableaux. De son cˆt´, la commande subs sert dans presque toutes les oe situations. Dans le prochain chapitre, vous apprendrez a manipuler ces concepts ` pour aborder un des probl`mes fondamentaux des math´matiques : la e e ` mesure que vous apprendrez de r´solution des syst`mes d’´quations. A e e e nouvelles commandes, observez comment les concepts de ce chapitre sont utilis´s pour poser les probl`mes et manipuler leurs solutions. e e

44

Chapitre 2: Math´matiques de base avec Maple e

{x}). e 3. Puisque les deux ´quations pr´c´dentes poss`dent deux solutions. et e e chaque ensemble contient cons´quemment un seul ´l´ment.) Dans ee les exemples suivants. En apprenant comment utiliser e des outils comme solve. e Dans un ensemble d’une ou de plusieurs ´quations. vous r´solvez une ´quation pour une inconnue. 1 −b + {x = 2 √ b2 − 4 a c 1 −b − }. {x}). solve tente de e r´soudre le syst`me de mani`re exacte pour l’ensemble d’inconnues e e e sp´cifi´. dans la section Les ensembles de la page 23. De plus. Maple e e e e 45 . vous gagnerez du temps et ´conomiserez de nombreux efforts. e ee > solve({x^2=4}. subs et unapply. le pr´sent chapitre examine e e l’interaction entre ces diff´rentes commandes.1 R´solution au moyen de solve e La commande solve de Maple est un solveur d’´quations tout usage. {x = a 2 √ b2 − 4 a c } a Maple retourne chaque solution possible sous forme d’un ensemble. e e on utilisait les accolades pour encadrer les ´l´ments d’un ensemble. map. {x = 2}. (Souvenez-vous que. {x = −2} > solve({a*x^2+b*x+c=0}.3 Trouver des solutions Ce chapitre introduit les concepts cl´s n´cessaires a une r´solution de e e ` e probl`mes rapide et efficace dans Maple.

Si aucune inconnue n’est sp´cifi´e dans l’´quation. e > soln := solve( eqns. y + 1 = 1} x Puis. 1 {x = −1. L’exemple suivant montre cette e proc´dure. r´solvez.y}). e e e e > solve({x+y=0}). En effet. eqns := {x + 2 y = 3. une seule solution est obtenue. y+1/x=1}. {x}). y+1/x=1}. {x = 3}. y = 2}. {x = 1}. contenant deux ´quations. Ce e r´sultat signifie que y peut prendre n’importe quelle valeur. e > eqns := {x+2*y=3. par exemple eqns. y = } 2 Mˆme si les accolades (d´notant un ensemble) ne sont obligatoires ni e e autour de l’´quation. la solution est une forme id´ale pour e e la commande subs. {x = −4} La commande solve peut ´galement g´rer les syst`mes d’´quations. leur utilisation force Maple e a retourner la solution sous la forme d’un ensemble. Vous pouvez d’abord donner un nom a l’ensemble ` d’´quations. e e e ` Si vous donnez une expression plutˆt qu’une ´quation. {x.y} ). {x. la premi`re chose a e e e e ` faire avec une solution est g´n´ralement de la v´rifier en la substituant e e e a ` nouveau dans les ´quations originales. . {x = −y. e ´ Etant un ensemble d’´quations. {x = 2. > solve({x^3-13*x+12}. ni autour de la variable. Maple r´sout pour toutes celles-ci. e e e e > solve({x+2*y=3.46 • Chapitre 3: Trouver des solutions retourne une suite d’ensembles solutions. y = y} Ici. Maple assume o e e e ` e automatiquement que l’´quation est ´gale a z´ro. Cette solution est param´tris´e par rapport a y. tandis que x e est l’oppos´ de y. ce qui repr´sente ` e g´n´ralement la mani`re la plus commode.

. > soln[2]. {x = 2. y = } 2 Cela produit deux solutions : d’abord. > soln[1]. > x1 := eval( x. Encore une fois. soln[1] ). il suffit de les substituer a noue ` veau dans l’ensemble d’´quations original en utilisant la commande eval.3. 1 {x = 2. Remarquez que cette application de la commande eval se prˆte ` e a d’autres usages. {x = −1. soln[2] ). Supposons que vous voulez extraire la valeur de x de la premi`re solution. x1 := −1 Vous pouvez ´galement extraire la premi`re solution pour y. 1 = 1} Vous d´couvrirez que cette m´thode de v´rification est g´n´ralement e e e e e la plus commode. e > eval( eqns. soln[1]). y = 2}. e e > y1 := eval(y. {3 = 3. la commande eval s’av`re le meilleur e e outil. 1 = 1} > eval( eqns. soln[1] ). y = } 2 V´rifier les solutions e Pour v´rifier les solutions ainsi produites. y = 2} et ensuite.1 R´solution au moyen de solve e • 47 1 soln := {x = −1. {3 = 3.

a > eval([y. La commande map applique l’op´ration sp´cifi´e comme premier are e e gument a son deuxi`me argument. f(c. z).x]. y. ´valuez ee e [y. z). [−1.b. e Si vous pr´f´rez obtenir d’abord la solution pour y dans la liste. y. Maple retourne ses solutions sous la forme d’ensembles (dans lesquels l’ordre des objets est incertain). [a. −1] Puisque. D’abord. vous pouvez construire une liste (list) a partir de la premi`re solution. [x. soln[1]). construisez une liste dont ee les variables sont dans le mˆme ordre que souhait´ dans les solutions e e correspondantes. ` e > map(f. map. ´valuez simplement cette liste a la premi`re solution.x] ` la solution. [2. o` x sera ` e u le premier ´l´ment et y le second. e ` e > eval([x. z)] . Par exemple. y] Puis.48 • Chapitre 3: Trouver des solutions y1 := 2 Vous pouvez mˆme appliquer ce truc d’´valuation pour convertir e e des ensembles solutions sous d’autres formes. > [x. typiquement. il est utile de se souvenir de cette m´thode d’extraction des solutions.c]. soln[1]). Par exemple. vous permet d’appliquer une op´rae tion a toutes les solutions. z). y.y]. [f(a. y. e Une autre commande utile. 2] La premi`re solution est maintenant une liste. essayez de substituer les deux ` solutions.y]. f(b.

e e > map(subs. 1 [{y = 2. y = y} > solve({x^2=y^2.1 R´solution au moyen de solve e • 49 En raison de la syntaxe de map. Restreindre les solutions Vous pouvez limiter les solutions en sp´cifiant les in´galit´s au moyen de e e e la commande solve. cette derni`re ne peut appliquer en e mˆme temps plusieurs fonctions a des suites. x = −1}.{x. {y = . 1 {y = 2. Par exemple. x<>y}. {y = . e e > soln. x = −1}. {x = −y. {x = −y.3. 1 = 1}] Cette m´thode peut s’av´rer pr´cieuse si votre ´quation poss`de plue e e e e sieurs solutions. y = y} Consid´rez ce syst`me de cinq ´quations a cinq inconnues. eqns. > [soln]. [soln]. [{3 = 3. x = 2} 2 Encadrez soln par des crochets pour la convertir en liste (list). x = 2}] 2 Maintenant. ou si vous n’ˆtes pas certain du nombre de solutions e qu’une certaine commande produira. utilisez la commande suivante pour substituer chacune des solutions simultan´ment dans les ´quations originales.y}).{x. {3 = 3. {x = y. > solve({x^2=y^2}. e e e ` .y}). eqns). y = y}. 1 = 1}. consid´rez la e ` e suite de solutions pr´c´dente.

{x = −646 −220 861 . z = −1.50 • > > > > > Chapitre 3: Trouver des solutions eqn1 eqn2 eqn3 eqn4 eqn5 := := := := := x+2*y+3*z+4*t+5*u=41: 5*x+5*y+4*z+3*t+2*u=20: 3*y+4*z-8*t+2*u=125: x+y+z+t+u=9: 8*x+4*z+3*t+2*u=11: R´solvez maintenant le syst`me pour toutes ses variables. [− 28 635 70 70 59 527 − 7t − u. Par exemple. s1 := {x = 2. essayez e ee la commande suivante. t = −11.t=1} ).z= . > s2 := solve({eqn1.eqn4. supposons que vous n´cessitiez que les cinq solutions trouv´es par solve soient plac´es dans un ordre particulier.y. 13 13 13 13 635 70 y= + 12 t + u} 13 13 s2 := {x = − Explorer les solutions Vous pouvez explorer les solutions param´triques calcul´es ` la fin de la e e a section pr´c´dente. { x. e Cependant. ´valuez la solution en u = 1 et t = 1. {x.z]. e e Puisqu’il est impossible de fixer l’ordre des ´l´ments dans un ensemble. les listes pr´servent l’ordre de leurs ´l´ments . z.y= } 13 13 13 ` e Tout comme a la page 47. z = − − 7 t − u. e e > s1 := solve({eqn1.t.eqn5}.z. s2 ). Maple retourne ensuite les solutions en fonction des autres inconnues.eqn2. y. z}). e e e > eval( s2.eqn2.u}). ainsi. ee solve ne retournera pas n´cessairement les solutions dans l’ordre x. − − 7 t − u] 13 13 13 13 13 13 . {u=1. + 12 t + u. 527 28 70 59 − 7t − u. y.eqn3.eqn3}. y = 3. u = 16} Vous pouvez ´galement choisir de r´soudre pour un sous-ensemble des e e inconnues . > eval( [x.y.

e > plot3d(%.2. d´finissez x = x(u. il suffit de fournir a e ` ` unapply l’expression et les variables a partir desquelles Maple doit faire une fonction. par exemple. convertise e a sez les solutions en fonctions).3. Pour ce faire. mais elle e en a ´galement extrait le cˆt´ droit de l’´galit´ (puisque vous connaise oe e e sez toujours quelle solution s’applique a quelle variable en raison de leur ` ordre). Cette possibilit´ est particuli`rement utile lorsque vous souhaitez e e tracer la surface qui repr´sente la solution. u=0. t) (c. y).-`-d. t) et z = z(u. > f := unapply(x^2 + y^2 + 4. Par souci de commodit´.1 R´solution au moyen de solve e • 51 Non seulement cette commande a fix´ l’ordre des solutions. − 28 527 − 7t − u 13 13 Cependant. il faut utiliser une autre commande tr`s importante. y = y(u. Souvenez-vous que vous pouvez facilement choisir l’expression d’une solution pour une variable particuli`re en utie lisant eval. 1) Pour transformer l’expression en une fonction.1). ..2. s2 ). cela est une expression pour x. unapply. > x(1.. –5 –10 –15 –20 –25 50 55 60 65 –58 –56 –54 –52 –50 –48 –46 –44 –42 70 75 80 La commande unapply Supposez que vous souhaitez explorer encore davantage. t). > eval( x. x(1. Ainsi. axes=BOXED). x. t=0. et non une fonction.

ee e e e > eval(x. y := (u. la premi`re ´tape consiste a obtenir l’expression pour x.b). > x := unapply(%. qui fait correspondre a un couple (x. t) → 70 635 + 12 t + u 13 13 . comme e e ` il a ´t´ mentionn´ pr´c´dement. e e e > eval(y. s2).1). pour transformer la solution pour x en une fonction a la fois de ` u et de t. Cette nouvelle fonction est facile a utiliser. t).52 • Chapitre 3: Trouver des solutions f := (x. on doit utiliser unapply pour transformer cette expression en une fonction de u et de t. 635 70 + 12 t + u 13 13 > y := unapply(%. y) le ` ` polynˆme x2 + y 2 + 4. u. x := (u.t). o > f(a. a2 + b2 + 4 Ainsi. t) → − > x(1.s2). − 28 527 − 7t − u 13 13 Puis.u. 28 527 − 7t − u 13 13 −646 13 On cr´e les fonctions y et z de la mˆme mani`re. y) → x2 + y 2 + 4 produit la fonction f de x et y.

6 discute plus en d´tail. y et z en tant que fonco e tions. + 12 t + u. z. 70 59 − 7t − u 13 13 861 −220 . assignez chacune d’elles a l’expression du cˆt´ droit de l’´galit´ de ` oe e e l’´quation correspondante. f(0)=0}.3.s2). z(1. . − 28 635 70 70 59 527 − 7t − u. e Le prochain exemple comprend la r´solution d’´quations diff´rene e e tielles. Cependant. u. La commande assign est utile pour assigner des noms aux expressions.1 R´solution au moyen de solve e > eval(z. z := (u. assignez e un nom a la solution. t) → − > y(1.x)=6*x^2+1. dont la section 3. {f(x)} ). elle ne peut cr´er de fonctions.1). ` > s3 := dsolve( {diff(f(x). y. − − 7 t − u 13 13 13 13 13 13 Souvenez-vous de assign comme ´tant la commande permettant de e transformer le signe = de la solution en un signe := . Par exemple. t). • 53 − 59 70 − 7t − u 13 13 > z := unapply(%. plutˆt que de d´finir x.1). 13 13 La commande assign La commande assign permet ´galement d’affecter des valeurs a des ine ` connues. Pour commencer. rappelez-vous que meme si cette commande est utile pour rapidement assigner des noms aux solutions. e > assign( s2 ). > x.

Il vous reste cependant a cr´er une fonction.54 • Chapitre 3: Trouver des solutions s3 := f(x) = 2 x3 + x > assign( s3 ). la seconde d´finit la fonction f : x → 2x3 + x de mani`re e e ` fonctionner. Appelez la fonction f en utilisant un argument autre que x.s3). 2 x3 + x produit la r´ponse attendue . malgr´ les apparences. ` e > f(x). f(x) := 2 x3 + x qui n’est pas du tout semblable a l’affectation ` > f := x -> 2*x^3 + x. f (y) ou f (1). a e Pour d´finir la solution f comme une fonction de x. cependant. et non une fonction. > f(1). 2 x3 + x . e > eval(f(x). f := x → 2 x3 + x La premi`re d´finit seulement la valeur de la fonction f pour l’argue e e ment sp´cial x . utilisez unapply. f (x) est e e simplement le nom de l’expression 2x3 + x. que l’on ´crive f (x). f(1) La raison de ce comportement en apparence ´trange vient du fait que e assign demande a Maple l’affectation ` > f(x) := 2*x^3 + x.

index = 3)}. Cela peut s’av´rer fort utile lorsqu’on fait de l’alg`bre sur un e e corps diff´rent des nombres complexes. {x = −.423605849}. index = 2)}.3.1 R´solution au moyen de solve e > f := unapply(%. x). > evalf(%).9585321812 − . index = 5)} RootOf(expr ) est un nom g´n´rique pour toutes les racines de expr. {x = RootOf(_Z 5 − 2 _Z + 3. {x = RootOf(_Z 5 − 2 _Z + 3. Consid´rons l’exemple suivant. index = 1)}.4984277790 I} Une expression g´n´rale pour d´signer les racines des polynˆmes de e e e o degr´ cinq sous forme de radicaux n’existe pas. o` le param`tre index num´rote et ordonne les o u e e solutions.2*x + 3 = 0}. {x = . {x = .9585321812 + . 3 La commande RootOf ` A l’occasion. • 55 f := x → 2 x3 + x > f(1). En utilisant la commande evalf. index = 4)}. {x = RootOf(_Z 5 − 2 _Z + 3. {x = RootOf(_Z 5 − 2 _Z + 3.4984277790 I}. {x = −.320816347 I}. e .2467292569 + 1. e vous obtenez une forme explicite des racines complexes. e > solve({x^5 . {x = −1. Cela signifie que x est une racine e e du polynˆme z 5 − 2z + 3.2467292569 − 1.320816347 I}. {x = RootOf(_Z 5 − 2 _Z + 3. Maple retourne ses solutions a l’aide de la commande ` RootOf. e e et _Z est un nom g´n´rique pour x.{x}).

324717957} L’option complex force Maple a chercher des racines complexes en ` plus des racines r´elles. Elle trouve e e les racines d’une ou de plusieurs ´quations en utilisant une variante de la e m´thode de Newton.141592654} Pour chercher un nombre d´termin´ de racines d’un polynˆme. fsolve cherche une racine r´elle simple. > fsolve({poly}. e > poly :=3*x^4 . {x = 5.7390851332} Pour une ´quation g´n´rale. utilisez l’ope e e tion avoid.324717957}. avoid={x=0}). maxsols=1). {x}. {x}). e . {x}). la commande cherche toutes les racines o r´elles. utilisez e e o l’option maxsols. {x = . poly := 3 x4 − 16 x3 − 3 x2 + 13 x + 16 > fsolve({poly}.56 • Chapitre 3: Trouver des solutions 3. {x = 0.3*x^2 + 13*x + 16.} > fsolve({sin(x)=0}. {x}. cependant.16*x^3 . {x = 1. e e e e Pour un polynˆme. > fsolve({sin(x)=0}. e e e > fsolve({cos(x)-x = 0}. {x = 1. {x = −3. et produit des solutions num´riques approxim´es.{x}).333333333} Pour chercher plus d’une racine d’une ´quation g´n´rale.2 R´soudre num´riquement : fsolve e e La commande fsolve est l’´quivalent num´rique de solve.

mais il est fort e possible que vous deviez avoir recours a une solution num´rique en cas ` e d’´chec.324717957}. Dans ces situations. mˆme si une telle racine existe. e e ` Math´matiquement parlant. {x = −. {x}. Souvenez` vous que l’approche employ´e par Maple est algorithmique et que ce dere nier ne poss`de pas n´cessairement la capacit´ de faire appel aux trucs e e e que vous pouvez utiliser lorsque vous r´solvez un probl`me a la main.5622795121 I}. {x = 4. • 57 {x = −.3. Remare e quez que dans l’exemple suivant.57079632679489661923132169164} Les limites de solve La commande solve ne s’applique pas a toutes les situations. Digits := 30 > fsolve({cos(x)=0}. fsolve peut ´chouer dans sa recherche d’une rae cine.5622795121 I}.6623589786 + . Digits. > fsolve({cos(x)=0}. e > Digits := 30.. sp´cifier un e e intervalle peut aider Maple.6623589786 − . e e vous pouvez augmenter la valeur de la variable sp´ciale. cependant. {x = 5. {x = 1. complex).2 R´soudre num´riquement : fsolve e e > fsolve({poly}. {x = 1.333333333} Vous pouvez ´galement sp´cifier l’intervalle dans lequel chercher une e e racine en particulier. les polynˆmes de degr´ sup´rieur ou ´gal e o e e e a ` cinq ne poss`dent pas de solution g´n´rale sous forme de radicaux. {x}). {x}. Pi. la solution trouv´e ne garantit pas une pr´cision de trente d´cimales . Maple effectue toutes les ´tapes e e e de ses calculs a une pr´cision d’au moins trente chiffres significatifs au lieu ` e des dix chiffres par d´faut. e .712388980} Dans plusieurs cas. Maple e e e tente de les r´soudre symboliquement le mieux possible.2*Pi). Pour am´liorer la pr´cision de solutions.

14159265358979323846264338328} Ces types de probl`mes sont communs a tous les syt`mes de calcul e ` e symbolique et t´moignent des limites naturelles d’une approche algorithe mique a la r´solution d’´quations. {x}. _EnvAllSolutions := true > solve({sin(x)=0}. {x}).4). 3. {x = 3. Ainsi. > _EnvAllSolutions := true. o > solve({sin(x)=0}. e > expr := (x-1)^2/(x^2-1). si vous fixez la valeur de la variable _EnvAllSolutions e a ` true (vrai). Cependant. En fait. o e > fsolve({sin(x)=0}. {x = π _Z1 ~} Le pr´fixe _Z de la variable indique que cette derni`re poss`de des e e e valeurs enti`res. rappelez-vous de bien v´rifier vos r´sule e tats. Le prochain exemple met en ´vidence une incompr´hension qui peut e e survenir en raison de la gestion des singularit´s par Maple. le travail avec toutes les ´quations transcendantes s’av`re e e plutˆt difficile. {x = 0} Remarquez que Maple retourne seulement une solution parmi une infinit´. Maple retourne alors l’ensemble complet des solutions. Le tilde (~) indique qu’une hypoth`se a ´t´ plac´e sur e e ee e cette variable . la commande fsolve vous permet de sp´cifier l’intervalle e e dans lequel Maple cherchera une solution.58 • Chapitre 3: Trouver des solutions La r´solution d’´quations trigonom´triques peut ´galement ˆtre dife e e e e ficile. {x}). on suppose qu’il s’agit d’une variable e enti`re. vous pouvez obtenir plus de contrˆle sur les solutions calcul´es.. . ` e e Lorsque vous utilisez solve. dans le cas pr´sent. De plus.

y=-10.3. Error.10). e e e Peu importe la m´thode ou les outils utilis´s pour r´soudre les ´quations. (x − 1)2 x→1 x2 − 1 lim > value (%). > plot(expr.{x}). ces e e v´rifications sont faciles au moyen de Maple. e e e e il est crucial de v´rifier les r´sultats obtenus. Fort heureusement.. e . e e > eval(expr. division by zero La limite montre pourtant que x = 1 est presque une solution.. soln). x=1). on obtient 0/0. 0 Maple affiche une ligne verticale a l’endroit de l’asymptote. x=-5. soln := {x = 1} mais lorsqu’elle est ´valu´e en x = 1.2 R´soudre num´riquement : fsolve e e • 59 expr := (x − 1)2 x2 − 1 Maple trouve bien une solution > soln := solve({expr=0}. 10 8 6 y 4 2 –4 –2 0 –2 –4 –6 –8 –10 2 x 4 Maple enl`ve la singularit´ x = 1 de l’expression avant de la r´soudre. > Limit(expr.5. a moins de ` ` e sp´cifier discont=true.

{n = 13 + 18 _Z1 ~} Le tilde (~) sur _Z1 indique que msolve a plac´ une hypoth`se a propos e e ` de _Z1 .7*x+y=2}. utilisez le e e ` syst`me d’aide en ligne en entrant ? suivi du nom de commande soue hait´ ` l’invite de Maple. . x = 14} Maple utilise les variables globales _Z1. Si vous d´sirez obtenir plus de d´tail a propos de ces commandes. que _Z1 soit entier. e > msolve({2^n=3}. . > about( _Z1 ). > msolve({3*x-4*y=1. ea Trouver des solutions enti`res e La commande isolve trouve des solutions enti`res aux ´quations en r´e e e solvant pour toutes les inconnues dans l’expression ou les expressions. . dans ce cas-ci. . y = 2 + 3 _Z1 } Trouver des solutions modulo m La commande msolve r´sout des ´quations enti`res modulo m (la repr´e e e e sentation positive pour les entiers) en r´solvant pour toutes les inconnues e dans l’expression ou les expressions. Puisque vous rise e quez de ne pas les trouver aussi utiles que les fonctions plus g´n´rales e e solve et fsolve.60 • Chapitre 3: Trouver des solutions 3. {x = 5 + 4 _Z1 .19)._Zn pour d´noter les pae ram`tres entiers de la solution.3 D’autres solveurs Maple contient plusieurs commandes solve sp´cialis´es. {y = 6. cette section n’en signale que quelques-unes. > isolve({3*x-4*y=7}).17).

un terme peut ´galement contee x nir un produit des inconnues.f(1)=1}. chaque terme du polynˆme contient un produit des inconnues. complexes ou mˆme faire appel a d’autres e e ` variables.4 Les polynomes Pour Maple. rae e e tionnels. e ` R´soudre des relations de r´currence e e La commande rsolve r´sout des relations de r´currence. renamed _Z1~: is assumed to be: integer La section 5. e 3.4 Les polynomes • 61 Originally _Z1. e e > rsolve({f(n)=f(n-1)+f(n-2). un polynome est une expression contenant des inconnues .1. Si plus d’une inconnue existe. x. les termes o o peuvent contenir x3 .2 d´crit comment vous pouvez placer vous-mˆme des e e hypoth`ses a propos d’inconnues. Par o exemple. x2 − 1 > x + y + z.{f(n)}). retournant une e e expression correspondant au terme g´n´ral de la fonction.3. > x^2 . comme dans le polynˆme x3 +3x2 y +y 2 . Les o coefficients peuvent ˆtre entiers (comme dans les exemples pr´c´dents). comme dans le cas du polynˆme 3 − 2x + 1.f(0)=1. d´cimaux. . si le polynˆme contient seulement une inconnue. irrationnels. x1 = x et x0 = 1.   √ √ 2 2  n n  √ ) 5 (− 5 (− √ )    2 2 1− 5 5+1 √ √ + f(n) = −   5 5 1− 5 5+1     Consultez ´galement la rubrique d’aide ?LREtools.

si vous affichez le polynˆme apr`s l’avoir o e o e pass´ ` sort. les prochaines e o sections en examinent quelques-uns. vous remarquerez qu’il demeure tri´ : ea e > sort_poly := x + x^2 .I)*x + 3 + 4*I. sort _poly := x + x2 − x3 + 1 − x4 > sort(sort_poly). (1 − I) x + 3 + 4 I > a*x^4 + b*x^3 + c*x^2 + d*x + f. 1 1 2 √ x − 3x − 2 3 > (1 .x^3 + 1 .x^4.1/3. Tri et regroupement La commande sort arrange les termes d’un polynˆme dans l’ordre o d´croissant des degr´s de leurs inconnues.sqrt(3)*x . −x4 − x3 + x2 + x + 1 .62 • Chapitre 3: Trouver des solutions x+y+z > 1/2*x^2 . −x4 − x3 + x2 + x + 1 > sort_poly. Plutˆt que de conserver une e e o deuxi`me copie du polynˆme original dont les termes ont ´t´ tri´s. a x4 + b x3 + c x2 + d x + f Maple poss`de des commandes permettant plusieurs types de manie pulations et de calculs math´matiques sur les polynˆmes . sort e o ee e modifie directement la mani`re dont les termes sont emmagasin´s dans e e le polynˆme de d´part. Ainsi.

x2 y 2 + x3 + y 3 > sort(mul_var_poly.y]. c > mul_var_poly := y^3 + x^2*y^2 + x^3. La diff´rence entre ces deux types e de tri se con¸oit clairement au moyen d’un exemple. (x y − y x2 + x) z + x y + y x2 + x . Selon l’autre option. x). [x. x3 + x2 y 2 + y 3 La commande collect regroupe les coefficients de mˆme degr´ dans e e un polynˆme. Ainsi. (y − z y) x2 + (y + z y + 1 + z) x > collect(big_poly.3. Par exemple. La m´thode o e e e e par d´faut classe les termes selon leur degr´ total. puis les puissances de la seconde variable. lorsque les termes ax et bx se trouvent dans o le mˆme polynˆme. mul _var _poly := y 3 + x2 y 2 + x3 > sort(mul_var_poly. Lorsque vous choisissez cette option.4 Les polynomes • 63 Maple classe les polynˆmes multivari´s de deux mani`res. big _poly := x y + z x y + y x2 − z y x2 + x + z x > collect(big_poly. x2 y 2 sera plac´ e e 3 et y 3 . z). Maple les regroupe en (a + b)x.y]). ’plex’). le tri examine d’abord les puissances de la premi`re variable de la liste des e variables (cette liste est le second argument de la commande sort).z*y*x^2 + x + z*x. les termes sont class´s selon l’ordre e avant x lexicographique pur (plex). e o > big_poly:=x*y + z*x*y + y*x^2 . [x.

> poly := x^2 + 3*x . 0 Vous ´valuez les polynˆmes en des valeurs comme avec n’importe e o quelle expression en utilisant la commande eval. poly := x2 + 3 x − 4 > eval(poly. il peut suffire de d´terminer si un polynˆme e o divise exactement un autre polynˆme.4. x). on trouve la division o e (c’est-`-dire diviser un polynˆme par un autre et en d´terminer le quotient a o e et le reste). x).y.y^3. r := 2 + x > q := quo(x^3+x+1. x . x).y^3. x ). x3 + x + 1 Dans certaines situations. 6 .y). Parmi les op´rations les plus fondamentales. La commande divide v´rifie la o e division polynomiale exacte. x . > r := rem(x^3+x+1. true > rem(x^3 . x^2+x+1. x=2). Maple fournit les commandes rem et quo pour d´terminer le e reste (remainder en anglais) et le quotient d’une division polynomiale. > divide(x^3 . q := x − 1 > collect( (x^2+x+1) * q + r. x^2+x+1.64 • Chapitre 3: Trouver des solutions Op´rations math´matiques e e Vous pouvez effectuer plusieurs op´rations math´matiques sur les poe e lynˆmes.

2*y + x^2*y + 1. 3 Recherche de racines et factorisation La commande solve d´termine les racines d’un polynˆme tandis que e o factor exprime le polynˆme sous une forme compl`tement factoris´e. −1 > degree(poly. mul _var _poly := y 2 x − 2 y + y x2 + 1 > eval(mul_var_poly.z).3. z^2).3*z + 1. poly := 3 z 3 − z 2 − z + 1 > coeff(poly.x=-1}). o e e .z^2 + 2*z .1 – Commandes servant a d´terminer les coefficients polynomiaux ` e Commande coeff lcoeff tcoeff coeffs degree ldegree Description extraire un coefficient trouver le coefficient du terme de plus haut degr´ e trouver le coefficient du terme de plus faible degr´ e retourner une suite de tous les coefficients d´terminer le degr´ (sup´rieur) du polynˆme e e e o d´terminer le degr´ inf´rieur du polynˆme e e e o > mul_var_poly := y^2*x . e > poly := 3*z^3 .4 Les polynomes • 65 Tab. −1 Coefficients et degr´s e Les commandes degree et coeff d´terminent le degr´ d’un polynˆme et e e o fournissent un m´canisme d’extraction des coefficients. 3. {y=1.

{x = −3}. {x = −3}. e e o Consultez la rubrique d’aide ?factor pour obtenir plus de renseignements. poly1 := x6 − x5 − 9 x4 + x3 + 20 x2 + 12 x > factor(poly1).9*x^4 + x^3 + 20*x^2 + 12*x.66 • Chapitre 3: Trouver des solutions > poly1 := x^6 . . {x = −3}. poly3 := x6 + 18 x5 + 135 x4 + 540 x3 + 1215 x2 + 1458 x + 729 > factor(poly3). (x + y) (x2 − x y + y 2 ) Maple factorise le polynˆme sur l’anneau contenant les coefficients o (entiers. {x = −3}. poly2 := x + 3 > poly3 := expand(poly2^6).x^5 . {x}). etc.). {x = −3} > factor(x^3 + y^3). La commande factor vous permet ´galement de e sp´cifier un corps alg´brique de nombres sur lequel factoriser le polynˆme. rationnels. (x + 3)6 > solve({poly3=0}. {x = −3}. x (x − 2) (x − 3) (x + 2) (x + 1)2 > poly2 := (x + 3).

5 Le calcul diff´rentiel e • 67 Tab. 3.2 – D’autres fonctions agissant sur des polynˆmes o Fonction content compoly discrim gcd gcdex interp lcm norm prem primpart randpoly recipoly resultant roots sqrfree Description contenu d’un polynˆme multivari´ o e d´composition polynomiale e discriminant d’un polynˆme o plus grand commun diviseur algorithme ´tendu de division euclidienne e interpolation polynomiale plus petit commun multiple norme d’un polynˆme o pseudo-reste partie primitive d’un polynˆme multivari´ o e polynˆme al´atoire o e polynˆme r´ciproque o e r´sultante de deux polynˆmes e o racines sur un corps alg´brique de nombres e factorisation libre de carr´s e 3. 1 8 . il est utile pour calculer les e e limites des fonctions. x=1). Calculez la limite d’une fonction rationnelle lorsque x tend vers 1. x2 − 2 x + 1 x4 + 3 x3 − 7 x2 + x + 2 x2 − 2 x + 1 x→1 x4 + 3 x3 − 7 x2 + x + 2 lim > value(%). f := x → > Limit(f(x).5 Le calcul diff´rentiel e Maple offre plusieurs outils puissants permettant la r´solution de e probl`mes de calcul diff´rentiel. > f := x -> (x^2-2*x+1)/(x^4 + 3*x^3 .3.7*x^2 + x+2). Par exemple.

fs1 := 4 x − 38 3 421 5 x + x + O(x6 ) 3 30 Remarquez que. par d´faut. x→(1/2 π)− lim tan(x) > value(%). e L’utilisation de convert(fs1. e ` > Limit(tan(x). x=Pi/2. x=Pi/2. En modifiant la valeur de la variable sp´ciale Order. utilisez la fonction e > f := x -> sin(4*x)*cos(x).68 • Chapitre 3: Trouver des solutions Il est ´galement possible de calculer les limites a gauche et a droite e ` ` d’une fonction. la commande series produit un poe lynˆme d’ordre 6. polynom) supprime le terme d’ordre de la s´rie de mani`re que Maple puisse en tracer le graphique. left). x→(1/2 π)+ lim tan(x) > value(%). right). ` > Limit(tan(x). Calculez la limite a gauche en utilisant l’option left. −∞ Une autre op´ration facile a effectuer est la cr´ation d’une s´rie ape ` e e proximant une fonction donn´e. Par exemple. x=0). consid´rez la limite de tan(x) lorsque x tend e vers π/2. f := x → sin(4 x) cos(x) > fs1 := series(f(x). il o e est possible d’augmenter ou de diminuer l’ordre d’une s´rie polynomiale. e e . ∞ Faites de mˆme pour la limite a droite. Par exemple.

1.2 0.4–0.20 –1 –2 0.3. -2... e > Order := 12. p := 4 x − 38 3 421 5 10039 7 246601 9 x + x − x + x 3 30 1260 90720 6125659 11 − x 9979200 > plot({f(x).polynom). -2.8–0. fs1 := 4 x − 38 3 421 5 10039 7 246601 9 x + x − x + x − 3 30 1260 90720 6125659 11 x + O(x12 ) 9979200 > p := convert(fs1. p}..4 0. .2). p}. x=-1. • 69 p := 4 x − 38 3 421 5 x + x 3 30 > plot({f(x). x=0).6–0..8 1 x En augmentant l’ordre de troncation de la s´rie a 12 et en recommene ` ant les op´rations pr´c´dentes.6 0.x=-1.5 Le calcul diff´rentiel e > p := convert(fs1. Order := 12 > fs1 := series(f(x). 2 1 –1 –0. on remarque l’am´lioration escompt´e de e e e e e la pr´cision de l’approximation.polynom).1.2).

x). d´rivez une expression. x). x (sin(a x) + b x) .20 –1 –2 0. Par e e e exemple.70 • Chapitre 3: Trouver des solutions 2 1 –1 –0.4 0.8 1 x Maple peut calculer symboliquement les d´riv´es et les int´grales. f := x → x sin(a x) + b x2 > Diff(f(x). > f := x -> x*sin(a*x) + b*x^2. sin(a x) + x cos(a x) a + 2 b x dx > value(%). − cos(a x) cos(a x) + a x sin(a x) + + b x2 a a > simplify(%).4–0. int´grez son r´sultat et comparez celui-ci e e e a ` l’expression originale.2 0.6–0.6 0. ∂ (x sin(a x) + b x2 ) ∂x > df := value(%).8–0. df := sin(a x) + x cos(a x) a + 2 b x > Int(df.

2 sin(2 a) + 3 b − sin(a) Consid´rez une int´grale plus compliqu´e. Par exemple.3. t=0. Maple ne peut d´terminer si une variable est e r´elle ou complexe. 2 1√ π erf(x) 2 ` A quelques occasions.. ∞ 0 e(−a t) ln(t) dt > value(%). e e e recalculez l’int´grale pr´c´dente sur l’intervalle de x = 1 ` x = 2.2). e e > g := t -> exp(-a*t)*ln(t). Les r´sultats peuvent ˆtre calcul´s en une seule commande e e e e en utilisant respectivement diff et int. x). 2 sin(a x) + x cos(a x) a + 2 b x dx 1 > value(%).x=1. e e e a > Int(df.5 Le calcul diff´rentiel e • 71 Il n’est pas n´cessaire d’utiliser les formes inertes Diff et Int en cone jonction avec la commande value pour calculer symboliquement la d´riv´e e e et l’int´grale.infinity). e e e > Int(exp(-x^2). et retourne donc un r´sultat inattendu. e(−x ) dx > value(%). Vous pouvez ´galement effectuer des int´grales d´finies.. . g := t → e(−a t) ln(t) > Int (g(t).

72

Chapitre 3: Trouver des solutions

t→∞

lim −

e(−a t) ln(t) + Ei(1, a t) + γ + ln(a) a

Ici, Maple assume que le param`tre est un nombre complexe. Il ree tourne donc une r´ponse plus g´n´rale. e e e Dans les situations o` vous savez que a est un nombre positif r´el, u e sp´cifiez-le a Maple en utilisant la commande assume. e `
> assume(a > 0): > ans := Int(g(t), t=0..infinity);

ans :=
0

e(−a~ t) ln(t) dt

> value(%);

ln(a~) γ − a~ a~

Le r´sultat est beaucoup plus simple. Le seul terme non ´l´mentaire est e ee la constante gamma. Le tilde (~) indique que a porte une hypoth`se. Vous e devez maintenant supprimer cette hypoth`se pour parcourir les exemples e ult´rieurs. Deux ´tapes sont n´cessaires. La r´ponse, ans, contient a avec e e e e des hypoth`ses. Si vous souhaitez repartir de z´ro et continuer a utiliser e e ` ans, vous devez remplacer toutes les occurrences de a~ par a.
> ans := subs(a =’a’, ans );

ans :=
0

e(−a t) ln(t) dt

Le premier argument, a = ’a’, m´rite une attention particuli`re. Si e e vous tapez a apr`s avoir plac´ une hypoth`se sur a, Maple assume autoe e e matiquement que vous parlez de la variable a~. En Maple, les guillemets simples retardent l’´valuation. Dans ce cas, ils assurent que Maple ine terpr`te le deuxi`me a comme a et non a~. e e Maintenant que vous avez supprim´ l’hypoth`se sur a dans ans, vous e e pouvez supprimer l’hypoth`se sur a elle-mˆme en lui affectant son propre e e nom.
> a := ’a’:

Utilisez les guillemets simples pour la mˆme raison que pr´c´demment. e e e Pour plus de renseignements, consultez la section 5.2.

3.6 Les ´quations diff´rentielles : dsolve e e

• 73

3.6

Les ´quations diff´rentielles : dsolve e e

Maple peut r´soudre symboliquement plusieurs ´quations diff´rentielles e e e ordinaires (EDO), incluant les probl`mes de conditions initiales et de e conditions aux limites. D´finissez une EDO. e
> ode1 := {diff(y(t),t,t) + 5*diff(y(t),t) + 6*y(t) = 0};

ode1 := {(

d2 d y(t)) + 5 ( y(t)) + 6 y(t) = 0} 2 dt dt

D´finissez les conditions initiales. e
> ic := {y(0)=0, D(y)(0)=1};

ic := {y(0) = 0, D(y)(0) = 1} R´solvez au moyen de dsolve, en utilisant l’op´rateur union pour e e former l’union des deux ensembles.
> soln := dsolve(ode1 union ic, {y(t)});

soln := y(t) = −e(−3 t) + e(−2 t) Si vous souhaitez utiliser cette solution pour l’´valuer en certains e points ou pour en tracer le graphique, rappelez-vous d’utiliser la commande unapply pour d´finir correctement une fonction Maple. La sece tion 3.1 discute davantage de cette question. Vous pouvez extraire une valeur d’un ensemble solution au moyen de la commande eval.
> eval( y(t), soln );

−e(−3 t) + e(−2 t) Utilisez maintenant ce fait pour d´finir y comme une fonction de t en e utilisant unapply :
> y1:= unapply(%, t );

y1 := t → −e(−3 t) + e(−2 t)

74

Chapitre 3: Trouver des solutions

> y1(a);

−e(−3 a) + e(−2 a) V´rifiez maintenant que y1 est bien une solution de l’EDO : e
> eval(ode1, y=y1);

{0 = 0} et que y1 satisfait bien aux conditions initiales.
> eval(ic, y=y1);

{1 = 1, 0 = 0} Une autre m´thode de v´rification des solutions est ´galement dispoe e e nible, bien qu’elle puisse sembler d´routante au premier abord. Donnez a e ` la nouvelle solution le nom y plutˆt que y1. o
> y := unapply( eval(y(t), soln), t );

y := t → −e(−3 t) + e(−2 t) Maintenant, lorsque vous entrez une ´quation contenant y, Maple utie lise cette fonction et en ´value le r´sultat, en une seule ´tape. e e e
> ode1;

{0 = 0}
> ic;

{1 = 1, 0 = 0} Si vous souhaitez modifier l’´quation diff´rentielle, vous ne voudrez e e plus de cette d´finition pour y(x) ; vous devrez donc supprimer cette e d´finition au moyen de la commande suivante : e
> y := ’y’;

3.6 Les ´quations diff´rentielles : dsolve e e

• 75

y := y Maple reconnaˆ ´galement les fonctions sp´ciales, comme la fonction ıt e e de Dirac utilis´e en physique. e
> ode2 := 10^6*diff(y(x),x,x,x,x) = Dirac(x-2) > Dirac(x-4);

ode2 := 1000000 (

d4 y(x)) = Dirac(x − 2) − Dirac(x − 4) dx4

Sp´cifiez des conditions aux limites : e
> bc := {y(0)=0, D(D(y))(0)=0, y(5)=0};

bc := {(D(2) )(y)(0) = 0, y(0) = 0, y(5) = 0} sp´cifiez ´galement une valeur initiale. e e
> iv := {D(D(y))(5)=0};

iv := {(D(2) )(y)(5) = 0}
> soln := dsolve({ode2} union bc union iv, {y(x)});

soln := y(x) = − − − + + +

1 Heaviside(x − 2) x3 6000000 1 1 Heaviside(x − 2) + Heaviside(x − 2) x 750000 500000 1 Heaviside(x − 2) x2 1000000 1 Heaviside(x − 4) x3 6000000 1 1 Heaviside(x − 4) − Heaviside(x − 4) x 93750 125000 1 1 Heaviside(x − 4) x2 − x3 500000 15000000 1 x 1250000

> eval(y(x), soln);

76

Chapitre 3: Trouver des solutions

1 1 Heaviside(x − 2) x3 − Heaviside(x − 2) 6000000 750000 1 + Heaviside(x − 2) x 500000 1 − Heaviside(x − 2) x2 1000000 1 − Heaviside(x − 4) x3 6000000 1 1 + Heaviside(x − 4) − Heaviside(x − 4) x 93750 125000 1 1 + Heaviside(x − 4) x2 − x3 500000 15000000 1 + x 1250000
> y := unapply(%, x);

1 Heaviside(x − 2) x3 6000000 1 1 − Heaviside(x − 2) + Heaviside(x − 2) x 750000 500000 1 − Heaviside(x − 2) x2 1000000 1 − Heaviside(x − 4) x3 6000000 1 1 + Heaviside(x − 4) − Heaviside(x − 4) x 93750 125000 1 1 + Heaviside(x − 4) x2 − x3 500000 15000000 1 + x 1250000 Cette valeur de y satisfait a l’´quation diff´rentielle, a la condition ` e e ` aux limites et a la valeur initiale. ` y := x →
> ode2;

3.6 Les ´quations diff´rentielles : dsolve e e

• 77

24 Dirac(1, x − 4) − 12 Dirac(1, x − 2) + 6 Dirac(1, x − 2) x − 6 Dirac(1, x − 4) x + 8 Dirac(2, x − 2) − 8 Dirac(2, x − 2) x + 2 Dirac(2, x − 2) x2 + 16 Dirac(2, x − 4) x 1 − 2 Dirac(2, x − 4) x2 + Dirac(3, x − 2) x3 6 + 2 Dirac(3, x − 2) x − Dirac(3, x − 2) x2 1 − Dirac(3, x − 4) x3 − 8 Dirac(3, x − 4) x 6 + 2 Dirac(3, x − 4) x2 − 32 Dirac(2, x − 4) 4 32 − Dirac(3, x − 2) + Dirac(3, x − 4) + 4 Dirac(x − 2) 3 3 − 4 Dirac(x − 4) = Dirac(x − 2) − Dirac(x − 4)
> simplify(%);

Dirac(x − 2) − Dirac(x − 4) = Dirac(x − 2) − Dirac(x − 4)
> bc;

{0 = 0}
> iv;

{0 = 0}
> plot(y(x), x=0..5, axes=BOXED);
1e–06 8e–07 6e–07 4e–07 2e–07 0 0 1 2 3 4 5

x

Maintenant que vous n’utilisez plus y, vous devriez y enlever toute r´f´rence. ee

par exemple. le syst`me suivant form´ de deux ´quations simule e e tan´es du second ordre. Observez encore qu’il est possible d’extraire et de d´finir les solutions e a ` l’aide des commandes eval et unapply : > y := unapply(eval(y(x).x. . {z(x).x.x)=y(x) }.x)=z(x). z(x) = y(x)} dx2 dx2 > soln := dsolve(de_sys. eee e > y := ’y’. y := y . de_sys := { d2 d2 y(x) = z(x). y := y Maple peut ´galement r´soudre des syst`mes d’´quations diff´rene e e e e tielles ..y(x)}). soln := { y(x) = −_C1 sin(x) + _C2 ex − _C3 cos(x) + _C4 e(−x) . Maple produit automatiquement les constantes appropri´es _C1. −_C1 e(−1) + _C2 e − _C3 sin(1) + _C4 cos(1) Vous pouvez d´r´f´rencer les solutions lorsque vous en avez termin´. y := x → −_C1 e(−x) + _C2 ex − _C3 sin(x) + _C4 cos(x) > y(1). soln). diff(z(x). e . e > de_sys := { diff(y(x). _C4.78 • Chapitre 3: Trouver des solutions > y := ’y’. . z(x) = _C1 sin(x) + _C2 ex + _C3 cos(x) + _C4 e(−x) } Si vous r´solvez le syst`me sans sp´cifier de conditions suppl´mene e e e taires. x ).

.. e Les derni`res commandes de la biblioth`que sont les packages. Ce noyau constitue la base du syst`me. le package LinearAlgebra e contient des commandes pour la manipulation des matrices. car e il contient les commandes fondamentales et primitives : l’interpr´teur du e langage Maple (qui convertit les commandes saisies en instructions machine que le microprocesseur de votre ordinateur peut comprendre). des algorithmes de calcul num´rique ´l´mentaire ainsi que des routines d’afe ee fichage des r´sultats et d’op´rations d’entr´e-sortie. e e package [cmd ]( . le nom complet du sous-package. Chacun e e des nombreux packages de Maple contient un groupe de commandes effectuant des calculs apparent´s. Par exemple. Vous pouvez utiliser une commande d’un package de trois mani`res. e 1. La biblioth`que principale contient les commandes Maple les plus e fr´quemment utilis´es (excluant celles d´j` contenues dans le noyau). Le langage Maple produit des e proc´dures tr`s compactes qui n’affichent pas de d´lai observable : vous e e e ne remarquerez probablement pas la diff´rence entre ces derni`res et les e e commandes du noyau ´crites en C.7 L’organisation de Maple • 79 3. e o Les 90% restants du savoir math´matique de Maple sont ´crits dans e e le langage Maple et r´sident dans sa biblioth`que (library en anglais). Utilisez le nom complet du package. La e e biblioth`que se divise en deux groupes : la biblioth`que principale (main e e e library ) et les packages. e e package[souspackage][cmd] (. entrez le nom abr´g´ de la commande. e e e Le noyau est form´ de code C hautement optimis´ et totalise environ e e 10% de la taille du syst`me. e e . utilisez le nom complet du pace kage.. Maple ne charge en m´moire que le noyau (en anglais e e kernel ) de son programme. ) Si le package poss`de un sous-package. ces groupes de fonctions se situent au-dessus du noyau. Hi´rarchiquement.) Puis.7 L’organisation de Maple Au d´marrage.3.. suivi de la commande d´sir´e. Les programmeurs de Maple ont d´lib´r´ment e e ee conserv´ sa taille petite pour en pr´server la rapidit´ d’ex´cution. Le e e e e noyau de Maple ex´cute les routines les plus fr´quentes en arithm´tique e e e enti`re et rationnelle et dans la manipulation des polynˆmes. suivi de la commande d´sir´e. e e ea Ces commandes sont charg´es lorsqu’elles sont appel´es — il n’est pas e e n´cessaire de les charger explicitement.

) 2. entrez le nom abr´g´ de la commande. cmd ) Puis.80 • Chapitre 3: Trouver des solutions cmd (. e with(package[souspackage]. e e with(package. entrez le nom abr´g´ de la commande. > with(Student[Calculus1]).) Le prochain exemple utilise la commande Tangent du package Student pour calculer la pente de la tangente de l’expression sin(x) au point x = 0. Activez les noms abr´g´s pour toutes les commandes d’un package en e e utilisant la commande with.. utilisez la commande with de e la mani`re suivante.... e e cmd (. e with(package[souspackage] ) Puis. with(package ) Si le package poss`de un sous-package. . cmd ) Si le package poss`de un sous-package.. Activez le nom abr´g´ d’une seule commande d’un package.) 3. utilisez la commande with de e la mani`re suivante.. e e cmd (.

algcurves Outils pour l’´tude des vari´t´s (courbes) alg´briques unidie ee e mensionnelles d´finies par des polynˆmes multivari´s. x = 0). ExtremePoints . Summand . DerivativePlot . InflectionPoints . RollesTheorem. du calcul diff´rentiel ´l´mentaire a la th´orie e ee ` e g´n´rale de la relativit´. NewtonQuotient . InversePlot . CriticalPoints . Maple vous e e avertit lorsqu’il red´finit des noms d´j` existants. Asymptotes . Rule. PointInterpolation. Les exemples de cette section ne se veulent pas e e e d´taill´s et complets : ils ne sont que des illustrations de quelques come e mandes dans des packages particuliers qui vous donneront un aper¸u des c capacit´s de Maple. e Liste des packages Vous trouverez la liste de packages suivante dans la page d’aide ?packages. e o e codegen Outils de cr´ation. NewtonsMethod . WhatProblem] > Tangent(sin(x). ArcLength. GetProblem. Ce package permet la diff´rentiation e . GetMessage. e ea 3. RiemannSum. Tangent . SurfaceOfRevolution. de manipulation et de traduction de proc´e e dures Maple en d’autres langages. Undo. Clear . De plus. Roots .8 Les packages Maple • 81 [AntiderivativePlot . Show . MeanValueTheorem. TaylorApproximation. FunctionChart . Integrand . VolumeOfRevolution. FunctionAverage. GetNumProblems .3.8 Les packages Maple Les packages inclus dans Maple permettent d’effectuer des tˆches dans a de nombreuses disciplines. vous voyez apparaˆ une liste ıtre de tous les noms abr´g´s des commandes du package. x Lorsque vous utilisez with(package ). Understand . consultez la page d’aide ?nomdupackage . ApproximateInt . ShowIncomplete. Hint . Pour obtenir une liste compl`te des commandes d’un package e en particulier. ShowSteps.

e e e e Domains Commandes qui permettent de cr´er des domaines de calcul e (domains of computation en anglais) . supporte le calcul sur les polynˆmes. genfunc Commandes de manipulation des fonctions g´n´ratrices ratione e nelles. d´di´ aux e e e probl`mes de g´om´trie diff´rentielle. CodeGeneration Fonctions qui traduisent un programme Maple en d’autres langages de programmation. les anneaux de polynˆmes et les anneaux o de matrices. les matrices de mˆme que les s´ries sur des anneaux de o e e nombres. les anneaux finis.) combstruct Commandes qui permettent de g´n´rer et de compter les e e structures combinatoires ainsi que de d´terminer les ´quations des e e fonctions g´n´ratrices permettant ce comptage. CurveFitting Commandes qui permettent de tracer des courbes de tendances. e e . en cliquant e sur une expression avec le bouton de droite de la souris). ExternalCalling Commandes effectuant des liens vers des fonctions externes. e e context Outils de construction et de modification des menus contextuels de l’interface graphique de Maple (affich´s.82 • Chapitre 3: Trouver des solutions automatique. difforms Commandes de gestion des formes diff´rentielles . etc. e sph`res. triangles. commandes de calcul du PGCD. finance Commandes de calcul financier. la traduction en C et en FORTRAN. l’optimisation de code. etc. DEtools Outils de manipulation. par exemple. de factorisation et de e tests de primalit´. GaussInt Commandes qui permettent de travailler sur les nombres de la forme a + bI (o` a et b sont entiers) que l’on appelle les entiers u gaussiens . plans. de mˆme que les partie tions enti`res. combinat Fonctions combinatoires incluant des commandes pour calculer les permutations et les combinaisons de listes. geom3d Commandes de g´om´trie euclidienne tridimensionnelle pour e e d´finir et manipuler en trois dimensions points. poly`dres. lignes. de r´solution et d’affichage des syst`mes e e d’´quations diff´rentielles . espaces de phases et graphiques de champs. e e diffalg Commandes de manipulation de syst`mes d’´quations diff´rene e e tielles polynomiales (EDO ou EDP). (Utilisez plutˆt le package combstruct lorsque cela est e o possible.

triangles ` et cercles. Matlab Commandes qui exploitent plusieurs des fonctions matricielles num´riques de Matlab. des boˆ de diae e ıtes logue et d’autres interfaces visuelles qui interagissent avec l’utilisateur.8 Les packages Maple • 83 geometry Commandes de g´om´trie euclidienne bidimensionnelle servant e e a e ` d´finir et a manipuler en deux dimensions points. e e inttrans Commandes qui permettent de travailler avec les transformations d’int´grales et leurs inverses. outils de calcul pour les alg`bres de Ore et les D-modules. calculer avec de grandes matrices nue m´riques et effectuer des op´rations d’alg`bre matricielle. LinearAlgebra Commandes d’alg`bre lin´aire am´lior´es servant a cr´er e e e e ` e des types sp´ciaux de matrices. e liesymm Commandes servant a caract´riser les sym´tries de contact des ` e e syst`mes d’´quations aux d´riv´es partielles. les e d´terminants et la d´composition LU. incluant les valeurs et les vecteurs propres. LREtools Commandes de manipulation. e e d´terminent le d´nominateur universel d’une solution rationnelle et e e transforment un syst`me de r´currence matriciel en un syst`me e e e ´quivalent avec une matrice de tˆte ou de queue non singuli`re. de l’addition de matrices aux vecteurs et valeurs propres. e LibraryTools Commandes de manipulation et de traitement de biblioth`ques. e e e ListTools Commandes de manipulation de listes. e e e e linalg Plus de 100 commandes de manipulation matricielle et vectorielle . MathML Commandes qui importent et exportent des expressions Maple en texte MathML. (Ce package est accessible seulee e ment si Matlab est install´ sur votre syst`me. e e Maplets Commandes permettant de cr´er des fenˆtres. Groebner Commandes pour les calculs en base de Gr¨bner . lignes. o . e e e LinearFunctionalSystems Commandes qui permettent de r´soudre des e syst`mes lin´aires de fonctions avec des coefficients polynomiaux. e group Commandes permettant de travailler avec les groupes de permutations et les groupes finiment pr´sent´s. d’affichage et de r´solution de e relations de r´currence lin´aire.) e e MatrixPolynomialAlgebra Ensemble d’outils de manipulation alg´e brique des polynˆmes matriciels. en particuo lier.3.

e numtheory Commandes de th´orie des nombres classique. de mani`re plus g´n´rale. PolynomialTools Commandes de manipulation d’objets polynomiaux. polytools Commandes de manipulation d’objets polynomiaux. ce package s’av`re utile pour la r´solution d’´quations e e e diff´rentielles. de polynˆmes e e e o hyperg´om´triques. tests de prie malit´. de r´solution et d’affichage d’´quations e e aux d´riv´es partielles. l’affichage de texte et de graphiques dans diff´rents syst`mes de coordonn´es. RationalNormalForms Commandes permettant de construire la forme normale polynomiale ou les formes rationnelles canoniques d’une fonction rationnelle. Ore_algebra Routines de calcul de base dans les alg`bres d’op´rateurs e e lin´aires. e OrthogonalSeries Commandes de manipulation de s´ries de polynˆmes e o orthogonaux classiques ou. e e e e process Commandes permettant d’´crire des programmes Maple multie processus sous UNIX. e e orthopoly Commandes servant a g´n´rer diff´rents types de polynˆmes ` e e e o orthogonaux . e e plots Commandes pour diff´rents types de graphiques sp´cialis´s. e PDEtools Outils de manipulation. e e e ` e e ` plottools Commandes servant a g´n´rer et a manipuler des objets graphiques. e . les graphiques bidimensionnels et tridimensionnels de fonctions implicites. de tra¸age et d’analyse des r´seaux c e combinatoires. ou la repr´sentation minimale d’un terme hyperg´oe e m´trique. Ce package contient ´galement des come e mandes de gestion des convergents. RandomTools Commandes permettant de travailler avec des objets al´ae toires.84 • Chapitre 3: Trouver des solutions networks Outils de construction. e numapprox Commandes de calcul d’approximations polynomiales de fonctions sur un intervalle donn´. calcul du n-i`me nombre premier. powseries Commandes servant a cr´er et manipuler des s´ries enti`res ` e e e formelles repr´sent´es par leur terme g´n´ral. g´n´ration de polynˆmes e e e e o d’unit´s cyclotomiques. ine e e cluant les graphiques d’isovaleurs. Outils de gestion des graphes orient´s et d’expressions e arbitraires pour les poids des nœuds et des arˆtes. e padic Commandes de calcul des approximations p-adiques de nombres r´els.

inclut des commandes pour e le calcul de la moyenne. e Les routines de ce package vous permettent de vous connecter a des ` processus situ´s sur des hˆtes distants (par Internet ou Intranet) et e o ´changer des donn´es avec ces processus. la visuae lisation de la m´thode de Newton.8 Les packages Maple • 85 RealDomain Fournit un environnement dans lequel le syst`me de nombres e assum´ est le syst`me des nombres r´els. Dans des versions e ` futures de Maple. e StringTools Commandes optimis´es de manipulation des chaˆ e ınes de caract`res. Ce package donne aux utilisateurs exp´rie e e ment´s l’acc`s aux routines appliqu´es par la commande solve pour e e e un meilleur contrˆle du processus de r´solution. et non le syst`me des nombres e e e e complexes. la e e longueur d’arc. simplex Commandes d’optimisation lin´aire utilisant la m´thode du sime e plexe. l’´cart type. ce package sera ´largi pour inclure d’autres souse packages li´s ` l’enseignement. Le premier de ceux-ci est Calculus1. les sommes de Riemann. la e e variance et l’analyse de r´gression. ScientificConstants Commandes donnant acc`s aux valeurs de diff´e e rentes quantit´s physiques utilis´es couramment en physique ou en e e chimie. de mˆme que des routines pour trouver les points critiques d’une expression. les coefficients de corr´lation. e Student Sous-packages sp´cifiques a certains cours. e e e e . e e Sockets Commandes permettant les communications r´seau avec Maple.3. e e tensor Commandes permettant le calcul tensoriel et ses applications a ` la th´orie g´n´rale de la relativit´. Come e prend les algorithmes de Gosper et de Zeilberger. stats Manipulation statistique de donn´es . Sumtools Outils permettant de calculer des formes ferm´es de sommes e d´finies et ind´finies. les volumes de r´volution. e e SolveTools Commandes qui permettent de r´soudre des syst`mes e e d’´quations alg´briques. Slode Commandes servant a trouver des solutions a des EDO lin´aires ` ` e sous forme de s´ries enti`res. o e Spread Outils permettant de travailler avec les feuilles de calcul dans Maple. de l’int´gration et du calcul des limites. e a Calculus1 Commandes permettant de d´cortiquer les ´tapes de la e e e e diff´rentiation. sumtools Commandes de calcul de sommes d´finies et ind´finies.

e > Rule[sum](%). e > Rule[constantmultiple](%).. > Int(x*cos(x) + x. Creating problem #2 .86 • Chapitre 3: Trouver des solutions Le package Student Calculus1 (une variable) Le package Student[Calculus1] vous aide a effectuer les calculs de ` diff´rentiation. Int´grez x∗cos(x)+ e e e x entre x = 0 et x = π. ` > Diff(4*x^2. d (4 x2 ) = 8 x dx Consid´rez maintenant cet exemple d’int´gration. Creating problem #1 d d (4 x2 ) = 4 ( (x2 )) dx dx Utilisez la r`gle power. e e > with(Student[Calculus1]): > infolevel[Student] := 1: Pour voir la liste de toutes les commandes charg´es par Maple. e > Rule[power](%). d (4 x2 ) dx Utilisez la r`gle constantmultiple. Consid´rez le probl`me suie e e e vant : trouvez la d´riv´e de la fonction 4 ∗ x2 .Pi). π x cos(x) + x dx 0 Utilisez la r`gle sum. remplacez e les deux points par le point-virgule a la fin de la commande. x=0. x). d’int´gration et de limites.

π 0 x cos(x) + x dx = −2 + 1 2 π 2 Employez le package Student[Calculus1] pour calculer la limite de (1 + 1/x)x . sum). e > Rule[power](%).3. sin(x)] Utilisez cet indice avec la commande Rule. [parts . π π x cos(x) + x dx = 0 0 x cos(x) dx + 1 2 π 2 Employez la commande Hint pour obtenir un indice sur la prochaine ´tape de r´solution du probl`me. . power. e e e > Hint(%). de la puissance et de la somme pour le prochain exemple. ‘c*‘.8 Les packages Maple π π π • 87 x cos(x) + x dx = 0 0 x cos(x) dx + 0 x dx Utilisez la r`gle power. Sp´cifiez a Understand les r`gles de la constante. > Understand(Limit. e > Rule[sin](%). > Rule[%](%%). constant. de la e ` e constante multiplicative. Utilisez la commande Understand pour sp´cifier des r`gles qui servie e ront au calcul d’une limite par la commande Limit sans les appliquer directement. x. π 0 π x cos(x) + x dx = − 0 sin(x) dx + 1 2 π 2 Servez-vous de la r`gle sin pour terminer le calcul.

power . x→∞ lim (1 + 1 x ) = e(limx→∞ x 1 x ln(1+ x )) > Hint(%). ln(1 + > Rule[%](%%). x=infinity). e e > Rule[%](%%).88 • Chapitre 3: Trouver des solutions Limit = [constant . [exp] > Rule[%](%%). x→∞ lim (1 + 1 x ) x Demandez un indice a propos de la prochaine ´tape a effectuer. (1 + 1 1 x ) = e(x ln(1+ x )) ] x Utilisez la r`gle donn´e par Hint. [lhopital . constantmultiple. Creating problem #3 Rewrite the expression as an exponential to prepare for using l‘Hopital’s rule [rewrite. x→∞ lim (1 + 1 1 x ) = lim e(x ln(1+ x )) x→∞ x > Hint(%). 1 )] x . ` e ` > Hint(%). sum] > Limit((1 + 1/x)^x.

. -2. > showtangent=true). output=plot. x = x+1  1  1 1+ x > Rule[%](%%).3.f(0)) 2 1 –2 –1 x 1 2 –1 –2 –3 –4 –5 f(x) Thetangentatx=0 En quel endroit cette courbe traverse-t-elle l’axe des x ? > Roots(-2/3*x^2+x). > Tangent(-2/3*x^2+x. TheTangenttotheGraphof f(x)=–2/3*x^2+x atthePoint(0. [0. x=0.2. x→∞ lim (1 + 1 x ) =e x Consid´rez la fonction −2/3 ∗ x2 + x. de mˆme e e que la pente de sa tangente en x = 0. 3 ] 2 Vous pouvez calculer l’aire sous la courbe entre ces deux points au moyen de sommes de Riemann. Tracez-en le graphique.   rewrite..8 Les packages Maple • 89 x→∞ lim (1 + 1 x ) = e(limx→∞ x x ) x+1 > Hint(%).

4 0. > output=plot..6 0..2 0.3/2.3 0.2 Area:.2 0.4].6 –0. > partition=40). > ApproximateInt(-2/3*x^2+x.2 1. view=[0. > output=plot.4 1.6 –0.3/2.8 x 1 1. method=midpoint.1.4 0.0. view=[0. AnApproximationoftheIntegralof f(x)=–2/3*x^2+x ontheInterval[0.1.8 x 1 1.1 0 –0.90 • Chapitre 3: Trouver des solutions > ApproximateInt(-2/3*x^2+x.3750000000 0. ıtes e > ApproximateInt(-2/3*x^2+x. x=0..3751171867 f(x) Quelle est la valeur exacte ? Utilisez d’abord n boˆ ıtes et calculez la formule de la somme. method=midpoint.6.2 0.2 0.3/2] UsingaMidpointRiemannSum ApproximateValue:.. AnApproximationoftheIntegralof f(x)=–2/3*x^2+x ontheInterval[0. x=0.0.6.3750000000 0. method=midpoint.. partition=n).  n−1 i=0 3 2  1 1 (i + )2 3 i +  3 2 + 2 −  2 2 n 2 n n .4]).2 Area:. > output=sum.15.3 0.1 0.3768750000 f(x) Puisque le r´sultat n’est pas une bonne approximation.1 0 –0.4 0. augmentez e a ` 40 le nombre de boˆ utilis´es.2 1.1 0.3/2] UsingaMidpointRiemannSum ApproximateValue:.6 0.4 1. -0..3/2.4 0.15. x=0.. -0.

. reporteze vous au chapitre 6. e ee e e Un ensemble de vecteurs {v1 . Il est possible d’exprimer n’importe quel ´l´ment de l’espace vectoriel comme une combinaiee son lin´aire des ´l´ments de la base. e > Int(-2/3*x^2+x. . lorsque c1 v1 + c2 v2 + c3 v3 + · · · + cn vn = 0 alors c1 = c2 = c3 = · · · = cn = 0. .3. 3/2 0 − 2 2 x + x dx 3 > value(%). un ensemble de vecteurs lin´airement ind´pendants e e e e qui engendrent l’espace vectoriel se nomme une base. 3 8 Pour plus d’information sur le calcul diff´rentiel avec Maple.8 Les packages Maple • 91 Prenez ensuite la limite lorsque n tend vers ∞. Le package LinearAlgebra En alg`bre lin´aire..3/2 ). x=0. . v3 . vn } est lin´airement ind´pendant si et seulement si.  1 1 (i + )2 3 i +  3 2 + 2 −  2 n2 2 n n 3 8 Remarquez maintenant que vous pouvez obtenir le mˆme r´sultat au e e moyen d’une int´grale. v2 . > Limit( %. n=infinity ).  n−1 i=0 3 n→∞ 2 lim > value(%). .

0.0> ). −1] + c3 [6.v2. 1] + c2 [5.  −_t3 3  −_t3 3  _t3 3  Les vecteurs sont lin´airement d´pendants puisque chacun est un proe e duit lin´aire d’une variable. 0. 0] Cette ´quation est ´quivalente a e e ` c1 + 5c2 + 6c3 = 0 −c1 − 2c2 − 3c3 = 0 3c2 + 3c3 = 0 c1 − c2 = 0  > LinearSolve( Transpose(vector_space). e e Pour v´rifier l’ind´pendance lin´aire. <0. 2.92 • Chapitre 3: Trouver des solutions Probl`me : D´terminer une base de l’espace vectoriel g´n´r´ par les e e e ee vecteurs [1. −1. e > b:=RowSpace(vector_space). ´crivez l’´quation c1 v1 +c2 v2 +c3 v3 = e e e e e 0.v3>. Exprimer le vecteur [1. −1]. 3. −2]] . 1]. 1. > > > > > with(LinearAlgebra): v1:=<1|-1|0|1>: v2:=<5|-2|3|-1>: v3:=<6|-3|3|0>: vector_space:=<v1. −5] par rapport a cette base. 0]. [5. b := [[1. −2. 3.0. 3. 0. −2. 3. La e commande RowSpace retourne une base pour un espace vectoriel donn´. c1 [1. [0. 0. 0] = [0. −3. 1. 0. −1. −3.  1 −1 0 1 vector _space :=  5 −2 3 −1  6 −3 3 0 Si les vecteurs sont lin´airement ind´pendants. 1. il forment une base. −1] et [6. 3.0. Ils ne peuvent donc pas former une base. ` Solution : Entrer les vecteurs.

[2.3.2. 1. ex´cu` e tez la commande ?LinearAlgebra.3]. <1|2|3|-5> ). basis := 1 0 1 −1 0 1 1 −2 Exprimer [1. 0. utilis´ e e par des ing´nieurs et d’autres professionnels.8 Les packages Maple > b1:=b[1]. e On doit d’abord ´tablir une connexion entre les deux produits avec e > Matlab[openlink](). Pour d´terminer les valeurs et les vecteurs propres d’une matrice d’ene tiers. 3. b2:=b[2]. 1 . • 93 b1 := [1. 1. −5] en coordonn´es par rapport a cette base. e ` > LinearSolve( Transpose(basis). e e > A := Matrix([1. 1.[1.6]]): On appelle ensuite la commande eig de Matlab. Il existe ´galement un Symbolic Computation Toolbox disponible pour Matlab qui e vous permet d’appeler des commandes Maple depuis Matlab.b2>. −1] b2 := [0. 2. −2] > basis:=<b1. 1 2 Pour obtenir davantage d’information a propos de ce package. Matlab est une abr´viation de matrix laboratory (laboratoire e de matrices) et est un package de calcul num´rique fort populaire.3]. Le package Matlab Le package Matlab vous permet d’appeler certaines fonctions de Matlab a ` partir d’une session Maple.2. on d´finit d’abord la matrice souhait´e avec la syntaxe de Maple. en supposant que Matlab soit install´ sur votre e e syst`me 1 .5.

758331802155925 10−16 −. describe. cette fonctionnalit´ est peu utilis´e.W) sp´cifie que deux objets seront g´n´r´s et assign´s aux variables e e ee e — les valeurs propres. Consultez l’aide sous la rubrique e e Matlab pour obtenir plus d’information sur les donn´es Matlab accept´es e e par Maple. Il contient ´galement un grand ´ventail de distributions e e statistiques.5567547110202646  Le package Statistics Le package stats poss`de plusieurs commandes d’analyse et de manie pulation de donn´es.321825 0.3218253      > P.W := Matlab[eig](A. ` e Le (P. −. e e e Examinons les r´sultats. 0. stats est un exemple de package renfermant des sous-packages (sub` packages en anglais).3162277660168383 . random. a P. a W. 0.     9. [anova. statplots . 0. et les vecteurs propres. de mˆme que plusieurs types de graphiques utilis´s e e e en statistique. e e > with(stats).9486832980505138 −. puisque e les commandes Maple existantes sont con¸ues pour ne retourner qu’un c seul r´sultat. transform] . importdata. fit . 0. −.    −. A l’int´rieur de chaque sous-package se trouvent e plusieurs commandes group´es par fonctionnalit´.5612673 10−15 0.8303435030540421 . statevalf .6164806432593667 Les commandes de ce package peuvent ´galement prendre comme pae ram`tres des donn´es en format Matlab. −.3940365889964672 −2. eigenvectors=true): Remarquez ce qui se trouve a la gauche de l’op´rateur d’affectation. L’affectation ` ` multiple est ´galement possible avec les commandes Maple. mais.3940365889964673 −.5567547110202655    −.94 • Chapitre 3: Trouver des solutions > P. e > W.

2).75. . . > marks := > [64.003.04. qui peuvent ˆtre de simples listes Maple. Weight(1. 81.002. . 2). .83. Weight(1. e > describe[mean](marks). > readings := [ Weight(.04.04. La diff´rence se comprend plus facilement au moyen d’un ee e e exemple. .874.75. .75.01.76. . 45.002.874. . Weight(1. .9125. .04. Si des diff´rences de moins de 0.9125.003.72. . .75. . 2).75. . marks est une liste standard.3. il est possible de les regrouper et de ne sp´cifier qu’un e e e intervalle (en utilisant “. 75.874.874.81.83. 0. 01 sont suffisamment petites pour e ˆtre n´gligeables. .. readings := [Weight(. 1.002 ]. . . 1.003.68.75.93.003.003. 76. readings := [. 93.. 72. 2).01.75. Weight(1. . .04.75.01. 1. ..n ) indique que la valeur x apparaˆ n fois dans ıt la liste. . 1.0.8 Les packages Maple • 95 Le package stats traite les donn´es sous la forme de listes statise tiques .83.83. . 2). > .83.45.”). . Weight(.. > .01.04.73].874.9125.9125.002 ]. . readings := [Weight(. 82. 2). 2). Weight(0. 2)] Le sous-package describe contient des commandes servant a l’analyse ` de donn´es.9125. e ` > readings := [ Weight(.83.9125. Une liste statistique peut e ´galement contenir des intervalles et des valeurs auxquelles des poids ont e ´t´ assign´s.75. .01. 2) ]. . > . > readings := [ 0. marks := [64.002] qui sont ´quivalentes a cette liste statistique.01. 68.874. 73] tout comme readings. .01. . .82. . 2).01. .002] L’expression Weight(x.003.

6917100232.1. . .6341448687. > random_data:=[random[normald](50)].1093403084. −.0.6707087107.005183053789.3876183720. 1.8670709448. G´n´rez des e e donn´es al´atoires en utilisant la distribution normale. −.7304597374.3758638317.583279600. .5]. . .140005385.4470293004.1.6385850228. .1529160443.9886372087. . .858250470. 1.625165927. −1. −.4996033128.2. 2.7709242575. .162605068.095665255. 1. 1.. −.8181350112. . .. .002. .5872984199.2068680316. . . −.2.. 1.7487697029.599692668. random_data := [1.1238893314.. 45. −. −. −1.96 • Chapitre 3: Trouver des solutions 729 10 > describe[range](marks). .4908898750.1231141571..09467224460.01 > describe[standarddeviation](readings).1. −1.2620109124.4386378394. −. −1.463572278. −.-1. −.8876933468. −.93 > describe[range](readings). −.407989130.04721150696.452138520.4128440679] > ranges:=[-5. −.283733823. groupez-les en e e classes et tracez un histogramme de ces classes. −. . . .03801888006. −.-2.. −.7648245898.6819890237.01231563388..8364873682. 2.0..-1. −1. −.342701867.08547526754.4038750456 Ce package contient plusieurs distributions statistiques. .253885017. .7765483851. .-2.3045008349.1729739933. .

e e Voici un petit syst`me en guise d’exemple..1. 1. Imaginez-vous en livreur de pizza : vous devez livrer quatre pizzas en quatre endroits diff´rents dispers´s dans la ville.. − 2. 20). .3. vous pouvez trouver la solution optimale. c’est-`-dire la solution qui vous fera utiliser le moins de carburant tout a en atteignant toutes les adresses dans le plus court d´lai possible... L’optimisation lin´aire permet e de trouver des solutions optimales a des ´quations soumises a certaines ` e ` contraintes. −2.5. Vous devez ´galement vous rendre aux quatre endroits en moins de vingt minutes. 2. − 1. Vous souhaitez livrer e e toutes les quatre en utilisant le moins de carburant possible.. Weight(−5.. 0).0.. 2)..ranges).0. Si vous cr´ez des ´quations e e e math´matiques repr´sentant les routes menant aux quatre endroits ainsi e e que leurs distances respectives. 5). Les e contraintes de ce syst`me particulier sont que vous devez avoir livr´ toutes e e les quatre pizzas vingt minutes apr`s avoir quitt´ le restaurant.. 6). Weight(0. 20 15 10 5 –6 –4 –2 0 2 4 6 Le package d’optimisation lin´aire e Le package simplex contient des commandes d’optimisation lin´aire grˆce e a a ` l’utilisation de l’algorithme du simplexe. − 2. 0. −1. Weight(−1. Un exemple classique d’optimisation est le probl`me de la livraison de e pizza. 17)] > statplots[histogram](data_list).5] > data_list:=transform[tallyinto](random_data.8 Les packages Maple • 97 ranges := [−5. − 1.2..2.1.. e > with(simplex). data_list := [Weight(1. Weight(2.. Weight(−2. e de mani`re que les pizzas demeurent chaudes.

setup. convexhull .c2. c1 := 3 x + 4 y − 3 z ≤ 23 > c2 := 5*x-4*y-3*z <= 10. c2 := 5 x − 4 y − 3 z ≤ 10 > c3 := 7*x +4*y+11*z <= 30. the protected names maximize and minimize have been redefined and unprotected Warning. . Vous pouvez utiliser la commande feasible pour v´rifier que e l’ensemble des contraintes est valide. ratio. > feasible({c1. Dans ce cas. c2 et c3. c3 := 7 x + 4 y + 11 z ≤ 30 > maximize(w.c3}. maximize. minimize. true Essayez a nouveau.c2. cterm. > c1 := 3*x+4*y-3*z <= 23. w := −x + y + 2 z soumise aux contraintes c1. standardize] Supposons que vous souhaitez maximiser l’expression w > w := -x+y+2*z. the name basis has been redefined [basis . NONNEGATIVE).98 • Chapitre 3: Trouver des solutions Warning. ` ` > maximize(w. {c1. dual .c3}). en ajoutant une restriction a la solution. pivoteqn. pivotvar . {c1. define_zero. display .c3}). feasible. pivot .c2. l’absence de r´ponse signifie que Maple ne peut trouver de e solution.

e ` Les derni`res sections du pr´sent chapitre ont introduit les manie e pulations. Que vous utilisiez ou non les commandes solve. vous ne connaissez pas encore tout a fait ce ` logiciel.9 Conclusion Ce chapitre vous a pr´sent´ des caract´ristiques fondamentales de Maple e e e qui vous aideront grandement a mesure que vous apprendrez de nouvelles ` m´thodes de r´solution de probl`mes plus complexes. Vous en savez cependant suffisamment pour commencer a utiliser ` Maple de mani`re efficace. . e ` A votre guise. vous pouvez interrompre ici votre ´tude pour travailler e (ou jouer !) avec Maple. la commande solve et l’organisation de Maple et de ses bi` blioth`ques de mani`re a vous donner un avant-goˆt de son potentiel. La section 3. z = . y = } 2 8 3.9 Conclusion • 99 1 49 {x = 0. A e e ` u ce point de votre lecture. ces m´thodes e e s’av`reront utiles a de nombreuses reprises.1 vous e e e a introduit aux commandes solve et fsolve de mˆme qu’` leur utilisation e a ad´quate.3.

100 • Chapitre 3: Trouver des solutions .

5 –6 –4 –2 0 –0.2*Pi ). Maple doit connaˆ la fonction et son domaine. 1 0. 4.1 Graphiques en deux dimensions Lorsqu’on lui demande de tracer une fonction donn´e explicitement y = e f (x). implicites et param´triques et exploiter plusieurs syst`mes de e e coordonn´es. x=-2*Pi.5 –1 2 x 4 6 Cliquer sur n’importe quel point de la fenˆtre du graphique fait afe ficher les coordonn´es de ce point. Les menus (que l’on retrouve sur la e barre de menu ou en cliquant avec le bouton droit de la souris sur le graphique lui-mˆme) vous permettent de modifier plusieurs caract´ristiques e e 101 . ıtre > plot( sin(x). Maple peut produire e ` plusieurs formes de graphiques : en deux ou trois dimensions..4 Tracer des graphiques Quelquefois. anim´s ou e non. la meilleure mani`re de mieux comprendre une structure e math´matique consiste a en tracer le graphique. Maple peut g´rer les formes e explicites. affichables selon n’importe quel angle. La flexibilit´ de Maple vous permet de manipuler ais´ment e e e des graphiques dans de nombreuses situations.

102 • Chapitre 4: Tracer des graphiques des graphiques et d’utiliser des options d’affichage r´sum´es sous la rue e brique ?plot.8).infinity)...10). y=4.. f := x → 7 sin(x) + sin(7 x) > plot(f(x).options. x=0. Maple peut ´galement tracer le graphe de fonctions d´finies par l’utie e lisateur. e e > plot( sin(x)/x. . x=0. a la fois e ` en x et en y. > f := x -> 7*sin(x) + sin(7*x). > plot(f(x)..10. x=0. 6 4 2 0 –2 –4 –6 2 4 x 6 8 10 Maple vous permet d’examiner plus en d´tail des intervalles. 8 7 y6 5 40 2 4 x 6 8 10 Maple peut mˆme g´rer des domaines infinis.

Une solution consiste a rendre a la fois ` ` x et y d´pendantes d’un autre param`tre.5 0 –0.2*Pi ] ). sin t) forment un cercle. t=0. y-expr. le nom et l’intervalle du param`tre. Le graphique e e g´n´r´ ` partir de ces fonctions se nomme un graphique param´trique. e plot( [ x-expr.. Par exemple : e > plot( [ t^2. y-expr.6 0. Sur un cercle. > plot( [ cos(t).. par exemple t. il est impossible d’exprimer la variable d´pendante sous forme de e fonction y = f (x).4 0.2 0. 1 0. e eea e Utilisez la syntaxe suivante pour utiliser les graphiques param´triques.4.5 –1 0.1 Graphiques en deux dimensions • 103 0 x infinity Les graphiques param´triques e Certains graphiques ne peuvent ˆtre sp´cifi´s explicitement . t^3. la plupart des valeurs de x correspondent deux valeurs de y. .8 1 Les points (cos t. sin(t). parametre =intervalle ] ) Vous tracez ainsi une liste contenant x-expr. en d’autres e e e mots.1 ] ). par exemple. t=-1.

5 –1 –0. 1 0. .5 –1 –0. e > plot( exp(x).5 1 Le d´savantage de constrained r´side dans le fait que cette option e e peut cacher d’importants d´tails lorsque les caract´ristiques d’une dimene e sion apparaissent a une ´chelle beaucoup plus petite que les autres..104 • Chapitre 4: Tracer des graphiques 1 0. scaling=constrained ). sin(t). par d´faut. > plot( [ cos(t). Le ` e graphique suivant est trac´ sans l’option constrained (unconstrained). d´forme le graphique ` e e pour lui faire prendre les dimensions de la fenˆtre. Voici le mˆme grae e phique pour lequel on a sp´cifi´ le param`tre scaling=constrained. Il e e e est possible de changer l’´chelle des axes en utilisant les menus ou l’option e scaling.5 –0.3 ).5 –1 0.2*Pi ]. x=0.5 1 Plutˆt que de produire un cercle. le graphique ci-dessus ressemble dao vantage a une ellipse puisque Maple. t=0.5 –1 0.5 –0..

θ). > with(plots): . peuvent ´galement e e ˆtre utilis´es. les coordonn´es polaires. scaling=constrained). r est la distance du point a l’origine.1 Graphiques en deux dimensions • 105 20 18 16 14 12 10 8 6 4 2 0 0.5 3 Voici maintenant constrained.5 x 2 2. et θ e ` repr´sente l’angle entre l’axe des x et la ligne passant par le point donn´ e e et l’origine. x=0.4. (r.. trac´ e avec l’option > plot( exp(x).5 1 1. 20 18 16 14 12 10 8 6 4 2 012 3 x Les coordonn´es polaires e Les coordonn´es cart´siennes (ordinaires) sont les coordonn´es par d´faut e e e e de Maple et ne repr´sentent qu’une des multiples mani`res de sp´cifier un e e e point dans l’espace . e e En coordonn´es polaires. vous devez d’abord appeler la commande with(plots). Maple peut tracer une fonction en coordonn´es polaires a l’aide de e ` la commande polarplot.3. le mˆme e graphique. Pour acc´der a la forme abr´g´e de cette come ` e e mande.

. Voici le graphique de r = sin(3θ).5 1 Tout comme dans cette section a la page 103. 1 0. theta=0..1 Le syst`me de coordonn´es polaires e e r y θ 0 x Utilisez la syntaxe suivante pour tracer les graphiques en coordonn´es e polaires. > polarplot( sin(3*theta).5 –0.106 • Chapitre 4: Tracer des graphiques Figure 4.5 –1 0.. > polarplot( 1. vous pouvez sp´cifier le cercle explicitement en e e entrant r = 1. scaling=constrained ).2*Pi ). theta=0. angle =intervalle ) En coordonn´es polaires. polarplot( r-expr.2*Pi.5 –1 –0. le param`tre ` e scaling=constrained fait apparaˆ ıtre le cercle rond.

par exemple t.2 –0.8 Le graphique de r = θ est une spirale.8–0.6 0.4 0. ..4 0. t=0. theta=0. param`tre =intervalle ] ) e Les ´quations r = sin(t) et θ = cos(t) d´finissent le graphique suivant.8 –1 0.4–0.2*Pi ] ). angle-expr. e e > polarplot( [ sin(t). La syntaxe est similaire aux grae phiques param´triques en coordonn´es cart´siennes.6–0.4.4 –0. cos(t).2 –0.2 0. > polarplot(theta. 8 6 4 2 –2 –4 –6 –8 –10 –5 5 10 La commande polarplot accepte ´galement les graphiques param´trie e s´s . Consultez la pr´sente e e e e section.6 –0. polarplot( [ r-expr.2 0 –0. page 103.1 Graphiques en deux dimensions • 107 0. vous pouvez donc exprimer le rayon et les coordonn´es angulaires en e e fonction d’un param`tre.4*Pi)..

3). sin(3*r). f := x → piecewise(x < 1. 3) > plot(f(x).. qui poss`de deux e e discontinuit´s en x = 1 et x = 2. 1. Voici comment d´finir f (x) dans Maple. 4 2 0 –2 –4 1 2 3 4 5 6 Les fonctions discontinues Les fonctions poss´dant des discontinuit´s demandent davantage d’ate e tention. x<2.2 –0. > polarplot( [ r. e > f := x -> piecewise( x<1.7 ] ). 1 si 1 ≤ x < 2.5 1 Voici le graphique de θ = sin(3r).4 0.5 –0.. e   −1 si x < 1.108 • Chapitre 4: Tracer des graphiques 0. -1. 3 ).2 –1 –0. f (x) =  3 sinon. x=0. −1. 1. . r=0. Consid´rez par exemple la fonction suivante.4 0. x < 2.

3 2 1 0 –1 0. 250000 200000 150000 100000 50000 –4 –2 0 2 4 6 x .3. L’option discont=true indique qu’il peut y avoir des discontie nuit´s.1 Graphiques en deux dimensions • 109 3 2 1 0 –1 0. e > plot(f(x).5 1 1. La e e fonction x → 1/(x − 1)2 poss`de une singularit´ en x = 1. > plot( 1/(x-1)^2.4.5 1 1.5 3 Maple dessine des lignes presque verticales pr`s d’un point de discone tinuit´. x=0. x=-5..5 x 2 2..6 ).5 3 Les fonctions qui poss`dent des singularit´s (qui deviennent arbitraie e rement grandes en un certain point) forment un autre cas particulier. discont=true).5 x 2 2.

La solution consiste a visualiser la ` fonction sur un intervalle restreint.. par exemple entre y = −1 et y = 7. y=-4. y=-1...110 • Chapitre 4: Tracer des graphiques Dans le graphique pr´c´dent. > plot( 1/(x-1)^2.2*Pi. on r´duit l’intervalle entre y = −4 et y = 4. π 2 + πn. 7 6 5 y 4 3 2 1 –4 –2 0 –1 2 x 4 6 La fonction tangente poss`de plusieurs singularit´s en x = e e n est un entier. x=-5..7 ). > plot( tan(x). x=-2*Pi.4 ). > plot( tan(x). tous les d´tails int´ressants du graphique e e e e sont perdus en raison du pic en x = 1. x=-2*Pi. o` u 3000 2000 1000 –6 –4 –2 2 x 4 6 Pour en voir les d´tails.. 4 3 y 2 1 –6 –4 –2 0 –1 –2 –3 –4 2 x 4 6 .2*Pi ).6. e e par exemple.

. 0 ≤ x. diff(f(x). x^2. discont=true ). diff(f(x). x>=0.2*Pi. 1 + x2 ) > plot( [ f(x). f := x → piecewise(x < 0. > plot( tan(x). vous e e devez donc utiliser l’option discont=true.4. x=-2*Pi. x) ]. il suffit de e donner a la commande plot une liste de fonctions. .. 4 3 y 2 1 –6 –4 –2 0 –1 –2 –3 –4 2 x 4 6 Graphiques multiples Pour tracer plus d’une fonction dans un mˆme graphique. 10 8 6 y 4 2 –10 –8 –6 –4 –2 0 –2 –4 –6 –8 –10 2 4 x 6 8 10 > f := x -> piecewise( x<0.4. y=-4. ` > plot( [ x.. x=-10. cos(x).1 Graphiques en deux dimensions • 111 Maple dessine des lignes presque verticales pr`s des singularit´s . x). > x=-2.2. x^4 ]. 1+x^2 ). x^3.10. cos(x).10 ). discont=true )... y=-10. x.

> plot( [ [ 2*cos(t). sin(x)/x et e linestyle=DOT pour la seconde fonction. y=-0. t^3.112 • Chapitre 4: Tracer des graphiques 5 4 3 2 1 –2 –1 0 –1 1 x 2 Cette technique fonctionne ´galement pour les graphiques param´e e triques. e e Maple utilise linestyle=SOLID pour la premi`re fonction.5. 1 0.4] ).1 ] ]. sin(t).8*Pi. > [ t^2. .5 –2 –1 –0. > plot( [ sin(x)/x.... t=0. il est ais´ de distinguer diff´rentes fonctions dans un mˆme grae e e e phique en sp´cifiant le param`tre linestyle.1. cos(x)/x ]. cos(x)/x. t=-1. > linestyle=[1. Dans l’exemple suivant.5 –1 1 2 En utilisant diff´rents styles de ligne (par exemple continue ou poine till´e). scaling=constrained ).5..2*Pi ]. x=0.

4]. De mani`re similaire.1 Graphiques en deux dimensions • 113 1.[4. > data_list:=[[-2.4. plum] ). .9].4]. y2 ]. x=-2. . y1 ].1]. . 4 3 2 1 0 –1 1 2 3 4 5 Consultez la rubrique ?plot.2 –0.[3. (Vous pouvez en voir l’effet sur un affichage en couleurs. > [D(f)(x). (D@@2)(f)(x).2 1 y0. . x=-2.[2.[-1. [xn .1]..[0.2].. appelez la fonction pointplot en e e sp´cifiant les donn´es dans une liste de listes de la forme e e [[x1 .2 0 –0. D(f)(x). .color pour obtenir plus de d´tails sur e les couleurs dans Maple.) e > plot( [ [f(x). Tracer des points Pour tracer des donn´es num´riques. donnez-lui un nom.16]].8 0. 0].4 1. Si la liste est longue. [x2 . vous pouvez sp´cifier les e e couleurs des graphiques au moyen de l’option color.2] ]. yn ]].4 5 10 x 15 20 25 Vous pouvez ´galement changer le style de ligne en utilisant les menus e standard et contextuels.4 0.[1.6 0. > color=[gold. contrairement au pr´sent livre qui e n’affiche les lignes que selon diff´rentes teintes de gris.

> data_list_2:=[[1. style=point. 16 14 12 10 8 6 4 2 –2 –1 0 1 2 3 4 Vous pouvez changer l’apparence des points eux-mˆmes a l’aide des e ` menus ou des options symbol et symbolsize. > symbolsize=16). [3. style=line ). 1]. [4. 16]] > pointplot(data_list). [3. 9]. . [3.3].114 • Chapitre 4: Tracer des graphiques data_list := [[−2.4]]. 4]. [4. 1].1]. [4. 3]. 2]. [0. l’option e style=line oblige a tracer ces lignes. [1. 1]. [2. 16 14 12 10 8 6 4 2 –2 –1 0 1 2 3 4 Par d´faut. Maple ne relie pas les points par des lignes droites . [−1. [2. symbol=cross. 4]] > pointplot(data_list_2. data_list _2 := [[1. ` > pointplot( data_list. Vous pouvez ´galement utiliser les ` e menus pour indiquer a Maple de tracer les lignes.2]. 0]. 4]. [2.

5 2 1. u il peut arriver que cet algorithme adaptatif ne donne pas de r´sultats e satisfaisants. > plot(sum((-1)^(i)*abs(x-i/10).2 3 2..30).4.1 Graphiques en deux dimensions • 115 4 3. .8 2.5 3 2. on peut indiquer a Maple de calculer da` vantage de points. Il d´cide ensuite de calculer plus de e e e points dans les intervalles o` les valeurs fluctuent davantage.6 –1 0 1 2 3 x 4 5 6 Pour raffiner ce graphique. ` Raffiner des graphiques Maple comporte un algorithme de trac´ adaptatif. x=-1.5 1 1 1. Il calcule la valeur de e la fonction en un nombre raisonnable de points approximativement ´e quidistants dans l’intervalle sp´cifi´. e Pour plus d’information.4. i=0. > plot(sum((-1)^(i)*abs(x-i/10). > numpoints=500)..30).4 3. 3.5 3 3.5 2 2.. reportez-vous a la rubrique ?CurveFitting. x=-1.5 4 Utilisez le package CurveFitting pour lisser une courbe passant par une suite de points et appelez la commande plot pour en voir le r´sultat.. Cependant.4). i=0.

> plot3d( sin(x*y). La syntaxe de plot3d est similaire a celle de plot. Tout comme plot.2 Graphiques en trois dimensions Vous pouvez tracer le graphique d’une fonction de deux variables comme une surface dans l’espace tridimensionnel. Vous pouvez faire tourner le graphique en cliquant sur la fenˆtre avec e votre souris et en faisant bouger la boˆ qui en d´finit le contour.116 • Chapitre 4: Tracer des graphiques 3.6 –1 0 1 2 3 x 4 5 6 Consultez ?plot et ?plot. y).2 ). x=-2.2.. y=-2. ıtre 4.options pour en connaˆ davantage. Encore e ` une fois. Les ıte e menus vous permettent de modifier plusieurs caract´ristiques d’un grae phique.4 3. une fonction donn´e explicitement. est la plus facile e a ` tracer. plot3d peut tracer des fonctions d´finies par l’utie lisateur. Cela vous permet de visualiser cette derni`re. z = f (x.8 2. .2 3 2..

style=hidden dessine le graphique e comme une structure en fil de fer. Par d´faut.. x=0. x=0. > plot3d( f(x.9. Le domaine du deuxi`me param`tre peut d´pendre du premier pae e e ram`tre. e e mais il est possible de modifier cette option en utilisant les menus ou le param`tre style..2*Pi..2*Pi. y=0.y).y) -> sin(x) * cos(y).. e > plot3d( sqrt(x-y).2*Pi ). y=-x.x ).2 Graphiques en trois dimensions > f := (x. Consultez ?plot3d.y). x=0. Par exemple. y) → sin(x) cos(y) > plot3d( f(x.. . • 117 f := (x..4.options pour obtenir une liste des options de style. y=0. Maple affiche le graphique comme une surface color´e. style=hidden ).2*Pi.

> plot3d( [ sin(s). Comme pour les e graphiques bidimensionnels (consultez la section Les graphiques param´triques de la page 103). en d’autres e e e mots. > s=0.... La sph`re en est un exemple. t=0. z-expr ]. sin(t) ]. > s=-Pi. e e Le graphique produit a partir de ces fonctions se nomme un graphique ` param´trique. s*sin(t) ]. par exemple s et t. . e plot3d( [ x-expr.. une solution consiste a rendre a la fois e ` ` x.2*Pi. paramtre2 =intervalle ) En voici deux exemples. cos(s)*sin(t). s*cos(s)*cos(t).Pi ).Pi ). y-expr. paramtre1 =intervalle. y). il est impossible d’exprimer la variable d´pendante sous forme de e fonction z = f (x. > plot3d( [ s*sin(s)*cos(t). y et z d´pendantes de deux autres param`tres.Pi.118 • Chapitre 4: Tracer des graphiques Les graphiques param´triques e Certains graphiques ne peuvent ˆtre sp´cifi´s explicitement . t=-Pi. Utilisez la syntaxe suivante pour sp´cifier les graphiques e e param´triques.

En coordonn´es sph´riques. e .4. la distance e e e du point a l’origine. Pour acc´der a la forme e ` abr´g´e de cette commande.2 Le syst`me de coordonn´es sph´riques e e e z φ 0 x r y θ Maple peut tracer une fonction en coordonn´es sph´riques en utilisant e e la commande sphereplot du package plots. l’angle θ dans le plan xy depuis l’axe des x et l’angle ` φ depuis l’axe des z. tapez les deux-points plutˆt que le point-virgule. Figure 4. les coordonn´es sph´riques sont e e une autre option. o > with(plots): Vous pouvez utiliser la commande sphereplot de la mani`re suivante. vous devez d’abord appeler la commande e e with(plots).2 Graphiques en trois dimensions • 119 Les coordonn´es sph´riques e e Les coordonn´es cart´siennes (ordinaires) sont les coordonn´es par d´faut e e e e de Maple et ne repr´sentent qu’une des multiples mani`res de sp´cifier un e e e point dans l’espace en trois dimensions . les trois coordonn´es sont r. Pour ´viter d’afficher la liste de toutes les commandes de e plots.

(Consultez la section 4.Pi.Pi ).. e o o > sphereplot( 1. par exemple s e e et t. c’est-`-dire les graphiques qui sp´cifient le rayon et les deux e e a e coordonn´es d’angle en fonction de deux autres param`tres. Le trac´ d’une sph`re en coordonn´es sph´riques est simple : il suffit e e e e de sp´cifier le rayon. et de laisser θ tourner tout le long de e l’´quateur et φ tourner du pˆle nord (φ = 0) au pˆle sud (φ = π). theta=0.120 • Chapitre 4: Tracer des graphiques sphereplot( r-expr. phi=0. > scaling=constrained ).2*Pi. theta =intervalle. consultez la pr´sente section a e e e ` la page 118. La syntaxe est similaire a celle d’un graphique param´trique en deux ` e dimensions en coordonn´es cart´siennes .. . > theta=-1.. phi=0.2*Pi. par exemple 1.) La commande sphereplot accepte ´galement les graphiques parae m´tris´s.1 pour une explication de l’option constrained. phi =intervalle ) Le graphique de r = (4/3)θ sin φ ressemble a ceci : ` > sphereplot( (4/3)^theta * sin(phi)..

> s=0.1) dans le plan xy et z est la coordonn´e cart´sienne e e usuelle en z. t^2 ].2*Pi.2 ). > with(plots): Vous pouvez tracer les graphiques en coordonn´es cylindriques en applie quant la syntaxe suivante : . param2 =intervalle ) Ici. t=-2. r = exp(s) + t. param1 =intervalle. Ici.. θ et z..4. θ = cos(s + t) et φ = t2 . cos(s+t). Figure 4.3 Le syst`me de coordonn´es cylindriques e e z 0 x y θ r Maple trace les fonctions en coordonn´es cylindriques au moyen de la e commande cylinderplot du package plots. r et θ sont les cooronn´es polaires e e e (voir la section 4.2 Graphiques en trois dimensions • 121 sphereplot([ r-expr. > sphereplot( [ exp(s)+t. Les coordonn´es cylindriques e On peut ´galement sp´cifier un point dans le syst`me cylindrique en e e e sp´cifiant les coordonn´es r. phi-expr ]. theta-expr.

4*Pi. .. theta-expr. cylinderplot( [ r-expr.. e a > cylinderplot( z. theta=0. θ = s et z = cos(t2 ). param`tre1 =intervalle.1 ).. Les cˆnes sont facilement trac´s en coordonn´es cylindriques : il suffit o e e de sp´cifier r = z et de faire varier θ de 0 ` 2π.. angle =intervalle. z=0.1 ). z-expr ].2*Pi. e param`tre2 =intervalle ) e L’image suivante est un graphique de la fonction r = st.122 • Chapitre 4: Tracer des graphiques cylinderplot( r-expr. Consultez la section Les graphiques param´triques de la e e page 118.1. > cylinderplot( theta. Leur e e syntaxe est similaire a celle des graphiques param´triques en coordonn´es ` e e cart´siennes. theta=0. cylinderplot accepte ´galement les graphiques param´triques. z=-1. z =intervalle ) Voici une version tridimensionnelle de la spirale montr´e dans la sece tion 4.

grid=[100. s=0.... cos(t^2)]. y=0.4*Pi.2 ). theta=0.5] ). x=0. > cylinderplot( theta. • 123 Raffiner des graphiques Si votre graphique n’est pas aussi lisse ou pr´cis que vous le souhaitez. n ] o` m est le nombre de points a utiliser pour la premi`re coordonn´e. z=-1. la fonction e e ne varie pas selon l’axe des z . . Dans le prochain exemple. un grand nombre de points (100) pour la premi`re coordonn´e (theta) rend la spirale lisse. et n u ` e e le nombre de points a utiliser pour la seconde coordonn´e.. t=-2.4.50] ). s. e vous pouvez indiquer a Maple d’en calculer plus de points..2 Graphiques en trois dimensions > cylinderplot( [s*t. grid=[50. Cependant.3*Pi.3*Pi.1. ` e > plot3d( sin(x)*cos(y). un nombre faible de points (5) est donc suffisant..Pi. L’option le ` permettant est grid=[m.

un certain nombre de fonctions de coloriage pr´d´finies est ´galement disponible par les menus e e e ou au moyen de l’option shading. lightmodel=none ). > shading=zgrayscale.. x=-5.y=-5. .. Voici une surface colori´e avec un shading zgrayscale sans ´clairage. Pour colorier la surface directement. Dans e la premi`re.5. Utilisez des sources lumineuses ou un e coloriage direct. Vous pouvez e e choisir ces sources lumineuses par les menus ou au moyen de l’option lightmodel.124 • Chapitre 4: Tracer des graphiques La valeur par d´faut de grid est d’environ 25 points sur 25. une ou plusieurs sources lumineuses color´es illuminent la e e surface.5. e Maple poss`de un grand nombre de configurations de sources lumie neuses donnant des r´sultats esth´tiquement satisfaisants. la couleur de chaque point est fonction directe de ses coordonn´es. e > plot3d( x*y^2/(x^2+y^4). L’usage simultan´ de sources lumineuses et de coloriage direct peut e compliquer le rendu des couleurs. Dans la seconde. e Mod`les de coloriage et d’´clairage e e Deux m´thodes permettent colorier une surface en trois dimensions.

animate et animate3d. e e L’animation en deux dimensions Vous pouvez sp´cifier une animation bidimensionnelle selon la syntaxe qui e suit.3 L’animation • 125 Voici la mˆme surface illumin´e par le mod`le d’´clairage light1 sans e e e e coloriage (shading). les graphiques apparaissent en noir et blanc. Dans le pr´sent manuel. > plot3d( x*y^2/(x^2+y^4). > with(plots): . temps =intervalle ) Les images suivantes sont un exemple d’animation. Souvenez-vous qu’il vous faut d’abord e entrer la commande with(plots) pour exploiter ensuite ces fonctions sous leur forme abr´g´e. des images statiques ne mettent pas toujours en ´vidence certains comportements graphiques. lightmodel=light1 ). Une animation Maple ressemble a une s´quence d’images d’un film : ` e une suite de graphiques s’affichent rapidement l’un apr`s l’autre. sont e d´finies dans le package plots. > shading=none. cependant..5. comme la d´formation e e d’une balle qui rebondit. animate( y-expr. e 4.3 L’animation Tracer des graphiques constitue une excellente mani`re de repr´senter e e l’information . x=-5. x =intervalle.5.y=-5.. Les deux e commandes utilis´es pour les animations.4. e Essayez-les vous-mˆme pour voir les effets de la couleur.

t=1. une animation en deux dimensions est form´e de seize e e graphiques (frames). x=-10. Par exemple. grid=[50. x x x x x x x x x x x x x x x x Pour faire d´filer une animation.2.10. numpoints=100 ). > animate( sin(x*t). t=1. t=1. frames=50). Par d´faut. x=-10. vous pouvez e augmenter le nombre d’images. t=1. style=HIDDEN ). axes=boxed . . Puis. essayez de tracer l’animation de sin(xt) ci-dessus comme une surface.2 ). > frames=50. vous devez d’abord la s´lectionner e e en cliquant dessus. > plot3d( sin(x*t). > orientation=[135.45]. choisissez Play dans le menu Animation. Si le mouvement vous semble saccad´. x=-10...10. Les options standard des commandes plot sont ´galement disponibles..10...100]..2. > animate( sin(x*t). e Entrez l’exemple suivant dans Maple pour en voir l’animation.126 • Chapitre 4: Tracer des graphiques Warning. Notez cependant que le calcul d’un grand nombre d’images demande beaucoup de temps et accapare beaucoup de m´moire.2. x=-10.. La commande suivante peut ˆtre coll´e dans Maple pour proe e e duire une animation de 50 images. the name changecoords has been redefined > animate( sin(x*t).. Vous pouvez afficher n’importe quelle animation bidimensionnelle sous la forme d’un graphique tridimensionnel statique.10.

L’option coords indique a la commande animate d’utiliser un syst`me ` e de coordonn´es autre que les coordonn´es cart´siennes.3 L’animation • 127 1 0 –1 10 x –10 2 t 1 Que vous pr´f´riez une animation ou un graphique est une question de ee goˆt et d´pend des concepts que l’animation ou le graphique doit mettre u e en ´vidence.. ... theta=0.2 ). a=0. t=1.2*Pi ]. coords=polar ).8*Pi. > animate( [ a*cos(u). u=0.. e e e > animate( theta*t. sin(u).4.1 de la page 103). e L’animation de graphiques param´triques est ´galement possible (cone e sultez la section 4.4.

. > frames=16 ). Vous pouvez utiliser la commande animate3d de la mani`re e suivante. x =intervalle. Par d´faut.2 ). une animation tridimensionnelle est form´e de huit grae e phiques.2 explique le fonctionnement des graphiques tridimensionnels param´triques.. y=-Pi. que vous pouvez ´galement animer. animate3d( z-expr. x=-Pi. De la mˆme mani`re que pour les animations en deux dimensions. e e vous pouvez indiquer a Maple le nombre de graphiques a tracer au moyen ` ` du param`tre frames.. temps =intervalle ) Les images qui suivent sont un exemple d’une animation en trois dimensions. > x=-Pi. e e .2. y =intervalle. La section 4. t=1. y=-Pi. > animate3d( cos(t*x)*sin(t*y)..Pi.Pi. t=1.. L’animation en trois dimensions Utilisez la commande animate3d pour animer des surfaces en trois dimensions..128 • Chapitre 4: Tracer des graphiques Pour voir les animations. entrez ces commandes dans Maple. e > animate3d( cos(t*x)*sin(t*y).Pi.Pi.

7/2.. title="Plot of Sine" ). coords=spherical )..Pi. x=-2*Pi. theta=-1. z=1.. consultez ?plots.. L’option title imprime le titre choisi dans la fenˆtre du grae phique. utilisez coords=spherical. par exemple. e > animate3d( sin(theta)*cos(z*t). Pour les coore e donn´es sph´riques. e e > plot( sin(x). > t=1/4. Pour obtenir une liste des syst`mes de coordonn´es accept´s par e e e Maple.. axes=boxed).changecoords.3. t=1. e e > animate3d( (1. time=2.2*Pi. utilisez l’option coords.3. centr´ et pr`s du haut.4.4 Annoter des graphiques Il est possible d’ajouter plusieurs types d’annotations textuelles aux graphiques. Pour les coordonn´es cylindriques. theta=1. 4. • 129 2 2 2 2 2 2 2 2 –3 12 2 Pour animer une fonction dans un syst`me de coordonn´es diff´rent e e e des coordonn´es cart´siennes... > s=1... .3)^theta * sin(t*phi). utilisez coords=cylindrical. t=1.8.4 Annoter des graphiques > animate3d( [s*time. s*cos(t*time)].4. t-time.2*Pi.4..4. > phi=0. coords=cylindrical ).

24] ).. the name changecoords has been redefined > sphereplot( 1.options. Remarquez que les ´tiquettes ne doivent pas e . Consultez ?plot.. Ce d´tail est tr`s important. vous devez placer des guillemets e doubles (") aux deux extr´mit´s du texte.2*Pi.Pi. le style et la taille du titre au moyen de l’option titlefont. l’ope e tion labelsfont d´finit la police et le style des ´tiquettes et l’option e e labeldirections permet de placer les ´tiquettes des axes verticalee ment ou horizontalement. > with(plots): Warning. > scaling=constrained.130 • Chapitre 4: Tracer des graphiques PlotofSine 1 0.5 0 –6 –4 –2 2 x 4 6 –0. theta=0. e e e e Maple utilise des guillemets doubles pour d´limiter les chaˆ e ınes de caract`res : il consid`re tout ce qui apparaˆ entre les guillemets doubles e e ıt comme du texte qu’il doit prendre tel quel.options ou ?plot3d. phi=0. BOLD.5 –1 Prenez note qu’en sp´cifiant le titre. > titlefont=[HELVETICA. Vous pouvez sp´cifier la poe lice. title="The Sphere". TheSphere L’option labels vous permet de cr´er des ´tiquettes aux axes.

5 3 Les ´tiquettes s’affichent seulement si les axes sont ´galement affich´s.5 .1. "width". > plot( x^2.3. 2 8 6 2 2..4]. cos(x)]. "height"]..4 Annoter des graphiques • 131 forc´ment ˆtre identiques au nom des variables de l’expression dont vous e e tracez le graphique. les axes ne sont pas affich´s e par d´faut .8 height –0. "The Cosine Function"] ).1. vous devez donc les sp´cifier. axes=FRAMED ). x=-3*Pi/2. x=-1. > labeldirections=[horizontal. y=-1. e e e Dans le cas des graphiques tridimensionnels. "velocity"]. labels=["time". > labels=["length". x=0. e e > plot3d( sin(x*y). linestyle=[1. 0.4.5 velocity 1 time 1.3*Pi/2.8 –1 width 1 1 length –1 L’option legend vous permet d’ajouter une l´gende de texte a votre e ` graphique. > plot( [sin(x).. 4 0 0.. > legend=["The Sine Function".vertical] ).

comme toute e autre expression. e . Affichez-le en utilisant la commande display d´finie e dans le package plots. Puisque la structure e interne des graphiques est g´n´ralement tr`s longue a afficher. > with(plots): > display( mon_graphique )..5 –10 –8 –6 –4 –2 0 –0. apr`s e e avoir donn´ des noms aux graphiques individuels.5 a la page 134.132 • Chapitre 4: Tracer des graphiques 1 0.5 –1 TheSineFunction TheCosineFunction 2x 4 Voyez ´galement la section 4. x=-10. terminez e e e ` vos commandes d’affectation par deux points plutˆt que par un pointo virgule. > mon_graphique := plot( sin(x).5 –1 2 4 x 6 8 10 La commande display permet de tracer plus d’un graphique a la fois. e ` 4. ` Il suffit de lui sp´cifier une liste de graphiques.5 Les graphiques composites Maple vous permet d’afficher plusieurs graphiques simultan´ment. 1 0.5 –4 –2 –0.10 ): Vous pouvez conserver le graphique pour un usage ult´rieur.

b] ).. Vous pouvez ´galement afficher des e e e graphiques tridimensionnels et mˆme des animations.2*Pi.. exp(t).5.Pi ): > d := cylinderplot( 0.d].2*Pi.4. scaling=constrained ).. phi=0.. assurez-vous que ces derni`res poss`dent toutes le mˆme nombre d’images. Entrez la d´finition pr´c´dente de b et les commandes suivantes dans e e e Maple pour voir une animation et un graphique avec les mˆmes axes.5 0. t=0.5 1 Cette technique vous permet d’afficher plusieurs graphiques de diff´rents types sur les mˆmes axes.. ..e] ).1. theta=0.. t=-Pi. Si vous affichez deux animations ou plus ensemble. e > c := sphereplot( 1. x=-1.5. e > f := animate3d( sin(x+y+t).1. > frames=20 ): > g := animate3d( t.g] ).Pi ] ): > b := polarplot( [ sin(t).2*Pi. x=0.2 ): > display( [c. x=0.5 –1 • 133 –1 –0.. m=-1. theta=0. e > e := animate( m*x.2*Pi. t=-Pi..5. y=0. z=-2.5..2*Pi. Entrez l’exemple e e e suivant dans Maple pour voir deux animations simultan´ment. y=0.. t=-1. > frames=20): > display( [f... 1 0.1 ): > display( [b.. exp(t)/20.2*Pi.5 Les graphiques composites > a := plot( [ sin(t).Pi ] ): > display( [a.5 0 –0.

22].1 ): > e := textplot3d( [0.. -1. > with(plots): Vous pouvez utiliser textplot and textplot3d de la mani`re suivante. 1. e e e Dans le graphique suivant.e]. x=-1.c] ). > d := plot3d( x^2-y^2.45] ). . Utilisez l’ope ee e tion font pour sp´cifier la police de caract`res employ´e pour l’affichage. y=-1. z-coord. "Local Minimum" ] ): display( [a. 1 LocalMaximum 0. OBLIQUE. Le pae ee ckage plots contient ces deux commandes.b. color=white ): > display( [d.5 –3 –2 –1 –0. x=-Pi. Par exemple : > > > > a := plot( sin(x).Pi ): b := textplot( [ Pi/2. > font=[HELVETICA. Les commandes e textplot et textplot3d vous donnent encore plus de flexibilit´ en vous e permettant de sp´cifier la position exacte des ´l´ments de texte. y-coord. "texte " ] ) . 0. e textplot( [ x-coord. est indiqu´e par la e lettre P . 0.. "P"]. "Local Maximum" ] ): c := textplot( [ -Pi/2.textplot pour obtenir plus de d´tails e sur la mani`re de placer les ´l´ments de texte avec pr´cision. y-coord. un point de selle..5 1 x 2 3 LocalMinimum –1 Consultez la rubrique ?plots.1. "texte "] ) . textplot3d( [ x-coord. l’origine.134 • Chapitre 4: Tracer des graphiques Placer du texte dans les graphiques Les options title et labels des commandes graphiques vous permettent de placer des titres et des ´tiquettes dans vos graphiques. orientation=[68.

scaling= > constrained ).10. e > implicitplot( x^2+y^2=1.1.commande . x=-1.5 x 1 –0.5 –1 –0.5 0 0.6 Quelques graphiques particuliers • 135 P 4. 1 y 0. . En voici quelques exemples..4.. Pour obtenir davantage d’information sur une commande particuli`re.1. e > with(plots): Tracez des fonctions d´finies implicitement au moyen de implicitplot. consultez la rubrique ?plots. 0<x. x=-1.5 –1 L’image ci-dessous est un graphique de la r´gion satisfaisant aux e in´galit´s x + y < 5.6 Quelques graphiques particuliers Le package plots contient plusieurs routines permettant de produire des types de graphiques particuliers.. x<=4}.5. y=-10. > optionsexcluded=(color=yellow) ). e e > inequal( {x+y<5. y=-1.. 0 < x et x ≤ 4.

8 0.8 1. e e > loglogplot( x^17..7 ). 7..4 1.1e3 .1e5 . l’axe vertical est trac´ ` une ´chelle logarithea e mique. .6 1. 2 1.1e4 .10 ). 2 4 x 6 8 10 Un graphique semilogplot poss`de un axe horizontal logarithmique. 2. x=1. x 4.1e2 1.. > logplot( 10^x.136 • Chapitre 4: Tracer des graphiques 10 5 –1 –5 –10 1 2 3 4 5 Dans l’exemple suivant.10 ). x=1. 1e+10 1e+09 1e+08 1e+07 1e+06 1e+05 .1e2 Maple peut ´galement tracer des graphiques o` les deux axes pose u s`dent des ´chelles logarithmiques.6 1. x=0. . e > semilogplot( 2^(sin(x)).2 1 0.

1.. x=-1.5 –1 –0.. > contourplot(sin(x*y).1e2 1.x=-10. comme dans une carte topographique.10). 10 y 5 –10 –5 0 –5 –10 5 x 10 Une grille rectangulaire dans le plan complexe devient le graphique suivant par la relation z → z 2 .1e4 . x 4. > densityplot( sin(x*y). 7.4.1 ). 2. .5 –1 0.6 Quelques graphiques particuliers • 137 1e+14 1e+13 1e+12 1e+11 1e+10 1e+09 1e+08 1e+07 1e+06 1e+05 .5 x 1 Le long des courbes suivantes. des teintes plus claires indiquent une plus grande valeur de la fonction.1e5 .5 –0. 1 y 0.. > conformal( z^2.1e3 ...y=-10. Dans un densityplot.2+2*I ). la fonction sin(xy) est constante. z=0. y=-1.10.

t]. t=0.5 x 1 Maple peut dessiner des courbes dans l’espace a trois dimensions. e e > fieldplot( [y*cos(x*y). e e > tubeplot( [cos(t)..t]. . x*cos(x*y)]. y=-1.5 –1 –0. Ici. Maple gonfle la courbe pr´c´dente pour en faire un tube. ` > spacecurve( [cos(t).sin(t). radius=0..5 ).12 ).138 • Chapitre 4: Tracer des graphiques 8 6 4 2 –4 –2 0 2 4 La commande fieldplot dessine un vecteur donn´ pour plusieurs e valeurs de x et y . x=-1.5 –1 0..1).4*Pi.5 –0. le graphique ainsi form´ est un champ de vecteurs de e mˆme type qu’un champ magn´tique.1. 1 y 0. t=0.sin(t)..

5 0 –0. > A := LinearAlgebra[HilbertMatrix](8): > B := LinearAlgebra[ToeplitzMatrix]([1.25.5 –1 –1.4. > adaptive=false ).6 Quelques graphiques particuliers • 139 La commande matrixplot affiche les valeurs d’un objet de type Matrix.4.5 –1 –0. e > rootlocus( (s^5-1)/(s^2+1).2.3. axes=frame.5 0 0.-3.5 . 4 2 0 –2 –4 2 4 column 6 8 8 6 4 row 2 L’image suivante est une d´monstration d’un graphique root locus . > gap=0.5. style=patch). s.5 1 1. style=point.-4..-2. > symmetric): > matrixplot( A+B. -5. 1 0. heights=histogram.-1].

difference. 2>]. <3. a > with(plots): Consid´rez l’exemple suivant. scaling=constrained. > plots[arrow]( [<2. 4. vous obtiendrez une liste de tous les types a de graphiques possibles dans Maple. Utilisez with(plottools) pour acc´der aux commandes par leur nom abr´g´. e > display( dodecahedron().5 3 En tapant ?plots ` l’invite.140 • Chapitre 4: Tracer des graphiques La commande arrow affiche des fl`ches ou des vecteurs en deux ou e trois dimensions. 1>. e e e > with(plottools): Les objets dans le package plottools ne s’affichent pas par euxmˆmes . [<2.7 Manipuler des objets graphiques Le package plottools contient des commandes permettant de cr´er des e objets graphiques et de manipuler leurs graphiques correspondants. . 5>. style=patch ). 4>].5 2 2. on doit y acc´der par la commande display d´finie dans le e e e package plots ` l’aide de la commande with. 5 4 3 2 1 1 1. <1. > scaling=constrained ).

4. 1/4. vous devez utiliser display pour faire afficher le graphique. Placez une seconde sph`re dans l’image et faites afficher les axes. 1/4. scaling=constrained ).-1/4. Encore une fois. s2]. e > s2 := sphere( [3/2. > display( s1. axes=normal.1/4. Maple affiche une longue structure de graphique. ` > s1 := sphere( [3/2. . si vous utilisez un point-virgule (.1/2].7 Manipuler des objets graphiques • 141 Donnez un nom a l’objet. scaling=constrained ).1/2]. color=red): > display( [s1.). color=red): Remarquez que l’affectation se termine par deux points (:) .

5 –2 Vous pouvez aussi translater les objets.7 Vous pouvez ´galement cr´er des cˆnes au moyen de plottools. 0.4 –0. 0 ): > display( c2.2 0.3 0. 3.4 2 1.2 0. 0.4 0 1.2 0. axes=normal ).5 –0.2 –1.4 –0. –0.6 1. axes=normal ).4 0. e e o > c := cone([0.2 –0. axes=normal ).5 1.4 –0. e e ` > c2 := rotate( c.4 Exp´rimentez la capacit´ de Maple a faire tourner les objets.0.2 0. 1/4 ): > display( c3. –1 –0.6 –0.5 1 0. 1/2.0]. color=khaki): > display( c.2 1. .4 –0.2 0.4 0. > c3 := translate( c2.2 0.142 • Chapitre 4: Tracer des graphiques –0.4 0.4 0. 2. Pi/2.4 1.2 –0.5 0.

4 –0.4 –0.2 1. Les cˆt´s du dod´ca`dre mentionn´ plus tˆt dans cette section sont oe e e e o tous des pentagones.2 0 0.5 La commande hemisphere cr´e un h´misph`re. Vous pouvez sp´cifier e e e e le rayon et les coordonn´es de son centre . e e > cup := hemisphere(): > display( cup ).2 1 0.20. Pi. sinon.6 0.4 –0.4. n’´crivez rien entre les e e parenth`ses pour accepter les valeurs par d´faut.5 2 0. Si vous ´levez le point milieu de chaque pentae gone au moyen de la commande stellate.7 Manipuler des objets graphiques • 143 3 2. 0 ): > display( cap ). l’objet r´sultant se nomme e . 0. > cap := rotate( cup.

style=patch ).144 • Chapitre 4: Tracer des graphiques e e e e un dod´ca`dre ´toil´. 2): > display( stelhs ). c3. > hedgehog := [s1. 3/4 ): > display( a. . Plutˆt que de rendre le dod´ca`dre ´toil´. vous pouvez supprimer les o e e e e trois quarts de l’int´rieur de chaque pentagone. s2. > stelhs := stellate(cap. e > a := cutout( dodecahedron(). stelhs]: > display( hedgehog. 30] ). > a := stellate( dodecahedron() ): > display( a. scaling=constrained. scaling=constrained. scaling=constrained. orientation=[45.

Pour acc´der a ces galeries. ainsi que le montrent les exemples de la pr´sente section. Rendez-vous au bas de la page.4.8 Code des graphiques des planches en couleurs Dans Maple. Des centaines de graphiques ainsi que des animations sont disponibles dans la Maple Graphics Gallery et la Maple Animation Gallery. choisissez Maple on the Web. e e – Ouvrez le navigateur Internet de votre choix et entrez http ://www. Acc´dez au Maple Application Center. Cependant. puis Application Center.8 Code des graphiques des planches en couleurs > style=patchnogrid ). 1 La plupart des planches en couleurs ont ´t´ export´es et dessin´es dans POVe e e e e RayTM . cr´er des graphiques impressionnants ne n´cessite souvent e e que quelques lignes de code. e 2. e Il existe deux mani`res d’acc´der au Maple Application Center. La duplication exacte des images peut de ce fait s’av´rer difficile. Les commandes utilis´es pour les planches en couleurs1 qui e ne sont pas indiqu´es ici se trouvent dans le Maple Application Center.com – Dans le menu Help de votre session Maple 8. . Dans la section Maple Tools. rendez-vous au Maple Application Center et clie ` quez sur Maple Graphics. • 145 4.mapleapps. cliquez sur Maple 8 Color Plates. d’autres graphiques demandent plusieurs e lignes de code. Pour acc´der au code des planches qui n’est pas affich´ dans ce manuel : e e 1. Le code est disponible en format HTML et sous forme de feuille Maple.

Pi)/Pi). style=PATCHNOGRID. numpoints=10000): p := tubeplot([cos(t). Oiseau en origami L’oiseau en origami peut ˆtre affich´ comme un simple graphique ou e e comme une animation Maple. -L(r. t=-Pi. 1.4. n=1. 4. n=1. s). rho*sin(2*Pi*t). r=0. f2(t). -r*sin(2*Pi*t)]: rho.... -2. Structure concho¨ ıdale Le code de cet objet ainsi que d’autres coquillages est disponible dans le Maple Application Center. t=-Pi.s2} ). k=1. il peut ˆtre n´cessaire de diminuer la e e valeur de l’option numpoints pour dessiner le graphique. radius=b]: pc := n -> [ (rho-r*cos(2*Pi*t))*cos(2*Pi/(n+t)). t=0. view=[-4. sin(t).2.2.015]. Le code de ce graphique est disponible dans le Maple Application Center.4. orientation=[3. 3. 5... color=[L(r. 6. 89]...2]..1.1. Ruban de Moebius .4. color=blue. Transformation de Gauss appliqu´e ` un tore e a > > > > > > > > > > > > sp := [rho*cos(2*Pi*t). Le code de ce graphique ainsi que de l’animation sont disponibles dans le Maple Application Center. numpoints=1500): display3d({q. L(r.. r*sin(s).. 1. y) -> 0.. 2. Probl`me de Dirichlet pour un cercle e > > > > > > > > > > > > > > > > with(plots): setoptions3d(scaling=constrained.2].4. tubepoints=70.4. (rho-r*cos(2*Pi*t))*sin(2*Pi/(n+t)). s) -> a0/2+sum(’r^n*(a[n]*cos(n*s)+b[n]*sin(n*s))’..4..Pi)/Pi). color=green. ’n’=1. r. lightmodel=light2). b := 3. -2. s=0. view=[-4. 100]. tubepoints=20. t=-Pi.1.5*sin(10*x*y): f2 := t -> f1(cos(t).4. s)].50): b := seq(evalf(Int(f2(t)*sin(n*t). s). sin(t)): a0 := evalf(Int(f2(t). p}..5. t=-Pi.. radius=0..4.2]): s2 := tubeplot( sp.. -4. thickness=2.146 • Chapitre 4: Tracer des graphiques Note : Sur certains ordinateurs.Pi.50): L := (r. Ensemble de Mandelbrot L’ensemble de Mandelbrot est l’un des objets math´matiques les plus e complexes en raison de sa nature cahotique.4.50)}.2*Pi. 0. grid=[29. 0. 1: with(plots): s := spacecurve( {seq(pc(k).1.4.4. style=patchnogrid): f1 := (x.4. -4. t=0.2.2. lightmodel=light2 ): display( {s.Pi)/Pi): a := seq(evalf(Int(f2(t)*cos(n*t)..50): q := plot3d([r*cos(s). projection=0.

> style=patch.Pi.. t=0.3): plots[display]([p. p1.q].. scaling=constrained.3. sph´riques et cyline e e e driques ne sont que quelques-uns des syst`mes de coordonn´es exploit´s e e e par Maple. orientation=[-107. s=0. 4): p := draw(p2): q := plottools[homothety](p. 0). coords=cylindrical.2*Pi.. style=patchnogrid. axes=none. orientation=[-176. > style=patchnogrid. point(o. y=-3. shading=zhue. 120]. 1): stellate(p2. vous pouvez animer un graphique et le colorier de plusieurs mani`res pour vous assurer d’une bonne compr´hension de sa e e nature.81]). shading=zhue.. 4. x=-Pi. lightmodel=light3. grid=[80. z1].4. shading=xyz. y. modifiez la valeur de hauteur dans la commande stellate. implicites et param´triques. 7. scaling=constrained): plots[display](moebius). y=-0. x=-3. 9. polaires. lightmodel=light1). x*sin(1/2*y)]. r2*cos(t). axes=none.3. Le code de cette animation est disponible dans le Maple Application Center.2*Pi. 80]. Bonhomme de neige Le graphique du bonhomme de neige est une animation.2*Pi.30]). 10. orientation=[50. scaling=constrained. Fonction de deux variables en coordonn´es cart´siennes e e > plot3d({sin(x^2+y^2). Les coordonn´es cart´siennes.60]. style=patchnogrid.. Icosa`dre e > > > > > > > with(geom3d): icosahedron(p1. grid=[120. style=patchnogrid. 2*cos(x^3+y^3)}. De plus.. . lightmodel=light4. grid=[60. Surface de r´volution param´tris´e e e e > > > > > r1 := 2 + sin(7*t): z1 := r1*cos(s): r2 := 8+r1*sin(s): plot3d([r2*sin(t). 45]. 0.9 Conclusion > > > > > • 147 moebius := plot3d([4+x*cos(1/2*y). 8. 0. Pour voir d’autres variations.9 Conclusion Ce chapitre a pr´sent´ les capacit´s d’affichage graphique de Maple en e e e deux et trois dimensions pour des fonctions explicites.

et peuvent mˆme les rendre ´toil´s. Quelques-uns des types particuliers de graphiques que vous pouvez cr´er en utilisant ces e commandes sont les graphiques logarithmiques. e e e e . e Les commandes du package plottools permettent de cr´er et de manie puler des objets. de contour et de densit´.148 • Chapitre 4: Tracer des graphiques Utilisez les commandes contenues dans le package plots pour afficher plusieurs graphiques de fonctions et d’expressions. Ces commandes rendent possibles la translation et la rotation des entit´s graphiques.

Les manipulations structurelles sont quant a elles des outils fournis ` par Maple pour acc´der a certaines parties des structures de donn´es du e ` e logiciel qui repr´sentent des expressions et d’autres types d’objets. Ce qui est simple dans un contexte peut ne e pas l’ˆtre dans un autre . Les manipulations math´matiques sont celles correspondant e a ` une forme de processus math´matique. chaque situation peut avoir sa propre d´finition e e d’une forme simple . beaucoup de temps et d’efforts sont consacr´s ` la manipue a lation d’expressions. e > eq := 4*x + 17 = 23. et les e modifier. e Le probl`me de la simplification s’av`re ´tonnamment complexe en e e e math´matiques symboliques. eq := 4 x + 17 = 23 149 . ou a convertir une expression sous une e e e ` forme particuli`re requise par certaines routines Maple. Maple fournit un jeu d’outils permettant de travailler avec les expressions pour y effectuer a la fois des manipulations math´matiques et ` e structurelles.1 Manipulations math´matiques e La r´solution d’´quations a la main demande normalement d’effectuer une e e ` s´quence de manipulations alg´briques. par exemple la factorisation d’un e polynˆme ou la rationalisation du d´nominateur d’une expression rationo e nelle. Vous pouvez ´galement effectuer e e e ces ´tapes au moyen de Maple. Celle-ci sert a convertir des r´sultats sous une forme ` e famili`re et v´rifier une r´ponse. 5.5 L’´valuation et la e simplification Dans Maple.

e > % / 4. > poly := (x+1)*(x+2)*(x+5)*(x-3/2). e e > eq . Pour ce faire. x4 + 13 3 31 x + 5 x2 − x − 15 2 2 e e La commande expand d´veloppe le num´rateur d’une expression rationnelle.( 17 = 17 ). 3 poly := (x + 1) (x + 2) (x + 5) (x − ) 2 > expand( poly ). Assurez-vous de mettre des e parenth`ses autour de l’´quation sans nom. D´velopper des polynomes en sommes e Les sommes sont g´n´ralement plus faciles a comprendre que les produits .150 • Chapitre 5: L’´valuation et la simplification e Ici. La commande expand vous permet de le faire. vous devez soustraire 17 des deux cˆt´s de l’´quation. x= 3 2 Les sections suivantes pr´sentent plusieurs autres manipulations come plexes. e e ` vous pouvez donc trouver utile de d´velopper un polynˆme comme somme e o de produits. xy x y2 x y2 −2 + + z (y − 1) z (y − 1) z (y − 1) z (y − 1) y 1 −2 + z (y − 1) z (y − 1) . oe e il suffit de soustraire l’´quation 17=17 de eq. Remarquez qu’il n’est pas e n´cessaire d’utiliser 4=4 dans ce cas. > expand( (x+1)*(y^2-2*y+1) / z / (y-1) ). 4x = 6 Divisez maintenant le r´sultat par 4.

x+1 ). e consultez la section Forme normale factoris´e de la page 159. ln( |x|2 ) 1 + |x| > expand(%).5. 2 sin(x) cos(x) > ln( abs(x^2)/(1+abs(x)) ). 2 ln(|x|) − ln(1 + |x|) La commande combine applique les mˆmes r`gles. La commande expand applique ´galement les r`gles d’expansion de e e plusieurs fonctions math´matiques standard. e e ` Vous pouvez aussi sp´cifier des sous-expressions que vous ne voulez e pas d´velopper comme argument de la commande expand. xy + xz + y + z > expand( (x+1)*(y+z). poly := (x + 2)2 (x − 2) (x + 3) (x − 1)3 > expand( poly ).1 Manipulations math´matiques e • 151 Utilisez la commande normal pour annuler les facteurs communs . e > expand( sin(2*x) ). mais dans le sens e e oppos´. x7 + 2 x6 − 10 x5 − 12 x4 + 37 x3 + 10 x2 − 52 x + 24 . e e > poly := (x+2)^2*(x-2)*(x+3)*(x-1)^2*(x-1). e > expand( (x+1)*(y+z) ). (x + 1) y + (x + 1) z Vous pouvez d´velopper une expression sur un domaine sp´cifique. Consultez la pr´sente section a la page 158.

x et les constantes a l’aide de ` lire si vous regroupez les coefficients de x la commande collect. poly := x2 + 2 y x − 3 y + y 2 x2 > collect( poly. x ).3*y + y^2*x^2. e Regrouper les coefficients de meme degr´ e Une expression comme x2 + 2x + 1 − ax + b − cx2 peut ˆtre plus facile a e ` 2 . (1 − c) x2 + (2 − a) x + b + 1 Le deuxi`me argument de la commande collect sp´cifie sur quelle e e variable il doit regrouper les termes. > collect( x^2 + 2*x + 1 . (1 + y 2 ) x2 + 2 y x − 3 y > collect( poly. e e .c*x^2. consultez la rubrique ?expand pour plus de d´tails. > Expand( poly ) mod 3. la commande Expand est plus utile. Maple effectue tous les calculs interm´diaires en arithm´tique modulo. y 2 x2 + (2 x − 3) y + x2 Vous pouvez regrouper les termes sur des variables ou des appels de fonctions non ´valu´s. > poly := x^2 + 2*y*x . x ). x7 + 2 x6 + 2 x5 + x3 + x2 + 2 x Cependant.152 • Chapitre 5: L’´valuation et la simplification e > % mod 3. x7 + 2 x6 + 2 x5 + x3 + x2 + 2 x Lorsque vous utilisez Expand avec mod.a*x + b . y ). Vous pouvez ´galement ´crire vos e e e e propres routines pour expand .

x)*sin(f(x)) > + sin(x)*diff(f(x). effectuez d’abord une substitution. • 153 trig _expr := sin(x) cos(x) + sin(x) + y sin(x) > collect( trig_expr. z xyprod + 2 xyprod + z > collect( %. x*y ).x.x). 2 d d DE := ( dx2 f(x)) sin(x) − ( dx f(x)) sin(f(x)) d d + sin(x) ( dx f(x)) + sin(f(x)) ( dx2 f(x)) 2 > collect( DE. Error. (z + 2) xyprod + z . cr´ez une variable rempla¸ant x*y.diff(f(x).x. puis ree e e c groupez les termes sur cette nouvelle variable. diff ).5.x)*sin(x) . big_expr ). sin(x) ). big _expr := z x y + 2 y x + z > collect( big_expr. e Dans l’exemple pr´c´dent. > big_expr := z*x*y + 2*x*y + z. (in collect) cannot collect y*x Pour contourner ce probl`me. d (−sin(f(x)) + sin(x)) ( dx f(x)) d + (sin(x) + sin(f(x))) ( dx2 f(x)) 2 Vous ne pouvez regrouper les termes sur des sommes ou des produits. (cos(x) + 1 + y) sin(x) > DE := diff(f(x).x) + sin(f(x))*diff(f(x).1 Manipulations math´matiques e > trig_expr := sin(x)*cos(x) + sin(x) + y*sin(x). xyprod ). > subs( x=xyprod/y.

154 • Chapitre 5: L’´valuation et la simplification e > subs( xyprod=x*y. C’est la e e e e forme par d´faut. [x. vous devez utiliser la commande sort. (1 + z) x + (1 + z) y x + (1 − z) y x2 La commande collect ne trie pas les termes .y] ). La forme r´cursive regroupe d’abord les termes autour de la premi`re variable sp´cifi´e. Si vous regroupez les coefficients de plus d’une variable a la fois. poly := y x + z x y + y x2 − z y x2 + x + z x > collect( poly. e > collect( poly. [x. e ` Factoriser des polynomes et des fonctions rationnelles Vous pouvez ´crire un polynˆme sous forme d’un produit de termes de plus e o faible degr´. on explique l’usage de la commande subs. distributed ). (1 − z) y x2 + ((1 + z) y + 1 + z) x La forme distribu´e regroupe les coefficients de toutes les variables en e mˆme temps. Utilisez la commande factor pour factoriser des polynˆmes.y]. e o > factor( x^2-1 ).z*y*x^2 + x + z*x. et ainsi de suite. Consultez la pr´sente section a la page 164. pour ce faire. e > poly := x*y + z*x*y + y*x^2 . (z + 2) y x + z Dans la section 5. . (x − 1) (x + 1) > factor( x^3+y^3 ). puis la deuxi`me. % ).3 de la page 190. deux ` options s’offrent a vous : employer la forme r´cursive ou la forme dis` e e e tribu´e.

x^3 + x^2 . e e √ 2.y^16) / (x^8 . poly := x5 − x4 − x3 + x2 − 2 x + 2 > factor( poly ). ainsi.1 Manipulations math´matiques e • 155 (x + y) (x2 − y x + y 2 ) Vous pouvez ´galement factoriser des fonctions rationnelles.y^16) / (x^7 . Remarquez la . La come mande factor factorise a la fois le num´rateur et le d´nominateur.x^4 . rat _expr := > factor(rat_expr).y^8). rat _expr := > factor( rat_expr ). x16 − y 16 x7 − y 7 (y + x) (x2 + y 2 ) (x4 + y 4 ) (x8 + y 8 ) x6 + y x5 + y 2 x4 + y 3 x3 + y 4 x2 + y 5 x + y 6 Sp´cifier le corps de nombres alg´briques La commande factor face e torise un polynˆme sur l’anneau indiqu´ par les coefficients. les termes de sa forme face toris´e poss`dent ´galement des coefficients entiers. > rat_expr := (x^16 . et ` e e annule ensuite leurs termes communs.y^7). x16 − y 16 x8 − y 8 x8 + y 8 > rat_expr := (x^16 . Le polynˆme o e o suivant poss`de des coefficients entiers .5. e e e > poly := x^5 . (x − 1) (x2 − 2) (x2 + 1) Dans le prochain exemple.2*x + 2. les coefficients incluent diff´rence dans le r´sultat.

√ 2 (x2 + 1) (x − √ √ 2) (x + 2) (x − 1) Vous pouvez ´tendre explicitement le corps des coefficients en foure nissant un deuxi`me argument a la commande factor. (x2 − 2) (x2 − 3) > factor( poly. soit 2 ou − 2. e . { sqrt(2). √ 2 x5 − √ 2 x4 − √ 2 x3 + √ 2 x2 − 2 √ √ 2x + 2 2 > factor( % ). e e √ √ RootOf(x^2-2) repr´sente une solution a x2 − 2 = 0. e ` > factor( poly.156 • Chapitre 5: L’´valuation et la simplification e > expand( sqrt(2)*poly ). (x2 − 3) (x − √ √ 2) (x + 2) > factor( poly. poly := x4 − 5 x2 + 6 > factor( poly ). sqrt(2) ). sqrt(3) } ). e ` > poly := x^4 . RootOf(x^2-2) ). (x − √ 3) (x + √ √ √ 3) (x − 2) (x + 2) Vous pouvez ´galement sp´cifier l’extension en utilisant RootOf. Ici.5*x^2 + 6. (x2 − 3) (x + RootOf(_Z 2 − 2)) (x − RootOf(_Z 2 − 2)) Consultez la rubrique ?evala pour plus d’information sur le calcul dans un corps alg´brique de nombres.

(x + 6) (x + 4) La commande Factor permet ´galement les extensions alg´briques de e e corps. ` > Factor( x^2+3*x+3 ) mod 7. La commande rationalize enl`ve e e les racines du d´nominateur d’une expression rationnelle en multipliant e par un facteur convenable. la factorisation des e e polynˆmes multivari´s ou la factorisation de polynˆmes sur des corps o e o e alg´briques de nombres.5. 1 2 + 2(1/3) > rationalize( % ). Supprimer des exposants rationnels En g´n´ral.1 Manipulations math´matiques e • 157 Factoriser dans des domaines sp´ciaux Utilisez la commande Factor e pour factoriser une expression sur les entiers modulo p pour un p premier. La syntaxe est similaire a celle de la commande Expand. consultez la rubrique ?Factor. RootOf(x^2+x+1) ) mod 5. > 1 / ( 2 + root[3](2) ). il est pr´f´rable de pr´senter les expressions rationnelles sans e e ee e exposant rationnel au d´nominateur. 1 (2/3) 2 1 (1/3) + − 2 2 5 5 10 > (x^2+5) / (x + x^(5/7)). > Factor( x^3+1 ) mod 5. (x + 1) (x + 4 RootOf(_Z 2 + _Z + 1) + 4) (x + RootOf(_Z 2 + _Z + 1)) Pour obtenir des d´tails sur l’algorithme utilis´. . (x + 1) (x2 + 4 x + 1) > Factor( x^3+1.

e > combine( sin(x)^2 + cos(x)^2 ). (x2 + 5) (x(6/7) − x(12/7) − x(4/7) + x(10/7) + x(2/7) − x(8/7) + x2 ) ( x3 + x) Le r´sultat de rationalize est souvent plus long que l’original. infolevel combine := 1 > expr := Int(1. 1 sin(2 x) 2 > combine( exp(x)^2 * exp(y) ). e > infolevel[combine] := 1.158 • Chapitre 5: L’´valuation et la simplification e x2 + 5 x + x(5/7) > rationalize( % ). donnez au e param`tre infolevel[combine] une valeur positive. e Combiner des termes La commande combine applique certaines r`gles de transformation pour e de nombreuses fonctions math´matiques. . x) + Int(x^2. 1 > combine( sin(x)*cos(x) ). x). e(2 x+y) > combine( (x^a)^2 ). x(2 a) Pour voir comment combine permet d’obtenir le r´sultat.

5. x2 + 1 x > expr := x/(x+1) + 1/x + 1/(1+x).1 Manipulations math´matiques e • 159 expr := > combine( expr ). Consultez la section D´velopper des polynomes en e sommes ` la page 150. e e e ` > normal( x + 1/x ). expr := > normal( expr ). a Forme normale factoris´e e Si une expression contient des fractions. x 1 1 + + x+1 x x+1 . e e qui m`ne g´n´ralement a des expressions plus simples. combine: combine: combine: combine: combine: combine: combine: combine: combine: combine: combine: combine: combine: combining combining combining combining combining combining combining combining combining combining combining combining combining with with with with with with with with with with with with with 1 dx + x2 dx respect respect respect respect respect respect respect respect respect respect respect respect respect to to to to to to to to to to to to to Int linear int linear Int linear int linear Int linear cmbplus cmbpwr power x2 + 1 dx La commande expand applique la plupart de ces r`gles de transformae tion en sens inverse. La commande normal effectue ce processus. vous pouvez trouver utile de regrouper celles-ci en une seule et d’annuler les facteurs communs du num´rateur et du d´nominateur.

. si vous souhaitez que e normal d´veloppe le num´rateur et le d´nominateur. > normal( [ expr. exp(x+1/x) ] ). x2 − 1 x (x − 2) Utilisez le deuxi`me argument. x+y (x − y)2 > expr := (x . x2 +1 x2 − 1 . expr := x2 − y 2 (x − y)3 > normal( expr ). expanded. 1 x expr := x−2 x− > normal( expr ). expanded ). e e e > normal( expr.y^2) / (x-y)^3. e( x ) ] x (x − 2) [ > big_expr := sin( (x*(x+1)-x)/(x+2) )^2 > + cos( (x^2)/(-x-2) )^2.160 • Chapitre 5: L’´valuation et la simplification e x+1 x > expr := (x^2 . les ene sembles et les listes.1/x) / (x-2). x2 − 1 x2 − 2 x La commande normal agit r´cursivement sur les fonctions.

(x4 + x3 + x2 + x + 1) (x20 + x15 + x10 + x5 + 1) Simplifier des expressions Les r´sultats des calculs de simplification de Maple peuvent ˆtre tr`s come e e pliqu´s. expr := √ 4+3 . x25 − 1 x−1 1 + x5 + x4 + x3 + x2 + x18 + x12 + x14 + x19 + x17 + x15 + x9 + x8 + x11 + x10 + x + x16 + x7 + x24 + x22 + x23 + x21 + x20 + x13 + x6 Pour annuler le facteur commun (x − 1) du num´rateur et du d´e e nominateur.1 Manipulations math´matiques e • 161 big _expr := sin( > normal( big_expr ). expr := > normal( expr ). (x + 1) x − x 2 x2 ) + cos( )2 x+2 −x − 2 sin( x2 2 x2 2 ) + cos( ) x+2 x+2 Remarquez dans le dernier exemple que la commande normal ne simplifie que les fonctions rationnelles – et non les fonctions trigonom´triques. e > expr := 4^(1/2) + 3. Consultez la section 5. e e > expr := (x^25-1) / (x-1).5. e Un cas particulier La commande normal peut retourner une expression sous forme ´tendue qui n’est pas aussi simple que la forme factoris´e. utilisez la commande factor.1 a la ` page 154. > factor(expr). La commande simplify tente de trouver une expression plus e simple en effectuant une s´rie de manipulations.

expr := ln(3 x) + sin(x)2 + cos(x)2 > simplify( expr.162 • Chapitre 5: L’´valuation et la simplification e > simplify( expr ).2*sin(x)^2 .cos(2*x). des expressions RootOf ainsi que d’autres fonctions sp´ciales. seule cette r`gle (ou cette classe de ` e r`gles) sera utilis´e. e e . ln(3) + ln(x) + 1 Consultez la rubrique ?simplify pour obtenir une liste des r`gles de e simplification int´gr´es. logarithmiques et exponentielles de mˆme que pour les exe e pressions contenant des radicaux. ln(3 x) + 1 > simplify( expr. trig ). e e > expr := ln(3*x) + sin(x)^2 + cos(x)^2. ln ). expr := cos(x)5 + sin(x)4 + 2 cos(x)2 − 2 sin(x)2 − cos(2 x) > simplify( expr ). 5 > expr := cos(x)^5 + sin(x)^4 + 2*cos(x)^2 > . des puissances. e e e e Lorsque vous sp´cifiez une r`gle particuli`re de simplification comme argument a la commande simplify. ln(3) + ln(x) + sin(x)2 + cos(x)2 > simplify( expr ). cos(x)4 (cos(x) + 1) Maple poss`de des r`gles de simplification pour les expressions trigoe e nom´triques.

e ee > simplify( expr. cela survient lorsque vous connaissez les propri´t´s sp´ciales ee e d’une variable mais que Maple la traite d’une mani`re plus g´n´rale. { x*z=1 } ). xy Vous pouvez ´galement vous servir de la commande assume pour plae cer des hypoth`ses individuellement sur des variables. |x y| > simplify( expr. assume=positive ). Simplification au moyen des relations accessoires Vous pouvez quelquefois simplifier une expression en utilisant votre propre r`gle de transformation.2. expr := x y z + x y + x z + y z > simplify( expr. > expr := x*y*z + x*y + x*z + y*z. x2 y 2 x2 y 2 L’option assume=propri´t´ indique a la commande simplify d’ase e ` sumer que toutes les inconnues de l’expression poss`dent la propri´t´. Consultez la section e 5. assume=real ). expr := > simplify( expr ).5. xy + yz + y + 1 . e e e > expr := sqrt( (x*y)^2 ). La commande simplify vous permet de le faire e en utilisant des relations accessoires .1 Manipulations math´matiques e • 163 Simplification avec des hypoth`ses e Il est possible que Maple n’effectue pas une simplification comme vous l’entendez .

[y. n’en trouvant aucun. poly := 1 + x4 − x2 + x + x3 .x] ). Maple effectue la substitution y 2 = 1 − x2 dans la premi`re expression. {siderel}. Vous pouvez en trier les termes par ordre d´croissant de e e ee e degr´ ` l’aide de la commande sort. e Il est ´galement possible de sp´cifier l’ordre dans lequel simplify e e effectue l’op´ration. e ee en y Dans le second cas.siderels. La commande simplify consid`re les ´quations e e donn´es comme des simplifications additionnelles. siderel := x2 + y 2 = 1 > simplify( expr. puis tente d’effectuer une substituion pour les termes e 2 .164 • Chapitre 5: L’´valuation et la simplification e Vous pouvez sp´cifier une ou plusieurs relations accessoires dans un e ensemble ou une liste. l’ex´cution est arrˆt´e. {siderel}. Pour obtenir davantage d’information sur cette commande. x3 − y x2 + y Dans le premier cas. ea > poly := 1 + x^4 .y] ). y3 − x y2 + x > simplify( expr. consultez la rubrique ?simplify. puis tente d’effectuer des substitutions pour les e e ee termes en x2 . expr := x3 + y 3 > siderel := x^2 + y^2 = 1. Trier des expressions alg´briques e Maple affiche les termes d’un polynˆme dans l’ordre o` le polynˆme a o u o d’abord ´t´ cr´´. Les manipulations de polynˆmes en base de Gr¨bner sont a la base du o o ` fonctionnement de simplify. l’ex´cution est arrˆt´e. [x. n’en trouvant aucun. Maple effectue la substitution x2 = 1−y 2 dans la premi`re expression. e > expr := x^3 + y^3.x^2 + x + x^3.

1 Manipulations math´matiques e > sort( poly ). x3 y + x2 y 2 > sort( x^3*y + y^2*x^2. [x. Avec ce tri. et ainsi de suite). > sort( x+x^3 + w^5 + y^2 + z^4. x4 + x3 − x2 + x + 1 Vous pouvez trier des polynˆmes multivari´s de deux mani`res : par o e e degr´ total ou en ordre lexicographique. [w. Maple les trie e e e en ordre lexicographique (de telle sorte que a vienne avant b. x4 + x3 y + x2 y 2 Remarquez que l’ordre des variables dans la liste d´termine l’ordone nancement de l’expression. Maple utilise par d´faut le tri e e par degr´ total .5.z] ). y 2 x2 + y x3 . [x. c o e > poly. > sort( x^3*y + y^2*x^2.y] ).x.y] ). x3 y + x2 y 2 > sort( x^3*y + y^2*x^2 + x^4. les termes sont alors r´arrang´s en ordre d´croissant de e e e e degr´. [y.y. • 165 x4 + x3 − x2 + x + 1 Remarquez que sort r´organise les expressions alg´briques sur place e e en rempla¸ant le polynˆme original par sa copie tri´e. w5 + z 4 + x3 + y 2 + x > sort( x^3*y + y^2*x^2.y] ). [x. lorsque deux termes ont le mˆme degr´.x] ).

sincos ). −I ln(x + I −x2 + 1) > convert( binomial(n. ` e > sort( x + x^3 + w^5 + y^2 + z^4. > convert( sin(x). vous pouvez exprimer sin(x) en termes e de la fonction exponentielle. plex ). n! k! (n − k)! .166 • Chapitre 5: L’´valuation et la simplification e Vous pouvez ´galement trier l’expression enti`re en ordre lexicograe e phique en utilisant l’option plex de la commande sort. [w. consultez la rubrique ?convert.w].y. > sort( x + x^3 + w^5 + y^2 + z^4.k). exp ). Conversion entre diff´rentes formes e Vous pouvez ´crire plusieurs fonctions math´matiques selon diverses e e formes ´quivalentes.x. factorial ). Pour plus d’information. x3 + x + y 2 + z 4 + w5 La commande sort peut ´galement trier des listes. w5 + x3 + x + y 2 + z 4 Encore une fois. La commande convert permet d’effectuer des conversions de ce genre. plex ). cos(x) sin(x) > convert( arccos(x). Consultez la sece tion 5. Par exemple. ln ).y. 1 −1 I (e(I x) − (I x) ) 2 e > convert( cot(x).z]. l’ordre dans lequel sont donn´es les inconnues au e moment de l’appel a sort d´termine l’ordonnancement.z. [x.3.

x+ 1 1 − 2 x−1 x Vous pouvez ´galement utiliser convert pour trouver une approximae tion fractionnelle a un nombre d´cimal.3. > convert( (x^5+1) / (x^4-x^2). ` e > convert( . sin(x) cos(x) Vous pouvez ´galement vous servir de la commande convert pour e effectuer des manipulations structurelles sur des objets Maple. rational ). . 19615 59713 Remarquez que les conversions ne sont pas n´cessairement r´cie e proques. exp ).1 Manipulations math´matiques e • 167 L’argument parfrac indique que l’on souhaite obtenir des fractions partielles. parfrac. > convert( tan(x). −I ((cos(x) + I sin(x))2 − 1) (cos(x) + I sin(x))2 + 1 La commande simplify nous r´v`le que cette expression est tan(x). e e > simplify( % ).5. Consultez la section 5.3284879342. trig ). x ). −I ((e(I x) )2 − 1) (e(I x) )2 + 1 > convert( %.

e La commande assume Le syst`me d’hypoth`ses de Maple est un ensemble de routines permettant e e de g´rer les propri´t´s des inconnues. a~ Utilisez la commande about pour obtenir de l’information sur les hypoth`ses a propos d’une inconnue.168 • Chapitre 5: L’´valuation et la simplification e 5. Les commandes assume et assuming sont expliqu´es dans les sous-sections suivantes. renamed a~: is assumed to be: RealRange(-infinity. e ` > assume( a>0 ). Originally m. renamed m~: is assumed to be: 0 . e > sqrt(a^2). Pour e e modifier globalement les propri´t´s des inconnues.2 Les hypoth`ses e Il existe deux mani`res d’imposer des hypoth`ses sur des inconnues. e ` > about(a). Fournir une hye e poth`se sur la valeur de a permet a Maple de simplifier l’expression. ´tant donn´ que le r´sultat e e e est diff´rent pour les valeurs positives et n´gatives de a. Pour effectuer une seule op´ration avec des hypoth`ses sur des e e inconnues. utilisez la commande assuming. utilisez la commande ee assume. > sqrt(a^2). Originally a. > about(m). e > assume(m. > additionally( m<=0 ). particuli`rement avec e les fonctions retournant plusieurs valeurs comme les racines carr´es.Open(0)) Utilisez la commande additionally pour poser des hypoth`ses e suppl´mentaires sur une inconnue. nonnegative). √ a2 Maple ne peut simplifier cette expression. La commande assume permet une e ee meilleure simplification d’expressions symboliques.

x=infinity). x=0.infinity ). signum(b) ∞ > assume( b>0 ). e > limit(b*x. t2) Definite integration: Can’t determine if the integral is convergent. integer).x = 0 . ∞ Vous pouvez utiliser infolevel pour obtenir de Maple un rapport d´taill´ de l’activit´ d’une commande. Need to know the sign of --> -c Will now try indefinite integration and then take limits. > frac(n).. e e e > infolevel[int] := 2...2 Les hypoth`ses e • 169 Plusieurs fonctions font usage des hypoth`ses sur une inconnue.5. frac(n) > assume(n. infinity) Fits into this pattern: Int(exp(-Ucplex*x^S1-U2*x^S2)*x^N*ln(B*x^DL)^M*cos(C1*x^R) /((A0+A1*x^D)^P). > limit(b*x. La e commande frac retourne la partie fractionnaire d’un nombre. 0 La limite suivante d´pend de b. infolevel int := 2 > int( exp(c*x). > frac(n). int/indef1: first-stage indefinite integration int/indef2: second-stage indefinite integration int/indef2: applying derivative-divides . int/cook/nogo1: Given Integral Int(exp(c*x). x=infinity).x = t1 .

pour des e e e valeurs complexes de x.infinity or undefined ∞ Les logarithmes retournent plusieurs valeurs . g´n´ralement. t2) int/cook/IIntd1: --> U must be <= 0 for converging integral --> will use limit to find if integral is +infinity --> or . a moins de la savoir ` e correcte. Maple ne simplifie pas l’expression suivante. > ln(exp(x)). > ln(exp(x)). x~ Vous pouvez utiliser la commande is pour v´rifier directement les e propri´t´s des inconnues. infinity) Fits into this pattern: Int(exp(-Ucplex*x^S1-U2*x^S2)*x^N*ln(B*x^DL)^M*cos(C1*x^R) /((A0+A1*x^D)^P).. ln(ex ) > assume(x.170 • Chapitre 5: L’´valuation et la simplification e int/indef1: first-stage indefinite integration e(c x) − 1 x→∞ c lim La commande int doit connaˆ le signe de c (ou plutˆt le signe de -c). ln(ex ) est diff´rent de x. > ln( exp( 3*Pi*I ) ). par exemple lorsque x est r´el. real). > int( exp(c*x)..infinity ).. x=0.x = 0 . ee .x = t1 . int/cook/nogo1: Given Integral Int(exp(x). ıtre o > assume( c>0 ). πI Ainsi.

5. e > eq := xi^2 = a. ξ 2 = a~ Vous devez retirer l’hypoth`se sur a ` l’int´rieur de eq avant e a e de retirer l’hypoth`se sur a. • 171 true > is(x. il suffit d’en d´saffecter e e le nom. Maple croit toujours que la variable a est n´gative. Cependant. l’expression eq renvoie toujours a a~. e . {ξ = √ −a~ I}. eq := ξ 2 = a~ > solve( eq. e > eq := subs( a=’a’. d´saffectez a.2 Les hypoth`ses e > is( c>0 ). {xi} ). complex). true > is(x. eq ). {ξ = −I √ −a~} Pour retirer des hypoth`ses sur une variable. eq := ξ 2 = a Puis. real). true Dans le prochain exemple. ` > eq. Tout d’abord. retirez les hypoth`ses sur a ` e e a l’int´rieur de eq.

e ` e ` ae ` ´valuer l’expression. Son utilisation est ´quivalente a la proc´dure consistant a appeler la commande assume. puis a retirer les hypoth`ses sur l’expression et ses ` e composantes. Lorsque vous vous servez de la commande assuming.172 • Chapitre 5: L’´valuation et la simplification e > a := ’a’. utilisez la commande assuming. e La commande assuming Pour n’effectuer qu’une seule ´valuation avec des hypoth`ses sur les noms e e d’une expression. a := a Consultez la rubrique ?assume pour obtenir davantage d’information. e e > about(a). vous pouvez utiliser la commande assuming d´crite e e dans la prochaine sous-section. −a > about(a). vous n’avez pas besoin de retirer par la suite les hypoth`ses e sur les inconnues et les ´quations. S’il ne vous est n´cessaire de poser une hypoth`se que pour une e e seule ´valuation. a: nothing known about this object > sqrt(a^2) assuming a<0. Cela facilite l’exp´rimentation de l’´valuation d’une exprese e sion sous diff´rentes hypoth`ses. a: nothing known about this object > sqrt(a^2) assuming a>0. a Vous pouvez ´valuer une expression avec une hypoth`se sur tous les e e noms dans une expression : .

H. ee > L := { Z. Dans les cas particuliers des listes et des ensembles. consultez la rubrique ?assuming. Z. R. Pour en savoir davantage sur la commande assuming. H. les doubles deux-points sont utilis´s pour ee e e e v´rifier le type d’un objet. d’utiliser la connaissance de la structure ou la repr´sentation interne d’un e objet plutˆt que de travailler avec l’expression comme un objet purement o math´matique. e e . Q. O }. y::complex. Pour plus d’information. ce qui rend leur ee manipulation ais´e. choisir e un ´l´ment est direct. • 173 a b~ ou avec des hypoth`ses sur des noms en particulier. les doubles deux-points (::) indiquent l’affectation d’une propri´t´. R. r´f´rez-vous a la rue ee ` brique ?type. C} > L[3]. plusieurs des commmandes e e qui manipulent les listes et les ensembles s’appliquent ´galement aux exe pressions g´n´rales. C.3 Manipulations structurelles > sqrt((a*b)^2) assuming positive. En g´n´ral. Z Choisir des ´l´ments de listes et d’ensembles est facile.5. de choisir et de modifier des parties d’un objet. 5. Le concept de ce qui constitue les parties d’une exe pression g´n´rale est plus difficile.3 Manipulations structurelles Les manipulations structurelles sont des manipulations qui permettent. L := {O. e > ln(exp(x)) + ln(exp(y)) assuming x::real. Cependant. entre autres choses. Q. x ~ + ln(ey ) Dans cet exemple.

b2 . b. b. b. q. map2 remplace le e deuxi`me argument d’une fonction. a. c] ). La commande map vous ee o a permet d’effectuer cette application multiple. [a.c]. r). c]. r ). x*(x+2) ]. f(b. p. 2 x + 2] La commande map2 est ´troitement li´e a map. q. f(c)] > map( expand. c] ). b. r)] . q)] > map( diff.174 • Chapitre 5: L’´valuation et la simplification e Appliquer une fonction ` une liste ou un ensemble a Vous pouvez appliquer une fonction ou une commande a chacun des ` ´l´ments plutˆt qu’` un objet en tant que tout. c. [a. [a2 . les arguments e suppl´mentaires sont pass´s ` la fonction. [f(a). q). x2 + 3 x + 2} > map( x->x^2. [a. p. f([a. p. q). p. f(p. [f(a. e e a > map( f. {x2 + 2 x. p. c]) > map( f. [f(p. b. [a. > f( [a. x ). q. x*(x+2) } ). L` o` map remplace e e ` a u s´quentiellement le premier argument d’une fonction. b. c2 ] Lorsque map est appel´e avec plus de deux arguments. f(b). q ). { (x+1)*(x+2). e > map2( f. [ (x+1)*(x+2). r). c] ). f(c. q. [2 x + 3. f(p.b.

n=L ) ]. 0. [1.b. d(p. x^y/z. [[1. 0. 5. m=L ) ]. [c. r). b.3 Manipulations structurelles > map2( diff. • 175 [ xy xy y xy ln(x) . − 2] xz z z Vous pouvez utiliser map2 pour obtenir la liste de toutes les d´riv´es e e partielles d’une expression. i=[a. r). q ).5. > map2( map.. 1]] > map( print. f(a). 0. 0. q)]. [1. L := [0. 0]. 1. q)]. 2. [e(p. f(p.y. 0]. 0]. 10.d]. 1.f] }. q)]. 3. 2. 5. f(p. 0. f(c) > seq( f(p. [1. { [a. } Vous pouvez mˆme utiliser seq conjointement avec map lorsque vous e les appliquez a des sous-´l´ments. Ici. 3. 0]. 10.5 ) ]. f(p. 0. q). [1. i. i={a. r) Un autre exemple est le triangle de Pascal. f(p. r). q).b]. c. 0. b(p. 4. q. seq produit une suite en appliquant ` ee la fonction f aux ´l´ments d’un ensemble et d’une liste. {[a(p. 6. i=0. . 3.c] ). 0. [c(p. 1. f(b). q. 0]. 5] > [ seq( [ seq( binomial(n. 0. 0. p. q).b.m). ee > seq( f(i). a. q.z] ). [e.c} ). [x. 4. % ). 4. . [1. 1. > L := [ seq( i. q. 1.

1. 5. sin(x). L := [8. 1] [] Les commandes add et mul fonctionnent comme seq. 10. 0.95. 1.95. sin(9)] . 0. 0] [1. 2. 10. 5. 0] [1. 4. 0. large := x → is(3 < x) Vous pouvez maintenant utiliser la commande select pour choisir les ´l´ments dans une liste ou un ensemble qui satisfont a la propri´t´ large. Choisir des ´l´ments dans une liste ou un ensemble ee Vous pouvez choisir certains ´l´ments d’une liste ou d’un ensemble en fouree nissant une fonction bool´enne qui d´termine les ´l´ments a s´lectionner. 0. 50 + y 2 + sin(x)2 Les commandes map. 4. 2. ` > large := x -> is(x > 3). map2. e e ee ` e La fonction bool´enne suivante retourne true si son argument est sup´e e rieur a 3. π. 1. 0] [1. > add( i^2. a l’exception ` qu’elles engendrent respectivement des sommes et des produits au lieu de suites. i=[5. 3. 0] [1. 0. 0. Pi. 6. ee ` ee > L := [ 8. 0] [1. Consultez la section Les parties d’une e e expression de la page 182. 2. 0. add et mul peuvent ´galement agir e sur des expressions g´n´rales. sin(9) ]. 0.176 • Chapitre 5: L’´valuation et la simplification e [1. seq. -5] ). 0. 3. 1. y. 0.

[2.95. L. numeric ). 2. [2. > select( type. numeric. false Ici. la commande remove retire les ´l´ments de L qui c ee satisfont a la propri´t´ large et affiche comme r´sultat les ´l´ments res` ee e ee tants. > selectremove( large. [8. L ). L).3 Manipulations structurelles > select( large. [8. > type( 3. L ).95. utilisez la come e mande selectremove. π]. numeric ). la syntaxe de select passe le troisi`me argument. > remove( large. numeric ). e e .95] Consultez la section Les parties d’une expression ` la page 182 pour a obtenir davantage d’information sur les types de donn´es et sur la mani`re e e d’utiliser select et remove sur des expressions en g´n´ral.5. π] De fa¸on similaire. sin(9)] Servez-vous de la commande type pour d´terminer le type d’une exe pression. true > type( cos(1). • 177 [8. sin(9)] Pour effectuer les deux op´rations simultan´ment. ` la e a commande type.

20]. zip retourne une liste e de la longueur de la plus courte. ]. Y ). 7. [11. 1] Pour tracer le graphique des valeurs en y en fonction des valeurs en x. Y := [6. [5. construisez une liste de listes : [ [x1. 6].y1 ]. 6]. [7. 5. i=1. pair := (x. 15. Pour chaque paire de valeurs. [x2. > P := zip( pair. 20 18 16 14 12 10 8 6 4 2 2 4 6 8 10 12 Si les deux listes sont de longueur diff´rente. ee > pair := (x.6 ) ]. .. construisez donc une liste de deux ´l´ments. i=1. X. 15. 1]] > plot( P ). [3.y) -> [x. i). 6. [13. .. 3. 11. Voici une liste e de valeurs en x et une liste de valeurs en y. 15]. > X := [ seq( ithprime(i)..6 ) ].y2 ]. 15]. P := [[2.. y) → [x. X := [2. y] La commande zip peut combiner les listes X et Y selon la fonction binaire pair. 20. 13] > Y := [ seq( binomial(6. y].178 • Chapitre 5: L’´valuation et la simplification e Combiner deux listes Il est possible de combiner des listes de plusieurs mani`res.

la commande sort trie les listes en ordre croissant.f].y. Les ´l´ments d’une liste demeurent dans le e ee ee mˆme ordre que lorsque la liste a ´t´ cr´´e.6. 18. 99 f ] > zip( igcd. Trier des listes Dans Maple. Consultez e la rubrique ?zip pour obtenir plus d’information sur cette commande.y. 3 c] Vous pouvez sp´cifier un quatri`me argument a zip qui lui fait retoure e ` ner une liste aussi longue que la plus longue des deux listes. e > sort( [1.2. Entre autres fonctions. [a. 2 b. 6. 99 e. "a". Vous pouvez cependant cr´er e e e ee e une copie d’une liste tri´e dans un autre ordre en utilisant la commande e sort.6] ).3.2.d.213. "has".5. en utilisant le quatri`me param`tre pour remplacer les valeurs manquantes. 2. 99 d. 2.d. 6! ).c. [1.3.876]. “a”. e e > zip( (x. [34. “has”. 3. [1.y) -> x. [“Mary”. 5.3. e > sort( ["Mary".3] ). une liste est une structure de donn´es fondamentale qui e pr´serve l’ordre des ´l´ments.b.5. 3. 3.4. [a. • 179 [a. "little".2. [7657.e. 4. "lamb"] ).3 Manipulations structurelles > zip( (x. [1.342. 3 c.3].y) -> x. 3.e.b.f]. Elle trie une liste de nombres en ordre num´rique. [1.346.c. 99 ). [a. 2 b.123]. “little”] . “lamb”. 6] La commande sort peut ´galement trier une liste chaˆ e ınes de caract`res en ordre lexicographique.756. 3] La commande zip peut ´galement combiner des vecteurs.

Pi. −5] Notez que. [sin(5). > sort( [4.3. π n’est pas un nombre. bf := (x. > bf := (x. “apple”.y) -> is( x < y ). 1. > sort( [x. [10.12. 2/3] ). 2 . 1. 10. sin(34)] ). qui peuvent varier a chaque ` session. y) → is(x < y) > sort( [4. Vous e e pouvez employer cette m´thode pour trier une liste de nombres en ordre e d´croissant.3. ou lorsqu’une liste contient des expressions autres que des nombres ou des chaˆ ınes. (x. 2 ] 3 Vous pouvez sp´cifier une fonction bool´enne pour d´finir un ordre e e e a ` la liste. sin(5)]. x] > sort( [-5. [1. 1.12. π. pour Maple. e > sort( [3.3. 1/2]. sin(34). bf ). 1 ] 2 ` La commande is sert a comparer des constantes comme π et sin(5) avec des nombres purs. [π. "apple"] ). la commande sort applique les adresses machine. 4.180 • Chapitre 5: L’´valuation et la simplification e Lorsque vous m´langez des nombres et des chaˆ e ınes. [3.3] 3 .y) -> evalb( x>y ) ). 4. Cette fonction bool´enne doit avoir deux arguments et retoure ner true si le premier argument doit ˆtre plac´ avant le second. Pi. 2/3.

3 Manipulations structurelles • 181 Vous pouvez ´galement trier des chaˆ e ınes de caract`res par longueur. “lamb”. “Mary”.5. big _list := [1. e > big_list := [1. e ` et l’autre des chaˆ ınes de caract`res. list2 := [1. “c”. vous pouvez effectuer les op´rations suivantes. 3. 3. 5. “d”. e > list1 := select( type. “little”] Maple ne poss`de pas de m´thode int´gr´e pour trier des listes mixtes e e e e de chaˆ ınes de caract`res et de nombres (sauf par adresse machine). big_list. [“a”. numeric ).2. 3. list1 := [“d”."c". “b”. 9] Triez maintenant les deux listes ind´pendamment. Pour e trier une liste mixte de chaˆ ınes et de nombres. “a”. string ). big_list. y) → evalb(length(x) < length(y)) > sort( ["Mary". “c”. list2 := [1. shorter ). “a”. "a". . "lamb"]. 9] Cr´ez deux listes a partir de l’originale.y) -> evalb( length(x) < length(y) ). shorter := (x. 5. "has". “b”] > list2 := select( type. e > list1 := sort(list1). regroupez les deux listes. 2. 2.3. "little"."a". list1 := [“a”. 9] Finalement.9]. “b”."d". “has”. 2. “d”] > list2 := sort(list2)."b". 5. l’une contenant des nombres. “c”. e > shorter := (x.5.

op(list2) ]. Consultez la section 5. e oe e > eq := a^2 + b^ 2 = c^2. “b”. e La pr´sente section.1. “d”.182 • Chapitre 5: L’´valuation et la simplification e > sorted_list := [ op(list1). 5. a2 + b2 La commande rhs. de mani`re similaire. vous devez en choisir les e parties individuelles. en s´lectionne le cˆt´ droit. 5 > eq := x = -2. La commande lhs e s´lectionne le cˆt´ gauche d’une ´quation. “c”. .infinity. 3.5 ). Les parties d’une expression Pour manipuler les d´tails d’une expression. 9] La commande sort peut ´galement servir a trier des expressions e ` alg´briques. a la page 176. sorted _list := [“a”.5 ).. e e oe > rhs( eq ). c2 Les commandes lhs et rhs fonctionnent ´galement pour les intere valles. > lhs( 2. Trois cas simples pour illustrer cette situation font appel aux ´quations.. eq := a2 + b2 = c2 > lhs( eq ). 2 > rhs( 2. 2. donne davantage d’information a e ` ` propos des commandes de cet exemple. aux intervalles et aux fractions. 1..

5. 1 + sin(x)3 − fract := > numer( fract ). −2 > rhs( rhs(eq) ).3 Manipulations structurelles • 183 eq := x = −2. y2 − 1 + x y x x + sin(x)3 x − y > denom( fract ). 3 > fract := ( 1+sin(x)^3-y/x) / ( y^2 . 2 > denom( 2/3 ). ... −2.1 + x ).∞ > lhs( eq ). e > numer( 2/3 ).∞ > lhs( rhs(eq) ). ∞ Les commandes numer et denom extraient respectivement le num´rae teur et le d´nominateur d’une fraction. x > rhs( eq ).

e > whattype( expr ). 2 cos(x)2 sin(x) L’expression expr est form´e de trois ´l´ments. vous pouvez choisir le troisi`me terme de la mani`re e e suivante. les op´randes d’une expression. sin(x). Utilisez la commande e ee nops pour compter le nombre d’op´randes d’une expression. + Utilisez la commande op pour lister les termes d’une somme ou. term3 := 2 cos(x)2 sin(x) term3 est un produit de trois facteurs. . ∗ > nops( term3 ). 3 Par exemple. 3. > whattype( term3 ). en g´n´ral. expr := 3 + sin(x) + 2 cos(x)2 sin(x) La commande whattype consid`re expr comme une somme.184 • Chapitre 5: L’´valuation et la simplification e x (y 2 − 1 + x) Consid´rez l’expression e > expr := 3 + sin(x) + 2*cos(x)^2*sin(x). e > nops( expr ). e e e > op( expr ). > term3 := op(3. expr).

e > op1 := op(1. .3 Manipulations structurelles • 185 3 > op( term3 ). sin(x) Obtenez le second facteur de term3 de la mani`re suivante.5. e > factor2 := op(2. op1 := cos(x) > whattype( op1 ). x x est un symbole. factor2). e e > op( factor2 ). 2. 2 Le premier op´rande est une fonction et ne contient qu’un seul e op´rande. ^ factor2 poss`de deux op´randes. term3). factor2 := cos(x)2 C’est une exponentiation. cos(x). cos(x)2 . function > op( op1 ). > whattype( factor2 ).

f} ). e e > nops( x ). e.b. il ne contient qu’un e ` seule op´rande. e ee > op( [a. d . symbol Puisque vous n’avez pas assign´ une valeur a x. x Vous pouvez repr´senter le r´sultat de la recherche des op´randes e e e d’une expression par un graphique appel´ arbre des expressions. 1 > op( x ).c] ). c > op( {d. a. soit lui-mˆme. b. f. L’arbre e des expressions de expr ressemble a ceci.e.186 • Chapitre 5: L’´valuation et la simplification e > whattype( op(op1) ). ` + 3 * sin x sin x cos x ^ 2 2 Les op´randes d’une liste ou d’un ensemble sont ses ´l´ments.

x^2-y^2 = a*x }. comme la fonction bool´e e enne dans un appel a select ou remove. e e e > large := z -> evalb( is(z>3) = true ). 8 sin(x) − e9 Maple poss`de plusieurs commandes utiles. x = 0}.3 de la e page 176 fonctionnent ´galement pour des expressions en g´n´ral. 6 RootOf(_Z − b2 − a _Z 5 )2 x = RootOf(_Z 6 − b2 − a _Z 5 )}} .5. sol := {{y = 0. x^2 ).3 Manipulations structurelles • 187 ` A la pr´sente section (page 174). x = a}. f(x)f(2) Les commandes select et remove d´crites dans la section 5. true > has( x*exp(cos(t^2)).exp(9) ). ` ee La fonctionnalit´ de map s’´tend aux expressions en g´n´ral. 5+8*sin(x) . > sol := { solve( { x^2*y^2 = b*y. La commande has d´termine si ` e une expression contient une sous-expression sp´cifique. { b y= .y} ) }. on d´crit comment la commande map e e applique une fonction a tous les ´l´ments d’une liste ou d’un ensemble. large := z → evalb(is(3 < z) = true) > remove( large. true Quelques-unes des solutions du syst`me d’´quations suivant cone e ee ` tiennent des r´f´rences a RootOf. cos ). e e e e > map( f. t^2 ). e > has( x*exp(cos(t^2)). > {x. {y = 0.

. (3 + x) sin(1 + √ π) Si vous ˆtes int´ress´ aux sous-expressions d’un certain type plutˆt e e e o qu’aux op´randes qui les contiennent. > hastype( sin( 1+sqrt(Pi) ). {{y = b . utilisez la commande indets. true Dans cet exemple. e e > type( 3+x.. RootOf ). ` type. e ‘+‘. e . true Utilisez la combinaison select(hastype. expr. sol. RootOf(_Z − b2 − a _Z 5 )2 6 x = RootOf(_Z 6 − b2 − a _Z 5 )}} Vous pouvez ´galement choisir ou retirer des sous-expressions par e type.. ‘+‘ ). La commande type d´termine si une expression est d’un type donn´. > select( has. √ π) 3+x La commande hastype d´termine si une expression contient une souse expression d’un certain type. ‘+‘ ). > select( hastype.188 • Chapitre 5: L’´valuation et la simplification e Utilisez select et has pour choisir ces solutions.) pour choisir les op´e randes d’une expression qui contient un certain type. expr := (3 + x) x2 sin(1 + > select( type. la commande select passe son troisi`me argument. ‘+‘ ). ‘+‘ ). expr. a > expr := ( 3+x ) * x^2 * sin( 1+sqrt(Pi) ).

> type( diff(y(x). specfunc(anything. {RootOf(_Z 6 − b2 − a _Z 5 )} ` A l’instar de RootOf. ee > indets( sol. y(t). e e > DE := expand( diff( cos(y(t)+t)*sin(t*z(t)). t). diff) ). diff) ). l’ensemble retourn´ par indets contient seulement un e ´l´ment. • 189 {3 + x. x). toutes les commandes n’ont pas leur propre type .5. { ∂ ∂ ∂ x(t). vous pouvez cependant utiliser le type structur´ specfunc(type. specfunc(anything. RootOf ). 1 + √ π} Les deux RootOf contenus dans sol sont de type RootOf. true Vous pouvez utiliser ceci pour trouver toutes les d´riv´es d’une e e ´quation diff´rentielle. z(t)} ∂t ∂t ∂t . Puisqu’ils sont identiques.3 Manipulations structurelles > indets( expr. e nom ). d DE := −sin(t z(t)) sin(y(t)) cos(t) ( dt y(t)) − sin(t z(t)) sin(y(t)) cos(t) − sin(t z(t)) cos(y(t)) sin(t) + cos(t z(t)) cos(y(t)) cos(t) z(t) − cos(t z(t)) sin(y(t)) sin(t) z(t) d − sin(t z(t)) cos(y(t)) sin(t) ( dt y(t)) d + cos(t z(t)) cos(y(t)) cos(t) t ( dt z(t)) d d − cos(t z(t)) sin(y(t)) sin(t) t ( dt z(t)) + ( dt x(t)) > indets( DE. t ) ) > + diff(x(t). Ce type identifie les fonctions appel´es nom avec les arguments de e type type. ‘+‘ ).

e La substitution Il est souvent n´cessaire de substituer une valeur a une variable (en e ` d’autres termes. yprime := cos(x ecos(x) ) (ecos(x) − x sin(x) ecos(x) ) sin(x ecos(x) ) Utilisez maintenant la commande eval pour substituer une valeur a ` x dans yprime. e e e > select( hastype. diff) ). DE. e e > y := ln( sin( x * exp(cos(x)) ) ). d’´valuer une expression en un point). de mˆme que ?type. diff) ).190 • Chapitre 5: L’´valuation et la simplification e Les op´randes suivants de DE contiennent les d´riv´es. > eval( yprime. vous e e devez substituer la valeur 2 a x dans la d´riv´e. pour e r´soudre le probl`me Si f (x) = ln(sin(xecos(x) )).structured pour obtenir e davantage d’information sur les types structur´s comme specfunc. x=2 ). d x(t) dt Maple reconnaˆ plusieurs types. x ). specfunc(anything. d −sin(t z(t)) sin(y(t)) cos(t) ( dt y(t)) d − sin(t z(t)) cos(y(t)) sin(t) ( dt y(t)) d + cos(t z(t)) cos(y(t)) cos(t) t ( dt z(t)) d d − cos(t z(t)) sin(y(t)) sin(t) t ( dt z(t)) + ( dt x(t)) DE ne poss`de qu’un seul op´rande qui est lui-mˆme une d´riv´e. DE. specfunc(anything. Par exemple. Consultez la rubrique ?type pour en ıt obtenir une liste partielle. e e e e e > select( type. y := ln(sin(x ecos(x) )) > yprime := diff( y. . trouvez f (2) . La commande diff calcule ` e e la d´riv´e.

3 Manipulations structurelles • 191 cos(2 ecos(2) ) (ecos(2) − 2 sin(2) ecos(2) ) sin(2 ecos(2) ) La commande evalf retourne une approximation d´cimale du r´sule e tat. > expr := a * b * c * a^b. et non math´e matiques . cela signifie que vous pouvez effectuer des substitutions pour n’importe quelle sous-expression. > evalf( % ). ab Le produit a*b n’est donc pas un facteur dans expr. c.5. expr ). −0. Vous pouvez effectuer la substitution a*b=3 de trois mani`res : r´soudre la sous-expression e e pour une des variables : > subs( a=3/b. b. . > subs( cos(x)=3. a b c ab expr est un produit de quatre facteurs. > op( expr ). expr := a b c ab > subs( a*b=3. yprime ). expr ).1388047428 La commande effectue des substitutions syntaxiques. cos(x e3 ) (e3 − x sin(x) e3 ) sin(x e3 ) Vous ˆtes cependant limit´ aux sous-expressions telles que Maple les e e reconnaˆ ıt. a.

expr ). ` > subs( z=x. expr ). { a*b=3 } ). z sin(z) + π La commande subs effectue les substitutions de gauche a droite. w=Pi. e > subs( { x=sqrt(Pi). expr). ` > expr := z * sin( x^2 ) + w. tandis que. ee e e e les variables a et b demeurent dans le r´sultat. e Vous pouvez effectuer plusieurs substitutions a la fois par un seul ` appel a subs. 3 sin(π) + w . z=3 }. dans le deuxi`me et le troisi`me cas. 3 c ab Remarquez que. √ z sin(z) + w Si vous donnez un ensemble ou une liste de substitutions. expr ).192 • Chapitre 5: L’´valuation et la simplification e 3 3 c ( )b b utiliser une relation accessoire dans simplify : > simplify( expr. toutes les occurrences de a ont ´t´ remplac´es par 3/b. x=sqrt(z). expr := z sin(x2 ) + w > subs( x=sqrt(z). dans le premier cas. 3 c ab ou encore utiliser la commande algsubs qui effectue des substitutions alg´briques. la commande subs effectue ces substitutions simultan´ment. e > algsubs( a*b=3.

e ` > eval( % ). expr ).3 Manipulations structurelles • 193 Remarquez que. w Utilisez la commande subsop pour remplacer un op´rande sp´cifique e e dans une expression. e e e e > expr := cos(x). e Changer le type d’une expression Vous pouvez trouver n´cessaire de convertir une expression dans un autre e type. . x > subsop( 1=t. donne plus de d´tails sur les e ` e op´randes d’une expression. tx L’op´rande d’ordre z´ro est g´n´ralement le nom de la fonction. vous devez ´valuer explicitement le e e e r´sultat d’un appel a subs. expr := cos(x) > subsop( 0=sin. en g´n´ral. 5. > expr := 5^x. a la page 182. Consid´rez la s´rie de Taylor de sin(x). expr ). sin(x) La pr´sente section. expr := 5x > op( expr ). e e > f := sin(x).5.

> p := convert( t.5 1 0. t := x − 1 5 1 3 x + x + O(x6 ) 6 120 Puisque vous ne pouvez tracer le graphique d’une s´rie. string ).. title=p_txt ).4. string )..5 –4 –3 –2 –1 0 –0..5 –1 –1. string) e e pour convertir une expression en chaˆ ıne.. > ttl := cat( convert( f.. > p_txt := convert( p. le titre d’un graphique doit ˆtre une chaˆ e e ıne.. x=-4. p := x − 1 5 1 3 x + x 6 120 De mani`re similaire. > " and its Taylor approximation ". . et non une expression g´n´rale. p_txt := “x-1/6*x^3+1/120*x^ 5” > plot( p. x–1/6*x^3+1/120*x^5 1. polynom ). Vous pouvez utiliser convert(.5 1 2 x 3 4 La commande cat concat`ne tous ses arguments pour cr´er une noue e velle chaˆ ine. vous devez e utiliser convert(..194 • Chapitre 5: L’´valuation et la simplification e f := sin(x) > t := taylor( f. x=0 ). polynom) pour la convertir d’abord en approximation polynomiale. > p_txt ).

1] > S := convert( L.4..2. list ). 2.3 Manipulations structurelles • 195 ttl := “sin(x) and its Taylor approximation x-1/6*\ x^3+1/120*x^5” > plot( [f. 2. set ). Consultez la rubrique ?convert pour obe tenir davantage d’information a ce sujet. ` .5 –1 –1. [1.1].5 1 0.5. 5} > convert( S. 5] La commande convert peut effectuer plusieurs autres conversions structurelles et math´matiques.5 –4 –3 –2 –1 0 –0. title=ttl ). sin(x)anditsTaylorapproximationx–1/6*x^3+1/120*x^5 1. 2. > L := [1. L := [1. x=-4.5 1 2 x 3 4 Vous pouvez ´galement convertir une liste en ensemble ou un ensemble e en liste. 2.2. p]. S := {1.5. 5.

Lorsque vous appelez eval avec un seul argument. 5 Vous pouvez utiliser la commande eval pour contrˆler le niveau d’´o e valuation d’une expression. Maple effectue une ´valuation compl`te des noms : e e lorsque vous utilisez un nom ou un symbole. 5 . e e > eval(x). z := 5 Maple ´value maintenant x int´gralement : il remplace x par y. e e a > x := y. Maple reme e e e place le nom par la valeur trouv´e. le logiciel v´rifie si ce nom e ou ce symbole poss`de une valeur assign´e. Lorsque vous ase signez la valeur y ` x.4 Les r`gles d’´valuation e e Dans un programme de math´matiques symboliques comme Maple. comment x doit-il a a ` ˆtre ´valu´ ? e e e Niveaux d’´valuation e Dans la plupart des cas. > x. Le cas ´ch´ant. et ainsi de suite de e mani`re r´cursive jusqu’` ce qu’aucune substitution ne soit possible. y := z > z := 5. Si cette valeur poss`de elle-mˆme une e e e valeur assign´e. y par e e z et finalement z par 5. Maple effectue une autre substitution.196 • Chapitre 5: L’´valuation et la simplification e 5. la e question de l’´valuation occupe une place importante. la valeur z ` y et la valeur 5 a z. eval ´value int´gralement son argument. x := y > y := z.

5 Les principales exceptions a la r`gle de l’´valuation compl`te sont ` e e e les structures de donn´es sp´ciales comme les tableaux. e . l’un des quatre e types sp´ciaux de structures. e e ´ Evaluation du dernier nom Les structures de donn´es array. > eval(x. 1).4] ] ).4 Les r`gles d’´valuation e e • 197 Un deuxi`me argument a eval sp´cifie jusqu’o` vous souhaitez ´valuer e ` e u e le premier argument. 2). 3). [3. table. y := z > z := array( [ [1. les matrices et e e les proc´dures.5. produirait un tableau.2]. matrix et proc poss`dent un e e comportement d’´valuation sp´cial appel´ ´valuation du dernier nom. e e ee > x := y. de mˆme que le comportement des variables locales a e e ` l’int´rieur d’une proc´dure. mais arrˆte a ce point puisque e ` l’´valuation du dernier nom. y > eval(x. z := 1 2 3 4 Maple remplace x par y et y par z. z > eval(x. x := y > y := z. z.

e e e Pour illustrer cette situation. z Maple utilise l’´valuation du dernier nom pour les tableaux. > eval(add2). erfi > eval(erfi). examinez la commande erfi. e les matrices et les proc´dures pour conserver la repr´sentation compacte e e des entr´es de tableaux non assign´es (par exemple T[3]) et les come e mandes non ´valu´es (par exemple sin(x)). > erfi. 1 2 3 4 > add2 := proc(x. end proc. add2 := proc(x. les tables.y) x+y. . supprime le code de cette proc´dure.198 • Chapitre 5: L’´valuation et la simplification e > x. par d´faut. Vous pouvez forcer une e e ´valuation compl`te en appelant explicitement la commande eval. proc(x. proc(x : :algebraic) . y) x + y end proc Remarquez qu’une ´valuation compl`te des proc´dures contenues dans e e e la biblioth`que de Maple. y) x + y end proc > add2. . end proc . add2 Vous pouvez facilement forcer une ´valuation compl`te en utilisant e e eval ou print. e e > eval(x).

’complex(float )’) then evalf(’erfi ’(x)) elif x = 0 then 0 elif type(x. got %1”. proc(x : :algebraic) option‘Copyright (c) 1996 Waterloo Maple Inc. ` > interface( verboseproc=2 ). ‘ + ‘) and traperror(sign(x)) = −1 then − erfi(−x) else ’erfi ’(x) end if end proc La valeur par d´faut de verboseproc est 1. ’complex(numeric)’) and csgn(op(1. ’extended _numeric’) then undefined elif type(x. ’{undefined . ’extended _numeric’) then x elif type( (x).\ All rights reserved . ‘ ∗ ‘) and type(op(1. if nargs = 1 then error “expecting 1 argument. > eval(erfi). {op(x)}) then I ∗ erf(−I ∗ x) elif type(x. x). ‘ ∗ ‘) and member(I.‘. ’imaginary ’) then undefined ∗ I else undefined + undefined ∗ I end if elif type(x. ’undefined ’) then if type(x. (x)) end if elif type(x. ’∞’) then ∞ + ∞ ∗ I else CopySign(I. cx _infinity }’) then undefined + undefined ∗ I elif type(x.4 Les r`gles d’´valuation e e • 199 Assignez a la variable verboseproc de la commande interface la ` valeur 2. e . ’∞’) then if type(x. x)) < 0then − erfi(−x) elif type(x. et essayez a nouveau.5. ’complex(numeric)’) and csgn(x) < 0 then − erfi(−x) eliftype(x. nargs elif type(x.

´ Evaluation ` un niveau a Les variables locales d’une proc´dure sont appliqu´es a l’´valuation a un e e ` e ` niveau : si vous assignez une variable locale. e > x := y. y Comparez cette ´valuation a l’exemple similaire pr´sent´ ` la e ` e e a page 196. e e ` > test:=proc() > local x. > z := 5. Commandes avec des r`gles sp´ciales d’´valuation e e e Les commandes assigned et evaln Les fonctions assigned et evaln ´valuent leurs arguments seulement au point o` les arguments deviennent e u des noms pour la premi`re fois. y := z > evaln(x). utie e e a e e lisez eval. Lorsque vous e ` e d´sirez obtenir de l’´valuation compl`te ` l’int´rieur d’une proc´dure. > end proc: > test(). La rubrique d’aide ?interface explique les valeurs permises de verboseproc et des autres variables d’interface.200 • Chapitre 5: L’´valuation et la simplification e > interface( verboseproc=1 ). > x := y. L’´valuation compl`te a l’int´rieur d’une proc´dure est raree e ` e e ment n´cessaire et peut mener a une proc´dure inefficace. x := y > y := z. > x. z. x . le r´sultat de l’´valuation est e e la valeur la plus r´cemment assign´e directement a cette variable. > y := z. y.

Empecher l’´valuation d’une expression e Le langage Maple supporte l’utilisation des guillemets pour retarder l’´vae luation d’un niveau. > sum( i^2. > i := 2.. i := 2 > seq( i^2. e > i := 4. elle peut toujours l’utiliser comme une variable d’indice. i=1. second argument evaluates to 2 = 1 . Entourer un nom de guillemets simples (’) empˆche e Maple d’´valuer celui-ci. i=1. . 5 Vous pouvez facilement r´soudre ce probl`me en utilisant les guillee e mets simples. 4.5 ). e ee e ` > assigned( x ).5 ). la commande seq e n’´value pas ses arguments.5. i := 4 > i... 25 > i. 2 Comparez ceci au comportement de sum. Error. 9. 1. 16. (in sum) summation variable previously assigned.4 Les r`gles d’´valuation e e • 201 La commande assigned v´rifie si une valeur a ´t´ assign´e a un nom. de mani`re que si une valeur a ´t´ assign´e ` e e ee e a une variable. true La commande seq Pour cr´er des suites d’expressions.

. i=1. second argument evaluates to 4 = 1 .. x := 0 > ’’’x’+1’’. 5 > sum( ’i^2’. ’x’ + 1 > %. 4 L’´valuation compl`te d’une expression entour´e de guillemets supe e e prime un niveau de ces guillemets. 55 > i.5 ). Error. i Utilisez cette m´thode pour ´viter le probl`me suivant. > x := 0. (in sum) summation variable previously assigned. 4 > sum( i^2. ’i’=1.202 • Chapitre 5: L’´valuation et la simplification e 4 > ’i’.5 ). ’’x’ + 1’ > %. e e e > i. ..

4q − i Lorsque vous entourez une simple variable de guillemets simples. x Cependant. e e > x := 1. le r´sultat retourn´ est le nom de la variable. en g´n´ral.5. Vous pouvez employer cette e e m´thode pour d´saffecter une variable. e e > ’1-1’. 1 > x := ’x’. 1 Entourer une expression de guillemets retarde l’´valuation. vous devez utiliser evaln. . mais n’eme pˆche pas les simplifications automatiques ni les calculs arithm´tiques. 0 > ’p+q-i-p+3*q’. e e > i := 4.4 Les r`gles d’´valuation e e • 203 x+1 > %. x := x > x. x := 1 > x.

x-1. a4 := a4 Utiliser les variables entour´es de guillemets comme arguments e de fonctions Quelques commandes Maple se servent de noms comme moyen de retourner de l’information en plus de la valeur retourn´e de mani`re standard. e . ’q’ ). e e La commande divide assigne le quotient au nom global q. ai Vous devez utilser evaln pour d´saffecter a[i]. a4 > a[i] := evaln( a[i] ). > ’a[i]’. Vous pouvez e a e ´viter d’utiliser les guillemets si vous vous assurez que le nom utilis´ n’a e e pas de valeur assign´e. e > evaln( a[i] ). > divide( x^2-1. x+1 Rappelez-vous d’utiliser un nom entour´ de guillemets afin de vous e assurer de ne pas passer de variable allou´e ` la proc´dure.204 • Chapitre 5: L’´valuation et la simplification e i := 4 > a[i] := 9. a4 := 9 Remarquez que ’a[i]’ est a[i] et non a[4]. true > q.

Error. ab L’op´rateur de concat´nation. q ). x+y Les commandes rem. q := q > divide( x^2-y^2.5. • 205 q := 2 > divide( x^2-y^2. Concat´nation de noms e La concat´nation est une mani`re de former de nouveaux noms de vae e riables bas´s sur d’autres noms. || . . irem et iquo se comportent de mani`re simie laire. e > a||b. mais pas celui du cˆt´ gauche. wrong number (or type) of parameters in function divide > q := evaln(q). quo. x-y. oe e oe > a := x. q ). dans un nom. entraˆ l’´value e ıne e ation du cˆt´ droit de l’op´rateur. a := x > b := 2. true > q.4 Les r`gles d’´valuation e e > q := 2. x-y.

a4 Vous pouvez vous servir des noms concat´n´s pour assigner et cr´er e e e des expressions. c := 3 > a||b||c. new _name := a||(y + 1) > y := 3. e e > a := x. a := x > b := y+1.206 • Chapitre 5: L’´valuation et la simplification e b := 2 > a||b. b := y + 1 > new_name := a||b. a23 Si un nom issu d’une concat´nation ne forme pas un seul symbole. e Maple n’´value pas la concat´nation. a2 > c := 3. y := 3 > new_name. .

les commandes e e e que vous avez vues ici vous permettent de transformer une expression sous plusieurs formes. depuis l’addition de deux ´quations a la e ` s´lection de parties d’une expression g´n´rale. a0 + a1 x + a2 x2 + a3 x3 + a4 x4 + a5 x5 + a6 x6 + a7 x7 + a8 x8 Lorsque vous omettez les guillemets simples. vous pouvez utiliser les relations accessoires pour sp´cifier vos e propres r`gles de simplification.. Cependant.5. comme l’´valuation du dernier nom pour certaines grandes struce tures de donn´es. k=0. vous avez vu comment effectuer plusieurs types de manipulations sur des expressions. b1 := 0 Ici. k=0. souvent celles que vous jugez les plus simples.8 ). ou encore des hypoth`ses pour sp´cifier e e e des propri´t´s des inconnues. e > sum( ’a||k’ * x^k. l’´valuation a un seul niveau des variables locales d’une e e ` proc´dure ainsi que l’´valuation retard´e au moyen des guillemets simples.5 Conclusion > i := 1. Si tel n’est pas le cas. e e e . ak + ak x + ak x2 + ak x3 + ak x4 + ak x5 + ak x6 + ak x7 + ak x8 Vous pouvez ´galement utiliser la concat´nation pour former des titres e e de graphiques. Maple ´value a||k ` ak. les guillemets simples sont n´cessaires. e a > sum( a||k * x^k. dans la plupart des cas. Il existe cependant quelques excepe e tions.. Maple effectue e l’´valuation compl`te des variables. 5. • 207 i := 1 > b||i := 0.5 Conclusion Dans ce chapitre. ee Vous avez ´galement vu que.8 ).

208 • Chapitre 5: L’´valuation et la simplification e .

enfin. Le package e e e e Student[Calculus1] contient plusieurs commandes qui s’av`rent pare ticuli`rement utiles dans ce domaine. e e e e > x0 := 1. e e > f := x -> exp( sin(x) ). la deuxi`me traite des ´quations diff´rentielles ordinaires . puis montre comment d´terminer l’ene semble des points d’inflexion d’une fonction. f := x → esin(x) Trouvez la d´riv´e de f ´valu´e en x0 = 1.6 Exemples tir´s du calcul e diff´rentiel e Le pr´sent chapitre illustre par quelques exemples la mani`re dont Maple e e vous aide a pr´senter et a r´soudre des probl`mes de calcul diff´rentiel. e La d´riv´e e e La prsente section illustre la signification graphique de la d´riv´e en tant e e que pente de la droite tangente. La ` e ` e e e premi`re section d´crit les concepts ´l´mentaires de la d´riv´e et de l’ine e ee e e t´grale . e e e e la troisi`me section porte sur les ´quations aux d´riv´es partielles. e e e e 6.1 Calcul diff´rentiel ´l´mentaire e ee Vous verrez ici plusieurs exemples montrant la mani`re d’illustrer des e id´es et de r´soudre des probl`mes de calcul diff´rentiel. D´finissez la fonction f : x → exp(sin(x)) de la mani`re suivante. 209 .

esin(1) ] > p1 := [ x0+h. m := − esin(1) − esin(1+h) h Si h = 1. > h_values := seq( NewtonQuotient( f(x). p1 := [1 + h.0/i^2 ).. > m := NewtonQuotient(f(x). . esin(2) − esin(1) La commande evalf nous donne une approximation d´cimale de ce e r´sultat.210 • Chapitre 6: Exemples tir´s du calcul diff´rentiel e e x0 := 1 p0 et p1 sont deux points situ´s sur le graphique de f . la pente est donn´e par e > eval( m.20). e > evalf( % ). esin(1+h) ] La commande NewtonQuotient du package Student calcule la pente de la s´cante passant par p0 et p1 .0. x=x0. les valeurs de la pente de la s´cante semblent e e converger. e > with(Student[Calculus1]): Utilisez NewtonQuotient pour trouver une expression pour la pente. h=1. x=1. h=1 ). h=h). p0 := [1. 0. e > p0 := [ x0. f(x0+h) ]. > i=1.162800903 Lorsque h tend vers z´ro. f(x0) ].

> with(plots): Warning.250111128..210917616.248066842. 1.6. 1.251406908. 1. 1. e > S := seq( plot( [f(x). e > secant := unapply( rhs(%).p0[2] = m * ( x . secant(x)]. vous e e devez cr´er une suite de graphiques.1628009030.226806975.053234748.4] ).249585493. 1. x=0.251609743.250534250. > view=[0..1 Calcul diff´rentiel ´l´mentaire e ee • 211 h_values := 0. 1. 0. y ). 1. x ).4. 1.235154852. secant := x → (esin(1+h) − esin(1) ) (x − 1) + esin(1) h Vous pouvez maintenant tracer la s´cante et la fonction elle-mˆme e e sur le mˆme graphique pour diff´rentes valeurs de h. the name changecoords has been redefined . 1.251167122. 1.174305789. 1. > h=h_values ): La commande display du package plots peut afficher les graphiques de la suite sous forme d’animation.p0[1] ).248921648. > isolate( %.251782800 Voici l’´quation de la pente de la s´cante. Tout d’abord. 1..246939100. y= (esin(1+h) − esin(1) ) (x − 1) + esin(1) h Vous devez faire de cette ´quation une fonction.250880512. 1.4. 1.240091510.243256512. y − esin(1) = (esin(1+h) − esin(1) ) (x − 1) h La commande isolate r´crit l’´quation sous la forme pente-ordonn´e e e e a ` l’origine. e e > y . 1. 1. 1. 1.245408615. 1.

insequence=true. x x x x x x x x x x x x x x x x x x x x Dans la limite lorsque h tend vers z´ro. h=0 ).4. esin(1+h) − esin(1) h→0 h lim La valeur de cette limite est > value( % ). 0. view=[0. cette r´ponse est la valeur de f (x0 ). la pente est donn´e par e e > Limit( m. d´finissez d’abord la fonction f 1 comme ´tant la d´riv´e premi`re e e e e e de f . vous pouvez voir que f 1(x0 ) est ´gale a la limite cie ` dessus... > f1 := D(f). utilisez D.212 • Chapitre 6: Exemples tir´s du calcul diff´rentiel e e > display( S. Puisque f est une fonction. alors que diff calcule la d´riv´e d’une expression. L’op´rateur D calcule la d´riv´e e e e d’une fonction. esin(1) cos(1) . f1 := x → cos(x) esin(x) Maintenant. > f1(x0).4] ).D. Pour e e en savoir plus. esin(1) cos(1) Bien entendu. consultez la rubrique ?operators. Pour vous assurer e de ceci.

.6. x ) }. x=0. et que la concavit´ de f est tourn´e vers le bas lorsque f 2 e e est n´gative. 2 1 0 –1 –2 2 4 6 8 10 x Le graphique de f poss`de un point d’inflexion l` o` la d´riv´e seconde e a u e e change de signe . x. > f2 := unapply( %. d´finissez la fonction f 2 comme la d´riv´e seconde e e e de f . la d´riv´e seconde existe.10 ). vous pouvez remarquer que f augmente lorsque f 1 e est positive. f2 := x → −sin(x) esin(x) + cos(x)2 esin(x) Lorsque vous tracez le graphique de f de mˆme que ses d´riv´es e e e premi`re et seconde. e e e > diff( f(x). ces changements de signe peuvent survenir aux valeurs de x telles que f 2(x) s’annule. −sin(x) esin(x) + cos(x)2 esin(x) Encore une fois. . f2(x)]. f1(x). x ). e > plot( [f(x). x ).1 Calcul diff´rentiel ´l´mentaire e ee • 213 Dans le cas pr´sent. > sol := { solve( f2(x)=0.

vous pouvez remarquer que f 2 e e e change en effet de signe en ces valeurs de x. −2 − 2 5) arctan(− − 2 2 2 Deux de ces solutions sont complexes. −arctan 2 −2 + 2 5  1 1√ 5− 2 2  √  + π. −arctan 2 −2 + 2 5   1 1√   5− 2 2 +π √    −2 + 2 5 {0. {0. } Dans cet exemple. − −2 − 2 5).      infl := arctan 2   > evalf( infl ).061275064 I.475353222. −1. arctan(− − 2 2 2 √ 1 1√ 1 5. −1.   1 1√ 5−  2 2  √  . seules les solutions r´elles sont d’int´rˆt. x=infl ) }.475353222} Du graphique trac´ pr´c´demment.6662394321. realcons ). L’ensemble des points d’inflexion devient donc > { seq( [x. > evalf( sol ).570796327 − 1. . −2 + 2 5 √ 1 1 1√ 5. > infl := select( type.570796327 + 1. Vous poue ee vez utiliser la commande select pour choisir les constantes r´elles dans e l’ensemble solution. f(x)]. 2.6662394325.214 • Chapitre 6: Exemples tir´s du calcul diff´rentiel e e  sol :=  arctan 2   1 1√ 5−  2 2  √  . sol. 2.061275064 I.

. Une approximation de Taylor Voyons maintenant comment utiliser Maple pour analyser le terme d’erreur d’une approximation par s´rie de Taylor. f := x → esin(x) > a := Pi. [0. x=a ). e > taylor( f(x). Voici la formule de Taylor.6662394325.855276958]. e √ −2 + 2 5   √  (1/2 5−1/2)2 √ 1+4 −2+2 5 √ 1/2 5−1/2     . {[2. 1.         2 1 1√  √ √ 5− −2+2 5 2 2  + π.475353222.6. 1.855276958]} Puisque la fonction f est p´riodique. e  √ −2 + 2 5 √ 1/2 5−1/2 √  (1/2 5−1/2)2 √ 1+4 −2+2 5      > evalf( % ). f(a) + D(f )(a) (x − a) + 1 1 (2) (D )(f )(a) (x − a)2 + (D(3) )(f )(a) 2 6 1 1 (x − a)3 + (D(4) )(f )(a) (x − a)4 + (D(5) )(f )(a) (x − a)5 + 24 120 O((x − a)6 ) Vous pouvez utiliser cette formule pour calculer une approximation polynomiale d’une fonction f pr`s de x = a.1 Calcul diff´rentiel ´l´mentaire e ee • 215       arctan 2         −arctan 2      2 1 1√  √ √ 5− −2+2 5  2 2 . Vous pouvez les obtenir tous en d´pla¸ant horizontalement les e c deux points d’inflexion ci-dessus par des multiples entiers de 2π. e > f := x -> exp( sin(x) ). elle poss`de une infinit´ de points e e e d’inflexion.

3] )..10.5 1 0. 1 − (x − π) + O((x − π)6 ) 1 1 1 (x − π)2 − (x − π)4 + (x − π)5 + 2 8 15 Avant de tracer le graphique de l’approximation de Taylor.5 2 1. poly].. 0.. o` ξ est un nombre compris entre x et a. 3 2.5 0 2 4 6 8 10 x L’expression (1/6!)f (6) (ξ)(x − a)6 nous donne l’erreur de l’approximation. −sin(x) esin(x) + 16 cos(x)2 esin(x) − 15 sin(x)2 esin(x) + 75 sin(x) cos(x)2 esin(x) − 20 cos(x)4 esin(x) − 15 sin(x)3 esin(x) + 45 sin(x)2 cos(x)2 esin(x) − 15 sin(x) cos(x)4 esin(x) + cos(x)6 esin(x) . x=a ). > plot( [f(x). e o > poly := convert( %.10. x$6 ). poly := 1 − x + π + 1 1 1 (x − π)2 − (x − π)4 + (x − π)5 2 8 15 Tracez maintenant le graphique de f avec celui de poly. vous devez convertir cette s´rie en un polynˆme.216 • Chapitre 6: Exemples tir´s du calcul diff´rentiel e e a := π > taylor( f(x). polynom ). x=0. view=[0. La d´riv´e sixi`me de f u e e e est > diff( f(x).

a)^6. e e e > f6 := unapply( %. f6 := x → −sin(x) esin(x) + 16 cos(x)2 esin(x) − 15 sin(x)2 esin(x) + 75 sin(x) cos(x)2 esin(x) − 20 cos(x)4 esin(x) − 15 sin(x)3 esin(x) + 45 sin(x)2 cos(x)2 esin(x) − 15 sin(x) cos(x)4 esin(x) + cos(x)6 esin(x) Vous pouvez maintenant calculer l’erreur de l’approximation.6. x ).1 Calcul diff´rentiel ´l´mentaire e ee • 217 L’usage de l’op´rateur s´quentiel $ dans la commande pr´c´dente vous e e e e permet de raccourcir l’appel de la fonction. > plot3d( abs( err ). 0. axes=boxed ). > err := 1/6! * f6(xi) * (x . > style=patch... x six fois pour calculer la d´riv´e d’ordre 6.4. err := 1 (−sin(ξ) esin(ξ) + 16 cos(ξ)2 esin(ξ) 720 − 15 sin(ξ)2 esin(ξ) + 75 sin(ξ) cos(ξ)2 esin(ξ) − 20 cos(ξ)4 esin(ξ) − 15 sin(ξ)3 esin(ξ) + 45 sin(ξ)2 cos(ξ)2 esin(ξ) − 15 sin(ξ) cos(ξ)4 esin(ξ) + cos(ξ)6 esin(ξ) )(x − π)6 Le graphique pr´c´dent indique que l’erreur (en valeur absolue) est e e faible pour x compris entre 2 et 4. x=2. Sans cet op´rateur.4.16 0 2 xi 4 4 x 2 . xi=2. vous dee vriez entrer . D´finissez la e e e fonction f 6 comme ´tant cette d´riv´e.

[2. [2. the name arrow has been redefined > display( curve( [ [2. xi] ).2]. > labels=[x. [4. 4 3. La commande curve du package plottools permet d’illustrer ces deux r´gions. err _x := 1 (−sin(ξ) esin(ξ) + 16 cos(ξ)2 esin(ξ) 120 − 15 sin(ξ)2 esin(ξ) + 75 sin(ξ) cos(ξ)2 esin(ξ) − 20 cos(ξ)4 esin(ξ) − 15 sin(ξ)3 esin(ξ) + 45 sin(ξ)2 cos(ξ)2 esin(ξ) − 15 sin(ξ) cos(ξ)4 esin(ξ) + cos(ξ)6 esin(ξ) )(x − π)5 > err_xi := diff(err.218 • Chapitre 6: Exemples tir´s du calcul diff´rentiel e e Pour d´terminer l’erreur exacte.5 4 Les d´riv´es partielles de err vous permettent de d´terminer les exe e e tr´mums de err ` l’int´rieur de ces deux r´gions.2] ] ).a]. x). Les d´riv´es partielles de err sont e e > err_x := diff(err. xi). e e e x = 4. [4. vous devez effectuer une analyse e compl`te de l’expression err dans les deux r´gions ferm´es par x = 2. Vous devez alors ´tudier e a e e e err aux bords du domaine. .4]. the name changecoords has been redefined Warning.5 3 x 3.5 xi 3 2. e > with(plots): with(plottools): Warning.a].5 2 2 2. ξ = a et ξ = x (soit pour x compris entre 2 et 4 et pour ξ compris entre a et x).

sol := {x = π. xi} ). xi ) }. e > eval( err. La plus grande valeur critique borne l’erreur maximale. ξ = ξ} L’erreur est ´galement nulle en ce point. e e > sol := solve( {err_x=0.6. sol ). . critical := {0} La d´riv´e partielle err_xi est nulle en un point critique situ´ sur e e e l’une des deux fronti`res x = 2 ou x = 4. > critical := { % }. err_xi=0}. {x.1 Calcul diff´rentiel ´l´mentaire e ee • 219 err _xi := 1 (−cos(ξ) esin(ξ) − 63 sin(ξ) cos(ξ) esin(ξ) 720 + 91 cos(ξ)3 esin(ξ) − 210 sin(ξ)2 cos(ξ) esin(ξ) + 245 sin(ξ) cos(ξ)3 esin(ξ) − 35 cos(ξ)5 esin(ξ) − 105 sin(ξ)3 cos(ξ) esin(ξ) + 105 sin(ξ)2 cos(ξ)3 esin(ξ) − 21 sin(ξ) cos(ξ)5 esin(ξ) + cos(ξ)7 esin(ξ) )(x − π)6 Les deux d´riv´es partielles sont nulles au point critique. e > sol := { solve( err_xi=0. 0 Vous devez maintenant regrouper un ensemble de valeurs critiques.

arctan( RootOf(%1.8 4 xi .570796327 + 0.2 0 –0. index = 1)2 − 1)).083849212 I} Il est recommand´ de v´rifier l’ensemble solution en tra¸ant le grae e c phique de la solution.3257026605. RootOf(_Z 2 + RootOf(%1. 2 RootOf(_Z 2 + RootOf(%1. 0. > plot( eval(err_xi. index = 3). index = 1). index = 5)2 − 1)).2 2. index = 5).570796327. arctan(RootOf(%1.2 2. index = 3)2 − 1))} %1 := −56 − 161 _Z + 129 _Z 2 + 308 _Z 3 + 137 _Z 4 + 21 _Z 5 + _Z 6 > evalf(sol).570796327 + 2.2 3. RootOf(_Z 2 + RootOf(%1.6 3. arctan( RootOf(%1. index = 2)2 − 1)).4 0. RootOf(_Z 2 + RootOf(%1. RootOf(_Z 2 + RootOf(%1.8 3 3. xi=2. RootOf(_Z 2 + RootOf(%1.570796327 + 1. index = 4)2 − 1)).8535664710 I. index = 6). index = 6)2 − 1)). −1..4 ). −1.6948635283. index = 4). 1.767486929 I.4 2. index = 2). arctan( RootOf(%1. {−1.220 • Chapitre 6: Exemples tir´s du calcul diff´rentiel e e 1 sol := { π.570796327 + 3.6 2.4 3. 0. arctan( RootOf(%1. −0. arctan( RootOf(%1. x=2). −1.6 0.473801030 I.

6. −0. {x=4.1 Calcul diff´rentiel ´l´mentaire e ee • 221 Deux solutions de err_xi=0 semblent exister entre 2 et 4 l` o` solve a u n’en a trouv´ aucune : π/2 est inf´rieur a 2. e > sol := fsolve( eval(err_xi. l’erreur est e > B := eval( err. 2.01542298119 (4 − π)6 } ` A la fronti`re ξ = a. 0. xi. alors ξ doit ˆtre situ´ entre a et 4. Si x = 2.01542298119 (4 − π)6 > critical := critical union {%}. xi=a ). 0. 0. ` > critical := critical union {%}.446729125 En ce point. −0.467295314 En ce point. l’erreur est > eval( err.07333000221 (2 − π)6 } Si x = 4. sol := 2.07333000221 (2 − π)6 . critical := {0. x=4). xi=sol} ). alors ξ doit ˆtre situ´ dans l’intervalle e e e e situ´ entre 2 et a. l’erreur est > eval( err. {x=2. Vous devez donc utiliser des e e ` m´thodes num´riques. a.. . critical := {0. xi. x=2). xi=sol}).4 ).07333000221 (2 − π)6 Ajoutez maintenant cette valeur a l’ensemble des valeurs critiques..a ). e e > sol := fsolve( eval(err_xi. sol := 3.

B := 1 (−sin(x) esin(x) + 16 cos(x)2 esin(x) − 15 sin(x)2 esin(x) 720 + 75 sin(x) cos(x)2 esin(x) − 20 cos(x)4 esin(x) − 15 sin(x)3 esin(x) + 45 sin(x)2 cos(x)2 esin(x) − 15 sin(x) cos(x)4 esin(x) + cos(x)6 esin(x) )(x − π)6 Encore une fois. e e > B1 := diff( B. ξ = x. x ). 0 > critical := critical union { % }. l’erreur est e e > B := eval( err. x ) }. 0.222 • Chapitre 6: Exemples tir´s du calcul diff´rentiel e e B := − 1 (x − π)6 240 La d´riv´e B1 de B est nulle en un point critique. −0. vous devez trouver le point o` la d´riv´e s’annule. x ). x=sol[1] ). . u e e > B1 := diff( B. B1 := − 1 (x − π)5 40 > sol := { solve( B1=0. sol := {π} En ce point critique. critical := {0.01542298119 (4 − π)6 } ` A la derni`re fronti`re. xi=x ).07333000221 (2 − π)6 . l’erreur est > eval( B.

0.6 2.3 ).1 et 2. x.4 0. vous devez a nouveau re` courir aux m´thodes num´riques. e e > fsolve( B1=0.2 3.2 2. Puisque solve ne peut trouver cette solution. 2.2 0 2.3.1 Calcul diff´rentiel ´l´mentaire e ee • 223 B1 := 1 (−cos(x) esin(x) − 63 sin(x) cos(x) esin(x) 720 + 91 cos(x)3 esin(x) − 210 sin(x)2 cos(x) esin(x) + 245 sin(x) cos(x)3 esin(x) − 35 cos(x)5 esin(x) − 105 sin(x)3 cos(x) esin(x) + 105 sin(x)2 cos(x)3 esin(x) − 21 sin(x) cos(x)5 esin(x) + cos(x)7 esin(x) )(x − π)6 + −sin(x) esin(x) + 16 cos(x)2 esin(x) − 15 sin(x)2 esin(x) + 75 sin(x) cos(x)2 esin(x) − 20 cos(x)4 esin(x) − 15 sin(x)3 esin(x) + 45 sin(x)2 cos(x)2 esin(x) − 15 sin(x) cos(x)4 esin(x) + cos(x)6 esin(x) )(x − π)5 > sol := { solve( B1=0...180293062 Ajoutez cette solution num´rique a l’ensemble des solutions symboe ` liques.6 0. x ) }.8 3 3.6.8 4 x Le graphique de B1 indique qu’une solution existe entre 2.1.6 3.8 0. 2.4 ). e c > plot( B1. x=2.4 2.4 3. 1 ( 120 sol := {π} Il est bon de v´rifier la solution en tra¸ant le graphique.2. .

01542298119 (4 − π)6 .04005698601 (2. ) }. ). 0. {xi=2. x=4} ). {xi=4. −0. 0. . x=4} > eval( err. critical := {0.224 • Chapitre 6: Exemples tir´s du calcul diff´rentiel e e > sol := sol union { % }.180293062. sol := {2. {0. vous devez ajouter l’erreur aux quatre coins de l’ensemble des valeurs critiques. {xi=2. ). e ` e > { seq( B.180293062 − π)6 . x=2} > eval( err. 0. x=2} > eval( err.04005698601 (2. > critical := critical union > { eval( err. x=sol ) }. π} L’ensemble suivant contient les erreurs extrˆmes a la fronti`re ξ = x. {xi=4. > critical := critical union %.180293062 − π)6 } Agrandissez maintenant l’ensemble des grandes erreurs.07333000221 (2 − π)6 } Enfin.

0. Tout d’abord.04005698601 (2. critical ).07333000221 (2 − π)6 . .180293062 − π)6 .6. 1 0. (−sin(4) esin(4) 720 + 16 cos(4)2 esin(4) − 15 sin(4)2 esin(4) + 75 sin(4) cos(4)2 esin(4) − 20 cos(4)4 esin(4) − 15 sin(4)3 esin(4) + 45 sin(4)2 cos(4)2 esin(4) − 15 sin(4) cos(4)4 esin(4) 1 + cos(4)6 esin(4) )(2 − π)6 .1 Calcul diff´rentiel ´l´mentaire e ee • 225 critical := {0. −0.01542298119 (4 − π)6 . appliquez la commande abs aux ee ´l´ments de critical. ee > map( abs. (−sin(2) esin(2) 720 + 16 cos(2)2 esin(2) − 15 sin(2)2 esin(2) + 75 sin(2) cos(2)2 esin(2) − 20 cos(2)4 esin(2) − 15 sin(2)3 esin(2) + 45 sin(2)2 cos(2)2 esin(2) − 15 sin(2) cos(2)4 esin(2) 1 + cos(2)6 esin(2) )(4 − π)6 . (−sin(2) esin(2) 720 + 16 cos(2)2 esin(2) − 15 sin(2)2 esin(2) + 75 sin(2) cos(2)2 esin(2) − 20 cos(2)4 esin(2) − 15 sin(2)3 esin(2) + 45 sin(2)2 cos(2)2 esin(2) − 15 sin(2) cos(2)4 esin(2) 1 + cos(2)6 esin(2) )(2 − π)6 . (−sin(4) esin(4) 720 + 16 cos(4)2 esin(4) − 15 sin(4)2 esin(4) + 75 sin(4) cos(4)2 esin(4) − 20 cos(4)4 esin(4) − 15 sin(4)3 esin(4) + 45 sin(4)2 cos(4)2 esin(4) − 15 sin(4) cos(4)4 esin(4) + cos(4)6 esin(4) )(4 − π)6 } Vous devez maintenant d´terminer le maximum en valeur absolue des e ´l´ments de critical.

La commande max requiert une ee suite de nombres . 1 ( 720 max _error := 0.1623112756 . − (−sin(4) esin(4) 720 + 16 cos(4)2 esin(4) − 15 sin(4)2 esin(4) + 75 sin(4) cos(4)2 esin(4) − 20 cos(4)4 esin(4) − 15 sin(4)3 esin(4) + 45 sin(4)2 cos(4)2 esin(4) − 15 sin(4) cos(4)4 esin(4) + cos(4)6 esin(4) )(4 − π)6 } Trouvez ensuite l’´l´ment maximal. 0.04005698601 (2. − −sin(2) esin(2) + 16 cos(2)2 esin(2) − 15 sin(2)2 esin(2) + 75 sin(2) cos(2)2 esin(2) − 20 cos(2)4 esin(2) − 15 sin(2)3 esin(2) + 45 sin(2)2 cos(2)2 esin(2) − 15 sin(2) cos(2)4 esin(2) 1 + cos(2)6 esin(2) )(2 − π)6 . 0. − (−sin(4) esin(4) 720 + 16 cos(4)2 esin(4) − 15 sin(4)2 esin(4) + 75 sin(4) cos(4)2 esin(4) − 20 cos(4)4 esin(4) − 15 sin(4)3 esin(4) + 45 sin(4)2 cos(4)2 esin(4) − 15 sin(4) cos(4)4 esin(4) 1 + cos(4)6 esin(4) )(2 − π)6 . vous devez donc utiliser la commande op pour transformer l’ensemble des valeurs en une suite.180293062 − π)6 .07333000221 (2 − π)6 Ce nombre est approximativement > evalf( max_error ). 0. 0.226 • Chapitre 6: Exemples tir´s du calcul diff´rentiel e e {0.01542298119 (4 − π)6 .07333000221 (2 − π)6 . > max_error := max( op(%) ). − (−sin(2) esin(2) 720 + 16 cos(2)2 esin(2) − 15 sin(2)2 esin(2) + 75 sin(2) cos(2)2 esin(2) − 20 cos(2)4 esin(2) − 15 sin(2)3 esin(2) + 45 sin(2)2 cos(2)2 esin(2) − 15 sin(2) cos(2)4 esin(2) 1 + cos(2)6 esin(2) )(4 − π)6 .

f(x)-max_error ]. la commande ApproximateInt que l’on trouve dans le package Student[Calculus1] avec pour param`tres method = left. > plot( [ f(x).1 Calcul diff´rentiel ´l´mentaire e ee • 227 Vous pouvez maintenant tracer f . x=0.4.5 2 2.6 3. La hauteur de chaque boˆ est la valeur de f ´valu´e sur le coin gauche ıte e e de chacune d’entre elles. 2. brown. . La d´finition e de l’int´grale de Riemann repose sur cette interpr´tation graphique de e e l’int´grale. > output=plot). blue.6. son approximation de Taylor et une paire de courbes indiquant la bande d’erreur.5 2 1. > x=2.. e partition = 6 et output = plot dessine le graphique de f avec 6 boˆ ıtes. brown ] ). partition=6.8 3 3.5 1 0.4 3. method=left. L’int´grale e L’int´grale d’une fonction peut ˆtre consid´r´e comme une mesure de l’aire e e ee comprise entre l’axe des x et la courbe de cette fonction.4 2. poly. > color=[ red..6 2.8 4 x Ce graphique montre que l’erreur r´elle demeure bien en-d´¸a de l’ese ec` timation de l’erreur. f(x)+max_error. > with(Student[Calculus1]): > ApproximateInt( f(x).10. f := x → 1 + sin(x) 2 Par exemple.2 3.2 2. e > f := x -> 1/2 + sin(x).

877830054.228 • Chapitre 6: Exemples tir´s du calcul diff´rentiel e e AnApproximationoftheIntegralof f(x)=1/2+sin(x) ontheInterval[0. . 6.870316620. x=0.10. > seq( evalf(ApproximateInt( f(x). > output=sum). Augmentez le nombre de boˆ jusqu’` 12 et calculez la valeur e ıtes a de ApproximateInt pour chacune de ces boˆ ıtes. > ApproximateInt( f(x). 6.845601763 f(x) Changez output = plot pour output = sum pour calculer l’aire des boˆ ıtes.10. 6. 6. 6..10] UsingaLeft-endpointRiemannSum ApproximateValue:6.948089404.852550665 Utilisez l’option output = animation pour cr´er une animation de la e somme de Riemann.14). 5 3 5 i=0 1 5 ( + sin( i)) 2 3 Ce nombre est approximativement > evalf( % ). 6. n=3.923289158. 6.5 1 0.857222010.5 4 x 6 8 10 –1 Area:6. 6. partition=6.902789479. method=left.948819107.864739771.839071529 1. 6. > partition=n^2)). method=left. 6.854630209.5 2 –0..888196447..860504866. 6. 6.845601766 L’approximation de l’aire s’am´liore a mesure que plus de boˆ sont e ` ıtes utilis´es. x=0. 6.

283185308 –1 Area:6.4*Pi] UsingaLeft-endpointRiemannSum ApproximateValue:6.4*Pi] UsingaLeft-endpointRiemannSum ApproximateValue:6. 1 + sin(x) dx 2 .5 AnApproximationoftheIntegralof f(x)=1/2+sin(x) ontheInterval[0.5 1.5 1.5 0 2 4 6 x 8 10 12 0 2 4 6 x 8 10 12 0 2 4 6 x 8 10 12 0 2 4 6 x 8 10 12 –0.5 –1 Area:6.4*Pi] UsingaLeft-endpointRiemannSum ApproximateValue:6.283185307 1 1 1 0. e e > Int( f(x).4*Pi] UsingaLeft-endpointRiemannSum ApproximateValue:6.283185307 1.283185307 1.5 0.283185309 –1 Area:6. AnApproximationoftheIntegralof f(x)=1/2+sin(x) ontheInterval[0.4*Pi] UsingaLeft-endpointRiemannSum ApproximateValue:6. 10 0 1 + sin(x) dx 2 La valeur de l’int´grale est e > value( % ). a mesure que le nombre de boˆ augmente.5 AnApproximationoftheIntegralof f(x)=1/2+sin(x) ontheInterval[0.5 –0.283185308 –1 Area:6.283185309 f(x) f(x) f(x) Dans la limite.283185311 f(x) f(x) f(x) f(x) AnApproximationoftheIntegralof f(x)=1/2+sin(x) ontheInterval[0.5 AnApproximationoftheIntegralof f(x)=1/2+sin(x) ontheInterval[0.5 0.839071529 L’int´grale ind´finie de f est e e > Int( f(x).5 –0.1 Calcul diff´rentiel ´l´mentaire e ee • 229 > ApproximateInt( f(x).5 0.10 ).5 –0.5 –0. 6.5 –0.283185307 1.5 AnApproximationoftheIntegralof f(x)=1/2+sin(x) ontheInterval[0.283185307 1. x=0.5 AnApproximationoftheIntegralof f(x)=1/2+sin(x) ontheInterval[0.283185308 –1 Area:6.283185307 1 1 1 1 0. cette valeur est approximativement e > evalf( % ). x=0.283185309 –1 Area:6. iterations=7). > output=animation.283185307 1. method=left. 6 − cos(10) en nombres d´cimaux. le r´sultat ` ıtes e se rapproche de l’int´grale d´finie..5 0.6.4*Pi] UsingaLeft-endpointRiemannSum ApproximateValue:6.4*Pi] UsingaLeft-endpointRiemannSum ApproximateValue:6.5 0. x ).5 0 2 4 6 x 8 10 12 0 2 4 6 x 8 10 12 0 2 4 6 x 8 10 12 –0. partition=6.5 –1 Area:6..4*Pi.

F(0).10.5 1 0. x=0. AnApproximationoftheIntegralof f(x)=1/2+sin(x) ontheInterval[0. color=blue. x ). > with(plots): > display( [ plot( F(x).10.839071529 1.. F := x → 1 x − cos(x) 2 Choisissez la constante d’int´gration de telle sorte que F (0) = 0.5 2 4 x 6 8 10 –1 Area:6.230 • Chapitre 6: Exemples tir´s du calcul diff´rentiel e e > value( % ). F := x → 1 x − cos(x) + 1 2 Lorsque vous tracez le graphique de F et les boˆ ıtes ensemble. 1 x − cos(x) 2 D´finissez la fonction F comme ´tant l’inverse de la d´riv´e.5 0 –0. 1 x − cos(x) + 1 2 > F := unapply( %.. > method=left. x=0. legend="F(x)" ).954499888 F(x) f(x) . partition=14. e > F(x) . e e e e > F := unapply( %. output=plot) ] ). vous pouvez remarquer que F augmente davantage lorsque sa boˆ corresponıte dante est plus grande. > ApproximateInt( f(x).10] UsingaLeft-endpointRiemannSum ApproximateValue:6. x ).

y) = (r cos(θ).0). r*sin(theta) ). f := (x.1 Calcul diff´rentiel ´l´mentaire e ee • 231 En sp´cifiant method = right ou method = midpoint lorsque vous e utilisez la commande ApproximateInt. r2 cos(θ) sin(θ) (r2 cos(θ)2 − r2 sin(θ)2 ) r2 cos(θ)2 + r2 sin(θ)2 La valeur de f tend vers z´ro lorsque r tend vers z´ro. r2 cos(θ) sin(θ) (r2 cos(θ)2 − r2 sin(θ)2 ) r→0 r2 cos(θ)2 + r2 sin(θ)2 lim > value( % ). .y) -> x * y * (x^2-y^2) / (x^2+y^2). ıtes e e D´riv´es partielles mixtes e e Cette section d´crit l’op´rateur diff´rentiel D et donne un exemple d’une e e e fonction dont les d´riv´es partielles mixtes sont diff´rentes. e > f := (x. y) → x y (x2 − y 2 ) x2 + y 2 La fonction f n’est pas d´finie a l’origine.0. Error. r=0 ). vous pouvez prolonger f par continuit´ ` l’origine en la e a d´finissant ´gale a z´ro en ce point.6. 0 Ainsi. e e e Consid´rez la fonction suivante. e ` > f(0. e e ` e > f(0. r sin(θ)).. la valeur de la fonction est > f( r*cos(theta). (in f) numeric exception: division by zero En (x. e e > Limit( %.) := 0. vous pouvez dessiner et additionner des boˆ ´valu´es en leur coin droit ou en leur point milieu.

> plot3d( f. r*sin(theta) ).. y) → y (x2 − y 2 ) x2 y x2 y (x2 − y 2 ) +2 2 −2 x2 + y 2 x + y2 (x2 + y 2 )2 Cette formule n’est cependant pas valide a l’origine.0) )/h. > fx(0. -3.) := 0 L’affectation pr´c´dente ajoute une entr´e dans la table de rappels e e e (en anglais remember table) de Maple. 0) := 0 En (x. La d´riv´e partielle de f par rapport a son premier param`tre.0) . r sin(θ)). 0. x. ` > fx(0. Voici le graphique de f . -3.f(0.3 ). y) = (r cos(θ).0). la valeur de fx est > fx( r*cos(theta).3.232 • Chapitre 6: Exemples tir´s du calcul diff´rentiel e e f(0. . h=0 ). fx(0.0) := limit( ( f(h. (in fx) division by zero Vous devez donc utiliser la d´finition de la d´riv´e exprim´e sous forme e e e e d’une limite.. fx := (x.. est e e ` e > fx := D[1](f). Error.

` e > fy := D[2](f). 0).2](f). r=0 ).0) := limit( ( f(0. 0) tend vers z´ro. fy(0.6. 3 1 r sin(3 θ) − r sin(5 θ) 4 4 Lorsque la distance r entre (x.0) )/k. 0 Ainsi. e e > fxy := D[1. |fx (x.k) . 0)| tend ´galement vers z´ro. y) − e e e fx (0. r→0 lim 1 3 r sin(3 θ) − r sin(5 θ) 4 4 > value( % ). les mˆmes arguments s’appliquent a la d´riv´e de f e e ` e e par rapport a son second param`tre. fx est continue en (0.1 Calcul diff´rentiel ´l´mentaire e ee • 233 r sin(θ) (r2 cos(θ)2 − r2 sin(θ)2 ) r3 cos(θ)2 sin(θ) +2 2 r2 cos(θ)2 + r2 sin(θ)2 r cos(θ)2 + r2 sin(θ)2 −2 r3 cos(θ)2 sin(θ) (r2 cos(θ)2 − r2 sin(θ)2 ) (r2 cos(θ)2 + r2 sin(θ)2 )2 > combine( % ). y) et (0. . fy := (x. y) → x (x2 − y 2 ) x y2 x y 2 (x2 − y 2 ) −2 2 −2 x2 + y 2 x + y2 (x2 + y 2 )2 > fy(0. 0) := 0 Voici la d´riv´e seconde mixte de f . Sym´triquement. > Limit( abs( % . k=0 ). y.0) ).f(0.fx(0.

fyx := (x. vous devez utiliser la d´finition de la d´riv´e sous forme e e e de limite.234 • Chapitre 6: Exemples tir´s du calcul diff´rentiel e e fxy := (x. 0) .k) . h=0 ). 0) := 1 .0) )/k. 0) := −1 L’autre d´riv´e seconde mixte est e e > fyx := D[2. > Limit( ( fy(h.0). fxy(0. k→0 lim − 1 > fxy(0. fyx(0. ` > fxy(0.0) )/h.fy(0.1](f). k=0 ).0) := value( % ). (in fxy) numeric exception: division by zero La d´finition de la d´riv´e sous forme de limite est e e e > Limit( ( fx(0. y) → −2 x2 − y 2 x2 x2 (x2 − y 2 ) +2 2 −2 x2 + y 2 x + y2 (x2 + y 2 )2 y2 y 2 (x2 − y 2 ) x2 y 2 (x2 − y 2 ) −2 +8 x2 + y 2 (x2 + y 2 )2 (x2 + y 2 )3 ` A l’origine. cette formule n’est pas valide a l’origine.fx(0. h→0 lim 1 > fyx(0. y) → −2 x2 − y 2 x2 x2 (x2 − y 2 ) +2 2 −2 x2 + y 2 x + y2 (x2 + y 2 )2 y2 y 2 (x2 − y 2 ) x2 y 2 (x2 − y 2 ) −2 +8 x2 + y 2 (x2 + y 2 )2 (x2 + y 2 )3 Encore une fois.0) := value( % ). Error.

En tra¸ant le graphique de fxy..3 ). -3. La rubrique ?Student[Calculus1] est une bonne e ee source de r´f´rence. −1 = 1 > evalb( % ).2 Equations diff´rentielles ordinaires e • 235 Remarquez que les deux d´riv´es partielles mixtes sont diff´rentes a e e e ` l’origine.´ 6. de e manipuler et de tracer le graphique d’´quations diff´rentielles ordinaires e e et de syst`mes d’´quations diff´rentielles. > plot3d( fxy. -3. > fxy(0..2 ´ Equations diff´rentielles ordinaires e Maple dispose de toute une gamme d’outils permettant de r´soudre.3.0). true Les d´riv´es partielles mixtes sont ´gales seulement si elles sont contie e e nues. e e e . on peut remarquer que cette foncc tion n’est pas continue en (0. ee 6.0) <> fyx(0. 0). Maple peut vous aider a r´soudre plusieurs autres probl`mes de calcul ` e e diff´rentiel ´l´mentaire.

v(t) = −t2 + 6 Si vous omettez une ou plusieurs des conditions initiales. dsolve(eqns. dsolve retourne des constantes arbitraires de la forme _Cnumber .x$2) . et vars repr´sente l’ensemble de variables pour lesquelles on soue haite r´soudre. {y(x)} ). d v(t)) + 2 t = 0 dt ini := v(1) = 5 Utilisez dsolve pour obtenir la solution. {y(x) = ex _C2 + e(−x) _C1 − 1} . eq := ( d2 y(x)) − y(x) = 1 dx2 > dsolve( {eq}. vars ) Ici. > dsolve( {eq. La syntaxe de base e de dsolve est la suivante.236 • Chapitre 6: Exemples tir´s du calcul diff´rentiel e e La commande dsolve La commande la plus utilis´e pour ´tudier le comportement des ´quations e e e diff´rentielles ordinaires (EDO) dans Maple est dsolve. e e > eq := diff(v(t). e Voici une ´quation diff´rentielle et une condition initiale.t)+2*t = 0. _Cnumber . {v(t)} ). eqns repr´sente un ensemble d’´quations diff´rentielles et de valeurs e e e initiales. eq := ( > ini := v(1) = 5. Vous pouvez utie liser cet outil polyvalent pour obtenir a la fois des solutions exactes et des ` solutions num´riques pour un grand nombre d’EDO. > eq := diff(y(x). ini}.y(x) = 1.

dsolve peut retourner une solution sous forme param´trique.x$2) = (ln(y(x))+1)*diff(y(x). e [x=f(_T). D(fcn )(var_valeur ) = valeur (D@@n )(fcn )(var_valeur ) = valeur La notation D correspond a la d´riv´e. ini := y(0) = 0. {y(t)} ). La notation D@@n repr´sente la ` e e e d´riv´e d’ordre n. e e e > de1 := diff(y(t). y(x)=g(_T)]. y(t) = e(−2 t) − e(−3 t) De plus. de2 := d2 d y(x) = (ln(y(x)) + 1) ( y(x)) 2 dx dx > dsolve( {de2}. D(y)(0)=1. Voici une ´quation diff´rentielle et des conditions inie e e e tiales requ´rant la d´riv´e. de1 := ( d2 d y(t)) + 5 ( y(t)) + 6 y(t) = 0 2 dt dt > ini := y(0)=0. e e e utilisez la notation suivante. . ini}.t$2) + 5*diff(y(t). utilisez dsolve pour trouver la solution. o` _T est un param`tre. {y(x)} ).t) + 6*y(t) = 0. e > de2 := diff(y(x). D(y)(0) = 1 Encore une fois.´ 6. > dsolve( {de1.2 Equations diff´rentielles ordinaires e • 237 Pour sp´cifier des conditions initiales pour la d´riv´e d’une fonction.x). u e L’option explicit Maple peut retourner la solution d’une ´quation e diff´rentielle sous forme implicite.

e L’option method=laplace Il est souvent possible de r´duire la come plexit´ d’un probl`me en utilisant les transform´es de Laplace. explicit ). La difficult´ de cette m´thode ` e e e r´side dans la transformation des ´quations au nouveau domaine et pare e ticuli`rement la transformation des solutions sous leur ancienne forme. Il existe ´galement une option implicit pour forcer Maple a donner e ` ses r´sultats sous forme implicite. beaucoup plus simple a r´soudre. e Consid´rons le probl`me de dynamique classique suivant. {y(x)}. {y(x) = _C1 }. 1 d_a − x − _C2 = 0 _a ln(_a) + _C1 Utilisez l’option explicit pour indiquer a Maple de chercher une ` solution explicite du premier r´sultat. incluant la force e ext´rieure u(t). a supposer que Maple puisse trouver les transform´es. e . de mˆme que certains cas d’EDO lin´aires a coefficients e e ` non constants. Deux poids e e de masses m et αm reposent sur un plan sans frottement et sont reli´s par e un ressort dont la constante de rappel est k. Quelles sont les trajectoires de chaque poids si le premier est sujet a une force ponctuelle unitaire u(t) ` en t = 1 ? D´finissons tout d’abord les ´quations diff´rentielles qui s’appliquent e e e au probl`me. La deuxi`me loi de Newton gouverne le mouvement du pree e mier poids : la masse m multipli´e par l’acc´l´ration doit ˆtre ´gale a e ee e e ` la somme des forces appliqu´es sur le premier poids. Maple peut ne pas ˆtre en mesure de e trouver une solution explicite. dans certains cas. y(x) = RootOf − _Z 1 d_f + x + _C2 _f ln(_f ) + _C1 Cependant. e > dsolve( {de2}. Les transe e e form´es font correspondre a une ´quation diff´rentielle une ´quation alg´e ` e e e e brique.238 • Chapitre 6: Exemples tir´s du calcul diff´rentiel e e y(x) {y(x) = _C1 }. ` e Cette m´thode fonctionne ´galement avec les syst`mes d’´quations coue e e e pl´es. e La m´thode des transform´es de Laplace peut g´rer des EDO lin´aires e e e e d’ordre arbitraire.

D(x[2])(0) = 0 . {x[1](t). > u := t -> Heaviside(t-1). > dsolve( {eqn1. eqn2 := m ( d2 x2 (t)) = k (x1 (t) − x2 (t)) dt2 Appliquez une force ponctuelle unitaire au premier poids en t = 1. x2 (0) = 0. ini}.t$2) = k*(x[2](t) .´ 6.t$2) = k*(x[1](t) . x[2](t)}.2 Equations diff´rentielles ordinaires e • 239 > eqn1 := > alpha*m*diff(x[1](t). u := t → Heaviside(t − 1) Au temps t = 0. eqn1 := α m ( d2 x1 (t)) = k (x2 (t) − x1 (t)) + u(t) dt2 Il en va de mˆme pour le second poids. ini := x1 (0) = 2. D(x1 )(0) = 0. > x[2](0) = 0. eqn2. e > eqn2 := m*diff(x[2](t). > method=laplace ).x[2](t)). D(x[1])(0) = 0. D(x2 )(0) = 0 R´solvez le probl`me en utilisant la m´thode de la transform´e de e e e e Laplace.x[1](t)) + u(t). les deux masses sont au repos a leurs emplacements ` respectifs. . > ini := x[1](0) = 2.

{alpha=1/10. k=1} ). m=1. . x1 (t) = −2 1+α √ %1 (t − 1) Heaviside(t − 1) cosh( ) αm − k (1 + α)2 √ %1 t √ √ α cosh( ) %1 %1 α m + e(− α m t ) + e( α m t ) + ( −2 1+α 1 k Heaviside(t − 1) (1 + α) t2 2 − k Heaviside(t − 1) (1 + α) t + 2 α2 m k 1 + Heaviside(t − 1) m + Heaviside(t − 1) α k 2 + 2αmk + 1 Heaviside(t − 1) k) ((1 + α)2 k m) 2 %1 := −α m k (1 + α) ´ Evaluez le r´sultat en fixant des valeurs pour les constantes. e > ans := eval( %.240 • Chapitre 6: Exemples tir´s du calcul diff´rentiel e e 1 x2 (t) = (t2 k α + α k − 2 t k α − 2 α m 2 √ %1 (t − 1) + 2 α cosh( ) m + t2 k + k − 2 t k) αm Heaviside(t − 1) ((1 + 2 α + α2 ) k m) √ %1 t )) α (−1 + cosh( αm .

2 Equations diff´rentielles ordinaires e • 241 ans := {x2 (t) = ( √ 11 2 9 11 1 1 √ −11 100 (t − 1))) t + − t + cosh( 10 10 5 5 10 √ 2 2 1 √ Heaviside(t − 1) + −11 100 t). > eval( x[1](t). 50 121 √ 1 √ 100 −11 100 (t − 1)) Heaviside(t − 1) cosh( 121 10 √ √ √ 2 1 √ − −11 100 t) + e(−1/10 −11 100 t) cosh( 11 10 √ √ 5 + e(1/10 −11 100 t) + Heaviside(t − 1) t2 11 10 2 155 − Heaviside(t − 1) t + + Heaviside(t − 1) 11 11 121 Transformez ensuite l’expression en fonction au moyen d’unapply. t ). e e e e y1 (t) et y2 (t). Tout d’abord. x1 (t) − cosh( 11 11 10 √ 100 1 √ =− −11 100 (t − 1)) Heaviside(t − 1) cosh( 121 10 √ √ √ 2 1 √ − −11 100 t) + e(−1/10 −11 100 t) cosh( 11 10 √ √ 5 + e(1/10 −11 100 t) + Heaviside(t − 1) t2 11 10 2 155 − Heaviside(t − 1) t + + Heaviside(t − 1)} 11 11 121 Vous pouvez transformer la solution pr´c´dente en deux fonctions. de la mani`re suivante. − > y[1] := unapply( %. ans ).´ 6. ´valuez l’expression x[1](t) en sa solution pour extraire l’expression x1 (t). y1 := t → √ 100 1 √ − −11 100 (t − 1)) Heaviside(t − 1) cosh( 121 10 √ √ √ 2 1 √ − −11 100 t) + e(−1/10 −11 100 t) cosh( 11 10 √ √ 5 + e(1/10 −11 100 t) + Heaviside(t − 1) t2 11 10 2 155 − Heaviside(t − 1) t + + Heaviside(t − 1) 11 11 121 .

laplace. fouriersin. α m (s (s laplace(x1 (t). hankel .. s) − x1 (0)) − D(x1 )(0)) = k (laplace(x2 (t). invhilbert . s)) + e(−s) s . Le package inttrans d´finit e ` e la transform´e de Laplace et son inverse (de mˆme que plusieurs autres e e transform´es int´grales). hilbert . vous pouvez o utiliser la transform´e de Laplace a la main. s ). 14 12 10 8 6 4 2 –2 2 t 4 6 Plutˆt que d’appliquer dsolve(.6 ). ans ). savetable] Les transform´es de Laplace des ´quations diff´rentielles eqn1 et eqn2 e e e sont : > laplace( eqn1. t=-3. [addtable. 50 121 √ 11 2 9 11 1 1 √ ( t + −11 100 (t − 1))) − t + cosh( 10 10 5 5 10 √ 2 2 1 √ Heaviside(t − 1) + −11 100 t) − cosh( 11 11 10 Tracez maintenant les deux fonctions. fouriercos .. invmellin. t. invfourier .242 • Chapitre 6: Exemples tir´s du calcul diff´rentiel e e Vous pouvez ´galement effectuer les deux ´tapes en mˆme temps. e e > with(inttrans). y[2](t) ]. t. invlaplace. t ). t. s) − laplace(x1 (t). t. mellin. e e e > y[2] := unapply( eval( x[2](t). fourier . method=laplace)... y2 := t → > plot( [ y[1](t).

s)) + > sol := solve( %. sol := {laplace(x2 (t). s) = k (2 α m s2 es + 1) .t. t. {ini} ).s). %%}. > invlaplace( %. es s3 m (k + α m s2 + α k) (m s2 + k) (2 α m s2 es + 1) } es s3 m (k + α m s2 + α k) Maple a r´solu le probl`me alg´brique . α m s (s laplace(x1 (t). s) = k (laplace(x1 (t). s) − laplace(x2 (t). t. s)). > laplace(x[2](t). s)) ´ Evaluez l’ensemble form´ des deux transform´es en leurs conditions e e initiales. { laplace(x[1](t). t. {m s2 laplace(x2 (t). > eval( {%. t. . s ). s) − 2) = e(−s) } s Vous devez maintenant r´soudre cet ensemble d’´quations alg´briques e e e pour les transform´es de Laplace des deux fonctions x1 (t) et x2 (t).2 Equations diff´rentielles ordinaires e • 243 et > laplace( eqn2.t. t. vous devez maintenant prendre e e e la transform´e inverse de Laplace pour en extraire les fonctions x1 (t) et e x2 (t) . t. s) = laplace(x1 (t). m (s (s laplace(x2 (t). t.´ 6. t ). s. s) − x2 (0)) − D(x2 )(0)) = k (laplace(x1 (t). t. t. t. s) − laplace(x1 (t). t. s) − laplace(x2 (t). e k (laplace(x2 (t). t.s) } ).

> eval( %. m=1. {alpha=1/10. . x1 (t) = −2 k (1 + α) √ %1 (t − 1) Heaviside(t − 1) cosh( ) αm − k (1 + α)2 √ %1 t √ √ α cosh( ) %1 %1 α m + e(− α m t ) + e( α m t ) + ( −2 1+α 1 k Heaviside(t − 1) (1 + α) t2 2 − k Heaviside(t − 1) (1 + α) t + 2 α2 m k 1 + Heaviside(t − 1) m + Heaviside(t − 1) α k 2 + 2αmk + 1 Heaviside(t − 1) k) ((1 + α)2 k m) 2 %1 := −α m k (1 + α) ´ Evaluez-les en fixant des valeurs pour les constantes.244 • Chapitre 6: Exemples tir´s du calcul diff´rentiel e e 1 2 (t k α + α k − 2 t k α − 2 α m 2 √ %1 (t − 1) + 2 α cosh( ) m + t2 k + k − 2 t k) αm x2 (t) = k Heaviside(t − 1) ((1 + α)2 k 2 ) √ %1 t )) α m (−1 + cosh( αm /m. k=1} ).

Maple trouve d’abord une ape e proximation des ´quations sous forme de s´rie.x) + y(x) = 0.x) + diff(y(x). La m´thode des s´ries est ee ` e e e souvent d’un grand secours avec les EDO non lin´aires ou de grand ordre. u Consid´rez l’´quation diff´rentielle suivante. e e e {x2 (t) = L’option type=series La m´thode des s´ries pour r´soudre des ´quae e e e tions diff´rentielles consiste a trouver une fonction symbolique approxim´e e ` e des ´quations de la mani`re suivante. il assume qu’il existe e e une solution de la forme ∞ xc i=0 ai xi o` c est un nombre rationnel. e e e > eq := 2*x*diff(y(x).2 Equations diff´rentielles ordinaires e • 245 50 121 √ 11 9 11 1 1 √ −11 100 (t − 1))) ( t2 + − t + cosh( 10 10 5 5 10 √ 2 2 1 √ Heaviside(t − 1) + −11 100 t). eq := 2 x ( d2 d y(x)) + ( y(x)) + y(x) = 0 2 dx dx Demandez a Maple de r´soudre l’´quation.x. ` e e . e e Cette technique s’av`re utile lorsque les algorithmes standard de Maple e ne suffisent pas a la tˆche et qu’une solution symbolique est tout de mˆme ` a e pr´f´rable a une solution purement num´rique. on obtient la mˆme solution que par e la m´thode pr´c´dente.´ 6. Il r´sout ensuite cette e e e approximation de mani`re symbolique au moyen de m´thodes exactes. e Lorsque Maple applique la m´thode des s´ries. x1 (t) − cosh( 11 11 10 √ 100 1 √ =− −11 100 (t − 1)) Heaviside(t − 1) cosh( 121 10 √ √ √ 2 1 √ − −11 100 t) + e(−1/10 −11 100 t) cosh( 11 10 √ √ 5 + e(1/10 −11 100 t) + Heaviside(t − 1) t2 11 10 2 155 − Heaviside(t − 1) t + + Heaviside(t − 1)} 11 11 121 Comme on devait s’y attendre.

convertissez-la ensuite en polynˆme. y(x) = _C1 √ x(1 − 1 1 3 1 1 2 x+ x − x + x4 − 3 30 630 22680 1 x5 + O(x6 )) + _C2 1247400 1 1 3 1 1 (1 − x + x2 − x + x4 − x5 + O(x6 )) 6 90 2520 113400 Utilisez rhs pour extraire la solution . o > rhs(%). _C1 = 2. _C2=1. e > [ seq( _C1=i.246 • Chapitre 6: Exemples tir´s du calcul diff´rentiel e e > dsolve( {eq}. [_C1 = 0. _C1 = 5] > map(subs. . {y(x)}. type=series ). polynom). poly). _C1 = 3.5 ) ]. √ √ poly := _C1 x 1 1 3 1 1 1 2 (1 − x + x − x + x4 − x5 ) 3 30 630 22680 1247400 1 1 3 1 1 + _C2 (1 − x + x2 − x + x4 − x5 ) 6 90 2520 113400 Vous pouvez maintenant tracer le graphique de la solution pour diff´rentes valeurs des constantes arbitraires _C1 et _C2. _C1 = 4. 1 1 3 1 1 1 2 x+ x − x + x4 − 3 30 630 22680 1247400 x5 + O(x6 )) + _C2 1 1 3 1 1 (1 − x + x2 − x + x4 − x5 + O(x6 )) 6 90 2520 113400 _C1 x(1 − > poly := convert(%. i=0. _C1 = 1.. %.

10 ).. Pour ces raisons. elles pr´sentent cepene e dant certaines limitations. des solveurs num´riques alternatifs e e ont ´t´ con¸us. 6 90 2520 113400 1 1 3 1 1 5 %1 + 1 − x + x2 − x + x4 − x5 ] 6 90 2520 113400 %1 := √ 1 1 3 1 1 1 2 x (1 − x + x − x + x4 − x5 ) 3 30 630 22680 1247400 [1 − x + > plot( %. 3 2 1 0 –1 –2 –3 –4 2 4 x 6 8 10 L’option type=numeric Bien que les m´thodes des s´ries pour la r´e e e solution des EDO soient bien comprises et ad´quates pour trouver des e approximations justes de la variable d´pendante. 6 90 2520 113400 1 1 3 1 1 %1 + 1 − x + x2 − x + x4 − x5 . Pour produire un r´sultat. 6 90 2520 113400 1 1 3 1 1 3 %1 + 1 − x + x2 − x + x4 − x5 . eq := x(t) ( d x(t)) = t2 dt .2 Equations diff´rentielles ordinaires e • 247 1 2 1 3 1 1 x − x + x4 − x5 . 6 90 2520 113400 1 1 3 1 1 2 %1 + 1 − x + x2 − x + x4 − x5 . de plus. Maple doit calculer plusieurs d´riv´es dans le proe e cessus de recherche de la solution. 6 90 2520 113400 1 1 3 1 1 4 %1 + 1 − x + x2 − x + x4 − x5 . x=1. ee c Voici une ´quation diff´rentielle et une condition initiale.´ 6. la s´rie r´sultante e e e doit converger . e e > eq := x(t) * diff(x(t). ce qui peut s’av´rer coˆteux en temps e u comme en m´moire. t) = t^2.

x(t) = 2. x(t)]. e > with(plots): > odeplot( sol. . -1. e > eval( x(t).82574790049820024] Utilisez la commande eval pour choisir une valeur particuli`re de la e liste des ´quations. sol := proc(rkf45 _x ) . type=numeric ). {x(t)}.82574790049820024] Le package plots contient une commande. Vous pouvez ´galement cr´er une paire ordonn´e. e > sol := dsolve( {eq. [t = 1... sol(0) ). permettant de tracer le r´sultat de dsolve( . x(t) = 1. type=numeric). [t = 0. ` > sol(1). [t. odeplot. 2. . . e e e > eval( [t. end proc La solution satisfait a la condition initiale.] > sol(0). x(t)]. ini}. ini := x(1) = 2 Le r´sultat de la commande dsolve avec l’option numeric est une proc´e e dure qui retourne une liste d’´quations..2 ).248 • Chapitre 6: Exemples tir´s du calcul diff´rentiel e e > ini := x(1) = 2. 1. [0.. sol(1) ).

ini := x(0) = 2. Voici un syst`me de deux EDO. > type=numeric ). e > sol1 := dsolve( {eq1.8 2.] > sol1(1).y(t)}. ini}. la proc´dure de solution retourne une liste de e trois ´quations. . sol1 := proc(rkf45 _x ) . eq1 := ∂ x(t) = y(t) ∂t > eq2 := diff(y(t).odeplot pour obtenir la syntaxe de odeplot.t) = x(t)+y(t). y(t) = 1. end proc > sol1(0). {x(t). . y(0)=1.8 –1 –0.2 2 1.´ 6. [t = 0.5 1 t 1.5 0 0.4 x 2. y(0) = 1 Dans ce cas particulier. eq2 := > ini := ∂ y(t) = x(t) + y(t) ∂t x(0)=2.5 2 Consultez la rubrique ?plots.. eq2.2 Equations diff´rentielles ordinaires e • 249 2. x(t) = 2.6 2. e > eq1 := diff(x(t). .t) = y(t).

labels=["x".numeric. ."y"] ).82688931187210190] La commande odeplot peut maintenant tracer y(t) en fonction de x(t). Reportez-vous a la e e e ` rubrique ?dsolve..1.250 • Chapitre 6: Exemples tir´s du calcul diff´rentiel e e [t = 1. -3. La solution consiste a ` utiliser l’option startinit pour indiquer a la commande dsolve (ou ` plutˆt ` la proc´dure retourn´e par dsolve) de commencer a la valeur o a e e ` initiale pour chaque calcul en un point (x. 8 y –4 2 x 6 1 t –3 ou toute autre combinaison."y"]. axes=boxed ). y(t) = 7. e e aucun logiciel ne peut anticiper toutes les conditions. > odeplot( sol1. y(t)].. > labels=["t".. y(x)). > odeplot( sol1. [x(t). -3... [t.1. type=numeric) e doit utiliser en r´solvant une ´quation diff´rentielle. ainsi. y(t)]. Vous pouvez sp´cifier l’algorithme que dsolve(.58216755967155986. x(t) = 5. Il e e n’existe pas de r`gles universelles permettant de pr´venir ces effets ."x". 8 6 y 4 2 0 –2 –4 2 3 4 x 5 6 x(t) et y(t) en fonction de t. Soyez prudent lorsque vous utilisez des m´thodes num´riques. x(t).

D´terminez ce nombre en fonction de l’ordre de la s´rie e e e de Taylor. soit f (t). vous pouvez les remplacer dans e e la repr´sentation de f (t) en s´rie de Taylor. 6 vous devez g´n´rer des d´riv´es jusqu’` l’ordre e e e e a . > eq := D(theta) = -1/10*(theta-20). eq := D(θ) = − > ini := theta(0)=100.2 Equations diff´rentielles ordinaires e • 251 Un exemple : les s´ries de Taylor e Dans sa forme g´n´rale. vous pouvez facilement introduire l’´quae e tion ci-dessus dans Maple. t). Une fois les d´riv´es ainsi obtenues. consid´rez la loi du refroidissement de Newton : e f(0) + D(f )(0) t + dθ 1 = − (θ − 20). 1 1 (2) (D )(f )(0) t2 + (D(3) )(f )(0) t3 + 2 6 1 1 (D(4) )(f )(0) t4 + (D(5) )(f )(0) t5 + O(t6 ) 24 120 Comme exemple. f (t). f (t) et e e e ainsi de suite. > Order.´ 6. une solution d’une EDO g´n´r´e par une m´thode e e e ee e de s´ries demande la formation d’une s´rie de Taylor autour de t = 0 e e pour une certaine fonction f (t). 1 θ+2 10 ini := θ(0) = 100 La premi`re ´tape consiste a obtenir le nombre requis de d´riv´es e e ` e e d’ordre sup´rieur. Si vous utilisez la valeur par d´faut de la variable Order fournie e par Maple. Vous devez ainsi obtenir et manipuler les d´riv´es d’ordre sup´rieur de cette fonction. dt 10 θ(0) = 100. En utilisant l’op´rateur D. e e > taylor(f(t).

{S}). utie e ` lisez la commande map. (D(3) )(θ) = − 1 1 θ+ 1000 50 Pour effectuer cette substitution sur toutes les d´riv´es a la fois. > L := map( z -> lhs(z) = eval(rhs(z). 10 10 1 D(θ) = − θ + 2 10 La d´riv´e cinqui`me est une fonction de la d´riv´e quatri`me. (D(3) )(θ) = − 1 (D(2) )(θ) 10 En rempla¸ant par rapport a S sur le cˆt´ droit de l’´galit´. vous ` pouvez exprimer toutes les d´riv´es comme des fonctions de theta. .252 • Chapitre 6: Exemples tir´s du calcul diff´rentiel e e > dev_order := Order . la e e e e e e d´riv´e quatri`me est une fonction de la d´riv´e troisi`me. si vous effectuez des substitutions par rapport a S.dev_order ). dev _order := 5 Vous pouvez maintenant utiliser seq pour g´n´rer une suite des d´rie e e v´es d’ordre sup´rieur de theta(t). le troisi`me ´l´ment de S est le suivant : e ee S := (D(5) )(θ) = − > S[3]. [S] ). Ainsi. n=1.. e e > S := seq( (D@@(dev_order-n))(eq). 1 1 (D(4) )(θ). on obc ` oe e e tient : > lhs(%) = subs( S.1. 10 10 1 1 (D(3) )(θ) = − (D(2) )(θ). (D(4) )(θ) = − (D(3) )(θ). rhs(%) ). et ainsi de e e e e e e suite. Par e e exemple. (D(2) )(θ) = − D(θ).

(D(2) )(θ)(0) = θ(0) − . T ). 1 (2) 1 (D )(θ)(0) t2 + (D(3) )(θ)(0) 2 6 3 + 1 (D(4) )(θ)(0) t4 + 1 (D(5) )(θ)(0) t5 + O(t6 ) t 24 120 Remplacez les d´riv´es dans la s´rie. 100 100 1 1 1 (D(3) )(θ) = D(θ).´ 6. t). 100 100 5 1 D(θ) = − θ + 2] 10 Vous devez ´valuer les d´riv´es en t = 0. e e e T := θ(0) + D(θ)(0) t + > subs( op(L(0)). ini ). (D(4) )(θ) = (D(2) )(θ). . 1 1 1 θ(0) + 2) t + ( θ(0) − ) t2 + 10 200 10 1 1 1 1 3+( (− θ(0) + )t θ(0) − ) t4 + 6000 300 240000 12000 1 1 (− θ(0) + ) t5 + O(t6 ) 12000000 600000 θ(0) + (− ´ Evaluez maintenant les s´ries aux conditions initiales et convertisseze les en polynˆme. o > eval( %. 100 1 (D(4) )(θ)(0) = (D(2) )(θ)(0). 1 (D(3) )(θ)(0).2 Equations diff´rentielles ordinaires e • 253 1 1 (D(3) )(θ). (D(2) )(θ) = θ− . e e e [(D(5) )(θ)(0) = > T := taylor(theta(t). e e e L := [(D(5) )(θ) = > L(0). 100 1 1 1 (D(3) )(θ)(0) = D(θ)(0). 100 100 5 1 D(θ)(0) = − θ(0) + 2] 10 G´n´rez maintenant la s´rie de Taylor.

. 100 80 60 40 20 0 –20 5 10 15 t 20 25 30 Cet exemple particulier poss`de la solution analytique suivante.30 ). p := 100 − 8 t + 1 3 1 4 1 2 2 t − t + t − t5 5 75 3000 150000 Vous pouvez maintenant tracer le graphique de la r´ponse. e > dsolve( {eq(t). θ(t) = 20 + 80 e(−1/10 t) > q := rhs(%). > plot( [p. q]. e > plot(p. q := 20 + 80 e(−1/10 t) Vous pouvez maintenant comparer la s´rie obtenue a la solution e ` exacte. {theta(t)} ). .254 • Chapitre 6: Exemples tir´s du calcul diff´rentiel e e 100 − 8 t + 2 2 1 3 1 4 1 t − t + t − t5 + O(t6 ) 5 75 3000 150000 > p := convert(%. t=0.30). ini}. polynom). t=0..

> dsolve( {de}. DESol est similaire a RootOf.´ 6. ’series’ ). DESol e est une expression repr´sentant la solution d’une ´quation diff´rentielle e e e sans la calculer explicitement. Dans ce cas.x) > + (23*x-17)*y(x).x) + x^4*diff(y(x). de := d2 d (x7 + x3 − 3) ( dx2 y(x)) + x4 ( dx y(x)) + (23 x − 17) y(x) dsolve ne peut trouver une solution exacte de de. qui ` repr´sente les racines d’une expression. il peut ˆtre impossible d’exprimer la solution d’une e EDO lin´aire explicitement. . la commande dsolve peut ree tourner des solutions contenant la structure de donn´es DESol. vous pouvez o e utiliser l’option series de la commande dsolve.x. ini}. {theta(t)}.2 Equations diff´rentielles ordinaires e • 255 100 80 60 40 20 0 –20 5 10 15 t 20 25 30 Plutˆt que de calculer la s´rie de Taylor manuellement. {y(x)} ). Ainsi. > dsolve( {eq(t). θ(t) = 100 − 8 t + 2 2 1 3 1 4 1 t − t + t − t5 + O(t6 ) 5 75 3000 150000 Lorsqu’une solution explicite est impossible ` trouver a Dans certains cas. > de := (x^7+x^3-3)*diff(y(x). Cela vous permet de manipuler e l’expression r´sultante de mani`re symbolique avant d’utiliser toute autre e e approche.

il peut ˆtre avantageux d’en tracer le graphique.256 • Chapitre 6: Exemples tir´s du calcul diff´rentiel e e y(x) = DESol d ( dx2 _Y(x)) + 2 d x4 ( dx _Y(x)) (23 x − 17) _Y(x) . . Par exemple. trouvez une approximation sous forme de s´rie.t) + y(t) = cos(t)^2. ic1 := y(0) = 1. x). D(y)(0) = 0 Essayez tout d’abord de r´soudre cette EDO analytiquement au e moyen de dsolve. t$2) + sin(t)^2*diff(y(t). Dans ces cas. D(y)(0) = 0. e > ode1 := > diff(y(t). e e > series(rhs(%). e Tracer le graphique d’´quations diff´rentielles ordinaires e e Plusieurs ´quations diff´rentielles ne peuvent ˆtre r´solues analytiquee e e e ment. + x7 + x3 − 3 x7 + x3 − 3 {_Y(x)} Vous pouvez maintenant essayer une autre m´thode sur l’´l´ment DESol e ee lui-mˆme. ode1 := ( d2 d y(t)) + sin(t)2 ( y(t)) + y(t) = cos(t)2 2 dt dt > ic1 := y(0) = 1. _Y(0) + D(_Y )(0) x − (− 17 _Y(0) x2 + 6 17 23 D(_Y )(0) + _Y(0)) x3 + 18 18 289 23 ( _Y(0) + D(_Y )(0)) x4 + 216 36 289 833 ( D(_Y )(0) − _Y(0)) x5 + O(x6 ) 1080 540 diff et int fonctionnent ´galement avec DESol.

6 0. ic1}. dsolve n’a pas trouv´ de solution. > with(DEtools): DEplot est un traceur g´n´ral d’EDO que vous pouvez utiliser en suivant e e la syntaxe ci-dessous : DEplot( ode. ode est l’´quation diff´rentielle que vous souhaitez tracer. [ [ ic1 ] ].2 0 5 10 t 15 20 Vous pouvez raffiner le graphique en sp´cifiant une ´chelle (stepsize) e e plus fine. 0. [ [ ic1 ] ] ). intervalle est le domaine de la variable ind´pene dante et ini-conds repr´sente la liste des conditions initiales.. .2 ). e > DEplot( ode1. {y(t)}. dep-var.2 Equations diff´rentielles ordinaires e > dsolve({ode1.20. ic1}. Puisque l’usage de e dsolve s’est av´r´ infructueux. 0. y(t). > DEplot( ode1. intervalle. • 257 La commande dsolve n’a rien retourn´. [ini-conds ] ) Ici. e Voici un graphique de la fonction satisfaisant a la fois a l’´quation ` ` e diff´rentielle ode1 et aux conditions initiales ic1 ci-dessus.4 0. Encore une fois. method=laplace ). indiquant ainsi qu’elle ne pouvait e trouver de solution. 1 0.8 y(t) 0. dep-var est e e e la variable d´pendante. {y(t)} ).. y(t). stepsize=0. essayez la commande DEplot qui se trouve ee dans le package DEtools. e > dsolve( {ode1. Essayez alors les m´thodes de Laplace.20.´ 6.

2 0 5 10 t 15 20 Si vous sp´cifiez plus qu’une liste de conditions initiales. stepsize=0. eq2 := y(t) = d x(t) dt . eq1 := ( d y(t)) + y(t) + x(t) = 0 dt > eq2 := y(t) = diff(x(t).. D(y)(0)=1. 0.4 1.8 y(t) 0.6 0.t) + y(t) + x(t) = 0. ic2 := y(0) = 0. > ic2 := y(0)=0.4 0. D(y)(0) = 1 > DEplot( ode1.2 1 y(t) 0.6 0.2 5 10 t 15 20 DEplot peut ´galement tracer les solutions d’un ensemble d’´quations e e diff´rentielles.2 ).4 0. [ [ic1]. y(t). e > eq1 := diff(y(t). 1. DEplot trace e une solution pour chacune. t).8 0.20. [ic2] ].258 • Chapitre 6: Exemples tir´s du calcul diff´rentiel e e 1 0.

[ini2] ] ). • 259 ini1 := x(0) = 0. y(0)=5. y(0) = 5 > ini2 := x(0)=0.´ 6.5. y(0) = −5 Le syst`me {eq1. La syntaxe de base de DEplot3d est similaire a celle de DEplot. Voici un graphique trie dimensionnel du syst`me trac´ en deux dimensions pr´c´demment.5.2 Equations diff´rentielles ordinaires e > ini1 := x(0)=0. Consultez la rubrique e e ?DEtools.DEplot3d pour obtenir plus de d´tails. ini2 := x(0) = 0. [x(t). DEplot3d est la version tridimensionnelle de DEplot. [x(t). e > DEplot( {eq1. [ini2] ] ). y(0)=-5... e e e e > DEplot3d( {eq1. 60 40 y 20 –60 –40 –20 0 –20 –40 –60 20 40 x 60 Remarquez que DEplot g´n`re ´galement un champ de vecteurs (ainsi e e e qu’illustr´ ci-dessus) d`s qu’il est utile de le faire. eq2}. y(t)]. -5. y(t)]. > [ [ini1]. . x(t) et e e e y(t) . eq2} poss`de deux variables d´pendantes.DEplot pour obtenir davantage de d´tails sur la mani`re de e e tracer des EDO. vous devez donc donner une liste de variables d´pendantes. Consultez la rubrique ` ?DEtools. > [ [ini1]. -5. eq2}.

e > eq1 := diff(x(t). ini2 := [x(0) = 0. z(0) = 2] > ini2 := [x(0)=0. eq2 := d y(t) = −y(t) − x(t) dt > eq3 := diff(z(t). eq3}.t) = -x(t)-y(t). z(0)=2]. y(0) = 2. eq2. une solution pour chaque liste de valeurs e initiales. y(0)=0. ini1 := [x(0) = 1. y(0) = 0. > ini1 := [x(0)=1.t) = y(t)+z(t). .260 • Chapitre 6: Exemples tir´s du calcul diff´rentiel e e 40 20 y(t) 0 –20 –40 –60 –40 –20 0 20 x(t) 0 –2 t –4 40 60 4 2 Voici un exemple d’un graphique d’un syst`me de trois ´quations e e diff´rentielles. y(0)=2. eq3 := d z(t) = x(t) + y(t) − z(t) dt Voici deux listes de conditions initiales. z(0)=-1]. z(0) = −1] La commande DEplot3d trace deux solutions au syst`me d’´quations e e diff´rentielles {eq1. eq1 := d x(t) = y(t) + z(t) dt > eq2 := diff(y(t).t) = x(t)+y(t)-z(t).

y(t) = 3 e((−t+1) Heaviside(t−1)) Transformez la solution en une fonction que l’on peut tracer. z(t)]. stepsize=0. y(t). 2 z 2 x –1 2 y –1 –1 Coefficients discontinus d’une ´quation e Dans plusieurs situations pratiques.. 58] ). ini := y(0) = 3 > dsolve({eq. eq := ∂ y(t) = −y(t) Heaviside(t − 1) ∂t > ini := y(0) = 3. Maple propose plusieurs mani`res par lesquelles e e il est possible de d´crire un syst`me en termes d’EDO et d’inclure. {y(t)}). les coefficients d’une solution a un ` syst`me sont discontinus.1. > eq := diff(y(t). . eq3}. orientation=[-171. de e e mani`re significative. e La fonction de Heaviside La fonction de Heaviside permet de mod´liser e des coefficients retard´s ou d´finis par morceaux. > [ini1. des descriptions de ces coefficients discontinus. t=0. > rhs( % ). [x(t).10.´ 6. eq2.t) = -y(t)*Heaviside(t-1). ini2]. ini}. Vous pouvez utiliser e e Heaviside avec dsolve pour trouver les solutions a la fois num´riques et ` e symboliques.2 Equations diff´rentielles ordinaires e • 261 > DEplot3d( {eq1.

t)..5 0 1 2 t 3 4 . end proc Vous pouvez utiliser la commande odeplot du package plots pour tracer le graphique de la solution. 0. sol1 := proc(rkf45 _x ) .5 2 y1.262 • Chapitre 6: Exemples tir´s du calcul diff´rentiel e e 3 e((−t+1) Heaviside(t−1)) > f := unapply(%. 3 2. > with(plots): > odeplot( sol1. ini}.4). 0.5 2 1. . {y(t)}. e e e e > sol1 := dsolve({eq. f := t → 3 e((−t+1) Heaviside(t−1)) > plot(f. 3 2.4 ). . type=numeric)..5 1 0.5 1 0. [t. y(t)].5 0 1 2 3 4 R´solvez la mˆme ´quation num´riquement.

6 2. type=numeric). > sol2 := dsolve({eq. {y(t)}). end proc .t) = -y(t)*Dirac(t-1). la solution num´rique ne consid`re pas la valeur non nulle e e de Dirac(0). sol2 := proc(rkf45 _x ) .4 2.6 1. eq := > ini := y(0) = 3. . ini}.´ 6. f := t → 3 e(−Heaviside(t−1)) > plot( f. ..4 1. t ). {y(t)}. y(t) = 3 e(−Heaviside(t−1)) Transformez la solution en une fonction que vous pouvez tracer.2 0 1 2 3 4 Cependant.2 2 1. ini}. vous pouvez utiliser e la fonction de Dirac pour produire des coefficients d’impulsion. 0.8 1.2 Equations diff´rentielles ordinaires e • 263 La fonction Delta de Dirac De mani`re similaire. d y(t) = −y(t) Dirac(t − 1) dt ini := y(0) = 3 > dsolve({eq.4 ). > eq := diff(y(t). > f := unapply( rhs( % ). 3 2.8 2.

0. if .3). 0. . 1.5 2 0 1 2 t 3 4 Fonctions d´finies par morceaux La commande piecewise vous permet e de construire des fonctions compliqu´es par l’approximation de certaines e de ses sections par des fonctions analytiques.y(t)]. 1. Examinez e e tout d’abord le comportement de piecewise. 0) > f(x). puis en regroupant ces multiples approximations pour repr´senter la fonction compl`te.. odeplot). 0.4 ). Remarquez que l’ordre des conditions est important. 4 3. 0). utilisez odeplot du package plots pour tracer la solution num´rique. f := x → piecewise(1 ≤ x and x < 2.264 • Chapitre 6: Exemples tir´s du calcul diff´rentiel e e Encore une fois. e > plot(f. [t. > f:= x -> piecewise(1<=x and x<2. 1 − x ≤ 0 and x − 2 < 0 .5 y 3 2. otherwise. e > with(plots.. La fonction retourne la valeur true d`s qu’une condition retourne la valeur true. [odeplot ] > odeplot( sol2. 1.

otherwise. utilisez la commande odeplot du package plots pour tracer le r´sultat. .8 0. vous pouvez utiliser cette fonction d´finie par morceaux comme e coefficient.t) = 1-y(t)*f(t). y(t)]. [t. sol3 := proc(rkf45 _x ) . > ini := y(0)=3. . ini}. type=numeric). eq := ∂ y(t) = 1 − y(t) ∂t 1. 0. 0. {y(t)}.5 3 Ainsi. > eq := diff(y(t).. end proc Encore une fois.6 0.5 1 1.2 Equations diff´rentielles ordinaires e • 265 1 0. if 1 − t ≤ 0 and t − 2 < 0 .´ 6. e > with(plots.4 ).5 2 2. 7 6 y5 4 3 0 1 2 t 3 4 .2 0 0.4 0. odeplot): > odeplot( sol3. ini := y(0) = 3 > sol3 := dsolve({eq.

t)) − c2 ( 2 u(x. wave := ( ∂2 ∂2 u(x. La commande pdsolve La commande pdsolve permet de r´soudre plusieurs ´quations aux e e d´riv´es partielles. Certaines de ces commandes se trouvent dans la biblioth`que standard.x). . de e e manipuler et de tracer les EDP. > with(PDEtools): > sol := pdsolve( wave.c^2 * diff(u(x. t)) ∂t2 ∂x On souhaite r´soudre pour u(x. de manipuler. _F1 et _F2.t). x. e Voici une ´quation ondulatoire unidimensionnelle. t) = _F1(c t + x) + _F2(c t − x) Remarquez que la solution est en termes de deux fonctions arbitraires. sol := u(x. e 6. Pour tracer la solution. Maple fournit plusieurs commandes permettant de r´soudre. u(x. Consultez la rubrique ?DEtools pour plus de d´tails. Chargeons d’abord en m´moire e e PDEtools. il vous faut un ensemble particulier de fonctions. t. mais la plupart d’entre elles sont situ´es e e dans le package PDEtools. de tracer et de r´soudre des ´quations diff´rene e e tielles. La syntaxe de base de la commande pdsolve est la e e suivante : pdsolve( pde.t). var ) Ici.t). les ´quations aux d´riv´es partielles (EDP) sont tr`s difficiles a e e e e e e ` r´soudre.3 ´ Equations aux d´riv´es partielles e e En g´n´ral.t) . e > wave := diff(u(x. pde est l’´quation aux d´riv´es partielles et var est la variable pour e e e laquelle on souhaite r´soudre.266 • Chapitre 6: Exemples tir´s du calcul diff´rentiel e e Le package DEtools contient plusieurs commandes vous permettant d’examiner.t) ).

f2 := ξ → piecewise( −1 1 < ξ and ξ < . 1. t) = e(−(t+x) ) + 2 1 1 1 −t + x < and t − x < 2 2 0 otherwise Vous pouvez utiliser la commande rhs pour extraire la solution. x. f := (x. 0. -8. • 267 f1 := ξ → e(−ξ 2) > f2 := xi -> piecewise(-1/2<xi and xi<1/2.. {_F1=f1.40] ). c=1} ). > rhs(%).3 Equations aux d´riv´es partielles e e > f1 := xi -> exp(-xi^2).8. 0) 2 2 Substituez ces expressions dans la solution. e(−(t+x) ) + piecewise(−t + x < 2 > plot3d( f. grid=[40. > f := unapply(%. t) → 1 1 and t − x < .5.t). > eval( sol. 0). 1. 0) 2 2 Vous pouvez maintenant tracer la solution. _F2=f2.´ 6.. . 1. e(−(t+x) ) + 2 1 1 1 −t + x < and t − x < 2 2 0 otherwise unapply transforme l’expression en fonction. u(x.

k=1. Pour ce faire. e > sol := pdsolve(heat.t). t)) − k ( 2 u(x. u(x.t) . HINT=X(x)*T(t)). √ _C3 e(k _c 1 t) _C2 sol := u(x. heat := ( d d2 u(x. mais difficile a lire.k*diff(u(x.268 • Chapitre 6: Exemples tir´s du calcul diff´rentiel e e Changer la variable d´pendante dans une EDP e Voici l’´quation de la chaleur en une dimension. _C1=1. t) = e( _c 1 x) _C3 e(k _c 1 t) _C1 + √ e( _c 1 x) ´ Evaluez la solution en des valeurs sp´cifiques pour les constantes. _C2=1. t) = X(x) T(t)) &where d [{ dt T(t) = k _c 1 T(t). e > S := eval( rhs(sol). ’build’). e ` De mani`re alternative. vous pouvez sp´cifier a pdsolve d’utiliser une e e ` s´paration de variables (sous forme de produit. {_C3=1. d2 dx2 X(x) = _c 1 X(x)}] Le r´sultat est correct. HINT=‘*‘. . utilisez l’option HINT de pdsolve pour sugg´rer a Maple une piste a e ` ` suivre.t). t)) = 0 dt dx Essayez de trouver une solution de la forme X(x)T (t). ‘*‘) et ensuite de r´soudre e e l’EDO r´sultante en utilisant l’option ’build’. e > heat := diff(u(x.t). > pdsolve( heat. u(x.t). (u(x. _c[1]=1} ). x.x) = 0.

5 ). PDEplot( pde. var. %1 _C3 k _c 1 e(k _c 1 t) _C1 + _C3 k _c 1 e(k _c 1 t) _C2 %1 (k _c 1 t) _C2 _c 1 _C3 e − k (_c 1 %1 _C3 e(k _c 1 t) _C1 + )=0 %1 √ %1 := e( _c 1 x) > simplify(%).5. .. e e e e > eval( heat. u(x. Il peut ˆtre avis´ de v´rifier la solution avec l’´quation originale.t)=rhs(sol) ).. > with(PDEtools): Vous pouvez utiliser la commande PDEplot avec la syntaxe suivante. ini. pde est l’EDP. x=-5. t=0. s =intervalle ) Ici. ini est une courbe e param´trique de l’espace tridimensionnel de param`tre s et intervalle est e e le domaine de s.´ 6. > plot3d( S. 0=0 Tracer le graphique d’´quations aux d´riv´es partielles e e e Les solutions de plusieurs EDP peuvent ˆtre trac´es grˆce a la come e a ` mande PDEplot que l’on trouve dans le package PDEtools.3 Equations aux d´riv´es partielles e e • 269 S := ex et + et ex Vous pouvez tracer le graphique de la solution. var est la variable ind´pendante.

y). a > ini := [0.. s.270 • Chapitre 6: Exemples tir´s du calcul diff´rentiel e e Consid´rez cette ´quation aux d´riv´es partielles.y) 1 –2 y 2 2 x –2 Pour tracer la surface. 7 u(x. y) = -sin(y). Maple calcule ces courbes caract´ristiques de e base. e e e e > pde := diff(u(x. 5 u(x.y). u(x. ` > PDEplot( pde. ini. y)) = −sin(y) ∂x ∂y Utilisez la courbe donn´e par z = 1 + y 2 comme condition initiale.y). > PDEplot( pde. ini := [0.2 ). s.y). y = s et z = 1 + s2 . x) + cos(2*x) * diff(u(x. 1+s^2]. La courbe des conditions initiales est ici plus facile a distinguer.2. basechar=only ). 1 + s2 ] PDEplot trace la courbe des conditions initiales et la surface de solution. ini. s=-2.. y)) + cos(2 x) ( u(x. s=-2. u(x. pde := ( ∂ ∂ u(x.y) 1 –2 y 2 2 x –2 . e c’est-`-dire x = 0.

ini.y).y) 1 –2 y 2 2 x –2 Plusieurs des options usuelles de plot3d sont ´galement disponibles . initcolor=white. > basechar=true. > PDEplot( pde. comment Maple vous aide a analyser le e ` . ini. L’option initcolor modifie la couleur de la courbe des valeurs initiales.45] ).6.4 Conclusion Ce chapitre vous a d´montr´ l’utilit´ de Maple lorsque vient le temps e e e d’´tudier et de r´soudre des probl`mes faisant usage du calcul diff´rentiel. > style=patchcontour. e > PDEplot( pde. e consultez la rubrique ?plot3d.2. s=-2. 7 u(x.4 Conclusion • 271 L’option basechar=true indique a PDEplot de dessiner a la fois les ` ` courbes caract´ristiques et la surface.y) 1 –2 x 2 –2 y 2 6. s=-2.2. u(x. u(x. contours=20.y).options... > orientation=[-43. e e e e Vous avez vu comment Maple peut illustrer des concepts comme la d´riv´e e e et les int´grales de Riemann. basechar=true ). de mˆme que la courbe des condie e tions initiales qui est toujours pr´sente. 7 u(x.

e e des ´quations diff´rentielles et des ´quations aux d´riv´es partielles. tant symbolique que num´rique. e e e e e .272 • Chapitre 6: Exemples tir´s du calcul diff´rentiel e e terme d’erreur d’une approximation de Taylor de mˆme que sa puissance e dans la r´solution et la manipulation.

e 273 . il est possible qu’` un certain moment vous dee a viez importer des donn´es ou exporter des r´sultats pour interagir avec e e une autre personne ou un autre logiciel. tracer des fonctions et documenter les r´sultats. On y verra comment Maple interagit avec le syst`me de fichiers et avec d’autres e logiciels. Cependant. e e e Maple propose plusieurs mani`res d’importer et d’exporter des done n´es num´riques brutes et des graphiques. vous pouvez utiliser les cae e pacit´s graphiques du logiciel pour visualiser les r´sultats et les capacit´s e e e alg´briques pour construire ou examiner un mod`le math´matique. ou le syst`me de typographie math´matique e e A X. 7.1 Lire des fichiers On utilise g´n´ralement la lecture de fichiers dans Maple pour deux raie e sons : pour obtenir des donn´es et pour r´cup´rer une liste de commandes e e e Maple enregistr´es dans un fichier. e e Le pr´sent chapitre aborde les aspects les plus courants de l’expore tation et de l’importation d’information vers et depuis des fichiers. e e ee Une fois les donn´es import´es dans Maple. Vous pouvez mˆme exporter une feuille de calcul enti`re en un TE e e L fichier texte (pour inclusion dans un courriel) ou sous forme d’un docuA e ment L TEX. Il pr´sente les r´sultats e e e e alg´briques et num´riques dans des formats compatibles a leur utilisae e ` tion sous FORTRAN ou C.7 Entr´es et sorties e Vous pouvez effectuer la majeure partie de votre travail a l’int´rieur des ` e feuilles de calcul de Maple : calculer. Vous pouvez couper et coller des r´sultats et exporter des expressions isol´es ou des feuilles enti`res. Les donn´es peuvent ˆtre des mee e sures exp´rimentales ou des nombres g´n´r´s par d’autres programmes.

Tr`s souvent.9092974268 -. vous devez pr´alablement les importer avant de e ee e les manipuler. Pour ce faire.274 • Chapitre 7: Entr´es et sorties e La premi`re situation survient g´n´ralement dans le cas de donn´es e e e e exp´rimentales.1411200081 -. Utilisez ImportMatrix de la mani`re suivante.5403023059 . ıne > L := ImportMatrix( "data. Le fichier data.9589242747 . on cherche a lire des commandes Maple se ` trouvant dans un fichier texte.8414709848 -. Dans le fichier data. ces donn´es externes sont stock´es sous la e e e forme de colonnes de nombres dans un fichier texte. e e e La valeur de chaˆ est donc " ". 0 1 2 3 4 5 6 1 0 .2836621855 -. vous pouvez couper et coller des commandes e dans Maple ou encore utiliser la commande read.2794154982 La commande ImportMatrix permet de lire de telles colonnes de nombres.txt". ou vous ´crivez une proc´dure Maple en utilisant votre e e ´diteur de texte favori et en le sauvegardant dans un fichier texte avant e de l’ex´cuter.7568024953 . Vous pouvez tr`s facilement effectuer ces e e op´rations en utilisant respectivement les commandes ExportMatrix et e ImportMatrix.txt ci-dessous en est un exemple. delimiter=chaıne ) Ici. La ıne e e e valeur par d´faut de chaˆ est un caract`re de tabulation repr´sent´ par e ıne e e e "\t". e ImportMatrix( "nomfichier ". delimiter=" " ). Vous recevez peut-ˆtre une feuille de calcul e sous format texte.4161468365 . Dans la seconde situation. les entr´es sont s´par´es par des espaces. La pr´sente section e discute de cette seconde option. .6536436209 -. Vous pouvez sauvegarder les nombres en les s´parant par e e des espaces et des sauts de ligne dans un fichier texte. puis les faire lire par Maple pour les ´tudier.9601702867 -.9899924966 . mais lorsque ces derni`res sont e e e g´n´r´es hors du logiciel. et chaˆ est le caract`re qui d´limite les entr´es.txt. Lire des colonnes de nombres depuis un fichier Maple manipule les donn´es ais´ment. nomfichier est le nom du fichier que vous souhaitez lire au moyen d’ImportMatrix.

2794154982  Maintenant. [1.8414709848   0.2836621855 0.7568024953   −0.4 0.6 0.3]]. [3.2] est le second nombre de la cinqui`me souse liste. [5. > plot(%).4161468365 −0. [2.9589242747  −0. vous pouvez tracer le graphique de la troisi`me colonne en fonction de la premi`re.7568024953]. −0. listlist ). −0.1 Lire des fichiers • 275 0 1  2  L :=  3  4  5 6  1 0. [[0. −0. e e e > convert( L[[1. 0.. [6. [4.9092974268   0. vous devez tenir e compte du fait que L[5. Utilisez la commande convert e e pour choisir les premi`re et troisi`me entr´es dans chaque colonne.-1].8 0.9601702867 0 0.[1.1411200081].9589242747].2 –0. e e .6536436209 0. par exemple. 0. −0.8 1 2 3 4 5 6 Pour s´lectionner la seconde colonne de nombres.2794154982]] La commande plot peut tracer le graphique de telles listes directement.2 0 –0.4 –0. 0. 0].2].5403023059 −0. 0.9899924966 −0.6 –0.8414709848]. > L[5.1411200081   −0.7.9092974268].6536436209 Les donn´es souhait´es sont donc les suivantes.

2 ].. −6. −0.109078174475632172] [−6. 0.5403023059     −0. .. 0.1034788321 Vous pouvez aussi effectuer des calculs sur la matrice L en utilisant le package LinearAlgebra.30278930720000119 .mean](%) .12516888746710864] Pour plus d’information au sujet des options de commandes telles que ImportMatrix. −0. 3.9601702867 Convertissons ces donn´es sous forme de liste.41489848119999984 .2]. 1. 0.5403023059.-1.9899924966.6536436209     0. puis de les importer e dans Maple.9601702867] > stats[describe. [1.276 • Chapitre 7: Entr´es et sorties e > L[ 1. 3.87483111270157598 .4161468365. 0.41489848119999984] [1.109078174475632172 . . e > convert(L[1.9899924966     −0. consultez la rubrique d’aide ?ImportMatrix .30278930720000119 . −0.4161468365     −0. −0.6536436209. −0.2836621855  0.list). Vous pouvez coller les commandes du fichier texte dans votre feuille de calcul ou utiliser la commande read. > LinearAlgebra[Transpose](L) . Lire des commandes depuis un fichier Certains utilisateurs Maple trouvent utile d’´crire des programmes Maple e dans un fichier texte au moyen de leur ´diteur favori. L.-1.2836621855.   1  0. [91.

tst. Voici le fichier de commandes Maple ks. beta=1. beta) * ( (2*beta)!/2^beta .beta!*beta ). par d´faut. Maple traite chaque ligne du fichier comme une commande. β) ( (2 β)! − β! β) 2β > S( 19 ). .beta!*beta ). β) ( (2 β)! − β! β) 2β 1024937361666644598071114328769317982974 Lorsque vous fixez la valeur de la variable interface echo ` 2.7. > read "ks.2. mais pas les come mandes. e Utilisez la commande read en suivant cette syntaxe. Maple affiche les r´sultats.tst". les commandes du fichier dans votre feuille de calcul. n S := n → β=1 binomial(n. Lorsque vous lisez le fichier. 1024937361666644598071114328769317982974 La commande read peut ´galement lire des fichiers dans le format e interne de Maple .1 Lire des fichiers • 277 Lorsque vous lisez un fichier au moyen de la commande read. e > interface( echo=2 ).n ). beta=1.n ). read "nomfichier " .. > S := n -> sum( binomial(n. Il ex´cute les come mandes et affiche les r´sultats dans votre feuille de calcul. consultez la section 7. n S := n → β=1 binomial(n. Maple a ins`re les commandes du fichier dans votre feuille de calcul. S( 19 ).tst".. S := n -> sum( binomial(n. mais il ne place e pas. beta) > * ( (2*beta)!/2^beta . > read "ks.

Remarquez e e que toute liste. Pour plus d’information. et donn´es est une matrice. 3.1415. Vous pouvez utiliser la commande ExportMatrix avec la syntaxe suivante.278 • Chapitre 7: Entr´es et sorties e 7. vous permettant d’ime e porter les nombres dans un autre programme. vous pouvez enregistrer e e le r´sultat dans un fichier. donn´es ) e Ici. > L:=LinearAlgebra[RandomMatrix](5). L := [3. reportez-vous a la ` rubrique ?Vector. L):  Si les donn´es sont plac´es dans un vecteur ou dans tout autre obe e jet qui peut ˆtre converti au type Vector. La commande ExportMatrix ´crit e e e les colonnes de donn´es num´riques dans un fichier. > L := [ 3.1415. toute liste de listes ou toute matrice cr´´e a ee ` partir d’une table peut ´galement ˆtre converti en une matrice en utilisant e e le constructeur Matrix (consultez la rubrique d’aide ?Matrix ). -65. Vous pouvez traiter le r´sultat ult´rieurement. vous pouvez le convertir en une matrice et ´crire les nombres e dans un fichier de mani`re structur´e. e e e avec Maple ou avec un autre programme.  −66 −65 20 −90 30  55 5 −7 −21 62     68 66 16 −56 −79  L :=    26 −36 −34 −8 −71  13 −41 −62 −50 28 > ExportMatrix("matrixdata. il est possible d’utiliser la e commande ExportVector. −65. ´ Ecrire des colonnes de donn´es num´riques dans un fichier e e Si le r´sultat d’un calcul Maple est une longue liste ou un grand tableau e de nombres. 3.txt". 0] > V := Vector(L). nomfichier est la chaˆ contenant le nom du fichier o` ExportMatrix ıne u doit sauvegarder les donn´es. . 0 ]. ExportMatrix( "nomfichier ".2 ´ Ecrire des donn´es dans un fichier e Apr`s avoir utilis´ Maple pour effectuer un calcul. tout vecteur.

Sauvegarder des expressions au format interne de Maple Lorsque vous construisez une expression ou une proc´dure compliqu´e. V ):   Vous pouvez ´tendre ces routines de mani`re qu’elles ´crivent des e e e donn´es plus complexes.n) / > product(1-q^i. save seqnoms. Si vous sauvegardez cette expression ou cette proc´e e dure au format interne de maple. Utilisez la commande save avec la syntaxe suivante.´ 7.k) -> product(1-q^i. i=n-k+1. La commande e ee e save enregistre les objets dans nomfichier. Ici. 4).m indique que save ´crit le fichier en utilisant le format interne de Maple.m" . comme des nombres complexes ou des exprese sions symboliques. "nomfichier . Remarquez que vous ne pouvez enregistrer que des objets qui ont au pr´alable ´t´ nomm´s. Cela s’accomplit en utilisant la commande save pour ´crire e l’expression dans un fichier dont le nom se termine par les caract`res e . seqnoms est une suite de noms.txt"...m . Le . . n (1 − q i ) qbinomial := (n. > qbinomial := (n. Consultez les rubriques d’aide ?ExportMatrix et ?ExportVector pour obtenir plus d’information. e e vous pouvez avoir besoin de la sauvegarder pour un usage ult´rieur a e ` l’int´rieur de Maple.1415   V :=   −65  0 > ExportVector( "vectordata.k ). k) → i=n−k+1 k (1 − q i ) i=1 > expr := qbinomial(10. ce dernier pourra ensuite la r´cup´rer e e efficacement. i=1. e Voici quelques expressions.m.2 Ecrire des donn´es dans un fichier e • 279 3  3.

La commande oe A A latex convertit les expressions Maple au format L TEX. convertir le r´sultat en code e e e A A L TEX et l’inclure dans un document L TEX. e > expr.m". expr e s’´value a son propre nom. Utilisez la commande latex de la mani`re suivante. (1 − q 7 ) (1 − q 8 ) (1 − q 9 ) (1 − q 10 ) (1 − q) (1 − q 2 ) (1 − q 3 ) (1 − q 4 ) Consultez la section 7. > save qbinomial.m.280 • Chapitre 7: Entr´es et sorties e expr := (1 − q 7 ) (1 − q 8 ) (1 − q 9 ) (1 − q 10 ) (1 − q) (1 − q 2 ) (1 − q 3 ) (1 − q 4 ) > nexpr := normal( expr ). e ` > restart: > expr.1 pour plus d’information sur la commande read. L TEX est un package macro de TEX.m". La commande efface les trois expressions de la m´moire. "qbinom. vous pouvez utiliser Maple pour r´soudre un probl`me. nexpr. Ainsi. nexpr := (q 6 + q 5 + q 4 + q 3 + q 2 + q + 1) (q 4 + 1) (q 6 + q 3 + 1) (q 8 + q 6 + q 4 + q 2 + 1) Vous pouvez maintenant enregistrer ces expressions dans le fichier qbinom. e . A Convertir au format LTEX TEX est un programme permettant la pr´sentation de textes math´mae e tiques. Remarquez que expr a retrouv´ sa valeur originale. expr.m. e > read "qbinom. De son cˆt´. expr Utilisez la commande read pour r´cup´rer les expressions sauvee e gard´es dans qbinom. Ainsi.

Maple ´crit le r´sultat directement dans e e e votre feuille. Cependant. latex l’´crase pour ´crire le nouveau fichier. les e e produits et les matrices. par e e exemple).´ 7. pour empˆcher l’´valuation du cˆt´ gauche de e e oe l’´quation. e . e e la forme inerte de int. x=-n. ne peuvent ˆtre e ` e e A X.. il sp´cifie e export´es en format L TE e a ` Maple d’´crire le r´sultat de la commande dans le fichier indiqu´. e e A La commande latex ne g´n`re pas les commandes requises par L TEX e e pour mettre le syst`me de typographie en mode math´matique ($. La commande latex peut traduire la plupart des types d’expressions math´matiques. comme les proc´dures.. Remarquez l’usage de Int. La commande latex se sert de writeto pour rediriger le r´sultat lorsqu’un nom e de fichier est sp´cifi´. De telles proc´dures formatent les appels de la ee e fonction functionname . Vous pouvez omettre filename . dans ce e A ` e cas. \lim _{n\rightarrow \infty }\int _{-n}^{n}\!f \left( x \right) {dx} La commande latex produit des commandes lisibles en mode math.2 Ecrire des donn´es dans un fichier e • 281 latex( expr. > latex( a/b ). A e L’exemple suivant montre la g´n´ration de code L TEX pour une ´quae e tion form´e d’une int´grale et de sa valeur. {\frac {a}{b}} > latex( Limit( int(f(x). Il est sugg´r´ de produire le r´sultat de telles commandes de formatage au moyen de la commande printf. incluant les int´grales. Si filename existe. les limites.n).$.. Les e e expressions sp´cifiques a Maple. "nomfichier " ) L’objet expr peut ˆtre n’importe quelle expression math´matique. n=infinity ) ). Le champ nomfichier est optionnel . latex affiche le code L TEX a l’´cran et vous pouvez le couper et le A coller dans votre document L TEX. Vous pouvez ´tendre les possibilit´s de la come e mande latex en d´finissant des proc´dures portant des noms de la forme e e e ‘latex/nomfonction ‘. A La commande latex ´crit le code L TEX correspondant de l’expression e e Maple expr dans le fichier filename. elle ne produit pas la commande pour entrer et sortir du mode math et ne tente aucun saut de ligne ni aucun alignement particulier. les sommes. Si vous e e e ne sp´cifiez pas de nom de fichier.

L TEX.\sqrt {2}\arctan \left( x\sqrt {2}-1 \right) La section 7. Maple fait pr´c´der chaque entr´e du signe > et d’un espace. texte Maple. e e e Maple reproduit les symboles sp´ciaux comme les int´grales et les expoe e sants au moyen de caract`res .282 • Chapitre 7: Entr´es et sorties e > Int(1/(x^4+1). Vous pouvez ´galement exporter e A une feuille sous six autres formats : texte. vous ne pouvez exporter les e graphiques sous forme de texte. √ √ 1√ x2 + x 2 + 1 1√ 1 √ )+ 2 ln( 2 arctan(x 2 + 1) dx = 4+1 2−x 2+1 x 8 4 x √ √ 1 + 2 arctan(x 2 − 1) 4 > latex(%). \int \! \left( {x}^{4}+1 \right) ^{-1}{dx}=1/8 \. cependant. 7. RTF et XML au moyen du sous-menu Export As que l’on trouve ´galement dans le menu File. vous pouvez enregistrer vos feuilles de calcul au moyen des options Save ou Save As du menu File.x). L’exemple suivant est une portion de feuille Maple export´e en format texte. \sqrt {2}\arctan \left( x\sqrt {2}+1 \right) + 1/4\. Cela vous permet de traiter e une feuille de calcul hors de Maple. e An Indefinite Integral by Jane Maplefan Calculation Look at the integral Int(x^2*sin(x-a). Dans ce cas. Notice that its . HTML avec MathML. Texte Vous pouvez enregistrer une feuille de calcul en texte en choisissant l’option Export As du menu File et Plain Text du sous-menu qui apparaˆ ıt..x).3 Exporter des feuilles compl`tes e Bien entendu.\sqrt {2}\ln \left( {\frac {{x}^{2}+x\sqrt {2}+1}{{x}^{2}-x\sqrt {2}+1}} \right) +1/4\. HTML.x) = int(1/(x^4+1).3 explique comment enregistrer une feuille compl`te en e A format L TEX.

Notice that its integrand. Give the integral a name so that you can refer to it later. Maple traite chacune des lignes qui commencent par un prompt Maple suivi d’un espace (> ) comme une entr´e Maple. Give the integral a name so that you can refer to it later. depends on the parameter a.... vous e pouvez exporter une feuille de calcul en texte Maple.. # # # # # # > An Indefinite Integral by Jane Maplefan Calculation Look at the integral Int(x^2*sin(x-a). / | 2 | x sin(x . x). expr := Int(x^2 * sin(x-a). / | 2 | x sin(x . x^2*sin(x-a). chaque ligne qui commence avec un di`se (#) comme du e e texte. x). envoyer le texte par courriel et votre destinataire peut importer ce texte dans son programme et r´g´n´rer une grande part de la structure originale de votre feuille.x).a) dx | / The value of the integral is an anti-derivative of the integrand. depends on the parameter a.a) dx | / expr := .3 Exporter des feuilles compl`tes e • 283 integrand..7. > answer := value( % ). Le texte suivant est une portion d’une feuille export´e en texte e Maple. e e e En lisant ou en collant du texte. > expr := Int(x^2 * sin(x-a). Vous pouvez exporter une feuille enti`re en texte Maple en choisissant e Export As du menu File et Maple Text dans le sous-menu qui apparaˆ ıt alors. x^2*sin(x-a). et ignore toutes les autres lignes. les entr´es de Maple et ses sorties. expr := Texte Maple e e Le texte Maple n’est que du texte sp´cialement marqu´ qui conserve la distinction entre le texte. Ainsi.

format L TE %% Created by Maple 8. choisissez Maple ite ıt Text dans la liste d´roulante des types de fichiers. Si vous copiez une partie de votre feuille en texte Maple et le collez ensuite dans une autre application.00 (IBM INTEL NT) %% Source Worksheet: tut1. Maple g´n`re les e e e fichiers PostScript correspondant aux graphiques de mˆme que le code e A L TEX permettant d’inclure ces fichiers PostScript dans votre document A L TEX. > answer := value( % ). Pour ouvrir une feuille en format texte Maple. si vous collez du texte Maple dans votre e feuille en utilisant Paste Maple Text du menu Edit. le texte coll´ apparaˆ sous forme de e ıt texte Maple.284 • Chapitre 7: Entr´es et sorties e # The value of the integral is an anti-derivative of the # integrand. De mani`re similaire. e Si votre feuille contient des graphiques incorpor´s. Maple interpr`te tout le texte coll´ e e comme du texte standard.tex que Maple g´n`re est prˆt ` ˆtre compil´ par L TEX. A LTEX A Vous pouvez exporter une feuille Maple en format L TEX en choisissant Export As du menu File et LaTeX du sous-menu qui apparaˆ Le ıt.mws %% Generated: Thu Apr 18 9:47:33 2002 \documentclass{article} \usepackage{maple2e} \DefineParaStyle{Author} \DefineParaStyle{Heading 1} \DefineParaStyle{Maple Output} \DefineParaStyle{Maple Plot} \DefineParaStyle{Title} . Maple ne conserve aucune structure : si vous collez dans une zone d’entr´e. si vous utilisez l’option Paste habituelle. Maple conserve la structure du texte Maple. Dans la boˆ de dialogue qui apparaˆ alors. Vous pouvez ´galement copier et coller du texte Maple grˆce au menu e a Edit. choisissez Open du menu File. il interpr`te tout le texte coll´ comme une entr´e. A fichier . Toutes e e e ae e les distributions de Maple incluent les fichiers de style n´cessaires. Par contre. et si e e e e vous le collez dans une zone de texte. Double-cliquez sur le e ıte fichier souhait´ et choisissez encore Maple Text dans la boˆ de dialogue e qui apparaˆ ıt. L’exemple suivant est une portion d’une feuille Maple export´e en e A X.

}{% $a$% }. e ee e . \mapleinline{inert}{2d}{x^2*sin(x-a).x).dx$% }.tex.a)\. A Les fichiers de style L TEX supposent que vous imprimez le fichier .3 Exporter des feuilles compl`tes e • 285 \DefineCharStyle{2D Comment} \DefineCharStyle{2D Math} \DefineCharStyle{2D Output} \DefineCharStyle{Hyperlink} \begin{document} \begin{maplegroup} \begin{Title} An Indefinite Integral \end{Title} \begin{Author} by Jane Maplefan \end{Author} \end{maplegroup} \section{Calculation} Look at the integral \mapleinline{inert}{2d}{Int(x^2*sin(x-a). Vous pouvez inclure ces fiA a chiers graphiques dans votre document L TEX ` l’aide de la commande A L TEX \mapleplot.}{% $x^{2}\. HTML et HTML avec MathML Vous pouvez exporter une feuille Maple en format HTML (HyperText Markup Language) en choisissant Export As du menu File et HTML du sous-menu qui apparaˆ Le fichier .7. depends on the parameter \mapleinline{inert}{2d}{a.\mathrm{sin}(x .a)$% }.\mathrm{sin}(x . La section Imprimer des graphiques de la page 288 explique comment enregistrer des graphiques directement.html g´n´r´ par Maple peut ˆtre ıt.tex en utilisant le pilote d’imprimante dvips.}{% $\int x^{2}\. Vous pouvez changer ce d´faut e A e en sp´cifiant une option a la commande L TEX \usepackage dans l’en-tˆte e ` de votre fichier . Notice that its integrand.

selon que vous ayiez choisi l’exportation en format HTML avec MathML ou HTML seul. L’exemple suivant est une feuille Maple export´e en HTML. Vous pouvez ´galement e e exporter une feuille Maple en format HTML avec MathML (Mathematical Markup Language) en choisissant Export As du menu File. <a href="tut11. sont appel´s e e ee e par cette portion de code. Remare quez que les autres documents HTML (incluant une table des mati`res).htm" name="TableOfContents"> <frame src="tut11. MathML est la norme Internet sanctionn´e par e le World Wide Web Consortium (W3C) pour la communication de formules math´matiques structur´es entre des applications math´matiques.htm" target="Content">This link</a> will take you to a non-frames presentation of the document.htm</title> <!-. Il convertit les formules math´mae tiques et les graphiques en format MathML ou .htm mentionn´ e dans le fichier pr´c´dent. consultez la rubrique ` ?MathML. Maple g´n`re des fichiers . puis HTML with MathML.gif pour repr´senter les ´quations et les e e e e graphiques de votre feuille de calcul.*"> <frame src="tut1TOC.286 • Chapitre 7: Entr´es et sorties e charg´ dans n’importe quel navigateur HTML. e e e Pour plus d’information a propos de MathML.Created by Maple 8.00.gif. <html> <head> <title>tut1. e e <b><font color=#000000 size=5>Calculation</font></b> </p> <p align=left> <font color=#000000>Look at the integral </font> <img src="tut11. IBM INTEL NT --> </head> <frameset cols="25%. </noframes> </frameset> </html> L’exemple suivant est une portion du fichier tut11. this document requires that your browser support frames.htm" name="Content"> <noframes> Sorry.gif" width=120 height=60 alt="[Maple Math]" align=middle> . e qui ont ´t´ cr´´s lors de l’exportation de la feuille originale.

e e e L’exemple suivant est le d´but d’une feuille Maple export´e en format e e RTF. </font> <img src="tut12. mais les cellules e visibles de mˆme que les en-tˆtes de colonnes et de lignes sont export´s.</font> </p> <p align=left><a name="expr command"> <tt>&gt. Les feuilles de e calcul (spreadsheets ) ne sont pas pleinement export´es. {\rtf1\ansi\ansicpg1252\deff0\deflang1033 {\fonttbl {\f0 Times New Roman} {\f1 Symbol} .</font> </p> RTF Vous pouvez exporter une feuille Maple en format RTF (Rich Text Format ) en choisissant Export As du menu File et RTF du sous-menu qui apparaˆ Le fichier .7.gif" width=169 height=49 alt="[Maple Math]"> </p> <p align=left> <font color=#000000>The value of the integral is </font> <a href="tut4.</font></b> </p> <p align=center> <img src="tut14.rtf g´n´r´ par Maple peut ˆtre charg´ dans ıt. </tt> <b><font color=#FF0000>expr := Int(x^2 * sin(x-a). x).gif" width=89 height=50 alt="[Maple Math]" align=middle> <font color=#000000>.</font> </p> <p align=left> <font color=#000000>Give the integral a name so that you can refer to it later.3 Exporter des feuilles compl`tes e • 287 <font color=#000000>. depends on the parameter </font> <img src="tut13. Maple incorpore les graphiques et les ´l´ments math´matiques format´s sous la ee e e forme de bitmaps inclus dans des m´tafichiers Windows.gif" width=13 height=32 alt="[Maple Math]" align=middle> <font color=#000000>.html" target="_top">an anti-derivative</a> <font color=#000000> of the integrand. e ee e e n’importe quel traitement de texte qui supporte le format RTF. Notice that its integrand.

Lorsque votre graphique s’affiche dans une fenˆtre s´par´e.288 • Chapitre 7: Entr´es et sorties e {\f2 Courier New} } {\colortbl \red205\green205\blue205. choisissez Export As du menu File. puis XML. \red0\green0\blue0.</mapletext></para> </exchange></section> 7. Vous pouvez utiliser la commande plotsetup pour changer ce comportement.xml g´n´r´ par Maple peut ˆtre charg´ comme une feuille Maple tradie ee e e tionnelle. Les documents XML sont charg´s en choisissant Open du menu e File.4 Imprimer des graphiques Sur la plupart des plateformes. } {\stylesheet {\s0 \widctlpar} {\s1\qr footer_header} {\*\cs12\f2\fs24\cf1\i0 \b \ul0 \additive Maple Input} {\*\cs13\f0\fs24\cf2\i0 \b0 \ul0 \additive 2D Comment} {\*\cs14\f0\fs24\cf1\i0 \b0 \ul0 \additive 2D Input} {\*\cs15\f0\fs24\cf3\i0 \b0 \ul0 \additive 2D Output} XML Pour exporter une feuille Maple en format XML (Extensible Markup Language). vous poue e e vez l’imprimer par le menu File comme toute autre feuille Maple. e e e > plotsetup(window). \red0\green0\blue255. Le fichier . Maple affiche par d´faut les graphiques die e e rectement dans la feuille (on parle de graphiques ins´r´s ). . \red255\green0\blue0. Le texte suivant est un extrait d’une feuille Maple export´e en XML. La commande suivante indique a Maple d’afficher le graphique dans une fenˆtre ` e s´par´e de votre ´cran. e <section><exchange><para pstyle=’Normal’ prompt=’> ’><mapletext maple-input=’true’ cstyle=’Maple Input’>a.

Il envoie le graphique g´n´r´ par la commande plot3d au fichier e ee myplot. Maple peut ´galement g´n´rer des graphiques au format HP Lasere e e jet.4 Imprimer des graphiques • 289 On appelle la commande plotsetup en appliquant la syntaxe suivante. plotoutput="myplot.Pi). e e La commande suivante indique a Maple d’envoyer le graphique en ` format PostScript dans le fichier myplot.ps. nomfichier est le nom du fichier de sortie et options est une chaˆ d’options reconnues ıne par le pilote sp´cifi´. Une fois les graphiques export´s.. > plot( exp@sin. chaque nouveau graphique ´crasera le pr´c´dent. > plotoptions=laserjet ). x=-4. e e e > plotsetup( plotoutput="myplot2.Pi/3. e > plot( sin(x^2). TypePilote est le pilote graphique que Maple doit utiliser.hp".hp" ). vous devez sp´cifier a Maple que les e e ` graphiques doivent de nouveau ˆtre ins´r´s a travers les feuilles. x=-Pi/3. y=-Pi. plotoutput="myplot. Le graphique g´n´r´ par la commande plot ci-dessous n’apparaˆ pas e ee ıt a e ` l’´cran .ps. sinon. > plotsetup( hpgl. > plotsetup( postscript..10 ).4 ). plotsetup( TypePilote.. e ee ` > plotsetup( inline ). Si vous souhaitez imprimer plus d’un graphique.7.device pour une description des pilotes graphiques reconnus par Maple. 0. plotoption="options " ) Ici. il est envoy´ dans le fichier myplot.ps" ). Consultez la rubrique ?plot..hp. plotoutput="nomfichier ". . vous devez modifier l’option plotoutput entre chaque graphique . > plot3d( tan(x*sin(y)).

Maple poss`de plusieurs commandes d’entr´es et de sorties e e de bas niveau comme fprintf. comment enregistrer et r´cup´rer des expressions Maple individuellement. Bien entendu. puisque e ce langage de haut niveau est de loin sup´rieur aux langages de proe grammation traditionnels pour des tˆches math´matiques.290 • Chapitre 7: Entr´es et sorties e 7. writeline. la majorit´ des e commandes de Maple sont enregistr´es dans le langage Maple. Le but de ce livre est de donner au lecteur une bonne base de connaissances a partir de laquelle il pourra explorer Maple. Il se concentre donc ` sur l’usage interactif du logiciel. . Elles sont toujours au bout des doigts lorsque vous utilisez Maple. fopen et fclose. nous avons vu un grand nombre de possibilit´s d’entr´es e e et de sorties de Maple : comment imprimer des graphiques. Les hyperliens rendent ais´e la recherche de sujets e connexes. Maple est un langage complet et fournit plusieurs outils de programmation. l’option de recherche ` d’un texte entier est une m´thode de recherche de l’information sup´rieure e e a ` un index traditionnel.5 Conclusion Dans ce chapitre. Le Guide de a e programmation de Maple 8 vous introduit a la programmation sous ` Maple. En particulier. Consultez les pages d’aide pour plus de d´tails. Tout comme un manuel de r´f´rence traditionnel. Maple en document L TE De plus. fscanf. En fait. readbytes. comment e e lire et ´crire des donn´es num´riques et comment exporter une feuille e e e A X ou HTML. utilisez-les en ´tudiant ee e l’index ou en les cherchant une a une. e Les pages d’aide sont en quelque sorte un manuel de r´f´rence interee actif.

une maplet d’int´gration pourrait e ressembler a l’exemple suivant. e e e Son contenu peut ´galement s’av´rer utile aux programmeurs de maplets. vous pouvez cr´er des fenˆtres. e e 8. des boˆ e e ıtes de dialogue et d’autres interfaces visuelles qui interagissent avec l’utilisateur.1 Exemple de maplet Vous pouvez cr´er une interface qui demande l’entr´e d’information de e e la part de l’utilisateur. Par exemple. ` 291 . Le pr´sent chapitre est destin´ en priorit´ aux utilisateurs des maplets.8 Les maplets En utilisant le package Maplets. Les utilisateurs peuvent effectuer des calculs ou tracer des graphiques de fonctions sans utiliser l’interface de la feuille de travail.

e e ıtes auteur de maplet Un auteur de maplet est un programmeur qui utilise du code Maple pour cr´er une maplet. des fenˆtres et leur disposition. e o ee Une maplet peut contenir plus d’une fenˆtre. a son tour. e fenetre Une fenˆtre est un ´l´ment d’une maplet. disposition La disposition d´finit comment les ´l´ments d’une maplet e ee sont affich´s. et chaque fenˆtre. mais plutˆt comme un ´l´ment de maplet. e utilisateur de maplet Un utilisateur de maplet est quelqu’un qui interagit avec une maplet. e .2 Terminologie maplet Une maplet est une collection d’´l´ments incluant.292 • Chapitre 8: Les maplets 8. Une fenˆtre ne doit pas e ee e ˆtre vue comme une maplet. e e ` peut contenir plusieurs ´l´ments r´gissant la disposition et la fonction de ee e cette fenˆtre. sans s’y limiee ter. e ıtes Une mapplet diff`re des autres fenˆtres et boˆ de dialogue en ce qu’elle e e ıtes contient elle-mˆme des fenˆtres et des boˆ de dialogue. des boˆ de dialogue et des actions.

8.2.3 Comment d´marrer le package Maplets e Si vous recevez une feuille Maple contenant du code provenant du package Maplets.3 si vous travaillez sous Red Hat Linux 7. e e > > restart: with(maplets[Elements]). Si cet environnement n’est pas install´. appuyez sur Enter apr`s les derniers deuxe e points (:) ou le dernier point-virgule (. la maplet est ´crite comme deux groupes e d’ex´cution. e e communiquez avec votre administrateur de syst`me. Dans l’exemple suie e vant. e e e . Appuyez sur e Enter apr`s ces deux groupes d’ex´cution possibles.3 Comment d´marrer le package Maplets e • 293 boıte de dialogue Une boˆ de dialogue est un ´l´ment d’une maplet. > > > > mymaplet := Maplet ([ ["Hello World". Important : Vous devez poss´der la version 1.0) sur votre syst`me local. qui peut contenir d’autres ´l´ments comme ` e ee des boutons.). Elle doit ˆtre d´finie avant d’utiliser la commande Display. Dans l’exemple suivant.4 Comment appeler une maplet ` partir d’une a feuille Maple Pour d´marrer une maplet. vous devez d’abord charger ce dernier en m´moire. mais ne peut lui e ıte ajouter d’´l´ments. Button("OK".2 du JavaTM Runtime e Environment Version (ou la version 1. ou n’importe o` dans un groupe u d’ex´cution pour lancer l’ex´cution du code Maplets. la maplet est ´crite en un seul groupe d’ex´cution. Vous pouvez ape e puyer sur Enter n’importe o` dans le groupe d’ex´cution pour d´marrer u e e la maplet. ıte ee Contrairement a une fenˆtre. une boˆ de dialogue poss`de une structure pr´d´finie : un ıte e e e auteur peut sp´cifier les options d’une boˆ de dialogue. e 8. ee 8. Shutdown())] ]): maplets[Display](mymaplet).

cliquez sur ce bouton.5 Comment fermer une maplet Si la maplet contient un bouton Cancel. Ce champ apparaˆ en ıt surbrillance. Si vous d´placez le curseur au-dessus de cette feuille.6 Comment utiliser les Maplets et la fenetre Maple (modalit´) e Lorsqu’une maplet est en cours d’ex´cution. Un menu d´roulant apparaˆ e ıt. Cette derni`re se ferme. Button("OK". o e 2. 8. . Cliquez sur un champ de saisie de la maplet. feuille de travail est inaccessible. Sous Windows : – Cliquez sur l’icˆne X situ´e dans le coin sup´rieur droit de la barre o e e de titre de votre maplet. e 8. La maplet doit ˆtre ferm´e ou autoe e ris´e ` compl´ter une action avant que la feuille Maple soit de nouveau e a e accessible. Choisissez Close. Par e exemple : Sous UNIX : 1. Sinon.294 • Chapitre 8: Les maplets > > > > > with(maplets[Elements]): my2maplet := Maplet ([ ["Hello World #2". sablier sous Windows) apparaˆ indiquant que la ıt. cliquez sur le bouton de fermeture appropri´ pour votre plateforme. une icˆne e o (horloge sous UNIX. la feuille Maple est inace cessible. Shutdown())] ]): maplets[Display](my2maplet). 8. Cliquez sur l’icˆne – situ´e dans le coin sup´rieur gauche de la fenˆtre o e e e de la maplet. Note : Cette icˆne varie selon votre gestionnaire de th`mes.7 Comment activer la fenetre d’une maplet 1.

La commande choisie est ex´cut´e. Voici comment les e utiliser efficacement. e 8. e e e e Remarquez que cette m´thode ne s’applique pas aux listes d´roulantes e e cr´´es avec l’´l´ment ComboBox.8 Comment arreter puis red´marrer une maplet e • 295 2.8. 8. il vous est tou` jours possible d’interrompre le processus en cours. Utilisez la touche Tab pour positionner le curseur sur le bouton de votre choix. Continuez a ajouter des caract`res du nom de l’´l´ment voulu jusqu’` ` e ee a ce que la s´lection d´sir´e soit affich´e en surbrillance. Appuyez sur la barre d’espacement. cliquez sur le bouton X (ou l’icˆne de e o fermeture appropri´e pour votre plateforme) qui figure dans sa barre e de titre.9 Comment utiliser les raccourcis de l’interface graphique Listes d´roulantes e Certaines maplets contiennent des listes d´roulantes. les nombres ou le texte appropri´s. Entrez l’expression. ee ee La barre d’espacement et la touche TAB Vous pouvez utiliser la souris pour cliquer sur un bouton comme Cancel ou OK.8 Comment arreter puis red´marrer une maplet e Lorsque les calculs a effectuer par une maplet sont longs. ex´cutez-la a nouveau au moyen de l’outil e e ` lastmaplet. 2. Entrez le premier caract`re de l’´l´ment de la liste que vous souhaitez e ee atteindre. e e . 1. e 1. c 2. La liste se d´place automatiquement jusqu’` un ´l´ment e a ee commen¸ant par la lettre saisie. 2. > maplets[Display](lastmaplet). Pour red´marrer la maplet. 1. Pour arrˆter la maplet en cours. Vous pouvez ´galement utiliser les touches Tab et la barre e d’espacement de la mani`re suivante.

10 Conclusion Pour obtenir plus d’information sur les maplets. reportez-vous a la ru` brique ?maplets ou au Guide d’introduction a la programmation (Maple ` Introductory Programming Guide). au chapitre 9. .296 • Chapitre 8: Les maplets 8.

182 cˆnes. 192 algsubs. 133 e e en coordonn´es sph´riques. 125 coords. 18 noms valides. 172 additionally. 20 nommer. 125 297 images des. 126. 129 frames. 94 affectations invalides. 3-D. 39 oe e e calcul diff´rentiel. 19 :. 41 animate. 209 e . 53 assignations d’ensembles d’´quations. 168 assuming. 168 add.. 8 π. 176 additionally. 169 nonnegative. 128 animations. 227– 229 approximation de fonctions en s´ries. 211 afficher. 128 e param´triques. tracer le graphique. 53 e multiples. 134 ApproximateInt. 127 e tridimensionnelles. 126 animate3d. 39 cˆt´ gauche d’une ´galit´. 128 coords. 18 . 128 annotations. 126. 6 e ee arrow. 200 assume. 28 :=. 129. 9 e arbre des expressions. 172 axes. 8 ->. 127 frames. 186 arithm´tique ´l´mentaire. see maıte plets. 21 assigned.Index !. 19 affichage du r´sultat e supprimer. 128. 116 oe cˆt´ droit. 91 e e algsubs. 8 about. 55 \. 122 o oe e e cˆt´ droit d’une ´galit´. 168 integer. 28 afficher proc´dures. 140 assign. 9 d´cimales. 198 e alg`bre lin´aire. 12 %. 28 _C. 182 oe cˆt´ gauche. 133 param´triques. 129 en deux dimensions. 78 _Z. 68–70 e approximations a ` virgule flottante.boˆ de dialogue bordure (bounding box). 168 affectation multiple. 131 boˆ ıte de dialogue. 2-D. 89–91.

12 d’int´gration. 194. 14 exp. 178 commandes. 138 cutout. 89 Understand. 276 convert. prolonger par. 138 coeff. 68 e o coordonn´es e cylindriques. 194 en listes et en ensembles. 216 e o s´ries en polynˆmes. 194. 237. 194 e champ de vecteurs. 121 D. 183 e e e d´riv´es. 231. 105. 166 parfrac. 65 coefficients. 167 set. 106 et fonctions param´e triques. 205–207 e concat´nation e chaˆ ınes. 218 e d´finition. 35. 158 combiner des listes. 107 sph´riques. 70. 35 des expressions en fonctions. 144 cylinderplot. 124 combine. 174 courbes dans l’espace. 231 e contourplot. 87–89 Roots. 195 sincos. 21 conditions initiales. 14 list. 275 binary. 31 concat´ner. 167 polynom. 203 . 174 sur des expressions. 270 cone. 127 et fonctions explicites. 65 collect distributed. 154 coloriage. 66–72. 166 hex. 194 convertir. 166 string. 86–89 Tangent. 187 sur des listes.298 • Index calcul diff´rentiel. 194. 230 e continuit´. 89 Rule. 40 concat´nation. 218. 209 d´finition. 87 chaˆ ınes. 276 ln. 137 conversion sous forme de listes. 89–91. 121 polaires. 119 e e correspondance sur des ensembles. 227–229 Hint. see noms de commandes sp´cifiques e compter. 86 e Calculus1 ApproximateInt. 195 s´ries en polynˆmes. 195. 232 mixtes. 127 e coordonn´es sph´riques. 216 rational. 119 e coordonn´es polaires. 32 suites d’expressions. 35. 233 e d´saffectation. 51 en chaˆ ines. 166 factorial. 35. 142 conformal. 35. 251 d´nominateurs. 210 e partielles. 137 constantes. 237. 37. 232 e e d´riv´es partielles.

200 e compl`te. 245 tracer le graphique. 75. 266 e e cˆt´ droit d’une ´galit´. 26 op´randes des. 238 method=laplace. 15 ´quation e d’onde. 25 ensembles. 176 e union. 195 correspondances. 196 evalf. 39 e commun. 190 differentiation. 34 modulo m. 13 Dirac. 28 Diff. 39 oe e e ´quations diff´rentielles e e syst`mes d’. 200 ` un nom. 25–26 e s´lectionner dans. 236 explicit. 211 divide. 37. 239 startinit. 24 vides. 238 e num´riques. 269 empty_set. 24 minus. 140 dsolve. 196 du dernier nom. 78 e ordinaires. 73. 152 degr´ d’un polynˆme. 64 dodecahedron. 256 EDP. 270 tracer le graphique. 197 . 263 display. 10. 277 EDO. 26 e intersection. 38 diff´rence. 132. 86 diff. 238 implicit. 60 e entiers gaussiens. 183 densityplot. 245 dynamique classique. 268 ´quations e aux d´riv´es partielles. 190. 73 conditions initiales. 236 e e m´thode des transform´es de Laplace. 8 e solutions enti`res. 65 denom. 266 de la chaleur. 86 Digits. 255 deux-points. 238 ´cart type. 39. 7 commandes pour. 186 e op´rations sur les. 250 type=numeric. 39 oe e e cˆt´ gauche d’une ´galit´. 73. 259 DESol. 65 e o degree. 95 e echo. 73. 137 DEplot. 25 entiers. 266 conditions initiales. 64. 236 erreurs d’arrondi. 257 DEplot3d. 196–207 e a ` un niveau. 248 type=series. 200 a assigned. 8–9 pr´cision arbitraire. 247 e s´ries. 250 eval. 23 convertir en.Index • 299 d´nominateurs. 237 dsolve. 200 ´valuation. 159 d´velopper e des expressions. 140 display. 210 evaln. 7 calculs sur.

157 factoriser. 65 factorielle. 276 lecture de donn´es depuis. 278 expressions convertir en fonctions. 221 graphiques. 285 en HTML avec MathML. 197 e tableaux. 159 e frac. 154 feuilles sauvegarder. 282 en texte Maple. 20 d´finies par morceaux. 51 identification de. 12. 197 proc´dures. 261 fonction delta de Dirac. 288 ExportMatrix. 197 num´rique. 10. 263 fonctions a ` partir d’expressions. 51 affectation. 183 e num´rateurs de. e 231 rationnelles factoriser. 124 discontinues tracer le graphique. 152 expand. e 187 types des. 278 ExportVector. 201 e e op´randes des. 11 Expand. 282 fichiers ´crire des colonnes dans. 197 exp. 34 vs. 34. 157 modulo p. 169 fractions d´nominateurs de. 39. 154 forme normale factoris´e. 34. 13 e retard´e. 47 et les guillemets. 200 matrices. 264 e de coloriage. e 274 fieldplot. 56. 278 e lecture de colonnes depuis. 30. 39. 274 lecture de commandes depuis. 8 factorisation. 183 e partielles. 201 et substitution. 184 ind´termin´es des. 138 fonction de Heaviside. 286 A en L TEX. 201 e ´valuer e des variables locales.300 • Index en un point. 284 en RTF. 188 Factor. e e 198 niveaux. 283 XML. 101–148 . 108 math´matiques. 150 exporter en HTML. e e 37. 287 en texte. 157 factor. 19 arguments. 15. 200 forcer l’´valuation compl`te. 159 fsolve. 167 sur le mˆme d´nominateur. solve. 188 e e non ´valu´es. 197 tables. 15–16 e prolongement par continuit´. 184 e requˆte sur le contenu des. 193 evaln.

137 contours. 108 fonctions explicites. 142 tracer des points. 135 e e ins´r´s. 139 mod`les d’´clairage. 117 e surfaces. 188 . 211 annotations. e 120 tangente. 129. 288 in´galit´s. 129. 288 plusieurs. 113 tracer plusieurs courbes. 121 cylindres. 107 e sph`res. 119 e e couleurs. 116 fonctions implicites. 118. 120 e sphereplot. 132 raffiner. 101. 111 translater. 103 e cylinderplot. sp´cifier. 288 fonctions de coloriage. 124 objets. 124 conformes. 138 courbes param´triques. 288 ee listes de nombres. 139 afficher. 89 texte. 117 EDO. e e e 288 de densit´. 116 tubes. 123 s´ries. 116 cartes topographiques. 275 Matrices. 138 coloriage. 132 afficher les coordonn´es. 134 titres. 115 animations. 137 champs de vecteurs. 104 root loci. 140 pilotes. 137 coordonn´es polaires. 138 courbes dans l’espace tridimensionnel. 115. see animations. 124 fonctions discontinues. 207 tourner. 122 dans des fenˆtres s´par´es. 116. 194 e singularit´s. 124 e e niveaux de gris. 135 imprimer. 119 styles de lignes. 137 e domaine. 134 bordure (bounding box). 136 surface color´e. 121. 31 hastype. 112 e styles de points. sp´cifier. 256 EDP. 120 e guillemets. 138 e graphiques param´triques 2-D. 118 cylindres. 105 e coordonn´es sph´riques. sp´cifier. 122 en coordonn´es polaires. 269 exporter vers un fichier. 103 3-D. e 114 sur un axe logarithmique. 101 e algorithme adaptatif pour. 116 surfaces param´triques. 113 e courbes dans l’espace. 109 e sph`res. 201 guillemets anglais. 142 tridimensionnels.Index • 301 graphiques ´chelle e de type constrained. 194. 112 styles de lignes.

60 Java Runtime Environment. 188 e e indets. 145 Maple Application Center. 296 Maplets. 229 e int´grales. 135 ImportMatrix. 66. 38. 293 . 180 isolate. 25 loglogplot. 289 HTML. 70. 145 Maple Graphics Gallery. 38 d´sordonn´s. 285 hypoth`ses e poser. 186 e op´rations sur les. 239. 182 lightmode. 32. 181 lhs. 276 de colonnes. 227. 22 combiner. 292 ıte champ de saisie. 22 e s´lectionner dans. 168 retirer. 227 ind´finies.302 • Index Heaviside. 295 e auteur. 284 lecture de code. 188 inequal. 291–296 maplets activer. 136 logplot. 251 majuscules-minuscules. 211 isolve. 22 ee ´l´ments de. 87–89 histogrammes. 136 Loi du refroidissement de Newton. 288 ind´termin´es. 70. 25–26 e ordonn´es. 174 Maple Animation Gallery. 242 invlaplace. 274 imprimer des graphiques. 145 Maple Introductory Programming Guide. 72. 229 e de Riemann. 143 Hint. 91 listes. 293 laplace. 171 voir. 277 verboseproc. 139 HP Laserjet. 71. 124 Limit. 294 ComboBox. 242 A L TEX. 39. 91 e interface echo. 23 e e op´randes des. 135 infolevel. 97. 230 d´finies. 276 length. 168 implicitplot. 87. 179 vides. 261 hemisphere. 276 de fichiers. 178 convertir en. 195 correspondances. 230 e constantes des. 24. 174 map2. 280. 12 map. 212 LinearAlgebra. 158. 295 Display. 169 int´grales. 87. 292 boˆ de dialogue. 243 is. 170. 176 e trier. 91 limites. 294 arrˆter. 274 de commandes. 199 inttrans package. 66.

39. 264 oleplot. 97 e Order. 37 expanded. 140 objets graphiques. 12 piecewise. 295 e travailler avec. 294 utilisateur. 292 e fermer. 291 e fenˆtre. 262 op. 292 MathML. 113 plot . 12–14 nombres imaginaires. 186 des expressions. 14 nombres rationnels. 140 odeplot. 18 nops. 183 objet graphique. 95 msolve. 79 PDEplot. 12 e e vs. 81 utiliser des commandes dans les. 226 mise en page. nombres a virgule flot` tante. 9–11 nommer. 40. 157 mod`les d’´clairage. 184 e op´rateur idem. 293 exemple de l’int´gration. 39 e numer.Index • 303 disposition. 7–10 vs. 286 Matlab. 226 op´randes e de listes et d’ensembles. 197 e nombre d’op´randes. 183 e num´rateurs. 60 mul. 264 graphiques. 176 niveaux d’´valuation. 124 e e modp. 25 e noyau. 152 e factorisation. 14–15 moyenne. 68. 15 mods. 40. 15 modulo. 79 num´rateurs. 197 e Transpose. 12– ` 14 pr´cision par d´faut. 139 max. nombres rationnels. 14 d´velopper. 9–11 nombres complexes. 160 notation fl`che. 184 nombre de. 62 color color. 108 plex. 295 e raccourcis. 184 s´lectionner. 8 e optimisation lin´aire. 280 mod. 184 op. 294 listes d´roulantes. 40. 23. 19 e notation indic´e. 251 packages charger. 276 matrixplot. 80 liste des. 270–271 pi. 40 e nombres a virgule flottante. 295 red´marrer. 292 Elements. 248. 184 normal. 14 e nombres d´cimaux. 93 matrices ´valuer.

63 e retarder l’´valuation. 27 proc´dures e ´valuer. 114 symbolsize. 140 plusieurs assignations. 277 relations accessoires. 139 RootOf. 28 pointplot. 132 point-virgule. 56 e r´currences. 152 reste. 187 supprimer les occurrences de. 128 arrow. 63 quotient polynˆmes. 9 r´soudre e ensembles d’´quations. 115 style=hidden. 46. 55 Roots. 47–49 e in´galit´s.304 • Index color. 129. 61 e rem. 288 plottools. 8 print. 63. 130 legend. 61 e solutions enti`res. 140 plotsetup. 111 plusieurs graphiques. 194 plot3d. approximae tifs. 198 prolonger par continuit´. 49 e e modulo m. 116 axes. 123 lightmodel. 154 regrouper les termes. 65 e division de. 55. 150 degr´ de. 192 relations de r´currence. 63 o remember tables. exacts vs. 89 rotate. 231 e quo. 113 polynˆmes. 280 o reste de polynˆmes. 157 read. 60 e syst`mes d’´quations. 112 numpoints. 112 discont. 45 et v´rifier. 131 linestyle. 33. 60 num´riquement. 114 title. 182 rootlocus. 39. 171 e rhs. 131 grid. 124 plots animate. 63 remove. 177 restart. 124 shading. 197 e afficher. 21 plusieurs courbes dans un graphique. 117 style=line. 41. 45 e ensembles de variables. 61–66 o coefficients de. 125 animate3d. 109. 63 ee trier les ´l´ments. 63 factoriser. 289 e pr´cision entiers. 130 labelsfont. 201 retirer des hypoth`ses. 65 e d´velopper. 114 symbol. 164–166 PostScript. 142 . 111 labels. 49 e e rationalize. 232 r´sultats.

201 supprimer l’affichage du r´sultat. 94 stellate. 188 selectremove. 61 RTF. 215. 92 rsolve. 163. 188 realcons. 28 ee correspondances. 38 imprimer. 197 e tables de rappel. 33. 30. 97 simplifications. 32–35 au moyen des relations accessoires. 278 save. factor. 20 sum. 176 has. 89 tangente tracer le graphique. 26 ´valuer. graphiques. 41 e e sp´cifier les r`gles. 136 seq. 245 e convertir en polynˆmes. 163 singularit´s. 190 suites d’expressions. 29. 141 sphereplot. 252 seq. 33 simplify. 197 e choisir les ´l´ments. 188 hastype. 65 sommes de Riemann. 143 Student Calculus1. 41. 161–164 au moyen des relations accessoires. 210 solutions multiples. 193 substitutions. 109 e NewtonQuotient. 68 simplex. 86–89 s´lectionner e dans des listes et des ensembles. 214 e des sous-expressions. 232 Tangent. 219 vs. e 28 tableaux. 29. 214 type. 62. 30 ´valuer.Index • 305 RowSpace. 28 e sauvegarder listes de nombres. 187 op´randes. 27 tables. 89 . 278 matrices. 49 param´triques. 175 series. 184 e s´ries. 192 subsop. 278 tableaux de nombres. 176 des constantes r´elles. 138 specfunc. 107. 192 e avec hypoth`ses. 189 sph`res. 33. 279 select. 119 spirales. e 251. 164–166. 191. 253 s´parateurs de commandes. 228 sort. 250 stats. 179 sous-expressions. 227. 177 semilogplot. 86–91 subs. 184. 193. 46 e solve. 11 startinit. 287 Rule. 123 sqrt. 40 spacecurve. 89. 201. 194 o s´ries de Taylor. 120 e sphere.

199 whattype. 92 verboseproc. 134 textplot3d. 92 e transpos´e de. 134 titres de graphiques. 276 triangle de Pascal. 188 specfunc. 194. 175 trier d´finir une relation d’ordre. e 115 transform´es de Laplace. 283 texte. 138 type. e 180 des listes. 211 Understand. 164–166 par degr´ total. e 242 inverse. 8 e TEX.306 • Index tests de primalit´. 179 des polynˆmes. 282 textplot. 177. 200 e vecteurs. ´valuer. 181 tubeplot. 184 XML. 20 e unapply. 142 Transpose. 51. 166. 129. 243 translate. 207 tourner des graphiques tridimensionnels. 87 variables locales. 280 texte Maple. 179 e les ´l´ments d’une expresee sion. 165 e par longueur. 178 . exporter. 179 en ordre num´rique. 62. 189 types de donn´es. 288 zip. 62 o en ordre lexicographique. 238. 116 trac´ adaptatif de graphiques.

You're Reading a Free Preview

Download
scribd
/*********** DO NOT ALTER ANYTHING BELOW THIS LINE ! ************/ var s_code=s.t();if(s_code)document.write(s_code)//-->