Beruflich Dokumente
Kultur Dokumente
J. EL KHAMKHAMI
Calcul Scientifique : Maple
Parcours "Rayonnement"
Dpartement de Physique
Facult des Sciences de Ttouan
10-02-2016
______________________jamalelkhamkhami@gmail.com______________________
Introduction
Ag de 35 ans.
com). Il fonctionne sur les stations de travail UNIX, sur Macintosh et sous Windows. Il y a plusieurs
versions ; actuellement la version 2015 existe.
Pourquoi Maple?
Nous avons choisi un logiciel de calcul interprt car l'utilisation de tout autre langage non interprt
ncessite un effort important pour une majorit d'tudiants et ne leur permet pas d'approfondir les
notions de calcul scientifique.
De plus, dans les langages fortement typs, de nombreuses contraintes gnent les tudiants. A
l'oppos, les logiciels modernes de calcul possdent une interface facile assimiler : les lignes
d'instruction s'crivent comme des lignes de math. et des rsultats peuvent tre rapidement obtenus.
De mme, on peut utiliser la possibilit de mener la fois un calcul symbolique et un calcul
numrique, tout en profitant de ses capacits dans le domaine de la visualisation (graphique et
animation 2D et 3D).
Un autre avantage de Maple est de pouvoir insrer du texte entre les lignes de commandes et de
calculs sans passer par un diteur. Cela offre ainsi la possibilit de commenter les programmes et les
rsultats qu'il observe (avec ventuellement des formules mathmatiques).
Le plus utilis dans le monde en tant que calcul formel (sans oublier Mathematica). On le trouve
parmis les enseignements de base (DEUG, Classes prpa (dernirement au Maroc), Concours aux
grandes coles).
Enfin, il est noter que dans notre Facult il y'a une diversit de connaissances en matire de calcul
scientifique chez les tudiants.
Pour commencer
MAPLE propose deux formes de prsentation des feuilles de calcul : le mode Document (Document
mode) et le mode feuille de travail (Worksheet mode).
D'une simplifie, le mode "Document" est orient vers un "document scientifique" avec une prsentation
plus habituelle des commandes de calculs. Il combine du texte et des maths dans une mme ligne. Le
mode "Worksheet" est plutt orient vers un "document de travail" ; il prsente aussi des avantages de
simplicit et de clart d'utilisation pour un travail courant ainsi que des ressources mmoire moins
importantes.
=
> int(sin(x), x);#
(1)
1-D Math
Lorsque les deux points : sont utiliss, le rsutat ne s'affiche pas, mais l'ordre est transmis.
> b = sqrt(3):
Les deux points : avant le signe = permettent d'affecter (assigner) l'expression du membre droite la
variable x :
=
x := sqrt(3): y := x+2; y;
(4)
La fonction restart permet de rinitialiser toutes les variables de la feuille de calcul (les mmoires).
> restart;
> x, y;
(5)
Tout ce qui vient aprs le caractre # est ignor par le logiciel. Il est considr comme un commentaire
(le ! du Fortran 90) :
>
(6)
> m;# m ne prend pas la valeur 2, parce que il ne s'agit pas
d'une assignation.
>
Si on crit deux instructions spares par une virgule puis la fin on tape un point virgule, alors leurs
rponses respectives s'crivent sur une mme ligne :
>
(7)
Des messages d'erreur peuvent apparatre en cas de mauvaise saisie ou d'oprations illicites:
>
Error, unable to match delimiters
>
(8)
Le caractre % (pourcent) permet de rappeler la dernire expression calcule (% est le Ditto Operator)
>
4
(9)
(9)
%% permet de rappeler l'avant-dernire expression calcule.
>
7.
8.
%%% permet de rappeler l'avant-avant-dernire expression calcule.
>
(10)
? ou
help
> ?solve; # On cherche de l'aide sur la fonction solve
> help(int); # on cherche de l'aide sur la fonction int
On peut galement obtenir des aides sur des sujets entiers. Le mieux est alors de passer par le menu Help
Calcul Symbolique
Commande
Exemple
>
1
(11)
>
assuming : simplifier en faisant d'hypothse (a rel ngatif)
=
expand : pour dvelopper une expression
>
(12)
>
= false,
= FAIL
diff(x*cos(x), x$3); =
=
dsolve : pour rsoudre une diffrentielle
= 55
=
= 3628800
=
=
Gradient : pour calculer le gradient d'une fonction scalaire
=
, la fonction
=
Add : pour additionner deux matrices
=
=
=
=
,
=
=
= true ,
false
= 2,
=7
=2
= 31,
=6
= "XXII",
= 11
=0
5463
,
20
=
= 1100,
= 27
= speed,
= pressure
Calcul Numrique
Le nombre de chiffres significatifs rendus par MAPLE est fix par dfaut 10 par le symbole prdfini
Digits.
= 10
= 3.141592654,
= 101.0643359. on utilise la commande evalf(...), pour
avoir la valeur numrique (par dfaut 10 chiffres significatifs) de Pi, sqrt(10214). Cependant, ce nombre
peut tre dfini par l'oprateur.
= 3.14159265358979,
Les syntaxes suivantes est aussi valides :
3.14159265358979323846264338328
Commande
identify : pour crire une valeur numrique (float)
sous forme symbolique
= 101.064335944981,
= 3.1416,
=
Exemple
=
,
=
=
=
, on ajoute
l'option complex, pour avoir les solutions
complexes
= 0.7559774120
= 9.349304214, pour chercher
une solution autour de 10.
= 12.60817398, pour
chercher une solution comprise entre 11 et 14.
=
=
: pour intgrer une expression. Pour dclencher
un calcul approximatif, on crit l'une des
oprandes en virgule flottante (valuation
dcimale implicite).
ApproximateInt : pour calculer un intgrale
moyennant un mthode numrique donne.
= 0.3466144871
= 0.339961130015929
ApproximateIntTutor : pour lancer un tuteur
avec interface qui calcule, trace ou anime
l'approximation d'une intgrale dfinie. aide
(13)
Programmation
Quelques exemples
>
Structure if
Structure if
Boucle for
=
1
0
0
=
Procdure proc
Procdure rcursive
(14)
>
>
>
Visualisation
Cliquer ici
Maplet
lments de barres d'outils:
Une barre d'outils peut tre insre dans une fentre. Cette barre d'outils peut contenir diffrents
boutons ou sparateurs.
ToolBar : Dfinit une barre d'outils dans une
fentre de maplet
Maple en Physique
Cliquer ici
Pour accder la bibliothque
=
Cela gaspille plus de ressourses mmoire, si on veut uniquement l'une des fonctions de la bibliothque,
par exemple, GetConstant on crit la syntaxe : ScientificConstants[GetConstant]
=
, c'est
l'acclration de la pesenteur.
Pour la charge lmentaire de l'lectron :
h,
et c :
=
=
=
=
>
=
=
Les entiers
3
isprime 18 = false,
nextprime 18 = 19,
ithprime 18 = 61
ifactor 464 = 2
isolve 3 x K 4 y = 7, n =
x = 5 C 4 n, y = 2 C 3 n
irem 15,K2 = 1
chance d rand 6 C 1 :
chance = 5
29
Les rationnels
Les nombres rationnels sont des objets de type fraction (ou rational). Ils sont considrs par MAPLE
comme tels s'ils ne sont pas simplifiables, c'est--dire comme des rapports de deux entiers et non comme
leurs approximations dcimales. L'valuation d'un rsultat non entier reste sous sa forme rationnelle
14 K 3
1
1C
3
4
1K
5
31
23513
C 5!K78 =
4!
456
1
2
3 , sqrt 3 =
3,
2 = 21 / 3
a d 5 : L'objet a est alors associ, non une approximation numrique, mais un nombre
symbolique positif dont le carr vaut exactement 5. a2 = 5
whattype 2 = `^`, ils sont de type : ^
MAPLE effectue parfois automatiquement des transformations pour prsenter un nombre.
q d 1 / 2K2 ^ 1 / 4 : =
3
q4 = K
2
Il n'effectue pas ncessairement des calculs qui peuvent paratre vidents l'utilisateur :
1
2
10
10
2
Il existe alors trois faons de dfinir des nombres avec des puissances de 10, la plus simple utilisant
la notation scientifique (indiffremment e ou E).
e = 0.1602176462E-18 , c = 2.99792458 * 10^ 8 , h = Float .662606876,K33 , 45e543 =
e = 1.602176462 10-19 , c = 2.997924580 108 , h = 6.62606876 10-34 , 4.5 10544
Attention ! 2.e2
Error, incorrect syntax in parse: missing operator or `;` (near 4th
character of parsed string)
2.e2
= a marche pas !
3
exp 1 CC
=e2
2
Priorit aux calculs symboliques : Par contre, la priorit est toujours donne aux calculs
symboliques et MAPLE ne prendra pas l'initiative de remplacer 2 ou Pi par leurs valeurs dcimales
approches : 1. C 2 = 1. C 2 , Pi C 5 = p C 5, Pour les avoir on peut utiliser la fonction evalf
(contraction de "floating-point evaluation") :
evalf % = 8.141592654, evalf %%% = 2.414213562
MAPLE est avant tout un calculateur symbolique mais, on peut toujours lui demander une
approximation dcimale d'une expression numrique avec la fonction evalf :
4
evalf
= 1.333333333, evalf 21! = 5.109094217 1019 , 21! = 51090942171709440000
3
K1
exp
5
1
= evalf exp K
5
=e
1
5
= 0.8187307531
7
= 0.777777777777778 c'est l'approximation de 7/5 avec 15 chiffres significatifs.
9
La reprsentation des nombres dcimaux est limite en magnitude :
evalf15
10
30
104348
33215
104348
rPi d convert evalf Pi , rational =
33215
fPi d convert evalf Pi , fraction =
trunc K2.5478 ,
trunc 2.5478
= K2, 2
round K2.5478 ,
round 2.5478
= K3, 3
floor K2.5478 ,
floor 2.5478
= K3, 2
Variable, assignation
Une variable est l'adresse, dans la mmoire de l'ordinateur, d'un emplacement permettant de stocker
un objet d'un type donn.
A une variable on peut assigner (affecter) un objet (une valeur ou une expression,...). Si l'on affecte
une variable une valeur, la variable est dite assigne. var d 1.2 : , x d a C b :
Le nom var est un identificateur qui pointe sur la constante 1.2. Pour savoir ce qui est assign aux
variables var et x il suffit d'crire :
var = 1.2, x = a C b
Une nouvelle assignation (rassignation) d'une variable annulle la precdnte : x d Pi : x = p
La variable x ne pointe plus vers l'expression a+b.
Remarque : Les noms protgs, on ne peut pas les rassigner :
Pi d 2 : Error, attempting to assign to `Pi` which is protected. Try
declaring `local Pi`; see ?protect for details. = Si il est ncessaire, il faut
enlever la protection.
unprotect Pi :
Pi d 2 : Pi = 2
On dsassigne Pi :
Pi d'Pi': evalf Pi = 3.141592654
Pour dsassigner (dsaffecter) une variable assigne, on lui affecte son nom crit entre deux
apostrophes. On peut aussi utiliser les fonctions evaln ou unassign (valuer en un nom). z = z,
z d'z ': z = z
Il est possible de faire des assignations mutiples : x, y, z d 1, 3 , k
1, 3 , k
(1.1)
La fonction assigned permet de tester (utile en programmation) si un nom est assign. Le rsultat est
une valeur logique : true (vrai) ou false (faux). assigned z = true , assigned y = true
Evaluation
Evaluation explicite
On peut demander l'valuation d'une expression pour une valeur particulire d'un paramtre avec la
fonction eval. Les arguments doivent tre successivement l'expression valuer puis une galit fixant
la valeur du paramtre.
B d a x2 C b x K 1 : , eval B, x = 1 = a C b K 1, valuer B pour x=1.
Expression
restart :
Une expression est une suite d'oprandes spars par des oprateurs( arithmtiques, relationnels,
boolens, ...).
a C b C ln t : , x C y s 1 : , p and q or v :
Une expression peut tre affecte un nom (variable). v d a$ sin t C x C eb :
Pour lister les oprandes d'une expression, on utilise la fonction op. Pour avoir leur nombre, on utilise
la fonction nops.op v = a sin t C x , eb . nops v = 2. op 1, v = a sin t C x .
op 2, v = eb , op 1, 1 , v = a, op 1, 2 , v = sin t C x , ces deux derniers sont la 1re et la
2me oprande de la 1re oprande de l'expression v.
x=3
Lorsqu'il s'agit de plusieurs substitutions la fois, on crit : subs a = b, x = 1 , A =
b K b sin p ,value % = b
Fonctions subsop et algsubs
p d x3 C 6 x2 K 4 : op 2, p = 6 x2 ; subsop 2 = a, p = x3 C a K 4, c'est dire, substituer la
2me oprande par a.
Lorsque l'on veut substituer une expression algbrique par une autre, on utilise la fonction algsubs :
Pi
algsubs 4 C e =
, sin w$t C 4 C e = cos w t
2
E d sin x 3 K cos x sin x 2 C cos x 2 sin x C cos x 3 :
algsubs sin x 2 = 1 K cos x 2 , E = 2 cos x 3 C sin x K cos x
Type
Maple reconnat 254 types et sous types de base !
Exemple : integer, fraction, float, string, name, + , *, ^, equation, list, table, type, ...
Ce sont des types de base (types systme). Ecrire ?type pour les avoir tous.
A partir de ces types de base, on peut construire des types structurs : un type structur est une expression
Maple qui peut tre interprte comme un type. Pour le construire, on peut utiliser la plupart des
oprateurs : = <> .. ^ . [ ] etc.
La commande whattype(...) permet de connatre le type d'une expression Maple. Appliqu une
expression simple, cette commande donnera le type de l'expression considre. Mais appliqu une
expression compose de plusieurs types diffrents, la commande whattype(...) retournera le type de la
dernire tape ralise de l'expression.
Type numrique
Il se divisent en trois grands types distincts : les entiers ('integer'), les fractions ('fraction') et les rels
('float').
whattype 4 = integer, whattype 2 / 3 = fraction, whattype 1. = float
Type algbrique
Maple diffrencie trois types de relations algbriques : l'additions (+), la multiplications (*) et la
Type relationnel
Maple considre qu'il y a quatres types de relations : l'galit, la diffrence, la supriorit stricte et la
supriorit large.
whattype a = b = , whattype a s b = , whattype a O b = , ,whattype a ! b = ,
whattype a R b = , whattype a % b =
> is(2 >= 2);# 1-D Math, la supriorit large se note >=
true
(4.3.1)
> is(2 <> 2);# en 1-D Math, la diffrence se note <>
false
(4.3.2)
Type logique
Les expressions logiques se regroupent en cinq types, et (and) ; ou (or), ou exclusif (xor, de deux
choses : lune ou lautre mais pas les deux la fois, la valeur vrai seulement si les deux oprandes ont
des valeurs distinctes), la ngation (not) et l'implication (implies).
whattype a and b = and, whattype a or b = or, whattype a xor b = xor, whattype not b =
not, whattype a implies b = implies
true xor false = true, false xor true = true,true xor true = false, false xor false = false
Autres types
Suite d'expressions (ou squence)
Liste (list)
= list
Ensemble (set)
whattype
= set
Intervalle (range)
whattype 1 ..8 = ..
Symbole
whattype x = symbol
Procdure
Dclaration
whattype a T integer = ::
Indice
whattype x i
a, b C c, 1.2, x/x C 2
= indexed
Intervalles
MAPLE permet de dfinir des intervalles sous la forme de deux termes spars par au moins deux
points.
a ..b = a ..b, 1 ..5 = 1 ..5, xlow ..xup = xlow ..xup
On peut affecter un intervalle a une variable : var d 1 ..7 : , inter d 0 ..infinity = 0 ..N
Attention ! Il ne faut pas choisir comme nom les objets : int, Int ou I qui sont des noms protgs de
MAPLE qui renverrait un message d'erreur.int d 3 ..9 Error, attempting to assign to
`int` which is protected. Try declaring `local int`; see ?protect
for details.
Remarque : Les noms protgs, on ne peut pas les rassigner, sinon on devera enlever la protection.
L'intervalle 1..4 n'est pas considr comme tant : 1, 2, 3, 4. Pour qu'il soit ainsi, il faut utiliser
l'oprateur $. : $1 ..4 = 1, 2, 3, 4
L'interprtation d'un intervalle dpend, comme nous le verrons, du contexte de son utilisation. Par
exemple l'intervalle 0 .. reprsente-t-il l'ensemble des entiers ou des rels positifs ou nuls? La
rponse dpend du calcul que l'on effectue, par exemple une intgration ou une sommation discrte.
Soit l'intervalle : In d 0 ..5 :
5
25
Int x, x = In = int x, x = In = x dx =
, ici, In est considr comme l'ensemble des rels compris
2
0
entre 0 et 5.
5
Sum x, x = In = sum x, x = In =
x=0
Suites
Une suite (exprseq = expression sequence) est un ensemble d'expressions, crites dans un certain ordre
et spares par une virgule. Un lment de cette suite peut tre identifi par son ordre dans la suite et
les lments identiques sont considrs comme distincts.
exempledesuite d 1, 2, a C cos b , 2, 3 ..5 = 1, 2, a C cos b , 2, 3 ..5
Le type d'une suite est : exprseq. whattype exempledesuite = exprseq
NULL dsigne la squence vide. S d NULL :
whattype S = exprseq
nops S = 0
3 :
(2.1.1)
Affectation interdite :
s2 d 0
Error, invalid assignment (a+sin(b), 1, x+y, a__low .. a__up,
3^(1/2))[2] := 0; cannot assign to an expression sequence
Multiplication par un scalaire :
2$s
Error, invalid terms in product: a__low .. a__up
s d s 1 ..3 :
2$s;
2 a C 2 sin b , 2, 2 x C 2 y
(2.1.2)
Inclusion dans une suite :
S d b, s, a$x C b$y = b, a C sin b , 1, x C y, a x C b y
t C 2, t C a, t C sin b , t K b e
seq x/x sin x
x , x = 1 ..5
sin 1 , 2 sin 2 , 3 sin 3 , 4 sin 4 , 5 sin 5
(2.2.2)
(2.2.3)
(2.2.4)
(2.2.5)
(2.2.6)
: sort %, x, ascending
2
a0 C a1 x C a2 x C a3 x C a4 x
(2.2.7)
Listes
Une liste (list) est une suite crite entre deux crochets [...]. La liste a les mmes proprits que la suite,
mais elle est vue par Maple comme une expression de type different. l'ordre des lments est important
et les rptitions sont prserves.
L d a x, b, b, c, d, a ;
a x, b, b, c, d, a
(3.1)
L d a, a $3, x C 2 = a, a , a , a , x C 2
Le type d'une liste est : list. whattype L = list
Pour dfinir une liste vide, on crit : L d ; nops L
0
(3.2)
a , b,
a , xC2
a , b,
=5
a , xC2
5
Pour modifier les oprandes d'une liste, on peut aussi utiliser subs ou subsop.
(3.1.1)
subs a = 2, L =
, subs a = b, L =
subsop 2 = e, L = a, e, b,
, subsop K1 = w, L = a,
, remarquez le signe -.
, subs x = b, L =
a , xC2
a , b,
a,w
a , ces
a C b, t, x C 3, cos x
(3.1.3)
L d $1 ..20 :
remove x/is x, even , L = 1, 3, 5, 7, 9, 11, 13, 15, 17, 19 , c'est pour supprimer les nombres
pairs de L.
select isprime, L = 2, 3, 5, 7, 11, 13, 17, 19 , c'est pour choisir les nombres premiers de L.
select x/is x, odd , L = 1, 3, 5, 7, 9, 11, 13, 15, 17, 19 , c'est pour choisir les nombres
impairs de L.
Remarque : Le 1er argument des deux fonctions remove et select est de type une procdure dont la
rponse est une valeur logique.
subsop 1 = NULL, % = 3, 5, 7, 9, 11, 13, 15, 17, 19 , supprimer le 1er lment,
subsop 2 = NULL, K2 = NULL, %% = 1, 5, 7, 9, 11, 13, 15, 19 , supprimer le 2me dernier et
l'avant dernier lment.
C cos x
C 4 sin z
cos z
C cos 2 z
(3.2.1)
La fonction map
C'est une fonction de grand intrt, elle permet d'appliquer une fonction tous les termes d'une liste.
L d a, b, c : map sin, L = sin a , sin b , sin c , map f, L = f a , f b , f c ,
2
2 2 2
map x/x , L = a , b , c
Remarque 1 : Le 1er argument est le nom d'une procdure. map isprime, 1, 2, 4, 7 =
false, true, false, true
Le 2me argument est de type list : s d a, b, c : S d map sqrt, s =
a, b, c .
Pour appliquer la fonction map une suite, il faut d'abord la convertir en une liste puis
la repasser en une suite : op S = a , b , c
map sqrt, s Error, invalid input: sqrt expects its 2nd
argument, f, to be of type identical(symbolic), but received b
Remarque 2 : La fonction expand s'applique tous les lments de la liste sans qu'il soit ncessaire
d'utiliser explicitement la fonction map. Mme remarque pour les autres oprateurs de transformations
comme subs, evalf, eval, etc.
2
2
expand x 1 C x , 1 K x
= x 1 C x , x K 2 x C 1 , par contre a ne marche pas avec par
2
exemple la fonction sin , a provoque un message d'erreur : sin x 1 C x , 1 K x
Error, invalid input: sin expects its 1st argument, x, to be
of type algebraic, but received [x(1+x), (1-x)^2]
2
Il faut ncessairement passer par map : map sin, x 1 C x , 1 K x
=
2
sin x 1 C x , sin 1 K x
Remarque 3 : Lorsque l'oprateur ncessite plus d'un argument, les arguments supplmentaires sont
placs la suite de l'objet sur lequel s'applique map. Par exemple type peut s'crire type(x, numeric)
d'o la syntaxe :
map type, x, 1, .3 , numeric = false, true, true
La fonction zip
Elle permet d'appliquer un oprateur, deux variables, aux oprandes de deux listes. Le rsultat est
une liste.
L1 d 1, 2, 3 : L2 d 4, 5, 6 :
zip f, L1 , L2 = f 1, 4 , f 2, 5 , f 3, 6
g d x, y /x C y : zip g, L1 , L2 = 5, 7, 9
zip
x, y / x, y , L1 , L2 =
La bibliothque ListTools
?ListTools
1, 4 , 2, 5 , 3, 6
Cette bibliothque ou package contient 29 fonctions (ou commandes) pour manipuler les listes.
L'utilisation de ces fonctions se fait, soit par accs direct la bibliothque l'aide de with (on crit la
syntaxe : with(ListTools), chargement de la bibliothque), soit par utilisation simple de la fonction
voulue selon la syntaxe : ListTools[nom de la commande](arguments). Cette dernire syntaxe
consomme moins de ressources mmoire.
sort 1, 8, 5, 3 = 1, 3, 5, 8 . Cette fonction, on peut l'utilser sans avoir besoin d'accder la
bibliothque ListTools. Selon cette syntaxe, elle permet de ranger les lments d'une liste par ordre
croissant.
Si on veut les ranger par ordre dcroissant, on crit : sort 1, 8, 5, 3 , `O` = 8, 5, 3, 1
with ListTools
BinaryPlace, BinarySearch, Categorize, Classify, DotProduct, Enumerate,
(3.5.1)
FindMaximalElement, FindMinimalElement, FindRepetitions, Flatten, FlattenOnce,
Group, Interleave, Join, JoinSequence, LengthSplit, MakeUnique, Occurrences, Pad,
PartialSums, Reverse, Rotate, Search, SearchAll, SelectFirst, SelectLast, Sorted, Split,
Transpose
nops with ListTools = 29
L := $1 ..6 :
Rotate L, 3 = 4, 5, 6, 1, 2, 3 : permutation circulaire partir de 3,
Reverse L = 6, 5, 4, 3, 2, 1 : renverser l'ordre de L,
MakeUnique 1, 2, 3, 4, 3, 2, 3, 4, 5, 4, 3, 4, 5, 6 = 1, 2, 3, 4, 5, 6 : liminer toutes les
rptitions,
MakeUnique 1, 2, 3, 4, 3, 2, 3, 4, 5, 4, 3, 4, 5, 6 , 2 = 1, 2, 3, 4, 3, 2, 4, 5, 5, 6 : tous les
lments ne doivent pas se rpter plus de 2 fois,
Occurrences 3, 1, 2, 3, 4, 3, 2, 3, 4, 5, 4, 3, 4, 5, 6 = 4 : combien de fois se rpte 3,
Categorize x, y /irem x K y, 3 = 0, $1 ..16 =
1, 4, 7, 10, 13, 16 , 2, 5, 8, 11, 14 , 3, 6, 9, 12, 15 : regoupe les lments selon un certain
critre (dfini par le 1er argument), SelectFirst isprime, L = 2 : choisr le 1er nombre premier de L,
SelectLast 3, isprime, L = 2, 3, 5 : choisir les 3 derniers nombres premiers de L,
SelectFirst 2, type, L, odd = 1, 3 : choisir les 2 premiers nombres impairs de L.
Ensembles
Un ensemble est une structure de donnes de MAPLE dfinie syntaxiquement par une suite encadre
par deux accolades : {...}.
L'ordre des lments d'un ensemble et leur rptition n'ont pas d'importance. Les lments rpts sont
considrs comme un lment unique.
restart : true, a C b, b, 1 = 1, b, true, a C b : remarquez l'ordre des lments, il est alatoire,
x, b, x, a, b = a, b, x , les rptitins sont ignores, seq K1 i , i = 1 ..4 = K1, 1 , op % =
K1, 1
Le type d'un ensemble est : set, whattype e, r = set
Pour dfinir l'ensemble vide on crit : e d
=
.
Evaluation, substitution
restart :
E d a, b$2 = a, b
2
2
eval E, a = x C 1 = b, x C 1
Les fonctions subs ou subsop permettent de modifier les lmenets d'un ensemble :
subs a = a, E = a, b
2
subsop 2 = cos x K 1, b, x C 1 = b, cos x K 1
Suppression d'lments
restart :
Pour supprimer des lments d'un ensemble, on peut aussi utiliser la fonction minus (soustraction)
; comme on peut utiliser aussi les fonctions remove, select et subsop
E d x, y, 1, 2, 3 : E minus 2, 3 = 1, x, y : retirer de E les lments 2 et 3.
Remarque : La soustraction A minus B (note aussi A y B, en 2-D math) est dfinie comme tant
l'ensemble contenant les lments de A sauf les lments de son intersection avec B. L'opration n'est
pas commutative : 2, 3, 5 y E = 5 , E y 2, 3, 5 = 1, x, y
select type, E, name = x, y : choisir les lments ayant le type name.
remove isprime, 2, 4, 5, 9 = 4, 9 : retirer les nombres premiers.
remove type, 2, 4, 5, 9 , odd = 2, 4 : retirer les nombres impairs.
6
, cos
4
Pi
, s, a C n ; g d a,
6
3 3
, , a C n, s
2
2
G d a,
3 3
, , s, a C n ; evalb e = g
2
2
: evalb e = G
3 3
, , a C n, s : evalb e = G
2
2
C'est possible aussi avec la fonction verify, selon la syntaxe suivante : verify e, g , verify e, G =
true, false
Mais attention !
2
2
A d a, b, cos x C sin x K 1 : B d 0, a, b : evalb A = B , verify A, B
false, false
(4.3.1)
verify A, B,'set simplify ' = true
verify A, B,'set expand ' = false
2
2
2
2
simplify cos x C sin x K 1 , expand cos x C sin x K 1
G d a,
0, cos x
C sin x
K1
(4.3.2)
K d x, x ,
: L d 1., x, 2, 3 :
2,x
KX L, KW L = x , 2, 3, 1., x, 2 , x
T subset K = true, T est un sous-ensemble de K. Pour U ce n'est pas vrai : U subset K = false
T 4 K = true
U 4 K = false
La fonction map
Souvent utilise, la commande map savre trs utile pour les ensembles. Lopration de
correspondance (mapping) permet dappliquer une fonction simultanment tous les lments de
3 3.
nimporte quelle structure.E d 0, 5, ,
, q : map sqrt, E =
2 5
1
0, 0.7745966692, 5 , q ,
6 , evalf %, 4 = 0., 0.7746, 1.224, 2.236, q
2
La fonction convert
convert E y 0 , list = 5,
3
, 0.6000000000, q : convertir l'ensemble E (aprs avoir y retirer
2
Simplifications et transformations
Pourquoi le rsultat de simplify nest-il pas sous sa forme la plus simple ?
Tout simplement parce que la question de la simplification est complique en raison de la difficult
dfinir ce quest une forme " simple " pour une expression. La conception dune forme simple pour un
utilisateur peut tre trs diffrente de celle dun autre utilisateur ; de plus, lide dune forme la plus
simple peut varier dune situation lautre. Ceci est bien claire sur l'exemple suivant :
Exemple 1
A d 1C3
1
K
2
: B d 1C
1C
b d simplify B =
9C2
6C
rb d rationalize b = K
1
33
expand numer rb
denom rb
b=
1
A
9C2
6C
3
3
K6 C
=
16
1
C
11
11
is % = true
Page 1 de 8
simplify A$B =
1
3
3C 3
9C2
6C
pas !
ab d simplify expand A$B
11 C 5
6C
1
rab d rationalize ab = K
33
ab =
3
3
11 C 5
11 C 5
6C
3
3
3
=
K6 C
17
19
C
11
33
is % = true
> sin t
2 kC1
k=0
res d value S = K
cos t n
sin t
1
, est-ce que cette rponse est l'expression la plus simple
sin t
de S ?
cos t n 2 K 1
, mme question !
sin t
Avec des relations particulires on peut forcer Maple obtenir des expressions encore plus simples :
2
2
rel d cos t n = 1 K sin t n
:
2
sin t n
simplify res1, rel =
sin t
res1 d simplify res = K
La fonction expand
Essentiellement, la commande expand est linverse de la commande factor. Elle permet lexpansion
de termes multiplis de mme que plusieurs autres expansions. Pour cette raison, expand figure parmi
les commandes de manipulation les plus utiles. Bien que lon puisse imaginer par son nom que le
rsultat quelle produit soit plus long et plus complexe que lexpression originale, il nen est pas
toujours ainsi. En fait, lexpansion de certaines expressions permet de grandes simplifications.
tan a C tan b
restart : E0 d
K tan a C b :
1 K tan a $tan b
tan a C tan b
E1 d simplify E0 =
K tan a C b , aucune simplification !
1 K tan a tan b
tan a
tan b
tan a C tan b
E2 d expand E0 =
C
K
1 K tan a tan b
1 K tan a tan b
1 K tan a tan b
'E0 '= simplify E2 = E0 = 0
simplify ln 3 b = ln 3 C ln b , expand ln 3 b = ln 3 C ln b , on obtient les mmes
transformations !
2
simplify sin 3 b = sin 3 b , expand sin 3 b = 4 sin b cos b K sin b = ,
maintenant, des transformations diffrentes !
Page 2 de 8
simplify ln a b = ln a b , expand ln a b
pour les deux commandes !
Commentaire : Lorsquon utilise Maple pour la premire fois, on est port croire que la commande
simplify est la commande la plus utile. Malheureusement, le mot simplify est plutt vague. Lorsquon
lui demande de simplifier une expression, Maple examine cette dernire, essaie plusieurs techniques,
puis tente dappliquer la rgle de simplification la plus approprie. Cela peut prendre du temps. De
plus, Maple peut ne pas tre en mesure de deviner ce que vous souhaitez accomplir, puisque aucune
rgle mathmatique universelle ne dfinit ce qui est " plus simple ".
Lorsque vous connaissez quelles manipulations rendront votre expression plus simple vos yeux,
spcifiez-les directement. En particulier, la commande expand figure parmi les plus utiles. Elle permet
souvent une simplification substantielle des expressions et reformule ces dernires sous une forme
pratique pour plusieurs autres commandes.
2 1/2
2 1/2
, trig =
, sqrt = csgn x x
2 1/2
simplify x
, symbolic = x
!!! L'option symbolic considre x comme symbolique, ce qui fait que csgn(x) = 1 (normalement c'est 1
ou -1).
La fonction combine
Cette fonction applique certaines rgles de transformation pour de nombreuses fonctions
mathmatiques. Elle ralise l'opration inverse de la commande expand. Il est possible de l'utiliser
avec des options dont les principales sont : trig, ln, exp, radical, abs, power.
Quelques exemples
2
E d 2 cos x K 1 :
2
simplify E = 2 cos x K 1, aucune transformation.
combine E = cos 2 x , donne le rsultat souhait.
combine 2 sin a cos b = sin a C b C sin a K b ,
combine 2 sin a cos a = sin 2 a ,
simplify 2 sin a cos a = 2 sin a cos a , commentaire ?
2
2
2
2
combine sin a C cos a
= simplify sin a C cos a
1=1
(1.5.1.1)
Les 2 syntaxes donnent le mme rsultat.
K2 r t
K2 r t
combine e $e = simplify e $e
K2 r C t
K2 r C t
=e
(1.5.1.2)
Page 3 de 8
combine
x dx K
a
combine
x dx
a
2
lim x
x/a
Kx C x dx
lim x
x/a
C c = x/a
lim x C c
2a
6 C
x K1 :
x K1
6 C
La fonction convert
Cette fonction convert (possde 137 options) permet galement de raliser des transformations
complexes.
1
Ix
KI x
convert sin x , exp = K I e K e
2
2
Kx2 C 1
3
, x , StandardFunctions =
2
Kcos x x C sin x
3/2
p x
Page 4 de 8
La fonction is pose la question : est-elle ? Cette fonction a 3 rponses possibles : les 2 valeurs
logiques (true et false) et la valeur FAIL (lorsque is ne sait pas rpondre soit par manque
d'informations, soit parce qu'elle ne sait rsoudre la condition).
is Pi C 2, real = true, is Pi C 2, integer = false
is
x , real = false, is
La fonction coulditbe
Celle-ci pose la question : peut-elle tre ? En effet, il est vrai que l'expression E peut re relle,
ngative ou nulle.
coulditbe E % 0 = true mais, is E % 0 = false
P
2
coulditbe
, integer = true, coulditbe
, integer = false, coulditbe a$b !K2 = true
3
3
La commande assume
Cette commande permet d'associer des proprits (conditions) une variable symbolique.
Elle dfinit si une variable est relle, positive, entire, etc. Une variable ainsi conditionne,
apparait l'affichage suivie d'un tilde (~). La commande assume ne renvoie aucune
simplify
rponse.
assume a T real : simplify
a2
= csgn a a,
= a~
a
= a~
= Ka~
assume a O 0 : simplify a
= a~
Remarque : Une nouvelle contrainte faite avec assume sur un objet annule la prcdente.
Pour librer une variable de ses hypothses, il suffit de la dsassigner.
2
cos n Pi : on aura :
assume p T odd : cos n Pi = K1
Il est possible de mettre des hypothses sur plusieurs variables :
2
r_ d x Ky :
is r_ T real = false, coulditbe r_ T real = true
2
3 K7 = 2 I
10
La fonction about
Pour obtenir de l'information sur les hypothses propos d'une variable, on utilise la
fonction about selon la syntaxe : about x = Originally x, renamed x~:
is assumed to be: RealRange(-infinity,Open(-1))
about t = t:
nothing known about this object
C'est dire, aucune hypothse n'est faite sur cet cobjet (ici : t).
> assume x O 0 : about x
Originally x, renamed x~:
is assumed to be: RealRange(Open(0),infinity)
La commande aadditionally
Celle-ci permet d'ajouter des contraintes sans dtruire celles qui sont dj dfinies.
restart :
2
r d 1 K x : is r O 0 = false
assume x ! 1 : is r O 0 = false, cette condition est insuffisante pour que r soit positif ;
pour qu'il soit ainsi, il faut ajouter une autre condition :
additionally x OK1 :
is r O 0 = true, maintenant r est positif.
> z d aCI b :
> ' Re z '= Re z ,'Im z '= Im z ,'abs z '= abs z
R z = R aCI b , I z = I aCI b , z = aCI b
(2.2.3.1)
> assume a T real :
' Re z '= Re z ,'Im z '= Im z
R z = a~ K I b , I z = R b
> 'abs z '= abs z
(2.2.3.2)
z = a~ C I b
(2.2.3.3)
a~ C b~
(2.2.3.4)
La commande assuming
Elle permet d'imposer des hypotses sur des variables pour effectuer une opration sans que ces
Page 6 de 8
hypothses soient permanentes. L'hypothse ne vaut que pour l'opration demande et n'impose acune
contrainte sur les variables aprs l'execution de la commande.
Ka x
restart : limit exp Ka x , x = infinity = x/N
lim e , Maple ne peut pas calculer cette limite parce
qu'elle dpend du signe du paramtre a. Si on veut la calculer lorsque a est ngative, on crit alors :
Ka x
lim e
assuming a ! 0 = N, about a = a:
x/N
nothing known about this object
assume a ! 0 :
Ka x
lim e
= N, about a = Originally a, renamed a~:
x/N
is assumed to be: RealRange(-infinity,Open(0))
simplify
assuming t O 0 = t,
assuming t T real = t .
simplify
Si l'on veut faire l'hypothse que toutes les variables d'une expression possdent une mme
proprit, on peut la formuler en faisant suivre l'expression par : assuming proprit.
2
xy
: simplify e =
xy
ed
x y
xy
I
Ky
x y
, ici, l'hypothse ne porte que sur y.
xy
simplify
kx
y
simplify
kx
y
assuming k O 0, x O 0 = k x
2 2
assuming positive =
kx
y
2 2
kx
y
simplify
N
Kp x
xe
0
N
Kp x
xe
assuming k O 0, x O 0, y ! 0 =
Kp x
dx = x/N
lim
xpe
dx assuming p O 0 =
Kp x
Ce
p
1
y
Ikx
Ky
K1
1
2
p
Quelle le sens de ces deux rponses ?
Kx sin x
is e
O 0 = false
Kt sin t
is e
O 0 assuming t T real = true
Remarque : La syntaxe suivante ressemble l'environnement assuming, mais l, on utilise assume :
0
simplify
Kp x
xe
1
2
p
use RealDomain in Re a C I b end use; = a~
about a, b = Originally a, renamed a~:
is assumed to be: RealRange(-infinity,Open(0))
0
b:
nothing known about this object
Re a C I b = a~ K I b
Page 8 de 8
Fonctions
Dfinition
A l'aide de l'oprateur fonctionnel flche -> , on peut construire trs facilement une fonction.
L'oprateur flche permet de transposer en Maple la notion mathmatique de rgle de
correspondance fonctionnelle.
f d x/x2 C 1 :
f 1 =2
Remarque : L'oprateur flche est constitu des deux caractres : - et >
Attention cette criture, c'est une mauvaise habitude qu'il faut viter. y x d x2 K 1
x/x2 K 1
(1.1.1)
: Avec les anciennes versions, cette syntaxe une message d'erreur ; mais avec les dernires, si on
valide cette instruction, Maple demande une clarification.y 2 =
d x d x, d 1 = d 1
f = f , c'est le nom de la fonction,
eval f = x/x2 C 1 c'est la dfinition de f,
whattype eval f
= procedure, pour avoir le type de f. Il s'agit d'une procdure,
'f t '= f t = f t = t2 C 1, c'est l'expression de f pour la variable t.
Expression utilisant l'expression de f : E d f 2$b C 1 C b f a C b =
2 b C 1 2 C 1 C b a C b 2 C 1 , collect E, b = 2 C b3 C 4 C 2 a b2 C a2 C 5 b.
Pour une fonction de deux variables : restart : F d x, y /cos x C y : F Pi, 2 =
Kcos 2 , F 0, 2 n$Pi = cos 2 n p , simplify % assuming n T integer = 1
Exemples
Il est possible de construire des fonctions en utilisant des commandes Maple.
v
Pi
1. f d x/factor expand sin 2 x
eK2 x C t t2
: f K
=
vt
3
1
1
K
2
p 2/3 t
e t t C 2 , factor combine %
1
=K
2
3 t tC2 e
2
pCt
3
1 3
t C t, F 1 = t
3
a
3. T d x/whattype x : T a C b = `C` , T
= `*`, T a = sin b = `=`, T 2, a
b
Vectorcolumn ,
4. courbe d x/plot x, t = 0 ..Pi, color = blue : courbe sin t , T % =
2. F d X/ X dt : F t2 C 1 =
1
0.6
, procedure, la valeur de cette fonction est un graphique, son type est
p 3p
8 8
3p p
4
t
function.
Exercice : Soit la fonction g dfinie par : g d x, y, z /nops
la valeur de la fonction g pour les triplets 1, 4, 2 , 1, 2.1, 3 ,
x y, z2 ,Ky eI Pi x
: . Anticiper
1
, 4, 3 : , puis vrifier avec la
2
syntaxe Maple.
g 1, 4, 2 = 1, g 1, 2.1, 3 = 2, g
1
, 4, 3 = 3,
2
Arguments
f d x/x2 C 1 :
L'argument x peut tre de type complexe, parce que rien n'est prcis sur son type. Voyons
quelques exemples :
f 1 C I$2 = K2 C 4 I,
2 0
on peut appliquer f une matrice : f Matrix 2, shape = identity =
,
0 2
mais on peut pas l'appliquer un vecteur : f x s 1 Error, (in simpl/reloprod)
invalid terms in product: (x <> 1)^2 .
Pour restreindre le type de l'argument un type bien dfini, on utilisera la syntaxe suivante :
g d x T integer/x2 C 1 : g 2 = 5, g 2. Error, invalid input: g expects its
1st argument, x, to be of type integer, but received 2. =
g d x T float/x2 C 1 : g 2. = 5., g 2 Error, invalid input: g expects its
1st argument, x, to be of type float, but received 2
cle d x T list/convert x, set : , cle 1, 2, 3, 2 = 1, 2, 3 , cle 1, 2, 3, 2
=
1, 2, 3, 2 ,cette fonction convertit une liste en un ensemble.
L'oprateur unapply
2
Il permet de transformer une expression en une fonction. C'est une alternative de dfinir une
fonction.
y C 3 y2 C 2 x K 3
restart : E d
: , F d unapply E, x, y =
xC2 y
y C 3 y2 C 2 x K 3
3
2 C3
3
x, y /
, F K1, 2 = K
, rationalize % = K
xC2 y
7
K1 C 2 2
1 C 2 2 , radnormal % = K3 K 3 2 ,
2 a2 C 1
9
2
F a ,K2 = 2
, convert F a2 ,K2 , parfrac = 2 K
4 aC2
a K4
2
2 a C1
normal % =
.
aK2 aC2
C3
9
,
4 aK2
Composition de fonctions
Pour composer deux fonctions f et g on utilise l'oprateur @.
restart : f d x/sin x : g d x/x2 C 1 :
fg d f@g : fg x = sin x2 C 1 ,
L'oprateur @@n permet la composition rpte n fois d'une fonction (n positif ou nul).
f3 d f@@3 : f3 x = sin sin sin x .
Id d f@@0 = /args, Id x = x, c'est la fonction identit,
sin@@0 : , % x = x, sqrt@@0 : % x = x, toutes ce sont des identits.
1
Fonction inverse : sin@@ K1 : % x = arcsin x , ou sin x K1 =
,
sin x
t!1
1 % t and t % 4
5 K cos K4 C t
otherwise
4,
6
5
4
3
2
K2 0 2 4 6 8 10 12
x
3
(1.6.1)
2. restart :
cer d x, y, r /piecewise x2 C y2 % r2 , print intrieur du disque ,
print extrieur du disque :
cer 1, 2, 3 = intrieur du disque, cer 3, 2, 3 = extrieur du disque,
Remarque : Lorsqu'il s'agit de dfinir une fonction sur deux intervalles, on peut le faire l'aide de
l'oprateur if crit entre deux accents (cet oprateur possde 3 arguments) :
f d x/`if` x O 0, x,Kx :
f 3 = 3, f K3 = 3
Drivation
Pour chercher la drive, Maple procde de deux faons. Selon que l'on drive une fonction ou selon
que l'on drive une expression.
On utilise l'oprateur de drivation D, si l'on veut calculer la drive d'une fonction et on obtient ainsi la
fonction drive. Lorsqu'il s'agit de driver une expression qui dpend d'un certain nombre de variables,
on utilise la fonction diff.
L'oprateur D
L'oprateur de diffrentiation D ne s'applique qu' une fonction pour donner une nouvelle fonction.
2
restart :
F d x, y, z /x sin 2 y eKa z :
Fonction drive par rapport x : D 1 F = x, y, z /sin 2 y eKa z .
Fonction drive par rapport y : D 2 F = x, y, z /2 x cos 2 y eKa z .
Fonction drive par rapport x puis par rapport z : D 1, 3 F =
x, y, z /Ksin 2 y a eKa z .
Fonction drive par rapport y, puis par rapport x et enfin par rapport z : D 2, 1, 3 F
= x, y, z /K2 cos 2 y a eKa z .
Fonction drive 3 fois par rapport y, puis une seule fois par rapport x et enfin 2 fois par
rapport z : D 2$3, 1, 3$2 F = x, y, z /K8 cos 2 y a2 eKa z .
4
Maple sait parfaitement driver une fonction dfinie sur intervalles, il sait mme calculer les points
o la fonction n'est pas drivable.
Fmorceaux d x/piecewise x ! 1, x C 3, 1 % x % 4, 4, 5 K cos x K 4 :
D Fmorceaux
plot
x =
Fmorceaux
x!1
undefined
x=1
x%4
sin K4 C x
4!x
x , D Fmorceaux x , x =K2 ..8, color = blue, green , thickness = 3
K2
La fonction diff
Soit l'expression E dpendant des deux variables, par exemple r et s. E d er
Cherchons l'expression drive de E par rapport s puis par rapport r :
Drive par rapport s :
Diff E, s = diff E, s
5
s 2 C sin r
v r s 2 C sin r
2
e
= 2 r s er s C sin r
vs
Drive par rapport r : Diff E, r = diff E, r
v r s 2 C sin r
2
e
= s2 C sin r C r cos r er s C sin r
vr
On utilise l'oprateur dollar $ suivi du nombre n si l'on veut une drivation l'ordre n.
Diff E, s$2 = diff E, s$2 : factor %
2
v2 r s 2 C sin r
e
= 2 r er s C sin r
2 r s2 C 1
2
vs
Diff E, r$3 = diff E, r$3 :
collect %, er
v3 r s 2 C sin
e
vr3
C r cos r
(2.2.2)
(2.2.3)
s 2 C sin r
r
er
s2 C sin r
s 2 C sin r
(2.2.4)
(2.2.5)
(2.2.6)
(2.2.7)
Pour n =4 : %
n=4
d4
4
dx
e2 x = 16 e2 x
=
n=3
(2.2.8)
1
vn
cos a x = cos a x C
n p an
n
2
vx
v3
cos a x = sin a x a3
3
vx
La fonction implicitdiff
restart :
Soit la fonction implicite dfinie par la relation : y K x2 = 0 : , c'est la fonction y(x) = x^2. Pour
avoir la drive de y(x), par rapport x, partir de la relation y-x^2 = 0. on utilise la fonction
implicitdiff selon la syntaxe : implicitdiff y K x2 = 0, y, x = 2 x, comme si on drive l'expression y
(x) obtenue partir de la relation : y-x^2 = 0, qui est y(x) = x^2. Cette drive, on peut l'avoir en
utilisant tout simplement la commande diff : diff x2 , x = . Mais lorsqu'on peut pas sparer y de x et
nous voulons avoir la drive de y(x) ; il est impossible d'utiliser difff, d'o l'intrt de la command
implicitdff.
'diff y x , x '= implicitdiff x y K sin 3 x C 2 y = x, y, x
#` `remarquez que y et x ne sont pas sparables
d
3 cos 3 x C 2 y K y C 1
y x =K
dx
Kx C 2 cos 3 x C 2 y
'diff x y , y '= implicitdiff x y K sin 3 x C 2 y , x, y =
(2.3.1)
d
Kx C 2 cos 3 x C 2 y
x y =K
dy
3 cos 3 x C 2 y K y
(2.3.2)
Intgration
Pour effectuer un calcul d'intgrale Maple utilise l'oprateur int. Il existe aussi l'oprateur inerte Int,
celui- ci est pour mmoriser l'intgrale sans effectuer le calcul. On se sert de la fonction value pour
excuter le calcul.
Intgrales indfinies
On utilise la syntaxe : int(expression, x), x tant la variable par rappoprt laquelle on intgre. On
remarquera que Maple pose automatiquement la constante additive gale 0.
x2
restart; E := 3
: int(E, x);
x K1
7
1
ln x3 K 1
3
x2
(3.1.1)
1
ln x3 K 1
3
x K1
Pour faire appartre la constante on pourra crire : Int E, x = int E, x C cte
Int E, x = value Int E, x
dx =
x2
x3 K 1
1
ln x3 K 1 C cte
3
dx =
(3.1.2)
(3.1.3)
(3.1.4)
De mme : int sqrt, x = sqrt x, a ressemble diff sqrt, x = 0, cela signifie que le 1er argument est
indpendant de x, malgr le fait que f (ou sqrt ) est le nonm d'une fonction. Les deux commandes int
et diff s'appliquent une expression qui dpend (ou non) de la variable qu'on doit crire en 2me
2 3/2
argument : int sqrt t , t =
t .
3
Il est possible que Maple ne puisse automatiquement faire l'intgration indfinie. Dans ce cas,
l'valuateur retourne, comme un cho, l'intgrale demande (pas de rponse, c'est dire il ne trouve
pas un rsultat analytique de la primitive de l'expression intgerer).
Int exp sin t , t = int exp sin t , t = esin t dt = esin t dt
Intgration d'ordre n : Avec Maple, il est possible de calculer l'intgrale d'ordre n, n tant
symbolique.
dKn 2 x
2x
2x
'diff e , x$Kn '= diff e , x$Kn =
e = 2Kn e2 x
Kn
dx
Pour n = 4 : rhs %
1 2x
e
16
n=4
restart :'diff cos a x , x$Kn '= diff cos a x , x$Kn
1
vKn
cos a x = cos a x K
n p aKn
Kn
2
vx
sin a x
Pour n = 3 : rhs %
=K
a3
n=3
C'est identique : int int int cos a x , x , x , x
restart :'diff
x , x$Kn '= diff
x , x$Kn
dKn
dxKn
x = pochhammer
_EnvFallingNotation d G : 'diff
3
C n, Kn x 2
2
(3.1.5)
Cn
x , x$Kn =
(3.1.6)
Kn
x =
Kn
dx
rhs %
1
2
1
Cn
2
p x
3
G
Cn
2
2 3/2
=
x
3
n=1
diff cos a x , x$K3
Error, invalid input: diff expects 2 or more arguments, but
received 1
Message d'erreur parce que l'instruction x$K3 n'affiche aucun rsultat !
Intgrales dfinies
De la mme faon, on pourra effectuer des calculs d'intgrales dfinies ; tout simplement en prcisant
l'intervalle d'intgration selon la syntaxe : int(expression, x = a..b).
Int x sin x , x = 0 ..2 Pi = int x sin x , x = 0 ..2 Pi
2p
x sin x dx = K2 p
(3.2.1)
f d q/ 1 K cos q
2p
1 K cos q
dq = 4
Intgrales impropres
1
dx = 2
xK1
aK1
dx =
Int
sin x
x4
, x = 1 ..infinity = int
N
sin x
x4
dx =
sin x
x4
1
3
, x = 1 ..infinity
1
1
1
sin 1 C
cos 1 C
Ci 1
6
6
6
Le concept de l'infini doit tre ici compris comme tant la limite de l'intgrale quand la borne
9
(3.3.3)
suprieure tend vers l'infini. Ci est la fonction cosinus intgrale ; voir le help : Ci
dKn
Kn
dx
dKn
d xKn
ea x = aKn ea x
ln a x =
1Cn
a xK1
eval %, n = 1, a = 2
1
4
hypergeom 1, 1 , 2 C n , Ka x C 1 aKn
G 2Cn
2 xK1
convert %, StandardFunctions =
3. restart :
dKn
Kn
dx
hypergeom 1, 1 , 3 , K2 x C 1
2 xK1
2
4 x ln 2 x
C
2 xK1
2 xK1 2
xa = pochhammer a C n C 1, Kn xa C n
_EnvFallingNotation d G :
eval %, a =
1
4
1
,n=2
2
dKn
xa =
d xKn
4 5/2
=
x
15
G a C 1 xa C n
G aCnC1
1
np
2
diff %, x$Kn = sin x , intgration symbolique d'ordre n.
1
diff sin x , x$Kn = Ksin Kx C
np
2
diff sin x , x$n = sin x C
x2 y dx dy
1 3 2
x y
6
(3.5.1)
= int x2 y, x, y
1 3 2
x2 y dx dy =
x y
(3.5.2)
6
1 3 1 2
1
1 3 2
=
a
b K
, simplify % =
a b K 1 , si on veut
3
2
2
6
2
b a
prciser les bornes des deux variables, ou Int Int x y, x = 0 ..a , y = 1 ..b =
1 0
1 3 2
value % =
a b K1
6
Pour une triple intgration, on crit :
Int x y z2 , x, y, z = Int Int Int x y z2 , x , y , z ; value rhs %
x y z2 dx dy dz =
10
x y z2 dx dy dz
x2 y dx dy
1 2 2 3
x y z
12
Int x y z2 , x = 2 ..a, y = 1 ..b, z = 0 ..c
..c ; value rhs %
c b a
(3.5.3)
x y z2 dx dy dz =
0 1 2
x y z2 dx dy dz
0 1 2
1
12
a2 K 4
b2 K 1 c3
(3.5.4)
1 2
R p, remarquez la borne
4
variable dpendant de y. Cette intgrale reprsente la surface d'un quart de cercle de rayon R.
4 3
int r2 sin q , r = 0 ..R, q = 0 ..Pi, 4 = 0 ..2 Pi =
R p, c'est le volume d'une sphre de
3
rayon R.
Calculer la surface d'une ellipse d'axes a et b.
int 1, x = 0 .. R2 K y2 , y = 0 ..R assuming R T positive =
p 3.
r2 BesselJ 0, r
= evalf %
sin q dr dq = 1.830504451
(3.6.2)
0 0
Int exp Kx * sin sqrt x , x = 0 ..1 = evalf Int exp Kx sin sqrt x , x = 0 ..1,'method'
= _NCrule
1
eKx sin
dx = 0.3466144871
0.01547799378 C 0.1000000000
>e
K0.1000000000 i
i=1
evalf % = 0.3399611300
student simpson exp Kx * sin sqrt x , x = 0 ..1., 12
11
sin 0.3162277660
(3.6.3)
0.008598885437 C 0.1111111111
>
(3.6.4)
i=1
0.1666666667 i K 0.08333333333
>e
K0.1666666667 i
C 0.05555555557
sin 0.4082482905
i=1
evalf % = 0.3446264733
1
1
Int
, x = 0 ..1 = evalf Int
, x = 0 ..1,'method'
1 C ln 1 C x
1 C ln 1 C x
= _Gquad
1
1
1 C ln 1 C x
dx = 0.7371607096
Int exp Kx * sin 3 sqrt x , x = 0 ..1 = evalf Int exp K.2 x $sin 8
= _d01akc
1
eKx sin 3
(3.6.5)
x , x = 0 ..10,'method'
dx = K0.1069439897
(3.6.6)
x , x = 0 ..10
0.8
0.4
0
K0.4
, K0.1069439897
2 4 6 8 10
x
K0.8
igrand :=
1
2 K sin p x K sin
355 x
113
evalf igrand
= Float N
x = 0.5
evalf15 igrand
= 1.11111111111111 1014 , evalf20 igrand
=
x = 0.5
x = 0.5
1.1241778044582643369 1014 , evalf25 igrand
= 1.124177605944406775029070 1014 ,
x = 0.5
12
0.
1
2. K 1. sin 3.141592653589793238462643 x K 1. sin 3.141592920353982300884956 x
dx
evalf25 Int igrand, x = 0 ..1, e = 1. 10K10
1.499451605234141071490295 107
igrand :=
(3.6.7)
sin e x
:
1 C x2
evalf Int igrand, x = K10 ..10, method = _d01akc
Error, (in evalf/int) NE_QUAD_MAX_SUBDIV:
The maximum number of subdivisions has
been reached: max_num_subint = 500
evalf Int igrand, x = K10 ..10, method = _d01akc, methodoptions = maxintervals = 1000
1.235076653
(3.6.8)
plot igrand, x = 0 ..5
0.8
0.6
0.4
0.2
3
x
K0.2
13
La bibliothque VectorCalculus
Fonction int
Cette fonction se trouve dans la bibliothque VectorCalculus.
with VectorCalculus :
int f r, q , r, q = Circle 0, 0 , R
R 2p
f r cos q , r sin q
r dq dr
0 0
1
p R2 , surface du demi-disque de rayon
2
R.
int 1, x, y = Rectangle 0 ..a, 0 ..b
1
,
3
1
0.8
0.6
0.4
0.2
0
, surface de la rgion comprise entre les 2 courbes y = x^2 et y = sqrt(x) avec 0<x<1.
4
int 1, x, y, z = Sphere 0, 0, 0 , R =
p R3 , volume de la sphre de centre (0,0,0) et de
3
rayon R.
1 2
1 3
1 4
t, t2 , t3 dt =
t ex C
t ey C
t ez , prmitive de chacune des composantes du
2
3
4
vecteur, le rsultat est un vecteur.
PathInt 1, x, y = Line 0, 0 , 1, 1
= 2 , longueur d'un segment.
PathInt 1, x, y = Arc Circle 0, 0 , R , 0, q assuming R O 0 = R q, longueur d'un arc du
cercle.
SetCoordinates cartesianx, y :
LineInt VectorField x, y , Line 1, 2 , 3, K4
= 10, intgrale curviligne, circulation d'un
champ vectoriel.
LineInt VectorField x, y , LineSegments 0, 0 , 1, 1 , 1, K1
=1
2 2
2
LineInt VectorField x , y , Path t, t , t = 0 ..2 = 24
LineInt VectorField y, Kx , Circle 0, 0 , r = K2 p r2
x2
y2
LineInt VectorField x, y , Ellipse
C
=1
=0
4
9
14
conservatif.
Aspects divers
Intgrale d'une fonction dfinie sur intervalles
1. f d x / piecewise x % 0, cos x , exp Kx2 :
Int 'f x ', x =KPi / 4 ..infinity : % = value %
N
cos x
x%0
Kx2
otherwise
dx =
1
2
2 C
1
2
1
p
4
Heaviside Kx C 1 R x dx =
K2
R x dx
(3.8.2)
K2
(3.8.3)
K2
Dirac x K p g x dx = g p
(3.8.4)
KN
N
0
x eKp x dx = x/N
lim
p2
(3.8.5)
x eKp x dx =
(3.8.6)
p2
1
2
1
1
Ip C
I a2 C
I b2 C p a K eKa K eKI b
2
2
2
eKx K I x dx = K
Changement de variable
restart :
E = Int cos x C 1 3 sin x , x = E =
cos x C 1
sin x dx
(3.8.7)
1 4
u
4
E=K
Int
cos x C 1
sin x , x = int
cos x C 1
(3.8.8)
3
cos x C 1
1
4
sin x dx = K
sin x , x
cos x C 1
(3.8.9)
b
f x2 dx :
a
2
V = IntegrationTools Change V, x = u
b
f x2 dx =
2 f u4 u du
(3.8.10)
f x dx = IntegrationTools Change
f x dx, x = u K c, u
a
cCb
f x dx =
a
f u K c du
(3.8.11)
cCa
d b
f x, y dx dy :
c a
2
S = IntegrationTools Change S, x = u , y = v2
d b
f x, y dx dy =
c a
2
c
16
2 f u2 , v2 u du v dv
(3.8.12)