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

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

´voquant e e ainsi sa capacit´ ` manipuler l’information de mani`re symbolique ou e a e alg´brique. int´grales. des algorithmes num´riques fournissent des r´ponses e e approxim´es aux probl`mes ne poss´dant pas de solution exacte. Maple est en effet tout indiqu´ pour ` e 1 . 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. 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 e Les utilisateurs de Maple ont trouv´ plusieurs mani`res d’utiliser son e e langage et ses feuilles. Une feuille est un document flexible permettant d’explorer des id´es math´matiques et de cr´er des rapports complexes. leurs c a ee chiffriers et mˆme leurs langages de programmation tel FORTRAN. qui requi`rent des valeurs num´riques pour toutes leurs variables. 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 ). En effet. Les chercheurs de plusieurs domaines consid`rent ´galement Maple e e comme un outil essentiel a leur travail. 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. e e sait ´galement manipuler les expressions et les symboles sous-jacents. ´quations diff´rentielles et probl`mes e e e e e e d’alg`bre lin´aire.1 Introduction ` Maple a On appelle le logiciel Maple un syst`me de calcul symbolique. contrairement aux logiciels math´matiques stane e dard. En compl´ment a ces op´rations symboliques. tout en demeurant capable d’´valuer des expressions num´riques. une vaste e e e ` e gamme de routines graphiques facilite la visualisation de donn´es math´e e matiques complexes . leurs calculatrices. e e Maple. et un lane e e gage de programmation complet et accessible permet le d´veloppement sur e mesure de nouvelles fonctions et applications.

mais ´galement faciles a mettre a jour. structur´s et dynamiques ou de modifier une ´quation et d’ace e tualiser sa solution automatiquement. Plusieurs types de documents peuvent profiter des caract´ristiques e des feuilles Maple. cependant. Par exemple. Plutˆt que de e o s’astreindre a des manipulations alg´briques fastidieuses. 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 . 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. ou mˆme d’en ins´rer une nouvelle. l’essai d’une m´thode de r´solution e e e n´cessite parfois plusieurs heures et plusieurs pages.2 • Chapitre 1: Introduction ` Maple a la formulation. facilement et efficacement. les styles font clairement ressortir e e ee les mots cl´s et les titres . leurs ´tudiants ` e e peuvent ainsi se concentrer sur les concepts fondamentaux. e La seconde cat´gorie utilise Maple en tant que syst`me de cr´ation e e e de documents techniques. Elle permet aussi de modifier ais´ment l’une e de ces ´tapes. 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 . Il est en effet possible de cr´er des documents e interactifs. les hyperliens autorisent la cr´ation de r´f´rences dynamiques qui am`nent le lecteur aux pages renfermant de l’information e . Le langage math´matique naturel e de Maple facilite l’entr´e des ´quations. la r´solution et l’exploration de mod`les math´matiques. son interface documente les ´tapes de e e e sa recherche d’une solution. et permet le calcul et le trac´ e e e de graphiques sur demande. e e e Son caract`re symbolique ´largit grandement l’´ventail des probl`mes e e e e qu’ils peuvent ainsi traiter. cr´ant ainsi des feuilles qui sont non seulee ment claires et faciles a cr´er. Les professeurs emploient Maple en classe. 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. deux grandes cat´gories d’utilisation dominent. Traditionnellement. De plus. il est possible d’en apprendre beaucoup sur e e un probl`me. ` e e ` ` Puisque les composantes des feuilles sont directement associ´es a la struce ` ture du document. e e lorsqu’on travaille sur 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. les documents Maple peuvent ˆtre e structur´s en utilisant des outils modernes tels les styles. RTF ou HTML. 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. la division en e sous-sections et les hyperliens. il est facile de les traduire en d’autres formats comme A L TEX. Chacun utilise Maple d’une mani`re toute personnelle selon ses bee soins .

e e 1.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). Enfin. 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. 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. 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. Ces quelques concepts simples vous permettront e d’utiliser Maple a son meilleur. Plus important encore. Ce manuel vous donnera un aper¸u des fonctionnalit´s de Maple. Une e ` attention particuli`re est plac´e non seulement sur la recherche de solue e tions. les commandes et les m´thodes mises a votre disposition.1.1 Les autres manuels • 3 compl´mentaire. il pr´sente la philosophie et les m´thodes d’utilisation sugg´r´es par les e e ee concepteurs du syst`me. le syst`me d’aide de Maple se r´v`le plus pratique que tout autre e e e texte traditionnel. d´crivant a c e e ` la fois ses capacit´s symboliques et num´riques. En effet. Ce livre constitue votre introduction a 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. mais ´galement sur le trac´ de graphiques. et introduisant les obe e jets Maple. 1 . la nature interactive de Maple permet de calcue ler et de r´pondre a des questions durant une pr´sentation. coller et ex´cuter imm´diatement. la cr´ation d’animations e e e et l’exportation de feuilles en d’autres formats. 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. 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. ` Consid´rez ce livre d’abord comme un guide . Vous trouverez ´galement des exemples que vous poue vez copier.

e . 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. sur e les exemples de feuilles de travail ainsi que sur le site Web de Waterloo Maple.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. les proc´dures. les graphiques et le code e e compil´. les structures de donn´es. A l’int´rieur. Le Guide d’introduction a la programmation (Introductory Program` ming Guide) pr´sente les concepts fondamentaux de la programmation e sous Maple : les expressions. Enfin. le Guide de programmation avanc´e (Advanced Programming e Guide) couvre des concepts de programmation comme les modules. les entr´es-sorties. la programmation num´rique. le d´bogage et e e e e e les Maplets. les boucles et les e m´canismes de d´cision. sur le tour guid´ du logiciel (New User’s Tour ). les entr´es-sorties.

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.2 Math´matiques de base e avec Maple Ce chapitre commence par une discussion a propos des calculs num´riques ` e exacts avec Maple. a Si vous souhaitez comprendre davantage les rouages du syst`me e Maple. tapez simplement a l’invite Maple un ` ` point d’interrogation (?) suivi du nom de la commande ou.1 Introduction Les calculs les plus simples dans Maple sont num´riques. Ce chapitre explique les commandes n´cessaires pour commencer e a ` travailler. qui diff`rent l´g`rement de ceux effectu´s par d’autres e e e e applications. 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. vous pouvez utiliser le syst`me d’aide en ligne. ?commande 2. Maple peut e fonctionner comme une calculatrice traditionnelle avec les entiers et les 5 . Des renseignements sur les calculs symboliques de base et les commandes d’affectation suivent. Les chapitres subs´quents donneront a ces commandes ainsi e ` qu’` d’autres un traitement plus approfondi. du sujet sur lequel vous souhaitez obtenir plus d’information. dans d’autres cas.

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

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

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

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

Fonctions math´matiques e Maple connaˆ toutes les fonctions math´matiques standard (consultez la ıt e table 2. 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). −1 > modp(27.2 Calculs num´riques e > 27 mod 4.4).2.2 pour une liste partielle). 0 Lorsque Maple ne peut trouver une forme plus simple. Le package e GaussInt contient une trentaine de commandes permettant de travailler avec ces nombres sp´ciaux. e Maple peut ´galement travailler avec les entiers gaussiens. > mods(27.4). 3 La valeur par d´faut de la commande mod est la repr´sentation posie e tive. ln(π) . o > ln(Pi). > sin(Pi/4). 1√ 2 2 > ln(1). Tapez ?GaussInt pour plus d’information sur e ces commandes. • 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. cosh. cos. arctan. tan. LegendreKc1. 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. BesselJ. BesselY binomial erf. > (1 + x)^2. arcsin. erfc Heaviside Dirac MeijerG Zeta LegendreKc. BesselK. LegendrePic. etc. 2. tanh. etc. etc. LegendreEc1. sinh.2 – Quelques fonctions math´matiques connues de Maple e Fonction sin.16 • Chapitre 2: Math´matiques de base avec Maple e Tab. arccos. . exp ln log[10] sqrt round trunc frac BesselI. LegendreEc.

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

10). e e e 2. C’est pourquoi Maple vous e permet de nommer des objets. 2+x Cr´ez une s´rie. var := x > terme := x*y. terme := x y Vous pouvez mˆme donner des noms a des ´quations.18 • Chapitre 2: Math´matiques de base avec Maple e Divisez un polynˆme en x par un autre. e e > series(sin(x). Vous pouvez affecter un nom a n’importe quelle expression Maple. nom := expression . o > rem(x^3+x+1. x). e ` e > eqs := x = y + 2. ` > var := x.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. 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^2+x+1. eqs := x = y + 2 . x=0. Appliquez la syntaxe suivante.

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

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

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

[a. Martin. Francois . [b. x^2+3*x-1. 3 > h. [b.c.c]. 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. a]. [a.c]. [a. Martin. Francois. 4. 5] > polynomes := [x^2+3.22 • Chapitre 2: Math´matiques de base avec Maple e > f. e > [a. e Maple conserve l’ordre et la r´p´tition des ´l´ments dans une liste. Kim. 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. x2 + 3 x − 1.a] sont trois listes diff´rentes.a].a.c. Kim.c]. 5].b. polynomes := [x2 + 3. lettres := [a. e e > data_list := [1.b. 2 x] > participants := [Simon.b. b. b.a]. data_list := [1. c. Sylvain] Ainsi. participants := [Simon. [a.a] et [a. c]. e e ee Ainsi. b.b. 2*x].c. > lettres := [a. Sylvain]. a.b. 3. c] . [b. 4. c. 3.c. 2.a. une liste est une suite d’expressions encadr´e par des crochets. 2.

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

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

data_set). . Josee]. ee > empty_set := {}. 7}. Sophie Maple reconnaˆ les ensembles et les listes vides (qui ne contiennent ıt aucun ´l´ment).5 Les principaux types d’objets Maple > map(sin. data_set := {3. u e ee e e > participants[2]. Sophie. 6. 3. 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. true > data_set := {5. Josee] > member(Sophie. 7} > member(2. • 25 {0. nombres). false Pour choisir des ´l´ments depuis une liste. utilisez la notation indic´e ee e [n ] . participants). participants := [JeanSebastien. 5. 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.2. Sophie. 6. 1. o` n d´signe la position de l’´l´ment d´sir´ dans la liste.

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

effectuez toutes ces op´rations en mˆme temps. en e e e g´n´ral..3. ee e e > cubes := array( 1..3. 8. 4. carres 1 := 1 carres 2 := 4 carres 3 := 9 Ou. Pour afficher le contenu e ` du tableau.. > pwrs := array(1.8.3. > carres[1] := 1. > carres[2].. 27] Vous pouvez choisir un seul ´l´ment en utilisant la notation appliqu´e ee e aux listes.1..27] ). []) . 4 Vous devez d´clarer les tableaux a l’avance. [1. carres[3] := 3^2.5 Les principaux types d’objets Maple • 27 Assignez des ´l´ments au tableau. carres[2] := 2^2. Cependant. carres > print(carres). si vous pr´f´rez.2. 1. pwrs := array(1.3). vous devez utiliser une commande comme print. cubes := [1.3. D´finissez un tableau e e e de dimensions 3 × 3. 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. les tableaux peuvent en avoir plus d’une. > carres. [1. 9] Le tableau pr´c´dent ne poss`de qu’une dimension.

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. 3 := 1 Poursuivez maintenant avec le reste du tableau. Le e deux-points. > pwrs[2.3] := 1. pwrs[1.2] := 1.1] := 2: > pwrs[3. vous pouvez d´finir le tableau pwrs de la mani`re suie e vante : > pwrs2 := array( 1. [3.1. Assignez d’abord les ´l´ments de la premi`re rang´e.27]] ).1] := 3: > print(pwrs). Si vous pr´f´rez.4. pour supprimer l’affichage du r´sultat. 1 := 1 pwrs 1.1] := 1. 2 := 1 pwrs 1.3] := 8: pwrs[3. [2.28 • Chapitre 2: Math´matiques de base avec Maple e Ce tableau est de dimension deux (deux ensembles d’indices).8]. 1.3.3. tout comme le point-virgule. pwrs 1..9. > pwrs[2.3]. Ainsi. pwrs[2. est un s´parateur de come mandes. .2] := 9: pwrs[2.1]. 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.).2] := 4: pwrs[3. [[1. vous ee pouvez terminer chaque commande par le deux-points (:) plutˆt que par o le point-virgule habituel (.. ee e e > pwrs[1. 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. Pour ce faire.

2. cependant..2. 2. 1) = 1 (1. Pour effectuer des substitutions de ce genre.. 1.2. ee Supposons que vous souhaitez remplacer chaque apparition du nombre 2 dans pwrs par le nombre 9. expr_principale ) Par exemple. 1. utilisez la commande subs. 2) = 6 (2. Sa syntaxe de base est la suivante : subs( x =expr1.[3. 2.6].. 1) = 7 (2.2].[7.2. pour certaines commandes. 2) = 4 (2.4]]. [ (1. 1. ceux e a qui contiennent plus de deux dimensions sont difficiles a afficher. e > expr := z^2 + 3. supposons que vous souhaitez remplacer z par x + y dans une ´quation.8]]] ).2. 1. 2) = 2 (1.2.2.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 . . y =expr2.   tableau3 := array(1... . e e e > tableau3 := array( 1.. 1) = 3 (1. 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. [[5. 1. 2.. 2) = 8 ]) Maple n’´tend pas automatiquement le nom d’un tableau a la e ` repr´sentation de tous ses ´l´ments. 1) = 5 (2. 2. 1.. e ee vous devez sp´cifier que vous souhaitez effectuer une op´ration sur les e e ´l´ments. > [[[1. 1. Si vous ` le souhaitez. expr := z 2 + 3 . 1. Ainsi.

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

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]

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

[f(a.b. y ). 1. y)] Par exemple. data_list := [0. 1 3 π. f(b). l’utilit´ et la puisa e sance de la commande map ne devraient pas ˆtre sous-estim´es.c]. 2 π] 2 2 [0. y). La e ` ee commande map applique une commande a chaque ´l´ment de la structure ` ee de donn´es ou de l’expression fournie. Prenez le e e temps n´cessaire pour vous assurer que vous connaissez bien l’utilisation e de map. ` > map( f. ln(x). Maple ` passe les derniers a la commande initiale.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. x).b.c] ). Pi/2. 3*Pi/2.ln(x). x2 ] > map(Diff. fcn_list. des ene sembles et des tableaux. π. [a. f(b. fcn_list := [sin(x).x^2]. x. −1. pour d´river chaque ´l´ment d’une liste par rapport a e ee ` x. x. [a. [ d d d 2 sin(x). 2*Pi]. vous pouvez utiliser les commandes suivantes : > fcn_list := [sin(x). x. y). Mˆme s’il est possible d’´crire des e e e boucles dans un programme pour accomplir ces tˆches. f(c)] > data_list := [0. [f(a). > map(sin. f(c. x. > map( f. l’une des plus puissantes fonctions de Maple. data_list). 0] Si vous donnez a la commande map plus de deux arguments. ln(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. x ] dx dx dx .

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

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

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

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

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

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

+ 12 t + u. − − 7 t − u] 13 13 13 13 13 13 .eqn5}.z. Par exemple. 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. e e e > eval( s2. s2 ).y.t. e Cependant.t=1} ). { x. ainsi. ´valuez la solution en u = 1 et t = 1.eqn4. [− 28 635 70 70 59 527 − 7t − u.eqn3.u}). essayez e ee la commande suivante. y = 3. z}). y. e e > s1 := solve({eqn1. ee solve ne retournera pas n´cessairement les solutions dans l’ordre x.z]. Maple retourne ensuite les solutions en fonction des autres inconnues. {u=1.eqn3}. u = 16} Vous pouvez ´galement choisir de r´soudre pour un sous-ensemble des e e inconnues . > s2 := solve({eqn1. z = − − 7 t − u. {x. supposons que vous n´cessitiez que les cinq solutions trouv´es par solve soient plac´es dans un ordre particulier. > eval( [x. 527 28 70 59 − 7t − u.y.z= . z = −1. s1 := {x = 2. t = −11. z.y= } 13 13 13 ` e Tout comme a la page 47. les listes pr´servent l’ordre de leurs ´l´ments . {x = −646 −220 861 . e e Puisqu’il est impossible de fixer l’ordre des ´l´ments dans un ensemble. y.eqn2.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.eqn2.

d´finissez x = x(u. Par souci de commodit´.-`-d. u=0. unapply.3. > f := unapply(x^2 + y^2 + 4. 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). Pour ce faire. t). et non une fonction. il suffit de fournir a e ` ` unapply l’expression et les variables a partir desquelles Maple doit faire une fonction. il faut utiliser une autre commande tr`s importante. s2 ). t) et z = z(u.. x(1. t=0.1 R´solution au moyen de solve e • 51 Non seulement cette commande a fix´ l’ordre des solutions. –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. y = y(u. > eval( x. convertise e a sez les solutions en fonctions). axes=BOXED). cela est une expression pour x. t) (c. . Souvenez-vous que vous pouvez facilement choisir l’expression d’une solution pour une variable particuli`re en utie lisant eval. x. Cette possibilit´ est particuli`rement utile lorsque vous souhaitez e e tracer la surface qui repr´sente la solution. par exemple. e > plot3d(%. Ainsi. − 28 527 − 7t − u 13 13 Cependant. 1) Pour transformer l’expression en une fonction.2. y).2.1). > x(1..

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

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

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 . Appelez la fonction f en utilisant un argument autre que 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. que l’on ´crive f (x). malgr´ les apparences. la seconde d´finit la fonction f : x → 2x3 + x de mani`re e e ` fonctionner. f (x) est e e simplement le nom de l’expression 2x3 + x. ` e > f(x). et non une fonction. cependant.s3).54 • Chapitre 3: Trouver des solutions s3 := f(x) = 2 x3 + x > assign( s3 ). Il vous reste cependant a cr´er une fonction. f(x) := 2 x3 + x qui n’est pas du tout semblable a l’affectation ` > f := x -> 2*x^3 + x. 2 x3 + x produit la r´ponse attendue . f (y) ou f (1). a e Pour d´finir la solution f comme une fonction de x. > f(1). utilisez unapply. 2 x3 + x .

320816347 I}. x).320816347 I}. Cela signifie que x est une racine e e du polynˆme z 5 − 2z + 3.2467292569 − 1. e . index = 2)}.2*x + 3 = 0}. {x = RootOf(_Z 5 − 2 _Z + 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.3. {x = RootOf(_Z 5 − 2 _Z + 3.423605849}. {x = RootOf(_Z 5 − 2 _Z + 3. 3 La commande RootOf ` A l’occasion.9585321812 − . index = 4)}. {x = .{x}). index = 1)}. index = 5)} RootOf(expr ) est un nom g´n´rique pour toutes les racines de expr. o` le param`tre index num´rote et ordonne les o u e e solutions. e vous obtenez une forme explicite des racines complexes. e > solve({x^5 . e e et _Z est un nom g´n´rique pour x.2467292569 + 1. • 55 f := x → 2 x3 + x > f(1). Consid´rons l’exemple suivant. {x = −. Maple retourne ses solutions a l’aide de la commande ` RootOf. {x = .9585321812 + . index = 3)}.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.4984277790 I}. {x = RootOf(_Z 5 − 2 _Z + 3.1 R´solution au moyen de solve e > f := unapply(%. {x = RootOf(_Z 5 − 2 _Z + 3. > evalf(%). En utilisant la commande evalf. {x = −. {x = −1.

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

333333333} Vous pouvez ´galement sp´cifier l’intervalle dans lequel chercher une e e racine en particulier.57079632679489661923132169164} Les limites de solve La commande solve ne s’applique pas a toutes les situations. e e ` Math´matiquement parlant. {x = 1. 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.712388980} Dans plusieurs cas. la solution trouv´e ne garantit pas une pr´cision de trente d´cimales . Dans ces situations. {x = −. {x}. {x}. complex). Remare e quez que dans l’exemple suivant. e .5622795121 I}.2*Pi). 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. 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. e > Digits := 30. {x = 5. {x = 4. Pour am´liorer la pr´cision de solutions.5622795121 I}. mais il est fort e possible que vous deviez avoir recours a une solution num´rique en cas ` e d’´chec. fsolve peut ´chouer dans sa recherche d’une rae cine. {x}). {x = 1.6623589786 + .3. Digits. e e vous pouvez augmenter la valeur de la variable sp´ciale. cependant.6623589786 − . Pi.324717957}.2 R´soudre num´riquement : fsolve e e > fsolve({poly}.. sp´cifier un e e intervalle peut aider Maple. mˆme si une telle racine existe. > fsolve({cos(x)=0}. Digits := 30 > fsolve({cos(x)=0}. • 57 {x = −. Maple e e e tente de les r´soudre symboliquement le mieux possible.

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

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

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

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

(1 − I) x + 3 + 4 I > a*x^4 + b*x^3 + c*x^2 + d*x + f. −x4 − x3 + x2 + x + 1 .1/3. 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 .I)*x + 3 + 4*I. les prochaines e o sections en examinent quelques-uns. 1 1 2 √ x − 3x − 2 3 > (1 . Plutˆt que de conserver une e e o deuxi`me copie du polynˆme original dont les termes ont ´t´ tri´s.62 • Chapitre 3: Trouver des solutions x+y+z > 1/2*x^2 . vous remarquerez qu’il demeure tri´ : ea e > sort_poly := x + x^2 . 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. si vous affichez le polynˆme apr`s l’avoir o e o e pass´ ` sort.sqrt(3)*x . Ainsi.x^3 + 1 . 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. −x4 − x3 + x2 + x + 1 > sort_poly. sort _poly := x + x2 − x3 + 1 − x4 > sort(sort_poly).x^4.

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

x). > poly := x^2 + 3*x . q := x − 1 > collect( (x^2+x+1) * q + r. x3 + x + 1 Dans certaines situations. 6 . x^2+x+1. 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. La commande divide v´rifie la o e division polynomiale exacte. x^2+x+1.y.y^3. x ). r := 2 + x > q := quo(x^3+x+1. x=2).4. x . Parmi les op´rations les plus fondamentales. 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).y^3. x). Maple fournit les commandes rem et quo pour d´terminer le e reste (remainder en anglais) et le quotient d’une division polynomiale.y). true > rem(x^3 . > divide(x^3 . > r := rem(x^3+x+1. x .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. x). 0 Vous ´valuez les polynˆmes en des valeurs comme avec n’importe e o quelle expression en utilisant la commande eval.

3*z + 1. −1 > degree(poly.z). {y=1.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 . −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. poly := 3 z 3 − z 2 − z + 1 > coeff(poly. e > poly := 3*z^3 . 3.4 Les polynomes • 65 Tab. 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.z^2 + 2*z . z^2). o e e . mul _var _poly := y 2 x − 2 y + y x2 + 1 > eval(mul_var_poly.2*y + x^2*y + 1.3.x=-1}).

x^5 . etc.9*x^4 + x^3 + 20*x^2 + 12*x. {x = −3}. . (x + 3)6 > solve({poly3=0}. (x + y) (x2 − x y + y 2 ) Maple factorise le polynˆme sur l’anneau contenant les coefficients o (entiers. {x = −3}. x (x − 2) (x − 3) (x + 2) (x + 1)2 > poly2 := (x + 3). {x}). {x = −3}.). {x = −3}.66 • Chapitre 3: Trouver des solutions > poly1 := x^6 . {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. poly2 := x + 3 > poly3 := expand(poly2^6). poly1 := x6 − x5 − 9 x4 + x3 + 20 x2 + 12 x > factor(poly1). poly3 := x6 + 18 x5 + 135 x4 + 540 x3 + 1215 x2 + 1458 x + 729 > factor(poly3). {x = −3}. e e o Consultez la rubrique d’aide ?factor pour obtenir plus de renseignements.

Par exemple. Calculez la limite d’une fonction rationnelle lorsque x tend vers 1.3. > f := x -> (x^2-2*x+1)/(x^4 + 3*x^3 . il est utile pour calculer les e e limites des fonctions. x=1).7*x^2 + x+2).5 Le calcul diff´rentiel e Maple offre plusieurs outils puissants permettant la r´solution de e probl`mes de calcul diff´rentiel.5 Le calcul diff´rentiel e • 67 Tab.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 . 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(%). 3. f := x → > Limit(f(x).

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

• 69 p := 4 x − 38 3 421 5 x + x 3 30 > plot({f(x).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. 2 1 –1 –0.20 –1 –2 0. p}. Order := 12 > fs1 := series(f(x).. -2. on remarque l’am´lioration escompt´e de e e e e e la pr´cision de l’approximation.. .4 0. -2.polynom).1.5 Le calcul diff´rentiel e > p := convert(fs1.6 0.1.x=-1.6–0. x=0).2).3.2).. x=-1. 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.8–0. 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 0..

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

Par exemple. x). et retourne donc un r´sultat inattendu. 2 sin(a x) + x cos(a x) a + 2 b x dx 1 > value(%). . 2 1√ π erf(x) 2 ` A quelques occasions. Les r´sultats peuvent ˆtre calcul´s en une seule commande e e e e en utilisant respectivement diff et int.3. e e e > Int(exp(-x^2)..infinity). g := t → e(−a t) ln(t) > Int (g(t). e e e a > Int(df. e(−x ) dx > value(%).x=1. e e e recalculez l’int´grale pr´c´dente sur l’intervalle de x = 1 ` x = 2. Maple ne peut d´terminer si une variable est e r´elle ou complexe. 2 sin(2 a) + 3 b − sin(a) Consid´rez une int´grale plus compliqu´e. t=0..2). e e > g := t -> exp(-a*t)*ln(t). ∞ 0 e(−a t) ln(t) dt > value(%).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. Vous pouvez ´galement effectuer des int´grales d´finies.

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

x)=z(x). _C4. y := y Maple peut ´galement r´soudre des syst`mes d’´quations diff´rene e e e e tielles . diff(z(x). le syst`me suivant form´ de deux ´quations simule e e tan´es du second ordre. . . soln := { y(x) = −_C1 sin(x) + _C2 ex − _C3 cos(x) + _C4 e(−x) . soln). y := x → −_C1 e(−x) + _C2 ex − _C3 sin(x) + _C4 cos(x) > y(1). e . y := y .78 • Chapitre 3: Trouver des solutions > y := ’y’. par exemple. de_sys := { d2 d2 y(x) = z(x). {z(x). e > de_sys := { diff(y(x). eee e > y := ’y’.x.. 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). −_C1 e(−1) + _C2 e − _C3 sin(1) + _C4 cos(1) Vous pouvez d´r´f´rencer les solutions lorsque vous en avez termin´. Maple produit automatiquement les constantes appropri´es _C1.y(x)}).x)=y(x) }. z(x) = y(x)} dx2 dx2 > soln := dsolve(de_sys. x ).x. 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.

. 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 ea Ces commandes sont charg´es lorsqu’elles sont appel´es — il n’est pas e e n´cessaire de les charger explicitement. Ce noyau constitue la base du syst`me.. 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). Chacun e e des nombreux packages de Maple contient un groupe de commandes effectuant des calculs apparent´s.7 L’organisation de Maple • 79 3. suivi de la commande d´sir´e.7 L’organisation de Maple Au d´marrage. Maple ne charge en m´moire que le noyau (en anglais e e kernel ) de son programme. La biblioth`que principale contient les commandes Maple les plus e fr´quemment utilis´es (excluant celles d´j` contenues dans le noyau). ) Si le package poss`de un sous-package. ces groupes de fonctions se situent au-dessus du noyau. e e package[souspackage][cmd] (. Par exemple.3. Utilisez le nom complet du package. e e package [cmd ]( .. 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. le package LinearAlgebra e contient des commandes pour la manipulation des matrices. suivi de la commande d´sir´e. 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. e e e Le noyau est form´ de code C hautement optimis´ et totalise environ e e 10% de la taille du syst`me. 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.) Puis. utilisez le nom complet du pace kage.. le nom complet du sous-package. e 1. La e e biblioth`que se divise en deux groupes : la biblioth`que principale (main e e e library ) et les packages. e Les derni`res commandes de la biblioth`que sont les packages. 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). Vous pouvez utiliser une commande d’un package de trois mani`res. e e . Hi´rarchiquement. entrez le nom abr´g´ de la commande.

.) 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. cmd ) Si le package poss`de un sous-package. e e cmd (.) 3. entrez le nom abr´g´ de la commande.80 • Chapitre 3: Trouver des solutions cmd (.. Activez les noms abr´g´s pour toutes les commandes d’un package en e e utilisant la commande with.) 2. cmd ) Puis. > with(Student[Calculus1]).. Activez le nom abr´g´ d’une seule commande d’un package. entrez le nom abr´g´ de la commande. utilisez la commande with de e la mani`re suivante.. e e with(package.. e with(package[souspackage] ) Puis. with(package ) Si le package poss`de un sous-package.. e with(package[souspackage].. utilisez la commande with de e la mani`re suivante. e e cmd (.

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

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

MathML Commandes qui importent et exportent des expressions Maple en texte MathML. d’affichage et de r´solution de e relations de r´currence lin´aire. lignes. (Ce package est accessible seulee e ment si Matlab est install´ sur votre syst`me.3. des boˆ de diae e ıtes logue et d’autres interfaces visuelles qui interagissent avec l’utilisateur. Groebner Commandes pour les calculs en base de Gr¨bner . e liesymm Commandes servant a caract´riser les sym´tries de contact des ` e e syst`mes d’´quations aux d´riv´es partielles. e e e e linalg Plus de 100 commandes de manipulation matricielle et vectorielle . e e inttrans Commandes qui permettent de travailler avec les transformations d’int´grales et leurs inverses. LREtools Commandes de manipulation. e e e ListTools Commandes de manipulation de listes. Matlab Commandes qui exploitent plusieurs des fonctions matricielles num´riques de Matlab. calculer avec de grandes matrices nue m´riques et effectuer des op´rations d’alg`bre matricielle. 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. en particuo lier.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. triangles ` et cercles.) e e MatrixPolynomialAlgebra Ensemble d’outils de manipulation alg´e brique des polynˆmes matriciels. incluant les valeurs et les vecteurs propres. e LibraryTools Commandes de manipulation et de traitement de biblioth`ques. les e d´terminants et la d´composition LU. e e Maplets Commandes permettant de cr´er des fenˆtres. e group Commandes permettant de travailler avec les groupes de permutations et les groupes finiment pr´sent´s. outils de calcul pour les alg`bres de Ore et les D-modules. e e e LinearFunctionalSystems Commandes qui permettent de r´soudre des e syst`mes lin´aires de fonctions avec des coefficients polynomiaux. de l’addition de matrices aux vecteurs et valeurs propres. 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. o .

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

Slode Commandes servant a trouver des solutions a des EDO lin´aires ` ` e sous forme de s´ries enti`res. Dans des versions e ` futures de Maple. Come e prend les algorithmes de Gosper et de Zeilberger. les volumes de r´volution. inclut des commandes pour e le calcul de la moyenne. simplex Commandes d’optimisation lin´aire utilisant la m´thode du sime e plexe. Le premier de ceux-ci est Calculus1. e e Sockets Commandes permettant les communications r´seau avec Maple. de l’int´gration et du calcul des limites. 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. les coefficients de corr´lation. 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. e Student Sous-packages sp´cifiques a certains cours. la visuae lisation de la m´thode de Newton. e e e e .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. e e SolveTools Commandes qui permettent de r´soudre des syst`mes e e d’´quations alg´briques. stats Manipulation statistique de donn´es . sumtools Commandes de calcul de sommes d´finies et ind´finies. l’´cart type. de mˆme que des routines pour trouver les points critiques d’une expression. la e e variance et l’analyse de r´gression. les sommes de Riemann.3. e StringTools Commandes optimis´es de manipulation des chaˆ e ınes de caract`res. e e tensor Commandes permettant le calcul tensoriel et ses applications a ` la th´orie g´n´rale de la relativit´. 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. Sumtools Outils permettant de calculer des formes ferm´es de sommes e d´finies et ind´finies. e a Calculus1 Commandes permettant de d´cortiquer les ´tapes de la e e e e diff´rentiation. la e e longueur d’arc. ce package sera ´largi pour inclure d’autres souse packages li´s ` l’enseignement. o e Spread Outils permettant de travailler avec les feuilles de calcul dans Maple.

> Int(x*cos(x) + x.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. d (4 x2 ) = 8 x dx Consid´rez maintenant cet exemple d’int´gration. Consid´rez le probl`me suie e e e vant : trouvez la d´riv´e de la fonction 4 ∗ x2 . e e > with(Student[Calculus1]): > infolevel[Student] := 1: Pour voir la liste de toutes les commandes charg´es par Maple. ` > Diff(4*x^2. x). x=0.. remplacez e les deux points par le point-virgule a la fin de la commande.Pi). d (4 x2 ) dx Utilisez la r`gle constantmultiple. π x cos(x) + x dx 0 Utilisez la r`gle sum. e > Rule[power](%). e > Rule[sum](%). e > Rule[constantmultiple](%). d’int´gration et de limites. Creating problem #1 d d (4 x2 ) = 4 ( (x2 )) dx dx Utilisez la r`gle power. Creating problem #2 . Int´grez x∗cos(x)+ e e e x entre x = 0 et x = π.

[parts . power. e > Rule[power](%). > Rule[%](%%). constant. de la e ` e constante multiplicative. ‘c*‘. de la puissance et de la somme pour le prochain exemple.3. Sp´cifiez a Understand les r`gles de la constante. π 0 x cos(x) + x dx = −2 + 1 2 π 2 Employez le package Student[Calculus1] pour calculer la limite de (1 + 1/x)x . 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. > Understand(Limit. x. sum). π π 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. e > Rule[sin](%). . sin(x)] Utilisez cet indice avec la commande Rule. e e e > Hint(%). π 0 π x cos(x) + x dx = − 0 sin(x) dx + 1 2 π 2 Servez-vous de la r`gle sin pour terminer le calcul.8 Les packages Maple π π π • 87 x cos(x) + x dx = 0 0 x cos(x) dx + 0 x dx Utilisez la r`gle power.

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

-2. Tracez-en le graphique..8 Les packages Maple • 89 x→∞ lim (1 + 1 x ) = e(limx→∞ x x ) x+1 > Hint(%).   rewrite. de mˆme e e que la pente de sa tangente en x = 0. > Tangent(-2/3*x^2+x. . TheTangenttotheGraphof f(x)=–2/3*x^2+x atthePoint(0. 3 ] 2 Vous pouvez calculer l’aire sous la courbe entre ces deux points au moyen de sommes de Riemann. x = x+1  1  1 1+ x > Rule[%](%%). x=0. output=plot.2.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). [0. x→∞ lim (1 + 1 x ) =e x Consid´rez la fonction −2/3 ∗ x2 + x. > showtangent=true).

2 1.3/2.3/2] UsingaMidpointRiemannSum ApproximateValue:. AnApproximationoftheIntegralof f(x)=–2/3*x^2+x ontheInterval[0.2 Area:. > ApproximateInt(-2/3*x^2+x.3/2] UsingaMidpointRiemannSum ApproximateValue:.8 x 1 1.3 0.2 0.1 0 –0.1.6 0.1 0 –0. method=midpoint.  n−1 i=0 3 2  1 1 (i + )2 3 i +  3 2 + 2 −  2 2 n 2 n n . > partition=40).2 Area:. AnApproximationoftheIntegralof f(x)=–2/3*x^2+x ontheInterval[0.2 1..1.3750000000 0..4 1.15.4].. -0.. method=midpoint. augmentez e a ` 40 le nombre de boˆ utilis´es.90 • Chapitre 3: Trouver des solutions > ApproximateInt(-2/3*x^2+x.4 1.4 0. > output=plot. method=midpoint.3768750000 f(x) Puisque le r´sultat n’est pas une bonne approximation.2 0. view=[0.0.6.3751171867 f(x) Quelle est la valeur exacte ? Utilisez d’abord n boˆ ıtes et calculez la formule de la somme. > output=sum.4 0. x=0.3 0.4 0.3/2. -0.3750000000 0.6 –0.3/2.2 0.0. view=[0..4 0.. x=0. x=0.8 x 1 1.. partition=n). ıtes e > ApproximateInt(-2/3*x^2+x.6.6 0.2 0.4]).15.6 –0.1 0. > output=plot.1 0.

> Limit( %. vn } est lin´airement ind´pendant si et seulement si. 3/2 0 − 2 2 x + x dx 3 > value(%). e ee e e Un ensemble de vecteurs {v1 .3. n=infinity ). 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 ∞.3/2 ). un ensemble de vecteurs lin´airement ind´pendants e e e e qui engendrent l’espace vectoriel se nomme une base. . . .  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. Le package LinearAlgebra En alg`bre lin´aire. v3 .  n−1 i=0 3 n→∞ 2 lim > value(%). e > Int(-2/3*x^2+x. reporteze vous au chapitre 6. x=0. lorsque c1 v1 + c2 v2 + c3 v3 + · · · + cn vn = 0 alors c1 = c2 = c3 = · · · = cn = 0. 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. . . v2 ..

−2]] . 1. 0].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]. 3. −1. 1] + c2 [5. −5] par rapport a cette base. 0.v2. 1. il forment une base. b := [[1. 3. −1] + c3 [6. −1]. −1] et [6. ` Solution : Entrer les vecteurs. −3.0> ). Exprimer le vecteur [1.  −_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. 1. [0.v3>.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). c1 [1. e e Pour v´rifier l’ind´pendance lin´aire. 0. La e commande RowSpace retourne une base pour un espace vectoriel donn´. ´crivez l’´quation c1 v1 +c2 v2 +c3 v3 = e e e e e 0. Ils ne peuvent donc pas former une base. 2. > > > > > with(LinearAlgebra): v1:=<1|-1|0|1>: v2:=<5|-2|3|-1>: v3:=<6|-3|3|0>: vector_space:=<v1. −2. 3. <0. [5. 0. 3.  1 −1 0 1 vector _space :=  5 −2 3 −1  6 −3 3 0 Si les vecteurs sont lin´airement ind´pendants. 0] = [0. 3.0. 0. −2. −1. e > b:=RowSpace(vector_space). 0. −3.

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

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

002. . .68. 2)] Le sous-package describe contient des commandes servant a l’analyse ` de donn´es. readings := [Weight(. 01 sont suffisamment petites pour e ˆtre n´gligeables. 2).003. Weight(0. 2). 45.874.01. 2). . 2) ].72. Weight(1.83. readings := [Weight(. 75. . .75.01.83. 0.9125.83. . 2).04.81.75.9125.01. La diff´rence se comprend plus facilement au moyen d’un ee e e exemple.003. . ..8 Les packages Maple • 95 Le package stats traite les donn´es sous la forme de listes statise tiques . il est possible de les regrouper et de ne sp´cifier qu’un e e e intervalle (en utilisant “. .0. > readings := [ Weight(.9125.9125. 2).83.874.002 ]. .04.874. 2). . 82. Weight(1. .04.n ) indique que la valeur x apparaˆ n fois dans ıt la liste. marks est une liste standard.04.04. 72. > . .04. .82. Si des diff´rences de moins de 0.83. .75. . .002] L’expression Weight(x.75.75.”). . 76.75. .83.874. qui peuvent ˆtre de simples listes Maple. 1. . marks := [64.93. > readings := [ 0. 1.. Weight(.. 1. 81. Weight(1.01.01. 68. . e ` > readings := [ Weight(.3. .003. 93. .002.002] qui sont ´quivalentes a cette liste statistique.01. e > describe[mean](marks)..75.874. Weight(1.75.002 ].003. . . .45. > .73]. readings := [.874. 2).9125. > marks := > [64. 2). .75. 73] tout comme readings. . > . Une liste statistique peut e ´galement contenir des intervalles et des valeurs auxquelles des poids ont e ´t´ assign´s.003.76. .01. 1.01. .003.9125. .

−.599692668. .0. −. . . . .583279600. .1238893314. −.04721150696.4386378394.8670709448.-2.7765483851. .6341448687.01231563388. .3876183720. −.4128440679] > ranges:=[-5.. .. −. 1. −. 1. −1. . 1. −. −.7304597374.6707087107.2620109124.. . .002.452138520.407989130. −. −.2068680316. .4038750456 Ce package contient plusieurs distributions statistiques.7709242575.. 45. 1.1.858250470.3045008349. −.625165927.6819890237. −. −.095665255.-1. G´n´rez des e e donn´es al´atoires en utilisant la distribution normale..6385850228.8876933468.253885017. . .2. −. . .140005385.03801888006.1529160443. groupez-les en e e classes et tracez un histogramme de ces classes.01 > describe[standarddeviation](readings).1729739933. > random_data:=[random[normald](50)]. .4470293004.-2.005183053789.8364873682...09467224460.1. random_data := [1.463572278.93 > describe[range](readings).5]. .342701867.6917100232.4996033128. 2.7648245898.283733823.1093403084.9886372087. . −1.1. −1. 2. −1.5872984199. −1.2.0.8181350112. −. −.. 1.4908898750.1231141571.162605068.-1. .3758638317. .7487697029.96 • Chapitre 3: Trouver des solutions 729 10 > describe[range](marks). .08547526754. −.

−2.. − 2.. 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. Weight(2. Vous devez ´galement vous rendre aux quatre endroits en moins de vingt minutes. vous pouvez trouver la solution optimale. Imaginez-vous en livreur de pizza : vous devez livrer quatre pizzas en quatre endroits diff´rents dispers´s dans la ville.2.ranges).2.0.. 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. Weight(0. − 1. L’optimisation lin´aire permet e de trouver des solutions optimales a des ´quations soumises a certaines ` e ` contraintes.. 0. 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. 1. 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).8 Les packages Maple • 97 ranges := [−5. Un exemple classique d’optimisation est le probl`me de la livraison de e pizza. e de mani`re que les pizzas demeurent chaudes.. e > with(simplex). 20). Weight(−2.... − 2... − 1.3. Weight(−5. 0).0.1.5. data_list := [Weight(1. Vous souhaitez livrer e e toutes les quatre en utilisant le moins de carburant possible. 2. 6). −1..5] > data_list:=transform[tallyinto](random_data..1. Weight(−1. 5). e e Voici un petit syst`me en guise d’exemple. 17)] > statplots[histogram](data_list). .

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

vous pouvez interrompre ici votre ´tude pour travailler e (ou jouer !) avec Maple.3. e ` A votre guise. . 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. z = . Que vous utilisiez ou non les commandes solve.1 vous e e e a introduit aux commandes solve et fsolve de mˆme qu’` leur utilisation e a ad´quate. A e e ` u ce point de votre lecture. La section 3.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.9 Conclusion • 99 1 49 {x = 0. y = } 2 8 3. e ` Les derni`res sections du pr´sent chapitre ont introduit les manie e pulations. ces m´thodes e e s’av`reront utiles a de nombreuses reprises. vous ne connaissez pas encore tout a fait ce ` logiciel. Vous en savez cependant suffisamment pour commencer a utiliser ` Maple de mani`re efficace.

100 • Chapitre 3: Trouver des solutions .

. x=-2*Pi.1 Graphiques en deux dimensions Lorsqu’on lui demande de tracer une fonction donn´e explicitement y = e f (x). 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 . implicites et param´triques et exploiter plusieurs syst`mes de e e coordonn´es. Maple peut g´rer les formes e explicites. anim´s ou e non. ıtre > plot( sin(x). la meilleure mani`re de mieux comprendre une structure e math´matique consiste a en tracer le graphique. La flexibilit´ de Maple vous permet de manipuler ais´ment e e e des graphiques dans de nombreuses situations.2*Pi ). affichables selon n’importe quel angle.4 Tracer des graphiques Quelquefois.5 –6 –4 –2 0 –0.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. 4. Maple doit connaˆ la fonction et son domaine. 1 0. Maple peut produire e ` plusieurs formes de graphiques : en deux ou trois dimensions.

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

il est impossible d’exprimer la variable d´pendante sous forme de e fonction y = f (x). la plupart des valeurs de x correspondent deux valeurs de y. par exemple.2*Pi ] ). e plot( [ x-expr.2 0. par exemple t. sin(t). > plot( [ cos(t).5 –1 0.8 1 Les points (cos t. .5 0 –0. 1 0.1 ] ). y-expr.6 0.4.. parametre =intervalle ] ) Vous tracez ainsi une liste contenant x-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. t=0.. Par exemple : e > plot( [ t^2. t=-1.4 0. Sur un cercle. t^3. sin t) forment un cercle. e eea e Utilisez la syntaxe suivante pour utiliser les graphiques param´triques. y-expr. en d’autres e e e mots. Une solution consiste a rendre a la fois ` ` x et y d´pendantes d’un autre param`tre.1 Graphiques en deux dimensions • 103 0 x infinity Les graphiques param´triques e Certains graphiques ne peuvent ˆtre sp´cifi´s explicitement .

Voici le mˆme grae e phique pour lequel on a sp´cifi´ le param`tre scaling=constrained..5 –1 –0. 1 0. Il e e e est possible de changer l’´chelle des axes en utilisant les menus ou l’option e scaling. .3 ).104 • Chapitre 4: Tracer des graphiques 1 0. > plot( [ cos(t).5 1 Plutˆt que de produire un cercle. x=0. scaling=constrained ). Le ` e graphique suivant est trac´ sans l’option constrained (unconstrained).5 –1 0. t=0. le graphique ci-dessus ressemble dao vantage a une ellipse puisque Maple..5 –1 –0.5 –1 0. sin(t). d´forme le graphique ` e e pour lui faire prendre les dimensions de la fenˆtre.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.2*Pi ].5 –0.5 –0. par d´faut. e > plot( exp(x).

Maple peut tracer une fonction en coordonn´es polaires a l’aide de e ` la commande polarplot. scaling=constrained).3. r est la distance du point a l’origine.5 3 Voici maintenant constrained. et θ e ` repr´sente l’angle entre l’axe des x et la ligne passant par le point donn´ e e et l’origine.. > with(plots): . peuvent ´galement e e ˆtre utilis´es. le mˆme e graphique. θ). x=0. trac´ e avec l’option > plot( exp(x).5 1 1. Pour acc´der a la forme abr´g´e de cette come ` e e mande. les coordonn´es polaires. 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 .5 x 2 2. e e En coordonn´es polaires.4. vous devez d’abord appeler la commande with(plots).1 Graphiques en deux dimensions • 105 20 18 16 14 12 10 8 6 4 2 0 0. (r.

> polarplot( sin(3*theta)..5 –1 0. 1 0.106 • Chapitre 4: Tracer des graphiques Figure 4. polarplot( r-expr. scaling=constrained ). .5 –0. > polarplot( 1.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.2*Pi ).5 –1 –0.2*Pi. vous pouvez sp´cifier le cercle explicitement en e e entrant r = 1. le param`tre ` e scaling=constrained fait apparaˆ ıtre le cercle rond. angle =intervalle ) En coordonn´es polaires. theta=0.5 1 Tout comme dans cette section a la page 103. theta=0. Voici le graphique de r = sin(3θ)..

La syntaxe est similaire aux grae phiques param´triques en coordonn´es cart´siennes.4 0. param`tre =intervalle ] ) e Les ´quations r = sin(t) et θ = cos(t) d´finissent le graphique suivant. . t=0. polarplot( [ r-expr.4 0.4 –0. page 103.6 0.8 –1 0.4*Pi).4–0. 8 6 4 2 –2 –4 –6 –8 –10 –5 5 10 La commande polarplot accepte ´galement les graphiques param´trie e s´s .2*Pi ] ).8 Le graphique de r = θ est une spirale.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.6 –0. > polarplot(theta.6–0. Consultez la pr´sente e e e e section.2 0 –0.4.8–0. angle-expr.. e e > polarplot( [ sin(t). cos(t). par exemple t.. theta=0.2 –0.2 0.2 –0.

x<2. r=0. 1.5 1 Voici le graphique de θ = sin(3r). 1. sin(3*r).. e > f := x -> piecewise( x<1. 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..5 –0.108 • Chapitre 4: Tracer des graphiques 0.3). 3) > plot(f(x). .2 –1 –0. −1. 1 si 1 ≤ x < 2.2 –0. 3 ). -1. f (x) =  3 sinon. Voici comment d´finir f (x) dans Maple.4 0. x < 2. Consid´rez par exemple la fonction suivante.7 ] ). qui poss`de deux e e discontinuit´s en x = 1 et x = 2. > polarplot( [ r. x=0. f := x → piecewise(x < 1.4 0. e   −1 si x < 1.

5 1 1.. 250000 200000 150000 100000 50000 –4 –2 0 2 4 6 x .5 1 1.5 x 2 2. x=0. > plot( 1/(x-1)^2.5 x 2 2.1 Graphiques en deux dimensions • 109 3 2 1 0 –1 0.4. La e e fonction x → 1/(x − 1)2 poss`de une singularit´ en x = 1.5 3 Maple dessine des lignes presque verticales pr`s d’un point de discone tinuit´.3. x=-5.. L’option discont=true indique qu’il peut y avoir des discontie nuit´s.6 ). e > plot(f(x). discont=true).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. 3 2 1 0 –1 0.

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

diff(f(x). 1+x^2 ). il suffit de e donner a la commande plot une liste de fonctions.. 1 + x2 ) > plot( [ f(x). > plot( tan(x). . x. diff(f(x). x^4 ]. cos(x).2. 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. x^2. discont=true ).10.. y=-10.. x=-10. x^3. y=-4. vous e e devez donc utiliser l’option discont=true.1 Graphiques en deux dimensions • 111 Maple dessine des lignes presque verticales pr`s des singularit´s . ` > plot( [ x.4.4.2*Pi. > x=-2. 0 ≤ x. x=-2*Pi.10 ). f := x → piecewise(x < 0. cos(x).. x) ]. x). discont=true ).. 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. x>=0.

> plot( [ [ 2*cos(t)...5. t^3.. > plot( [ sin(x)/x. sin(x)/x et e linestyle=DOT pour la seconde fonction.5.1 ] ]. 1 0.. t=0. e e Maple utilise linestyle=SOLID pour la premi`re fonction.1. cos(x)/x.8*Pi. .5 –2 –1 –0. cos(x)/x ]. sin(t).2*Pi ].5 –1 1 2 En utilisant diff´rents styles de ligne (par exemple continue ou poine till´e). il est ais´ de distinguer diff´rentes fonctions dans un mˆme grae e e e phique en sp´cifiant le param`tre linestyle. t=-1.4] ). Dans l’exemple suivant. > [ t^2. y=-0.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. x=0. scaling=constrained ). > linestyle=[1.

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

[4. . data_list _2 := [[1. 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. l’option e style=line oblige a tracer ces lignes. [0.2]. 1]. [2. 0]. 4]. 1].114 • Chapitre 4: Tracer des graphiques data_list := [[−2.4]]. style=point. [2. 9]. > data_list_2:=[[1. symbol=cross.3]. 2]. [2. 3]. ` > pointplot( data_list. 16 14 12 10 8 6 4 2 –2 –1 0 1 2 3 4 Par d´faut. [4. 4]. [3. [3. [−1. Vous pouvez ´galement utiliser les ` e menus pour indiquer a Maple de tracer les lignes. 1]. [3. [1.1]. > symbolsize=16). [4. Maple ne relie pas les points par des lignes droites . 16]] > pointplot(data_list). style=line ). 4]] > pointplot(data_list_2.

e Pour plus d’information.4. x=-1.5 2 1.4). Il d´cide ensuite de calculer plus de e e e points dans les intervalles o` les valeurs fluctuent davantage. on peut indiquer a Maple de calculer da` vantage de points. > plot(sum((-1)^(i)*abs(x-i/10).5 1 1 1. > numpoints=500).1 Graphiques en deux dimensions • 115 4 3.. i=0..5 3 3.5 2 2.30). Il calcule la valeur de e la fonction en un nombre raisonnable de points approximativement ´e quidistants dans l’intervalle sp´cifi´. . ` Raffiner des graphiques Maple comporte un algorithme de trac´ adaptatif.. i=0. 3.8 2.6 –1 0 1 2 3 x 4 5 6 Pour raffiner ce graphique.5 3 2.4 3. u il peut arriver que cet algorithme adaptatif ne donne pas de r´sultats e satisfaisants.2 3 2..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.4. Cependant. > plot(sum((-1)^(i)*abs(x-i/10).30). x=-1. reportez-vous a la rubrique ?CurveFitting.

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

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

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

Pour acc´der a la forme e ` abr´g´e de cette commande. e . les trois coordonn´es sont r. o > with(plots): Vous pouvez utiliser la commande sphereplot de la mani`re suivante. tapez les deux-points plutˆt que le point-virgule. En coordonn´es sph´riques. Pour ´viter d’afficher la liste de toutes les commandes de e plots. vous devez d’abord appeler la commande e e with(plots).4.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. la distance e e e du point a l’origine. Figure 4.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 coordonn´es sph´riques sont e e une autre option.

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

param1 =intervalle. t^2 ]. 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. Ici. θ et z. cos(s+t).2*Pi.1) dans le plan xy et z est la coordonn´e cart´sienne e e usuelle en z.2 Graphiques en trois dimensions • 121 sphereplot([ r-expr. > with(plots): Vous pouvez tracer les graphiques en coordonn´es cylindriques en applie quant la syntaxe suivante : .. phi-expr ]. θ = cos(s + t) et φ = t2 . r = exp(s) + t.2 ). > sphereplot( [ exp(s)+t. Figure 4. param2 =intervalle ) Ici. > s=0.4.. t=-2. r et θ sont les cooronn´es polaires e e e (voir la section 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. theta-expr.

1 ). theta-expr.. param`tre1 =intervalle. Leur e e syntaxe est similaire a celle des graphiques param´triques en coordonn´es ` e e cart´siennes. z-expr ]. e param`tre2 =intervalle ) e L’image suivante est un graphique de la fonction r = st.. z=-1. theta=0.2*Pi. theta=0. Consultez la section Les graphiques param´triques de la e e page 118.1 ).122 • Chapitre 4: Tracer des graphiques cylinderplot( r-expr.. θ = s et z = cos(t2 ). cylinderplot( [ r-expr. z=0. > cylinderplot( theta. 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π.4*Pi. e a > cylinderplot( z. .1.. z =intervalle ) Voici une version tridimensionnelle de la spirale montr´e dans la sece tion 4. angle =intervalle. cylinderplot accepte ´galement les graphiques param´triques.

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

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

. des images statiques ne mettent pas toujours en ´vidence certains comportements graphiques.3 L’animation Tracer des graphiques constitue une excellente mani`re de repr´senter e e l’information .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). sont e d´finies dans le package plots. les graphiques apparaissent en noir et blanc. temps =intervalle ) Les images suivantes sont un exemple d’animation. cependant.5. comme la d´formation e e d’une balle qui rebondit. x =intervalle. > shading=none. e 4.4. e Essayez-les vous-mˆme pour voir les effets de la couleur. 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. lightmodel=light1 ). animate et animate3d. 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. e e L’animation en deux dimensions Vous pouvez sp´cifier une animation bidimensionnelle selon la syntaxe qui e suit. animate( y-expr. > plot3d( x*y^2/(x^2+y^4).. Les deux e commandes utilis´es pour les animations.y=-5. Dans le pr´sent manuel. > with(plots): . x=-5.5.

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

e L’animation de graphiques param´triques est ´galement possible (cone e sultez la section 4. ..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. e e e > animate( theta*t. sin(u)..8*Pi. L’option coords indique a la commande animate d’utiliser un syst`me ` e de coordonn´es autre que les coordonn´es cart´siennes. u=0..2 ).1 de la page 103). > animate( [ a*cos(u).4.. theta=0.2*Pi ]. a=0.4. t=1. coords=polar ).

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

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

> with(plots): Warning. 24] ).. the name changecoords has been redefined > sphereplot( 1. vous devez placer des guillemets e doubles (") aux deux extr´mit´s du texte.130 • Chapitre 4: Tracer des graphiques PlotofSine 1 0. BOLD.options ou ?plot3d. Consultez ?plot.2*Pi. > scaling=constrained. Remarquez que les ´tiquettes ne doivent pas e . TheSphere L’option labels vous permet de cr´er des ´tiquettes aux axes. Ce d´tail est tr`s important.Pi. title="The Sphere". phi=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.5 0 –6 –4 –2 2 x 4 6 –0.options.5 –1 Prenez note qu’en sp´cifiant le titre. 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. Vous pouvez sp´cifier la poe lice.. theta=0. le style et la taille du titre au moyen de l’option titlefont. > titlefont=[HELVETICA.

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

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

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

e textplot( [ x-coord.. un point de selle. y=-1. 1.c] ). color=white ): > display( [d.Pi ): b := textplot( [ Pi/2. 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. "texte "] ) .textplot pour obtenir plus de d´tails e sur la mani`re de placer les ´l´ments de texte avec pr´cision. textplot3d( [ x-coord. y-coord. "texte " ] ) .. orientation=[68. > with(plots): Vous pouvez utiliser textplot and textplot3d de la mani`re suivante. y-coord. 0. 0.e].1. e e e Dans le graphique suivant. -1. x=-1. l’origine. 1 LocalMaximum 0. > font=[HELVETICA.5 1 x 2 3 LocalMinimum –1 Consultez la rubrique ?plots. x=-Pi.b.. est indiqu´e par la e lettre P .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. "Local Maximum" ] ): c := textplot( [ -Pi/2. > d := plot3d( x^2-y^2. Par exemple : > > > > a := plot( sin(x). OBLIQUE.5 –3 –2 –1 –0.45] ).1 ): > e := textplot3d( [0. Le pae ee ckage plots contient ces deux commandes. . 22]. "P"]. Utilisez l’ope ee e tion font pour sp´cifier la police de caract`res employ´e pour l’affichage. z-coord. "Local Minimum" ] ): display( [a.

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

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

des teintes plus claires indiquent une plus grande valeur de la fonction.10.2+2*I ).5 –1 –0. y=-1.. > contourplot(sin(x*y). z=0. 2. x 4.1e4 .1.1e3 .5 x 1 Le long des courbes suivantes. > densityplot( sin(x*y). 1 y 0.1e2 1. la fonction sin(xy) est constante. 7.. > conformal( z^2.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 .1e5 .4.y=-10..5 –0.5 –1 0.10). . comme dans une carte topographique. 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 .x=-10..1 ). Dans un densityplot. x=-1..

1. e e > fieldplot( [y*cos(x*y).t]..5 ).12 ). x*cos(x*y)]. t=0.t]. le graphique ainsi form´ est un champ de vecteurs de e mˆme type qu’un champ magn´tique.5 –1 0.5 –0.4*Pi. 1 y 0. Maple gonfle la courbe pr´c´dente pour en faire un tube. e e > tubeplot( [cos(t)..5 –1 –0. ` > spacecurve( [cos(t).sin(t).5 x 1 Maple peut dessiner des courbes dans l’espace a trois dimensions. Ici.sin(t).. ..1). x=-1. t=0. y=-1.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 . radius=0.

> adaptive=false ).2.3.-4. style=point. axes=frame.25. e > rootlocus( (s^5-1)/(s^2+1).-3.5.-2.5 –1 –0. > gap=0. heights=histogram.5 .4.5 –1 –1. -5.5 0 –0. > symmetric): > matrixplot( A+B. style=patch). > A := LinearAlgebra[HilbertMatrix](8): > B := LinearAlgebra[ToeplitzMatrix]([1. 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 . s. 1 0.4.5 1 1.6 Quelques graphiques particuliers • 139 La commande matrixplot affiche les valeurs d’un objet de type Matrix.-1]..5 0 0.

[<2. 5>. 4>].5 3 En tapant ?plots ` l’invite. difference. 2>]. <1. 4. > plots[arrow]( [<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.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. scaling=constrained. vous obtiendrez une liste de tous les types a de graphiques possibles dans Maple. > scaling=constrained ). 5 4 3 2 1 1 1. e > display( dodecahedron(). . 1>.5 2 2.140 • Chapitre 4: Tracer des graphiques La commande arrow affiche des fl`ches ou des vecteurs en deux ou e trois dimensions. Utilisez with(plottools) pour acc´der aux commandes par leur nom abr´g´. e e e > with(plottools): Les objets dans le package plottools ne s’affichent pas par euxmˆmes . <3. a > with(plots): Consid´rez l’exemple suivant. style=patch ).

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

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

4. l’objet r´sultant se nomme e .4 –0. 0. Les cˆt´s du dod´ca`dre mentionn´ plus tˆt dans cette section sont oe e e e o tous des pentagones. 0 ): > display( cap ). Si vous ´levez le point milieu de chaque pentae gone au moyen de la commande stellate.2 1 0. > cap := rotate( cup. sinon.7 Manipuler des objets graphiques • 143 3 2. Pi.5 2 0.4 –0.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 ). n’´crivez rien entre les e e parenth`ses pour accepter les valeurs par d´faut.2 1.6 0.4 –0.20.

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

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

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

3.60]. implicites et param´triques. . x=-3. 7.3): plots[display]([p. scaling=constrained): plots[display](moebius). axes=none. orientation=[-176. lightmodel=light3. scaling=constrained. 2*cos(x^3+y^3)}.. > style=patchnogrid. orientation=[-107. y. grid=[120. orientation=[50.. shading=zhue. 10. 4): p := draw(p2): q := plottools[homothety](p. r2*cos(t). 0). s=0. y=-3.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. Fonction de deux variables en coordonn´es cart´siennes e e > plot3d({sin(x^2+y^2). x*sin(1/2*y)]. 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..Pi.. 80]..30]).q]. 8. x=-Pi. scaling=constrained. polaires. grid=[80..81]).2*Pi. Icosa`dre e > > > > > > > with(geom3d): icosahedron(p1. lightmodel=light1). style=patchnogrid.4.2*Pi. 9. 45]. grid=[60. lightmodel=light4. Les coordonn´es cart´siennes. 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. 120]. 0. y=-0. 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). style=patchnogrid.2*Pi. 0. modifiez la valeur de hauteur dans la commande stellate. point(o. style=patchnogrid. p1. shading=zhue. > style=patch. axes=none. De plus.3. z1]. Pour voir d’autres variations. t=0. shading=xyz. 1): stellate(p2. Bonhomme de neige Le graphique du bonhomme de neige est une animation. 4.9 Conclusion > > > > > • 147 moebius := plot3d([4+x*cos(1/2*y). Le code de cette animation est disponible dans le Maple Application Center. coords=cylindrical.

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

5. 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. eq := 4 x + 17 = 23 149 . chaque situation peut avoir sa propre d´finition e e d’une forme simple . e > eq := 4*x + 17 = 23. beaucoup de temps et d’efforts sont consacr´s ` la manipue a lation d’expressions. Les manipulations math´matiques sont celles correspondant e a ` une forme de processus math´matique. Vous pouvez ´galement effectuer e e e ces ´tapes au moyen de Maple. ou a convertir une expression sous une e e e ` forme particuli`re requise par certaines routines Maple. par exemple la factorisation d’un e polynˆme ou la rationalisation du d´nominateur d’une expression rationo e nelle. et les e modifier. e Le probl`me de la simplification s’av`re ´tonnamment complexe en e e e math´matiques symboliques.5 L’´valuation et la e simplification Dans Maple. Celle-ci sert a convertir des r´sultats sous une forme ` e famili`re et v´rifier une r´ponse. Ce qui est simple dans un contexte peut ne e pas l’ˆtre dans un autre . 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.

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

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

e e . x ). poly := x2 + 2 y x − 3 y + y 2 x2 > collect( poly. x et les constantes a l’aide de ` lire si vous regroupez les coefficients de x la commande collect. x ). y ). x7 + 2 x6 + 2 x5 + x3 + x2 + 2 x Cependant.c*x^2. > poly := x^2 + 2*y*x . 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. (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.3*y + y^2*x^2. Vous pouvez ´galement ´crire vos e e e e propres routines pour expand . > collect( x^2 + 2*x + 1 . consultez la rubrique ?expand pour plus de d´tails. (1 + y 2 ) x2 + 2 y x − 3 y > collect( poly.a*x + b . > Expand( poly ) mod 3.152 • Chapitre 5: L’´valuation et la simplification e > % mod 3. la commande Expand est plus utile. x7 + 2 x6 + 2 x5 + x3 + x2 + 2 x Lorsque vous utilisez Expand avec mod. e Regrouper les coefficients de meme degr´ e Une expression comme x2 + 2x + 1 − ax + b − cx2 peut ˆtre plus facile a e ` 2 .

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. > big_expr := z*x*y + 2*x*y + z. (in collect) cannot collect y*x Pour contourner ce probl`me.x. big _expr := z x y + 2 y x + z > collect( big_expr.x. diff ). x*y ).diff(f(x).x)*sin(f(x)) > + sin(x)*diff(f(x).5. (z + 2) xyprod + z . cr´ez une variable rempla¸ant x*y. xyprod ). puis ree e e c groupez les termes sur cette nouvelle variable.x) + sin(f(x))*diff(f(x).1 Manipulations math´matiques e > trig_expr := sin(x)*cos(x) + sin(x) + y*sin(x). big_expr ). • 153 trig _expr := sin(x) cos(x) + sin(x) + y sin(x) > collect( trig_expr. > subs( x=xyprod/y. (cos(x) + 1 + y) sin(x) > DE := diff(f(x).x). e Dans l’exemple pr´c´dent. 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.x)*sin(x) . Error. sin(x) ). z xyprod + 2 xyprod + z > collect( %. effectuez d’abord une substitution.

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

e e √ 2. Remarquez la .1 Manipulations math´matiques e • 155 (x + y) (x2 − y x + y 2 ) Vous pouvez ´galement factoriser des fonctions rationnelles. rat _expr := > factor( rat_expr ).2*x + 2.x^4 . x16 − y 16 x8 − y 8 x8 + y 8 > rat_expr := (x^16 .5. les coefficients incluent diff´rence dans le r´sultat. poly := x5 − x4 − x3 + x2 − 2 x + 2 > factor( poly ). 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.y^16) / (x^8 . rat _expr := > factor(rat_expr). ainsi. les termes de sa forme face toris´e poss`dent ´galement des coefficients entiers.x^3 + x^2 . > rat_expr := (x^16 . e e e > poly := x^5 . et ` e e annule ensuite leurs termes communs.y^8). La come mande factor factorise a la fois le num´rateur et le d´nominateur. Le polynˆme o e o suivant poss`de des coefficients entiers . (x − 1) (x2 − 2) (x2 + 1) Dans le prochain exemple.y^7).y^16) / (x^7 .

poly := x4 − 5 x2 + 6 > factor( poly ). √ 2 x5 − √ 2 x4 − √ 2 x3 + √ 2 x2 − 2 √ √ 2x + 2 2 > factor( % ). RootOf(x^2-2) ). (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. e . e ` > factor( poly. (x2 − 3) (x − √ √ 2) (x + 2) > factor( poly. Ici. soit 2 ou − 2.156 • Chapitre 5: L’´valuation et la simplification e > expand( sqrt(2)*poly ). (x − √ 3) (x + √ √ √ 3) (x − 2) (x + 2) Vous pouvez ´galement sp´cifier l’extension en utilisant RootOf. sqrt(2) ). e ` > poly := x^4 . √ 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. e e √ √ RootOf(x^2-2) repr´sente une solution a x2 − 2 = 0.5*x^2 + 6. (x2 − 2) (x2 − 3) > factor( poly. { sqrt(2). sqrt(3) } ).

> Factor( x^3+1 ) mod 5. RootOf(x^2+x+1) ) mod 5.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. (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´. > 1 / ( 2 + root[3](2) ). 1 (2/3) 2 1 (1/3) + − 2 2 5 5 10 > (x^2+5) / (x + x^(5/7)). La syntaxe est similaire a celle de la commande Expand.5. (x + 6) (x + 4) La commande Factor permet ´galement les extensions alg´briques de e e corps. consultez la rubrique ?Factor. La commande rationalize enl`ve e e les racines du d´nominateur d’une expression rationnelle en multipliant e par un facteur convenable. Supprimer des exposants rationnels En g´n´ral. ` > Factor( x^2+3*x+3 ) mod 7. (x + 1) (x2 + 4 x + 1) > Factor( x^3+1. 1 2 + 2(1/3) > rationalize( % ). . il est pr´f´rable de pr´senter les expressions rationnelles sans e e ee e exposant rationnel au d´nominateur. 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.

infolevel combine := 1 > expr := Int(1. e Combiner des termes La commande combine applique certaines r`gles de transformation pour e de nombreuses fonctions math´matiques. x). x) + Int(x^2. 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. . 1 > combine( sin(x)*cos(x) ). e(2 x+y) > combine( (x^a)^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. 1 sin(2 x) 2 > combine( exp(x)^2 * exp(y) ). x(2 a) Pour voir comment combine permet d’obtenir le r´sultat. e > combine( sin(x)^2 + cos(x)^2 ).

La commande normal effectue ce processus.5. Consultez la section D´velopper des polynomes en e sommes ` la page 150. vous pouvez trouver utile de regrouper celles-ci en une seule et d’annuler les facteurs communs du num´rateur et du d´nominateur. a Forme normale factoris´e e Si une expression contient des fractions. x 1 1 + + x+1 x x+1 .1 Manipulations math´matiques e • 159 expr := > combine( expr ). e e qui m`ne g´n´ralement a des expressions plus simples. e e e ` > normal( x + 1/x ). x2 + 1 x > expr := x/(x+1) + 1/x + 1/(1+x). expr := > normal( expr ). 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.

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

1 Manipulations math´matiques e • 161 big _expr := sin( > normal( big_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 e > expr := (x^25-1) / (x-1).1 a la ` page 154. utilisez la commande factor. e > expr := 4^(1/2) + 3. expr := √ 4+3 . Consultez la section 5. 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. La commande simplify tente de trouver une expression plus e simple en effectuant une s´rie de manipulations. > factor(expr). (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 := > normal( expr ). 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.5.

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

|x y| > simplify( expr. e e e > expr := sqrt( (x*y)^2 ).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 . 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. La commande simplify vous permet de le faire e en utilisant des relations accessoires . xy Vous pouvez ´galement vous servir de la commande assume pour plae cer des hypoth`ses individuellement sur des variables. > expr := x*y*z + x*y + x*z + y*z.2. expr := x y z + x y + x z + y z > simplify( expr. Simplification au moyen des relations accessoires Vous pouvez quelquefois simplifier une expression en utilisant votre propre r`gle de transformation. Consultez la section e 5.5. assume=real ). expr := > simplify( expr ). 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´. assume=positive ). e ee > simplify( expr. { x*z=1 } ). xy + yz + y + 1 .

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.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. La commande simplify consid`re les ´quations e e donn´es comme des simplifications additionnelles. [y. {siderel}. {siderel}. Vous pouvez en trier les termes par ordre d´croissant de e e ee e degr´ ` l’aide de la commande sort. puis tente d’effectuer des substitutions pour les e e ee termes en x2 . l’ex´cution est arrˆt´e.x] ). consultez la rubrique ?simplify. e Il est ´galement possible de sp´cifier l’ordre dans lequel simplify e e effectue l’op´ration. Maple effectue la substitution y 2 = 1 − x2 dans la premi`re expression. y3 − x y2 + x > simplify( expr. puis tente d’effectuer une substituion pour les termes e 2 . 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´´. siderel := x2 + y 2 = 1 > simplify( expr. ea > poly := 1 + x^4 . [x. expr := x3 + y 3 > siderel := x^2 + y^2 = 1. e ee en y Dans le second cas. poly := 1 + x4 − x2 + x + x3 . n’en trouvant aucun. n’en trouvant aucun.y] ).siderels. Pour obtenir davantage d’information sur cette commande. x3 − y x2 + y Dans le premier cas. e > expr := x^3 + y^3.x^2 + x + x^3. Maple effectue la substitution x2 = 1−y 2 dans la premi`re expression.

y 2 x2 + y x3 .x] ). [x.y] ).z] ). Maple les trie e e e en ordre lexicographique (de telle sorte que a vienne avant b.y] ). [w. w5 + z 4 + x3 + y 2 + x > sort( x^3*y + y^2*x^2. les termes sont alors r´arrang´s en ordre d´croissant de e e e e degr´.y. 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. x3 y + x2 y 2 > sort( x^3*y + y^2*x^2 + x^4. x3 y + x2 y 2 > sort( x^3*y + y^2*x^2. [x.x. > sort( x^3*y + y^2*x^2. • 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. Avec ce tri.1 Manipulations math´matiques e > sort( poly ). et ainsi de suite). x4 + x3 y + x2 y 2 Remarquez que l’ordre des variables dans la liste d´termine l’ordone nancement de l’expression. [y. Maple utilise par d´faut le tri e e par degr´ total .y] ). c o e > poly. [x. lorsque deux termes ont le mˆme degr´.5. > sort( x+x^3 + w^5 + y^2 + z^4.

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

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

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

x=infinity). > frac(n). La e commande frac retourne la partie fractionnaire d’un nombre. e > limit(b*x. Need to know the sign of --> -c Will now try indefinite integration and then take limits. > frac(n). 0 La limite suivante d´pend de b. e e e > infolevel[int] := 2. int/cook/nogo1: Given Integral Int(exp(c*x). 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).5. integer). signum(b) ∞ > assume( b>0 ). x=0. > limit(b*x.infinity ).x = t1 . int/indef1: first-stage indefinite integration int/indef2: second-stage indefinite integration int/indef2: applying derivative-divides . infolevel int := 2 > int( exp(c*x).x = 0 .. ∞ Vous pouvez utiliser infolevel pour obtenir de Maple un rapport d´taill´ de l’activit´ d’une commande. t2) Definite integration: Can’t determine if the integral is convergent. x=infinity)...2 Les hypoth`ses e • 169 Plusieurs fonctions font usage des hypoth`ses sur une inconnue. frac(n) > assume(n.

> int( exp(c*x). ln(ex ) est diff´rent de x.. ln(ex ) > assume(x. > ln(exp(x)).infinity or undefined ∞ Les logarithmes retournent plusieurs valeurs .infinity ). 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). ıtre o > assume( c>0 ).. a moins de la savoir ` e correcte. > ln( exp( 3*Pi*I ) ). par exemple lorsque x est r´el. real).x = t1 . x~ Vous pouvez utiliser la commande is pour v´rifier directement les e propri´t´s des inconnues.. x=0. int/cook/nogo1: Given Integral Int(exp(x). ee . g´n´ralement.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). πI Ainsi. Maple ne simplifie pas l’expression suivante.x = 0 . > ln(exp(x)). pour des e e e valeurs complexes de x. t2) int/cook/IIntd1: --> U must be <= 0 for converging integral --> will use limit to find if integral is +infinity --> or .

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

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

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

r)] . f(c. f(p.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. x2 + 3 x + 2} > map( x->x^2.c]. { (x+1)*(x+2). e e a > map( f. q ). 2 x + 2] La commande map2 est ´troitement li´e a map. e > map2( f. c2 ] Lorsque map est appel´e avec plus de deux arguments. q. b2 . b. [f(a. r). p. a. map2 remplace le e deuxi`me argument d’une fonction. q. c] ). x*(x+2) } ). c] ). [2 x + 3. f([a. c]) > map( f. [f(p. r ). r). les arguments e suppl´mentaires sont pass´s ` la fonction. c] ). f(p. p. b. p. b. x*(x+2) ]. c. [a.b. q)] > map( diff. La commande map vous ee o a permet d’effectuer cette application multiple. f(b). q). p. [a. b. L` o` map remplace e e ` a u s´quentiellement le premier argument d’une fonction. q. q). q. [ (x+1)*(x+2). b. c]. f(b. f(c)] > map( expand. [a. {x2 + 2 x. [f(a). > f( [a. b. p. x ). [a2 . [a.

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

sin(9) ]. ` > large := x -> is(x > 3). Pi.176 • Chapitre 5: L’´valuation et la simplification e [1. 0. a l’exception ` qu’elles engendrent respectivement des sommes et des produits au lieu de suites. sin(x). map2. L := [8.95. ee ` ee > L := [ 8. 0] [1. 5. 3. 0. 3. -5] ). 1. 0. 1. 0. 0] [1. π. y. 1. 0. sin(9)] . 0] [1. 0. 2. 1] [] Les commandes add et mul fonctionnent comme seq. 2. 0. 6. > add( i^2. 4. 10. 5. 0] [1. 10. i=[5. 0. 1. 0] [1. seq. 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. add et mul peuvent ´galement agir e sur des expressions g´n´rales. Consultez la section Les parties d’une e e expression de la page 182. 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. 4. 50 + y 2 + sin(x)2 Les commandes map. 2. 0.95. 0. e e ee ` e La fonction bool´enne suivante retourne true si son argument est sup´e e rieur a 3.

la syntaxe de select passe le troisi`me argument.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. numeric ). [8. L ). numeric. π]. > type( 3. sin(9)] Servez-vous de la commande type pour d´terminer le type d’une exe pression. L ). L).3 Manipulations structurelles > select( large.95. e e . L. π] De fa¸on similaire. [8.95. sin(9)] Pour effectuer les deux op´rations simultan´ment. > remove( large. [2. numeric ). ` la e a commande type. • 177 [8. true > type( cos(1). [2. numeric ).5. > selectremove( large. > select( type. 2. 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. utilisez la come e mande selectremove.

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

5. Elle trie une liste de nombres en ordre num´rique. une liste est une structure de donn´es fondamentale qui e pr´serve l’ordre des ´l´ments. 99 e. “lamb”. Les ´l´ments d’une liste demeurent dans le e ee ee mˆme ordre que lorsque la liste a ´t´ cr´´e. "has".6] ). [1. 3. “a”. la commande sort trie les listes en ordre croissant. 18. 99 f ] > zip( igcd.346. "little".213. "a".5. Entre autres fonctions. [1.3].756.2.d.y) -> x. “little”] . 99 d.b.y) -> x.876]. [7657. [1. 4. 2 b. 3.e.c.f].3] ).4. [1. 3 c.2. 2.y. en utilisant le quatri`me param`tre pour remplacer les valeurs manquantes. 3.b.123].y.e. 6! ). • 179 [a.6. [a.342.3. 3. 2. 6] La commande sort peut ´galement trier une liste chaˆ e ınes de caract`res en ordre lexicographique.3. 2 b. 6. Consultez e la rubrique ?zip pour obtenir plus d’information sur cette commande. 3] La commande zip peut ´galement combiner des vecteurs. e e > zip( (x. [34.3 Manipulations structurelles > zip( (x. Trier des listes Dans Maple. e > sort( [1.d. 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. 99 ). 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.f]. [“Mary”.2. “has”. e > sort( ["Mary".5. [a.3. "lamb"] ). [a.c.

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

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

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

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

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). vous pouvez choisir le troisi`me terme de la mani`re e e suivante. e > nops( expr ). e > whattype( expr ). . > whattype( term3 ). e e e > op( expr ). expr := 3 + sin(x) + 2 cos(x)2 sin(x) La commande whattype consid`re expr comme une somme. ∗ > nops( term3 ). Utilisez la commande e ee nops pour compter le nombre d’op´randes d’une expression. sin(x). les op´randes d’une expression. > term3 := op(3. 2 cos(x)2 sin(x) L’expression expr est form´e de trois ´l´ments. 3 Par exemple. + Utilisez la commande op pour lister les termes d’une somme ou. expr). 3. en g´n´ral. term3 := 2 cos(x)2 sin(x) term3 est un produit de trois facteurs.

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

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

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

e . expr.188 • Chapitre 5: L’´valuation et la simplification e Utilisez select et has pour choisir ces solutions. la commande select passe son troisi`me argument. e ‘+‘..) pour choisir les op´e randes d’une expression qui contient un certain type. > select( has. La commande type d´termine si une expression est d’un type donn´. e e > type( 3+x. ‘+‘ ). ` type. sol. true Utilisez la combinaison select(hastype. ‘+‘ ). a > expr := ( 3+x ) * x^2 * sin( 1+sqrt(Pi) ). RootOf ). {{y = b . expr. utilisez la commande indets. expr := (3 + x) x2 sin(1 + > select( type. true Dans cet exemple. ‘+‘ ). √ π) 3+x La commande hastype d´termine si une expression contient une souse expression d’un certain type.. > select( hastype.. ‘+‘ ). > hastype( sin( 1+sqrt(Pi) ). 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. (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.

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

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

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. expr ). expr := a b c ab > subs( a*b=3. > subs( cos(x)=3. −0. et non math´e matiques . expr ). b. ab Le produit a*b n’est donc pas un facteur dans expr. > evalf( % ). > op( expr ). cela signifie que vous pouvez effectuer des substitutions pour n’importe quelle sous-expression.5.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.1388047428 La commande effectue des substitutions syntaxiques. c. . > expr := a * b * c * a^b. 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. a b c ab expr est un produit de quatre facteurs. a. yprime ).

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

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

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

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

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

e . produirait un tableau.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. 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. 1). y > eval(x. [3. table. e e ee > x := y. mais arrˆte a ce point puisque e ` l’´valuation du dernier nom. x := y > y := z. z. matrix et proc poss`dent un e e comportement d’´valuation sp´cial appel´ ´valuation du dernier nom.4] ] ). 3). les matrices et e e les proc´dures. 2). > eval(x. de mˆme que le comportement des variables locales a e e ` l’int´rieur d’une proc´dure. z > eval(x. y := z > z := array( [ [1.5.2]. z := 1 2 3 4 Maple remplace x par y et y par z. l’un des quatre e types sp´ciaux de structures. e e ´ Evaluation du dernier nom Les structures de donn´es array.

> eval(add2). proc(x. . .198 • Chapitre 5: L’´valuation et la simplification e > x. 1 2 3 4 > add2 := proc(x. y) x + y end proc > add2. examinez la commande erfi. > erfi. end proc . erfi > eval(erfi). e e e Pour illustrer cette situation. Vous pouvez forcer une e e ´valuation compl`te en appelant explicitement la commande eval. add2 Vous pouvez facilement forcer une ´valuation compl`te en utilisant e e eval ou print. e e > eval(x). end proc. y) x + y end proc Remarquez qu’une ´valuation compl`te des proc´dures contenues dans e e e la biblioth`que de Maple. supprime le code de cette proc´dure. les tables. proc(x : :algebraic) . par d´faut. add2 := proc(x. 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)).y) x+y. z Maple utilise l’´valuation du dernier nom pour les tableaux.

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

´ 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. Lorsque vous e ` e d´sirez obtenir de l’´valuation compl`te ` l’int´rieur d’une proc´dure. x . > end proc: > test(). utie e e a e e lisez eval. le r´sultat de l’´valuation est e e la valeur la plus r´cemment assign´e directement a cette variable. 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. z.200 • Chapitre 5: L’´valuation et la simplification e > interface( verboseproc=1 ). > z := 5. > x. y. > x := y. 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 Comparez cette ´valuation a l’exemple similaire pr´sent´ ` la e ` e e a page 196. e > x := y. La rubrique d’aide ?interface explique les valeurs permises de verboseproc et des autres variables d’interface. e e ` > test:=proc() > local x. x := y > y := z. > y := z. y := z > evaln(x).

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

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

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

e e La commande divide assigne le quotient au nom global q. a4 > a[i] := evaln( a[i] ). ai Vous devez utilser evaln pour d´saffecter a[i]. 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. true > q. ’q’ ). 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. x-1. e > evaln( a[i] ).204 • Chapitre 5: L’´valuation et la simplification e i := 4 > a[i] := 9. 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. > ’a[i]’. e . > divide( x^2-1. a4 := 9 Remarquez que ’a[i]’ est a[i] et non a[4].

x-y. mais pas celui du cˆt´ gauche. • 205 q := 2 > divide( x^2-y^2. true > q. q ).4 Les r`gles d’´valuation e e > q := 2. x-y. oe e oe > a := x. Error. dans un nom. 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. wrong number (or type) of parameters in function divide > q := evaln(q). e > a||b. x+y Les commandes rem. . quo. entraˆ l’´value e ıne e ation du cˆt´ droit de l’op´rateur. || . irem et iquo se comportent de mani`re simie laire.5. q := q > divide( x^2-y^2. q ). ab L’op´rateur de concat´nation. a := x > b := 2.

e Maple n’´value pas la concat´nation. y := 3 > new_name.206 • Chapitre 5: L’´valuation et la simplification e b := 2 > a||b. e e > a := x. a2 > c := 3. a23 Si un nom issu d’une concat´nation ne forme pas un seul symbole. . new _name := a||(y + 1) > y := 3. 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. a := x > b := y+1. b := y + 1 > new_name := a||b.

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

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

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. puis montre comment d´terminer l’ene semble des points d’inflexion d’une fonction. D´finissez la fonction f : x → exp(sin(x)) de la mani`re suivante. e e e e la troisi`me section porte sur les ´quations aux d´riv´es partielles. e e e e > x0 := 1. e e e e 6.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. 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 . 209 . f := x → esin(x) Trouvez la d´riv´e de f ´valu´e en x0 = 1.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. Le package e e e e Student[Calculus1] contient plusieurs commandes qui s’av`rent pare ticuli`rement utiles dans ce domaine. enfin. e e > f := x -> exp( sin(x) ). la deuxi`me traite des ´quations diff´rentielles ordinaires .

esin(2) − esin(1) La commande evalf nous donne une approximation d´cimale de ce e r´sultat. x=x0. x=1.162800903 Lorsque h tend vers z´ro. m := − esin(1) − esin(1+h) h Si h = 1. p1 := [1 + h. f(x0) ]. > i=1. > m := NewtonQuotient(f(x). f(x0+h) ]..0/i^2 ). 0. esin(1+h) ] La commande NewtonQuotient du package Student calcule la pente de la s´cante passant par p0 et p1 . e > evalf( % ).20). les valeurs de la pente de la s´cante semblent e e converger. h=h). . e > with(Student[Calculus1]): Utilisez NewtonQuotient pour trouver une expression pour la pente. esin(1) ] > p1 := [ x0+h. h=1 ). la pente est donn´e par e > eval( m.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 . e > p0 := [ x0. h=1.0. p0 := [1. > h_values := seq( NewtonQuotient( f(x).

. secant(x)].p0[1] ). 1.4. 1.243256512. 0.251609743.250880512. > isolate( %. 1.4.245408615. vous e e devez cr´er une suite de graphiques. 1. y= (esin(1+h) − esin(1) ) (x − 1) + esin(1) h Vous devez faire de cette ´quation une fonction.. Tout d’abord. 1.6. 1. x ).246939100. 1.p0[2] = m * ( x . the name changecoords has been redefined . e e > y . 1. 1. 1. 1. e > secant := unapply( rhs(%).226806975. 1. 1.251406908. x=0. e > S := seq( plot( [f(x). y ). > h=h_values ): La commande display du package plots peut afficher les graphiques de la suite sous forme d’animation.251167122.1 Calcul diff´rentiel ´l´mentaire e ee • 211 h_values := 0.248066842. 1. 1.235154852. 1.174305789. 1.249585493. 1.240091510. > view=[0. 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.250111128.248921648. 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.250534250.251782800 Voici l’´quation de la pente de la s´cante. > with(plots): Warning.1628009030.. 1.4] ).210917616.053234748.

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

10 ). f2(x)]. x ) }. 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.6. > f2 := unapply( %. .. d´finissez la fonction f 2 comme la d´riv´e seconde e e e de f . ces changements de signe peuvent survenir aux valeurs de x telles que f 2(x) s’annule. x ). −sin(x) esin(x) + cos(x)2 esin(x) Encore une fois. et que la concavit´ de f est tourn´e vers le bas lorsque f 2 e e est n´gative. vous pouvez remarquer que f augmente lorsque f 1 e est positive. e > plot( [f(x). > sol := { solve( f2(x)=0. 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 . f1(x). x ). x=0. la d´riv´e seconde existe. x. e e e > diff( f(x).1 Calcul diff´rentiel ´l´mentaire e ee • 213 Dans le cas pr´sent.

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

e > f := x -> exp( sin(x) ).475353222. f := x → esin(x) > a := Pi.855276958]} Puisque la fonction f est p´riodique. Une approximation de Taylor Voyons maintenant comment utiliser Maple pour analyser le terme d’erreur d’une approximation par s´rie de Taylor.1 Calcul diff´rentiel ´l´mentaire e ee • 215       arctan 2         −arctan 2      2 1 1√  √ √ 5− −2+2 5  2 2 . e > taylor( f(x). elle poss`de une infinit´ de points e e e d’inflexion. [0. 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π. {[2. 1. 1.         2 1 1√  √ √ 5− −2+2 5 2 2  + π. Voici la formule de Taylor.6. e  √ −2 + 2 5 √ 1/2 5−1/2 √  (1/2 5−1/2)2 √ 1+4 −2+2 5      > evalf( % ). .855276958].6662394325. e √ −2 + 2 5   √  (1/2 5−1/2)2 √ 1+4 −2+2 5 √ 1/2 5−1/2     . x=a ). 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.

216 • Chapitre 6: Exemples tir´s du calcul diff´rentiel e e a := π > taylor( f(x). 3 2. o` ξ est un nombre compris entre x et a. poly].5 0 2 4 6 8 10 x L’expression (1/6!)f (6) (ξ)(x − a)6 nous donne l’erreur de l’approximation. x=0.. > plot( [f(x). 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.10.3] ). −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) . view=[0. e o > poly := convert( %. 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 1 0.10.. La d´riv´e sixi`me de f u e e e est > diff( f(x).5 2 1. vous devez convertir cette s´rie en un polynˆme. polynom ).. 0. x$6 ). x=a ).

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.a)^6. axes=boxed ). > style=patch.16 0 2 xi 4 4 x 2 .. 0.6. x=2. 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. vous dee vriez entrer ..4. > err := 1/6! * f6(xi) * (x .4. e e e > f6 := unapply( %. D´finissez la e e e fonction f 6 comme ´tant cette d´riv´e.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. Sans cet op´rateur. x ). > plot3d( abs( err ). xi=2. x six fois pour calculer la d´riv´e d’ordre 6.

4]. Vous devez alors ´tudier e a e e e err aux bords du domaine. ξ = a et ξ = x (soit pour x compris entre 2 et 4 et pour ξ compris entre a et x).2] ] ).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. . e e e x = 4. the name arrow has been redefined > display( curve( [ [2. xi). x).218 • Chapitre 6: Exemples tir´s du calcul diff´rentiel e e Pour d´terminer l’erreur exacte.a]. 4 3.5 xi 3 2. xi] ). Les d´riv´es partielles de err sont e e > err_x := diff(err. [4.a]. the name changecoords has been redefined Warning.5 2 2 2. La commande curve du package plottools permet d’illustrer ces deux r´gions. e > with(plots): with(plottools): Warning. > labels=[x.5 3 x 3. vous devez effectuer une analyse e compl`te de l’expression err dans les deux r´gions ferm´es par x = 2. [4.2]. [2. 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.

sol := {x = π. sol ). xi ) }. 0 Vous devez maintenant regrouper un ensemble de valeurs critiques. . e e > sol := solve( {err_x=0. xi} ). e > sol := { solve( err_xi=0. ξ = ξ} L’erreur est ´galement nulle en ce point. 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 := { % }.6. err_xi=0}. e > eval( err. La plus grande valeur critique borne l’erreur maximale.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. {x.

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

467295314 En ce point. sol := 3. l’erreur est > eval( err. 2.07333000221 (2 − π)6 . x=4). xi. 0. e e > sol := fsolve( eval(err_xi.01542298119 (4 − π)6 > critical := critical union {%}. xi=a ). Si x = 2.6. .01542298119 (4 − π)6 } ` A la fronti`re ξ = a. critical := {0. xi. sol := 2.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. alors ξ doit ˆtre situ´ entre a et 4. l’erreur est > eval( err. Vous devez donc utiliser des e e ` m´thodes num´riques. −0.446729125 En ce point. 0. ` > critical := critical union {%}. xi=sol} ).. xi=sol}). x=2). a. alors ξ doit ˆtre situ´ dans l’intervalle e e e e situ´ entre 2 et a.4 ).a ).07333000221 (2 − π)6 Ajoutez maintenant cette valeur a l’ensemble des valeurs critiques. 0.. critical := {0. {x=2. {x=4. −0. e > sol := fsolve( eval(err_xi.07333000221 (2 − π)6 } Si x = 4. l’erreur est e > B := eval( err.

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. x ) }. −0. l’erreur est e e > B := eval( err. vous devez trouver le point o` la d´riv´e s’annule. xi=x ). critical := {0.01542298119 (4 − π)6 } ` A la derni`re fronti`re. 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. sol := {π} En ce point critique.07333000221 (2 − π)6 . 0. u e e > B1 := diff( B. x ). . e e > B1 := diff( B. B1 := − 1 (x − π)5 40 > sol := { solve( B1=0. x ). ξ = x. x=sol[1] ). l’erreur est > eval( B. 0 > critical := critical union { % }.

3 ).8 3 3.6 0.6.4 2. e c > plot( B1..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.6 3. . vous devez a nouveau re` courir aux m´thodes num´riques. e e > fsolve( B1=0.6 2.1.8 0.180293062 Ajoutez cette solution num´rique a l’ensemble des solutions symboe ` liques.2 2. x ) }. 2.2.2 3.4 0.1 et 2. Puisque solve ne peut trouver cette solution.2 0 2.4 ). x. 0.8 4 x Le graphique de B1 indique qu’une solution existe entre 2.. 2.3. x=2.4 3. 1 ( 120 sol := {π} Il est bon de v´rifier la solution en tra¸ant le graphique.

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

04005698601 (2. (−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 0.07333000221 (2 − π)6 . −0. appliquez la commande abs aux ee ´l´ments de critical. ee > map( abs.01542298119 (4 − π)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.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 . Tout d’abord. critical ). (−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 .1 Calcul diff´rentiel ´l´mentaire e ee • 225 critical := {0.180293062 − π)6 . 0.

0. 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) + cos(4)6 esin(4) )(4 − π)6 } Trouvez ensuite l’´l´ment maximal. La commande max requiert une ee suite de nombres .07333000221 (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) 1 + cos(4)6 esin(4) )(2 − π)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) )(4 − π)6 .180293062 − π)6 .01542298119 (4 − π)6 . vous devez donc utiliser la commande op pour transformer l’ensemble des valeurs en une suite.04005698601 (2.07333000221 (2 − π)6 Ce nombre est approximativement > evalf( max_error ). 0. − −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 .226 • Chapitre 6: Exemples tir´s du calcul diff´rentiel e e {0. 1 ( 720 max _error := 0. 0. > max_error := max( op(%) ).1623112756 .

2. > plot( [ f(x). e partition = 6 et output = plot dessine le graphique de f avec 6 boˆ ıtes. brown ] ).8 3 3. partition=6.4 2. brown..8 4 x Ce graphique montre que l’erreur r´elle demeure bien en-d´¸a de l’ese ec` timation de l’erreur. poly. f(x)+max_error. e > f := x -> 1/2 + sin(x). son approximation de Taylor et une paire de courbes indiquant la bande d’erreur. 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. La hauteur de chaque boˆ est la valeur de f ´valu´e sur le coin gauche ıte e e de chacune d’entre elles.6 2. la commande ApproximateInt que l’on trouve dans le package Student[Calculus1] avec pour param`tres method = left. f := x → 1 + sin(x) 2 Par exemple.1 Calcul diff´rentiel ´l´mentaire e ee • 227 Vous pouvez maintenant tracer f .5 2 1. blue. > x=2. > color=[ red.2 2.10. > with(Student[Calculus1]): > ApproximateInt( f(x).6 3. La d´finition e de l’int´grale de Riemann repose sur cette interpr´tation graphique de e e l’int´grale.5 2 2. f(x)-max_error ].5 1 0. x=0.2 3. ..4. > output=plot).4 3.6. method=left.

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

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

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

e > f := (x. e ` > f(0. ı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. r*sin(theta) ). y) → x y (x2 − y 2 ) x2 + y 2 La fonction f n’est pas d´finie a l’origine. 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( % ). e e > Limit( %. 0 Ainsi.) := 0.y) -> x * y * (x^2-y^2) / (x^2+y^2). vous pouvez prolonger f par continuit´ ` l’origine en la e a d´finissant ´gale a z´ro en ce point. .0). e e ` e > f(0.6. y) = (r cos(θ). r sin(θ)). r=0 ). Error.1 Calcul diff´rentiel ´l´mentaire e ee • 231 En sp´cifiant method = right ou method = midpoint lorsque vous e utilisez la commande ApproximateInt.0.. vous pouvez dessiner et additionner des boˆ ´valu´es en leur coin droit ou en leur point milieu. e e e Consid´rez la fonction suivante. f := (x. la valeur de la fonction est > f( r*cos(theta). (in f) numeric exception: division by zero En (x.

f(0. 0. r*sin(theta) ). > fx(0.232 • Chapitre 6: Exemples tir´s du calcul diff´rentiel e e f(0. 0) := 0 En (x. r sin(θ)). -3. h=0 ). y) = (r cos(θ). fx := (x.. (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. x. Error.0) .. ` > fx(0.) := 0 L’affectation pr´c´dente ajoute une entr´e dans la table de rappels e e e (en anglais remember table) de Maple.. la valeur de fx est > fx( r*cos(theta). est e e ` e > fx := D[1](f). Voici le graphique de f . > plot3d( f. 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.0).3 ). -3.0) := limit( ( f(h. fx(0.3. . La d´riv´e partielle de f par rapport a son premier param`tre.

fx est continue en (0. y) − e e e fx (0. 0)| tend ´galement vers z´ro. les mˆmes arguments s’appliquent a la d´riv´e de f e e ` e e par rapport a son second param`tre.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( % ). r=0 ). y) et (0. e e > fxy := D[1.6. r→0 lim 1 3 r sin(3 θ) − r sin(5 θ) 4 4 > value( % ).0) ). k=0 ). .2](f).0) )/k. fy(0. y. ` e > fy := D[2](f). 0) tend vers z´ro. > Limit( abs( % . Sym´triquement.f(0. 0). 3 1 r sin(3 θ) − r sin(5 θ) 4 4 Lorsque la distance r entre (x.k) . 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. fy := (x.0) := limit( ( f(0. |fx (x. 0 Ainsi. 0) := 0 Voici la d´riv´e seconde mixte de f .fx(0.

0) := value( % ). h→0 lim 1 > fyx(0.fx(0. 0) .0) )/h.0) )/k. (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. 0) := 1 . fxy(0. fyx(0. > Limit( ( fy(h. Error. vous devez utiliser la d´finition de la d´riv´e sous forme e e e de limite.0).1](f). h=0 ).0) := value( % ). 0) := −1 L’autre d´riv´e seconde mixte est e e > fyx := D[2. 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.234 • Chapitre 6: Exemples tir´s du calcul diff´rentiel e e fxy := (x. fyx := (x.k) . k→0 lim − 1 > fxy(0. ` > fxy(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. k=0 ).fy(0.

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

{v(t)} ). La syntaxe de base e de dsolve est la suivante. d v(t)) + 2 t = 0 dt ini := v(1) = 5 Utilisez dsolve pour obtenir la solution. et vars repr´sente l’ensemble de variables pour lesquelles on soue haite r´soudre.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. {y(x) = ex _C2 + e(−x) _C1 − 1} . _Cnumber . vars ) Ici.x$2) . {y(x)} ). dsolve(eqns. dsolve retourne des constantes arbitraires de la forme _Cnumber . > eq := diff(y(x).t)+2*t = 0. 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. eqns repr´sente un ensemble d’´quations diff´rentielles et de valeurs e e e initiales. > dsolve( {eq. v(t) = −t2 + 6 Si vous omettez une ou plusieurs des conditions initiales.y(x) = 1. e Voici une ´quation diff´rentielle et une condition initiale. ini}. eq := ( d2 y(x)) − y(x) = 1 dx2 > dsolve( {eq}. e e > eq := diff(v(t). eq := ( > ini := v(1) = 5.

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

dans certains cas. ` e Cette m´thode fonctionne ´galement avec les syst`mes d’´quations coue e e e pl´es. e Consid´rons le probl`me de dynamique classique suivant. 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. beaucoup plus simple a r´soudre. Maple peut ne pas ˆtre en mesure de e trouver une solution explicite. explicit ). 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. Il existe ´galement une option implicit pour forcer Maple a donner e ` ses r´sultats sous forme implicite. y(x) = RootOf − _Z 1 d_f + x + _C2 _f ln(_f ) + _C1 Cependant. a supposer que Maple puisse trouver les transform´es. 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. incluant la force e ext´rieure u(t). 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.238 • Chapitre 6: Exemples tir´s du calcul diff´rentiel e e y(x) {y(x) = _C1 }. 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. {y(x) = _C1 }. e La m´thode des transform´es de Laplace peut g´rer des EDO lin´aires e e e e d’ordre arbitraire. e > dsolve( {de2}. {y(x)}. e . Les transe e e form´es font correspondre a une ´quation diff´rentielle une ´quation alg´e ` e e e e brique. de mˆme que certains cas d’EDO lin´aires a coefficients e e ` non constants. 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.

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

k=1} ). {alpha=1/10. . m=1.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 . 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( %.

− > y[1] := unapply( %. > eval( x[1](t).´ 6. 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. 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. Tout d’abord. 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 . de la mani`re suivante. e e e e y1 (t) et y2 (t). ´valuez l’expression x[1](t) en sa solution pour extraire l’expression x1 (t). ans ). t ).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).

invlaplace. savetable] Les transform´es de Laplace des ´quations diff´rentielles eqn1 et eqn2 e e e sont : > laplace( eqn1. mellin. t=-3.242 • Chapitre 6: Exemples tir´s du calcul diff´rentiel e e Vous pouvez ´galement effectuer les deux ´tapes en mˆme temps. s) − laplace(x1 (t). hankel . method=laplace). y[2](t) ].. t. s) − x1 (0)) − D(x1 )(0)) = k (laplace(x2 (t). invmellin. fouriersin. ans ). laplace. hilbert . 14 12 10 8 6 4 2 –2 2 t 4 6 Plutˆt que d’appliquer dsolve(. 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). t. t. s ).. fourier . vous pouvez o utiliser la transform´e de Laplace a la main. t. 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. y2 := t → > plot( [ y[1](t).. s)) + e(−s) s . t ). e e > with(inttrans). α m (s (s laplace(x1 (t). invhilbert . e e e > y[2] := unapply( eval( x[2](t)..6 ). invfourier . fouriercos . [addtable.

s)) + > sol := solve( %. > eval( {%. t. t. s) − x2 (0)) − D(x2 )(0)) = k (laplace(x1 (t). s)). m (s (s laplace(x2 (t).2 Equations diff´rentielles ordinaires e • 243 et > laplace( eqn2. t. . s) − laplace(x2 (t). α m s (s laplace(x1 (t). t. t. s) = k (laplace(x1 (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. t. s) = k (2 α m s2 es + 1) .t. t. s)) ´ Evaluez l’ensemble form´ des deux transform´es en leurs conditions e e initiales. sol := {laplace(x2 (t).s). {m s2 laplace(x2 (t). t. 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). > invlaplace( %.´ 6. {ini} ). s) − laplace(x1 (t). t. { laplace(x[1](t). %%}. t ). 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 .s) } ). s) − laplace(x2 (t). > laplace(x[2](t). s) = laplace(x1 (t). e k (laplace(x2 (t). t.t. s ). t. s.

> eval( %. {alpha=1/10. k=1} ).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. . m=1. 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.

Maple trouve d’abord une ape e proximation des ´quations sous forme de s´rie. u Consid´rez l’´quation diff´rentielle suivante. il assume qu’il existe e e une solution de la forme ∞ xc i=0 ai xi o` c est un nombre rationnel. eq := 2 x ( d2 d y(x)) + ( y(x)) + y(x) = 0 2 dx dx Demandez a Maple de r´soudre l’´quation.x) + y(x) = 0.´ 6. on obtient la mˆme solution que par e la m´thode pr´c´dente. 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.x. e e e > eq := 2*x*diff(y(x). 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. 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.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).x) + diff(y(x). Il r´sout ensuite cette e e e approximation de mani`re symbolique au moyen de m´thodes exactes. ` e e . 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.

e > [ seq( _C1=i. o > rhs(%). √ √ 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. 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 . convertissez-la ensuite en polynˆme. i=0. {y(x)}. poly). _C1 = 3. _C1 = 5] > map(subs. %. polynom).246 • Chapitre 6: Exemples tir´s du calcul diff´rentiel e e > dsolve( {eq}. _C2=1. _C1 = 4. _C1 = 1. _C1 = 2. type=series ).. . [_C1 = 0. 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(%.5 ) ].

t) = t^2.10 ). 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( %. la s´rie r´sultante e e e doit converger . Pour ces raisons. elles pr´sentent cepene e dant certaines limitations. Pour produire un r´sultat. des solveurs num´riques alternatifs e e ont ´t´ con¸us. Maple doit calculer plusieurs d´riv´es dans le proe e cessus de recherche de la solution. eq := x(t) ( d x(t)) = t2 dt . de plus.. 6 90 2520 113400 1 1 3 1 1 4 %1 + 1 − x + x2 − x + x4 − x5 . 6 90 2520 113400 1 1 3 1 1 %1 + 1 − x + x2 − x + x4 − x5 . ee c Voici une ´quation diff´rentielle et une condition initiale. 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 3 %1 + 1 − x + x2 − x + x4 − x5 . 6 90 2520 113400 1 1 3 1 1 2 %1 + 1 − x + x2 − x + x4 − x5 .´ 6.2 Equations diff´rentielles ordinaires e • 247 1 2 1 3 1 1 x − x + x4 − x5 . ce qui peut s’av´rer coˆteux en temps e u comme en m´moire. x=1. e e > eq := x(t) * diff(x(t).

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

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

. Vous pouvez sp´cifier l’algorithme que dsolve(. > odeplot( sol1. [x(t). Il e e n’existe pas de r`gles universelles permettant de pr´venir ces effets . Reportez-vous a la e e e ` rubrique ?dsolve. y(x))."x". axes=boxed ).. y(t)].. 8 y –4 2 x 6 1 t –3 ou toute autre combinaison. y(t)]. Soyez prudent lorsque vous utilisez des m´thodes num´riques. x(t). type=numeric) e doit utiliser en r´solvant une ´quation diff´rentielle. -3. > odeplot( sol1. x(t) = 5.58216755967155986. > labels=["t". y(t) = 7. [t. ainsi.. 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."y"] ).1.numeric.250 • Chapitre 6: Exemples tir´s du calcul diff´rentiel e e [t = 1.1. 8 6 y 4 2 0 –2 –4 2 3 4 x 5 6 x(t) et y(t) en fonction de t."y"]. -3. . e e aucun logiciel ne peut anticiper toutes les conditions.. labels=["x".82688931187210190] La commande odeplot peut maintenant tracer y(t) en fonction de x(t).

> Order. Une fois les d´riv´es ainsi obtenues. f (t). vous pouvez les remplacer dans e e la repr´sentation de f (t) en s´rie de Taylor.2 Equations diff´rentielles ordinaires e • 251 Un exemple : les s´ries de Taylor e Dans sa forme g´n´rale. 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). soit f (t). 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). Vous devez ainsi obtenir et manipuler les d´riv´es d’ordre sup´rieur de cette fonction. consid´rez la loi du refroidissement de Newton : e f(0) + D(f )(0) t + dθ 1 = − (θ − 20). dt 10 θ(0) = 100. D´terminez ce nombre en fonction de l’ordre de la s´rie e e e de Taylor. f (t) et e e e ainsi de suite. 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. En utilisant l’op´rateur D.´ 6. vous pouvez facilement introduire l’´quae e tion ci-dessus dans Maple. Si vous utilisez la valeur par d´faut de la variable Order fournie e par Maple. 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. eq := D(θ) = − > ini := theta(0)=100. t). e e > taylor(f(t).

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

(D(2) )(θ) = θ− . 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 5 1 D(θ)(0) = − θ(0) + 2] 10 G´n´rez maintenant la s´rie de Taylor. 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)). 100 100 1 1 1 (D(3) )(θ) = D(θ). (D(2) )(θ)(0) = θ(0) − . t). o > eval( %. e e e [(D(5) )(θ)(0) = > T := taylor(theta(t). . 100 1 1 1 (D(3) )(θ)(0) = D(θ)(0). T ). (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. e e e L := [(D(5) )(θ) = > L(0). ini ).2 Equations diff´rentielles ordinaires e • 253 1 1 (D(3) )(θ). 100 1 (D(4) )(θ)(0) = (D(2) )(θ)(0). 1 (D(3) )(θ)(0).´ 6.

t=0. 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. .30). t=0. {theta(t)} ). q].. ini}.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(%.30 ). q := 20 + 80 e(−1/10 t) Vous pouvez maintenant comparer la s´rie obtenue a la solution e ` exacte. > plot( [p. e > plot(p. polynom). θ(t) = 20 + 80 e(−1/10 t) > q := rhs(%).. e > dsolve( {eq(t). 100 80 60 40 20 0 –20 5 10 15 t 20 25 30 Cet exemple particulier poss`de la solution analytique suivante.

’series’ ). qui ` repr´sente les racines d’une expression. > dsolve( {de}.x) + x^4*diff(y(x). θ(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. {theta(t)}. Ainsi.´ 6. DESol est similaire a RootOf.x. DESol e est une expression repr´sentant la solution d’une ´quation diff´rentielle e e e sans la calculer explicitement. la commande dsolve peut ree tourner des solutions contenant la structure de donn´es DESol. {y(x)} ). Cela vous permet de manipuler e l’expression r´sultante de mani`re symbolique avant d’utiliser toute autre e e approche. Dans ce cas. > de := (x^7+x^3-3)*diff(y(x). il peut ˆtre impossible d’exprimer la solution d’une e EDO lin´aire explicitement. 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. .x) > + (23*x-17)*y(x).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. > dsolve( {eq(t). ini}. vous pouvez o e utiliser l’option series de la commande dsolve.

+ 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. Par exemple. Dans ces cas. _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. x). . ode1 := ( d2 d y(t)) + sin(t)2 ( y(t)) + y(t) = cos(t)2 2 dt dt > ic1 := y(0) = 1. il peut ˆtre avantageux d’en tracer le graphique. e e > series(rhs(%). ic1 := y(0) = 1. trouvez une approximation sous forme de s´rie.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) . t$2) + sin(t)^2*diff(y(t).t) + y(t) = cos(t)^2. D(y)(0) = 0 Essayez tout d’abord de r´soudre cette EDO analytiquement au e moyen de dsolve. D(y)(0) = 0. e > ode1 := > diff(y(t). 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.

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

[ic2] ]. [ [ic1]. t). 1.8 0.4 0.6 0. eq1 := ( d y(t)) + y(t) + x(t) = 0 dt > eq2 := y(t) = diff(x(t).4 0. y(t).4 1. stepsize=0. eq2 := y(t) = d x(t) dt .258 • Chapitre 6: Exemples tir´s du calcul diff´rentiel e e 1 0. DEplot trace e une solution pour chacune..20.t) + y(t) + x(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 ). > ic2 := y(0)=0. D(y)(0)=1.8 y(t) 0.2 1 y(t) 0. ic2 := y(0) = 0. D(y)(0) = 1 > DEplot( ode1. e > eq1 := diff(y(t).2 0 5 10 t 15 20 Si vous sp´cifiez plus qu’une liste de conditions initiales. 0.

La syntaxe de base de DEplot3d est similaire a celle de DEplot. -5. [ini2] ] ). Voici un graphique trie dimensionnel du syst`me trac´ en deux dimensions pr´c´demment.´ 6. y(0)=-5. > [ [ini1]. eq2}. > [ [ini1]. vous devez donc donner une liste de variables d´pendantes. [x(t).2 Equations diff´rentielles ordinaires e > ini1 := x(0)=0. 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}. e > DEplot( {eq1. Consultez la rubrique ` ?DEtools.DEplot pour obtenir davantage de d´tails sur la mani`re de e e tracer des EDO.5.DEplot3d pour obtenir plus de d´tails. y(0) = −5 Le syst`me {eq1. [x(t). y(t)]. Consultez la rubrique e e ?DEtools. y(0) = 5 > ini2 := x(0)=0. DEplot3d est la version tridimensionnelle de DEplot. x(t) et e e e y(t) .5. • 259 ini1 := x(0) = 0. [ini2] ] ). e e e e > DEplot3d( {eq1.. -5. . y(0)=5. eq2} poss`de deux variables d´pendantes. y(t)]. ini2 := x(0) = 0..

eq3}.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. eq2. y(0) = 0. e > eq1 := diff(x(t). y(0) = 2.t) = x(t)+y(t)-z(t).t) = -x(t)-y(t). eq3 := d z(t) = x(t) + y(t) − z(t) dt Voici deux listes de conditions initiales. z(0) = 2] > ini2 := [x(0)=0. z(0) = −1] La commande DEplot3d trace deux solutions au syst`me d’´quations e e diff´rentielles {eq1. > ini1 := [x(0)=1. eq2 := d y(t) = −y(t) − x(t) dt > eq3 := diff(z(t).t) = y(t)+z(t). une solution pour chaque liste de valeurs e initiales. y(0)=2. z(0)=2]. ini2 := [x(0) = 0. eq1 := d x(t) = y(t) + z(t) dt > eq2 := diff(y(t). z(0)=-1]. ini1 := [x(0) = 1. . y(0)=0.

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

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

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

utilisez odeplot du package plots pour tracer la solution num´rique. 1 − x ≤ 0 and x − 2 < 0 .4 ). 0. 1. f := x → piecewise(1 ≤ x and x < 2. Examinez e e tout d’abord le comportement de piecewise. 1.. 4 3. e > with(plots.264 • Chapitre 6: Exemples tir´s du calcul diff´rentiel e e Encore une fois.3). odeplot). . 1. 0. [odeplot ] > odeplot( sol2.5 y 3 2. Remarquez que l’ordre des conditions est important. 0. La fonction retourne la valeur true d`s qu’une condition retourne la valeur true. if . e > plot(f.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. puis en regroupant ces multiples approximations pour repr´senter la fonction compl`te. 0) > f(x).y(t)]. [t. 0). > f:= x -> piecewise(1<=x and x<2. otherwise..

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

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

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

u(x. e > heat := diff(u(x.t). _C2=1.t). _C1=1.x) = 0. Pour ce faire. heat := ( d d2 u(x. √ _C3 e(k _c 1 t) _C2 sol := u(x. u(x. e > sol := pdsolve(heat. e ` De mani`re alternative. ’build’). HINT=X(x)*T(t)). x. d2 dx2 X(x) = _c 1 X(x)}] Le r´sultat est correct. k=1.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. mais difficile a lire. > pdsolve( heat. e > S := eval( rhs(sol). t) = X(x) T(t)) &where d [{ dt T(t) = k _c 1 T(t).t). utilisez l’option HINT de pdsolve pour sugg´rer a Maple une piste a e ` ` suivre.t). t)) − k ( 2 u(x. (u(x. vous pouvez sp´cifier a pdsolve d’utiliser une e e ` s´paration de variables (sous forme de produit. 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. . HINT=‘*‘. 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’. {_C3=1.k*diff(u(x.t) . _c[1]=1} ).

PDEplot( pde. pde est l’EDP.3 Equations aux d´riv´es partielles e e • 269 S := ex et + et ex Vous pouvez tracer le graphique de la solution.5 ). s =intervalle ) Ici. > plot3d( S. e e e e > eval( heat. > with(PDEtools): Vous pouvez utiliser la commande PDEplot avec la syntaxe suivante.5.. u(x. t=0. ini. %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(%).t)=rhs(sol) ). x=-5.´ 6. 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.. var est la variable ind´pendante. var. . ini est une courbe e param´trique de l’espace tridimensionnel de param`tre s et intervalle est e e le domaine de s. Il peut ˆtre avis´ de v´rifier la solution avec l’´quation originale.

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

initcolor=white.2. s=-2. > style=patchcontour. 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.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. ini. 7 u(x. comment Maple vous aide a analyser le e ` . > PDEplot( pde. L’option initcolor modifie la couleur de la courbe des valeurs initiales.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 y 2 2 x –2 Plusieurs des options usuelles de plot3d sont ´galement disponibles . s=-2.. > orientation=[-43. u(x.45] ).y) 1 –2 x 2 –2 y 2 6. e consultez la rubrique ?plot3d. > basechar=true.y). u(x. basechar=true ).2.y).options. ini. de mˆme que la courbe des condie e tions initiales qui est toujours pr´sente. contours=20. e > PDEplot( pde. 7 u(x..

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. tant symbolique que num´rique. e e e e e . e e des ´quations diff´rentielles et des ´quations aux d´riv´es partielles.

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.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. 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. tracer des fonctions et documenter les r´sultats. 7. Cependant. ou le syst`me de typographie math´matique e e A X.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. 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. Les donn´es peuvent ˆtre des mee e sures exp´rimentales ou des nombres g´n´r´s par d’autres programmes. e e ee Une fois les donn´es import´es dans Maple. On y verra comment Maple interagit avec le syst`me de fichiers et avec d’autres e logiciels. 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. 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. 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 couper et coller des r´sultats et exporter des expressions isol´es ou des feuilles enti`res.

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

3]].2794154982]] La commande plot peut tracer le graphique de telles listes directement.2836621855 0.2] est le second nombre de la cinqui`me souse liste.9589242747].4 0. −0. [2.9601702867 0 0.2]. vous devez tenir e compte du fait que L[5. −0. −0.8 0.8 1 2 3 4 5 6 Pour s´lectionner la seconde colonne de nombres.9092974268].6 –0.1411200081   −0. vous pouvez tracer le graphique de la troisi`me colonne en fonction de la premi`re.7.7568024953].5403023059 −0.2 –0.9092974268   0.[1. par exemple. Utilisez la commande convert e e pour choisir les premi`re et troisi`me entr´es dans chaque colonne. > L[5.7568024953   −0.1411200081]. 0]. [5.6536436209 0. e e e > convert( L[[1.4161468365 −0. [[0.6536436209 Les donn´es souhait´es sont donc les suivantes. 0.6 0.8414709848]. 0. 0. [4.. [3.1 Lire des fichiers • 275 0 1  2  L :=  3  4  5 6  1 0.2794154982  Maintenant.4 –0.8414709848   0.9899924966 −0.2 0 –0.-1]. [6. e e . > plot(%). [1. 0. listlist ). −0.9589242747  −0.

. −6. 0.4161468365.1034788321 Vous pouvez aussi effectuer des calculs sur la matrice L en utilisant le package LinearAlgebra..109078174475632172] [−6.30278930720000119 .41489848119999984 .2836621855. −0.2836621855  0. −0.9899924966.12516888746710864] Pour plus d’information au sujet des options de commandes telles que ImportMatrix.list).9899924966     −0. [1. 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.41489848119999984] [1.9601702867 Convertissons ces donn´es sous forme de liste. [91. 0.5403023059. 0. e > convert(L[1.   1  0. −0.6536436209     0.87483111270157598 . . 0.4161468365     −0.276 • Chapitre 7: Entr´es et sorties e > L[ 1. −0.30278930720000119 . 2 ].9601702867] > stats[describe. 3. −0.6536436209. puis de les importer e dans Maple. L. 1.mean](%) .2]. > LinearAlgebra[Transpose](L) .-1. 3.-1.109078174475632172 . Vous pouvez coller les commandes du fichier texte dans votre feuille de calcul ou utiliser la commande read.5403023059     −0. . consultez la rubrique d’aide ?ImportMatrix .

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

vous pouvez le convertir en une matrice et ´crire les nombres e dans un fichier de mani`re structur´e. nomfichier est la chaˆ contenant le nom du fichier o` ExportMatrix ıne u doit sauvegarder les donn´es. > L := [ 3. La commande ExportMatrix ´crit e e e les colonnes de donn´es num´riques dans un fichier.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 ). vous pouvez enregistrer e e le r´sultat dans un fichier. > L:=LinearAlgebra[RandomMatrix](5). 0 ]. donn´es ) e Ici. et donn´es est une matrice. L := [3. 3. 3. ´ 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. vous permettant d’ime e porter les nombres dans un autre programme. -65. Pour plus d’information. 0] > V := Vector(L).278 • Chapitre 7: Entr´es et sorties e 7. ExportMatrix( "nomfichier ". 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. il est possible d’utiliser la e commande ExportVector. Remarquez e e que toute liste. reportez-vous a la ` rubrique ?Vector.  −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. Vous pouvez utiliser la commande ExportMatrix avec la syntaxe suivante. Vous pouvez traiter le r´sultat ult´rieurement.txt". tout vecteur. e e e avec Maple ou avec un autre programme.2 ´ Ecrire des donn´es dans un fichier e Apr`s avoir utilis´ Maple pour effectuer un calcul. .1415. −65.

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

Ainsi. expr. e ` > restart: > expr. La commande efface les trois expressions de la m´moire.m".1 pour plus d’information sur la commande read. L TEX est un package macro de TEX. nexpr. > save qbinomial. expr e s’´value a son propre nom. expr Utilisez la commande read pour r´cup´rer les expressions sauvee e gard´es dans qbinom. (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. convertir le r´sultat en code e e e A A L TEX et l’inclure dans un document L TEX. vous pouvez utiliser Maple pour r´soudre un probl`me. 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.m.m. Remarquez que expr a retrouv´ sa valeur originale. A Convertir au format LTEX TEX est un programme permettant la pr´sentation de textes math´mae e tiques. Utilisez la commande latex de la mani`re suivante. "qbinom.m". e . De son cˆt´. e > read "qbinom. La commande oe A A latex convertit les expressions Maple au format L TEX. e > expr.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 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 ($. e .2 Ecrire des donn´es dans un fichier e • 281 latex( expr. elle ne produit pas la commande pour entrer et sortir du mode math et ne tente aucun saut de ligne ni aucun alignement particulier. Si filename existe. dans ce e A ` e cas. pour empˆcher l’´valuation du cˆt´ gauche de e e oe l’´quation. La commande latex se sert de writeto pour rediriger le r´sultat lorsqu’un nom e de fichier est sp´cifi´. par e e exemple). les sommes. Vous pouvez omettre filename . > latex( a/b ).. Si vous e e e ne sp´cifiez pas de nom de fichier. {\frac {a}{b}} > latex( Limit( int(f(x). ne peuvent ˆtre e ` e e A X. x=-n. 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. Il est sugg´r´ de produire le r´sultat de telles commandes de formatage au moyen de la commande printf. comme les proc´dures. latex l’´crase pour ´crire le nouveau fichier. latex affiche le code L TEX a l’´cran et vous pouvez le couper et le A coller dans votre document L TEX. les limites. "nomfichier " ) L’objet expr peut ˆtre n’importe quelle expression math´matique. incluant les int´grales. Le champ nomfichier est optionnel .n)..$. De telles proc´dures formatent les appels de la ee e fonction functionname . Cependant.. 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 ‘. Remarquez l’usage de Int. les e e produits et les matrices. n=infinity ) ). A La commande latex ´crit le code L TEX correspondant de l’expression e e Maple expr dans le fichier filename. 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 la forme inerte de int. \lim _{n\rightarrow \infty }\int _{-n}^{n}\!f \left( x \right) {dx} La commande latex produit des commandes lisibles en mode math.´ 7. Les e e expressions sp´cifiques a Maple. Maple ´crit le r´sultat directement dans e e e votre feuille. La commande latex peut traduire la plupart des types d’expressions math´matiques.

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

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. chaque ligne qui commence avec un di`se (#) comme du e e texte. depends on the parameter a. / | 2 | x sin(x . Give the integral a name so that you can refer to it later. x). > expr := Int(x^2 * sin(x-a). vous e pouvez exporter une feuille de calcul en texte Maple. Maple traite chacune des lignes qui commencent par un prompt Maple suivi d’un espace (> ) comme une entr´e Maple... # # # # # # > An Indefinite Integral by Jane Maplefan Calculation Look at the integral Int(x^2*sin(x-a)..7. > answer := value( % ). x^2*sin(x-a). Give the integral a name so that you can refer to it later.a) dx | / expr := . les entr´es de Maple et ses sorties.. et ignore toutes les autres lignes.3 Exporter des feuilles compl`tes e • 283 integrand. Le texte suivant est une portion d’une feuille export´e en texte e Maple..a) dx | / The value of the integral is an anti-derivative of the integrand. x^2*sin(x-a). e e e En lisant ou en collant du texte. expr := Texte Maple e e Le texte Maple n’est que du texte sp´cialement marqu´ qui conserve la distinction entre le texte. / | 2 | x sin(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. Notice that its integrand. expr := Int(x^2 * sin(x-a). depends on the parameter a. Ainsi. x).x).

Par contre. 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. Vous pouvez ´galement copier et coller du texte Maple grˆce au menu e a Edit. si vous utilisez l’option Paste habituelle. si vous collez du texte Maple dans votre e feuille en utilisant Paste Maple Text du menu Edit.tex que Maple g´n`re est prˆt ` ˆtre compil´ par L TEX. De mani`re similaire. Maple conserve la structure du texte Maple. e Si votre feuille contient des graphiques incorpor´s. Maple interpr`te tout le texte coll´ e e comme du texte standard. Toutes e e e ae e les distributions de Maple incluent les fichiers de style n´cessaires. 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. Maple ne conserve aucune structure : si vous collez dans une zone d’entr´e. il interpr`te tout le texte coll´ comme une entr´e. 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. et si e e e e vous le collez dans une zone de texte. choisissez Open du menu File.00 (IBM INTEL NT) %% Source Worksheet: tut1. A fichier . L’exemple suivant est une portion d’une feuille Maple export´e en e A X. format L TE %% Created by Maple 8.284 • Chapitre 7: Entr´es et sorties e # The value of the integral is an anti-derivative of the # integrand. Pour ouvrir une feuille en format texte Maple. > answer := value( % ). le texte coll´ apparaˆ sous forme de e ıt texte Maple. Dans la boˆ de dialogue qui apparaˆ alors.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} . Double-cliquez sur le e ıte fichier souhait´ et choisissez encore Maple Text dans la boˆ de dialogue e qui apparaˆ ıt.

depends on the parameter \mapleinline{inert}{2d}{a. 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 . Vous pouvez inclure ces fiA a chiers graphiques dans votre document L TEX ` l’aide de la commande A L TEX \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ˆ Le fichier .x).a)\.a)$% }.}{% $x^{2}\. e ee e .}{% $a$% }.\mathrm{sin}(x . \mapleinline{inert}{2d}{x^2*sin(x-a).}{% $\int x^{2}\.html g´n´r´ par Maple peut ˆtre ıt.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). A Les fichiers de style L TEX supposent que vous imprimez le fichier .tex en utilisant le pilote d’imprimante dvips.dx$% }. La section Imprimer des graphiques de la page 288 explique comment enregistrer des graphiques directement.\mathrm{sin}(x .tex. Notice that its integrand.7.

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

x). {\rtf1\ansi\ansicpg1252\deff0\deflang1033 {\fonttbl {\f0 Times New Roman} {\f1 Symbol} .rtf g´n´r´ par Maple peut ˆtre charg´ dans ıt.gif" width=89 height=50 alt="[Maple Math]" align=middle> <font color=#000000>. </font> <img src="tut12. 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. e e e L’exemple suivant est le d´but d’une feuille Maple export´e en format e e RTF.</font> </p> <p align=left><a name="expr command"> <tt>&gt.3 Exporter des feuilles compl`tes e • 287 <font color=#000000>.7. Notice that its integrand.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. 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> <font color=#000000>Give the integral a name so that you can refer to it later. </tt> <b><font color=#FF0000>expr := Int(x^2 * sin(x-a).gif" width=13 height=32 alt="[Maple Math]" align=middle> <font color=#000000>.</font></b> </p> <p align=center> <img src="tut14. e ee e e n’importe quel traitement de texte qui supporte le format RTF.html" target="_top">an anti-derivative</a> <font color=#000000> of the integrand. depends on the parameter </font> <img src="tut13. Les feuilles de e calcul (spreadsheets ) ne sont pas pleinement export´es.</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 .

. } {\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). La commande suivante indique a Maple d’afficher le graphique dans une fenˆtre ` e s´par´e de votre ´cran. Vous pouvez utiliser la commande plotsetup pour changer ce comportement. Lorsque votre graphique s’affiche dans une fenˆtre s´par´e. Les documents XML sont charg´s en choisissant Open du menu e File. vous poue e e vez l’imprimer par le menu File comme toute autre feuille Maple. 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.</mapletext></para> </exchange></section> 7. e e e > plotsetup(window). e <section><exchange><para pstyle=’Normal’ prompt=’> ’><mapletext maple-input=’true’ cstyle=’Maple Input’>a.xml g´n´r´ par Maple peut ˆtre charg´ comme une feuille Maple tradie ee e e tionnelle. \red0\green0\blue255. \red0\green0\blue0. puis XML.4 Imprimer des graphiques Sur la plupart des plateformes. Le fichier . choisissez Export As du menu File.288 • Chapitre 7: Entr´es et sorties e {\f2 Courier New} } {\colortbl \red205\green205\blue205.

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

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

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

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

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

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

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. 2. ee ee La barre d’espacement et la touche TAB Vous pouvez utiliser la souris pour cliquer sur un bouton comme Cancel ou OK.9 Comment utiliser les raccourcis de l’interface graphique Listes d´roulantes e Certaines maplets contiennent des listes d´roulantes. La liste se d´place automatiquement jusqu’` un ´l´ment e a ee commen¸ant par la lettre saisie.8. ex´cutez-la a nouveau au moyen de l’outil e e ` lastmaplet. 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. La commande choisie est ex´cut´e. > maplets[Display](lastmaplet). 8. 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. 1. Utilisez la touche Tab pour positionner le curseur sur le bouton de votre choix. e e . 1. 2. il vous est tou` jours possible d’interrompre le processus en cours. Voici comment les e utiliser efficacement. c 2.8 Comment arreter puis red´marrer une maplet e Lorsque les calculs a effectuer par une maplet sont longs.8 Comment arreter puis red´marrer une maplet e • 295 2. Entrez l’expression. Pour red´marrer la maplet. les nombres ou le texte appropri´s. Vous pouvez ´galement utiliser les touches Tab et la barre e d’espacement de la mani`re suivante. e 1. Appuyez sur la barre d’espacement. Pour arrˆter la maplet en cours. e 8. Entrez le premier caract`re de l’´l´ment de la liste que vous souhaitez e ee atteindre.

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

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

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

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

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

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

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

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

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

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

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

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)//-->