Maple est un logiciel de calcul formel utilisé parfois dans l'éducation. Il est possible de manipuler des expressions mathématiques ou résoudre des équations, dériver ou intégrer des fonctions…
Les possibilités sont nombreuses, et je ne vais pas tout énumérer ici. Je vais simplement vous montrer quelques aspects pratiques, histoire de vous faciliter les calculs littéraux longs.
Ainsi, si vous devez calculer la dérivée 5ème de cos(exp(ln(racine(X+2)))
, vous saurez le faire en quelques secondes avec Maple plutôt que de faire 6 pages de calculs.
Maple est un logiciel commercial, mais une vieille version (la version 5rc4 - datant de 1996) est distribuée gratuitement. Cette version est largement suffisante pour ce que nous allons voir, donc inutile de pirater la toute dernière version illégalement.
Vous pouvez le télécharger directement ici (12,4 Mo).
Cette version est faite pour Windows 3.1 ou Windows95. Elle fonctionne néanmoins parfaitement sous Windows 7 et même sous GNU/Linux avec Wine.
Dézippez l'archive puis cliquez sur le fichier INSTALL.EXE. Un écran s'affiche alors, et il suffit de faire "OK" pour les 2 premières questions :
Ensuite, choisissez Windows 3.1x :
Là, il vous avertit qu'il faut installer autre chose. Laissez tomber, et faites Continue Anyway :
L'installation se fait alors, et normalement, ça réussit :
Maple est maintenant installé dans le dossier C:\MAPLEV4\.
On lance Maple en se rendant dans le dossier C:\MAPLEV4\BIN.WIN\ et en exécutant le fichier WMAPLE.EXE.
Maple se présente ainsi : une feuille avec en haut, un prompt (>) attendant que vous entriez quelque chose :
Vous pouvez taper quelque chose. Par exemple, 2+2;, puis faire entrée : il s'affiche "4". Si vous faites 1/2-1/3;, vous verrez 1/6.
NOTE : il faut utiliser un point virgule (“semicolon” en Anglais) en fin d'instruction, sans quoi Maple affiche une erreur) :
Le reste sera vu dans la prochaine partie : le calcul avec Maple.
Maple n'est pas seulement une calculatrice, mais, voici quand même la syntaxe des différentes opérations ou opérandes, indispensables à avoir sous la main :
Notation Maple | Signification | Notation mathématique |
x+y | addition | |
-x et x-y | négation et soustraction | |
x*y | multiplication | |
x/y | division | |
x^y ou x**y | exponentiation ("puissances") | |
k! | factorielle | |
I ou sqrt(-1) | unité des nombres complexes | |
Pi | constante d'Archimède (3,1415…) | |
infinity | infini | |
abs(x) | valeur absolue | |
sqrt(x) ou x^(1/2) | racine carrée | |
exp(x) | fonction exponentielle | |
ln(x) ou log(x) | fonction logarithme népérien | |
log[10](x) | fonction logarithme décimal | |
sin(x), cos(x) et tan(x) | sinus, cosinus et tangente | |
floor(x) | partie entière | |
frac(x) | partie décimale |
NOTE : pour les multiplications, il faut bien écrire 2*x et non 2x : le signe du "multiplier" est obligatoire quand il signifie la multiplication.
Exemples :
Constatez qu'avec la dernière commande, il affiche le résultat exacte de cos(Pi/4), et non une valeur approchée. Pour avoir la valeur approchée, il faut le lui demander avec evalf() :
Voilà.
Vous pouvez maintenant créer des fonctions simples et composées (par exemple : log[10](exp(5×sin(x)))). et les afficher, en calculer des valeurs particulières…
La partie suivante va réellement vous simplifier la vie en math, car on y verra comment dériver, intégrer, développer-limité des expressions.
Maple vous donne les expressions littérales des résultats des calculs, plutôt que les valeurs numériques (c'est possible aussi, hein). Il est donc possible d'afficher les dérivés ou intégrales de fonctions, et bien plus !
À nouveau, voici un tableau avec les syntaxes Maple et leurs significations.
Notation Maple | Signification | Notation mathématique |
diff(f(x),x) | dérivée de f(x) par rapport à x | ![]() |
int(f(x),x) | intégrale de f(x) par rapport à x | ![]() |
int(f(x),x=a..b) | intégrale de f(x) sur le domaine [a,b] | ![]() |
sum(f(k),k=a..b) | somme sur [[a,b]] des valeurs de f(k) | ![]() |
limit(f(x),x=a) | limite de f en a | ![]() |
series(f(x),x=a,n) | développement limité de f(x) en a, à l'ordre n | ![]() |
On peut dés lors facilement calculer les dérivés, sommes et intégrales. Voici quelques exemples :
Constatez déjà que Maple peut rapidement être très pratique :-)
L'instruction à connaitre, c'est solve(<équation> , <variable>);. Solve, signifiant bien sûr "résoudre".
Solve possède quelques fonctions dérivées qui sont par exemple fsolve(); (pour résoudre numériquement) ou dsolve(); pour les équations différentielles.
Ce dessous, voyez quelques exemples.
Il suffit d'utiliser la syntaxe : solve(<équation> , <variable>). Par exemple : en mettant « x^2 - 3 = 0 » comme équation et « x » comme la variable. Le résultat sera alors ±(racine carrée de 3).
NOTE : dans le cas où plusieurs solutions sont possibles, celles ci sont séparés par une virgule. Si au contraire, aucune solution n'existe, rien n'est affiché.
Exemples :
Les équations c'est bien, les systèmes c'est mieux ! C'est justement le sujet de la partie suivante :)
La syntaxe et la fonction sont les mêmes que pour les une équation simple : on rentre juste deux ou plusieurs équations et plusieurs inconnues, comme ceci : solve({<équation1, équation2, …>} , {<var1, var2, …>}).
Comme rien ne vaut quelques exemples :
Le seconde système n'est pas très lisible quand il est écrit dans Maple, donc le voici écrit normalement :
Ce sont des équations liant des fonctions à leurs dérivées. Résoudre une équation différentielle, c'est rechercher une fonction, et non plus une variable.
Dans Maple, on utilise la fonction dsolve. Elle reçoit trois arguments :
La syntaxe Maple correcte est donc : dsolve({<équation>,<conditions initiales>},<fonction>);.
Voici un exemple en Maple : dsolve({diff(f(x),x)=a*f(x),f(0)=1},f(x));. La résolution consiste à trouver f(x), et Maple trouvera bien f(x) = e(a × x).
D'autres exemples, concrets :
Maple peut manipuler des formules complexes, et notamment extraire un terme d'une équation et l'exprimer en fonction de tout le reste. C'est le rôle de la fonction isolate(<équation>,<élément à extraire>).
L'équation en question peut être n'importe quoi : d'une équation simple à une équation différentielle.
Note : la fonction isolate() nécessite d'être chargée en mémoire avant de pouvoir être utilisée. On utilise pour cela commande readlib(isolate)
Voilà quelques exemples pour vous faire comprendre de quoi il s'agit :
Maple peut aussi tracer des courbes. Mais attention, les possibilités n'ont rien avoir avec celles d'un tableur comme Calc ou Excel®. Je ne vais pas tout expliquer (on y passerait des jours), mais voici quelques exemples.
Ce sont des courbes en 2D, donc y=f(x). La commande c'est plot(<fonction>,<domaine>). Le domaine, c'est d'où à où il faut tracer le graphe. On le déclare ainsi : x=a..b pour tracer de a à b. Là aussi, on peut utiliser des nombres entiers (eg : 3), décimaux (eg : 4.5) ou des constantes (eg : Pi).
Tout simplement, un tracé ordinaire. Voici un exemple de la fonction exponentielle sur le domaine [-2;1] :
Facile : replacez simplement le précédent <fonction> par {<fonction1>,<fonction2>}. Par exemple : plot({exp(x),ln(x)},x=-1..2) :
On peut spécifier des options, en les ajoutant à la fin de la syntaxe, de la forme suivante : plot(<fonction(s)>,<domaine>,<option1>,<option2>). Les options concernent la présentation :
Si vous tracez plusieurs fonctions sur le même graphe, il est possible de spécifier une option pour chaque courbe en le mettant dans des crochets séparés par des virgules. Exemple pour la couleur : color=[blue,red,green] : la courbe_1 sera bleue, la seconde rouge, la troisième et les suivantes en vertes.
Ci dessous un exemple avec les fonctions sinus hyperbolique, cosinus hyperbolique et la demi-exponentielle qui sont convergentes à l'infinie :
Notez qu'en cliquant sur le graphique, vous pouvez le redimensionner. De plus, les boutons qui apparaissent dans la barre d'outil peuvent être utilisés pour modifier l'aspect du graphique. Mais ceci est plus visible avec les courbes en 3 dimensions, ci dessous.
De même, il est possible de tracer les courbes de fonctions de plusieurs variables (deux ici) dans un repère en 3D. La fonction à invoquer c'est plot3D(<fonction>,<domaine_x>,<domaine_y>,<options>). Exemple :
De même, ici il y'a diverses options de formatage :
Dans Maple, tapez ?plot3d,options pour tout afficher ces options.
Un petit exemple ? La même surface 3D que tout à l'heure, mais amélioré un peu :
La représentation en coordonnées polaires d'une fonction paramétrique est aussi possible avec Maple. Deux solutions sont possible : utiliser la commande polarplot ou alors spécifier l'option « coords=polar » dans la fonction Plot.
Je vous recommande la seconde solution, car elle utilise une fonction que vous connaissez déjà (plot()) et qu'il est ainsi très facile de modifier le système de coordonnées.
Il n'y a pas grand chose à ajouter, sinon quelques exemples :
J'aime beaucoup les coordonnées polaires, car les graphes obtenus sont plutôt jolis. Voyez plutôt avec ces fonctions cosinus(n×x + k×π/n) : (on ne voit plus les maths de la même façon, n'est ce pas :D :
Une dernière fonction pour la route, où plus x tend vers l'infini, plus la courbe tend vers un cercle unitaire :
Les courbes paramétrés sont des courbes où non seulement Y dépend de X, mais où X est lui même dépendant d’une autre variable : le paramètre (souvent noté « t »). Ce sont donc des courbes où X et Y sont des fonctions ; des fonctions de t.
La syntaxe Maple® est simple : plot([<fonction-X>, <fontion-Y>, <domaine-de-T>,<options>)
Par exemple, la fonction paramétrée : où x=cos(6t), y=sin(5t) pour t variant de 0 à 4 donne cette syntaxe : plot([cos(6*t), sin(5*t), t=0..4]); (notez les crochets).
Pour tracer plusieurs fonctions sur le même graph, on place les fonctions délimités par des crochées dans des accolates : plot({[fonction1], [fonction2]}, options); où [fonctioni] représente la variation sur x, sur y et le domaine de variation de t.
Par exemple : plot({[cos(t),sin(2*t), t=-0..2], [cos(3*t),sin(t), t=-0..2]}, thickness=4);.
Vous vous souvenez de nos surfaces en 3D ? Et bien il est facile de faire la même chose avec des surfaces paramétrées, par exemple pour afficher une sphère, une élypsoïde ou une hélicoïde.
Vu qu’on est en 3D, on utilise 3 fonctions décrivant les 3 coordonnées (x, y, z) dépendant chacuns de deux paramètres (u et v).
On utilise évidemment plot3d et la syntaxe suivante :
plot3d([fonction-x, fonction-y, fonction-z], u, v, options);
Par exemple, pour tracer une sphère (avec quelques options d’affichage) :
plot3d([cos(u)*sin(v), cos(v)*sin(u), sin(u)], u=0..Pi, v=0..Pi, axes=normal, grid=[100,100], style=patchnogrid); :
Même chose pour cette hélicoïde : plot3d([x*cos(y), x*sin(y), y], x=0..1, y=0..6*Pi, axes=normal, grid=[100,100], style=patchnogrid);
On a presque tout vu. Mais il reste à voir les courbes dans l’espace (différentes des surfaces dans l’espace).
On utilise la fonction plots avec l’élément spacecurve (litérallement « courbes dans l’espace »). Le reste de la syntaxe est simple : plots[spacecurve]([<fn-x>,<fn-y>,<fn-z>], <t>, <options>);. Je conseille cependant d’ajouter l’option numpoints, qui est le nombre de points utilisés pour tracer la courbe : trop faible par défaut, utiliser 200 points est selon moi déjà mieux, au dessus c’est encore mieux.
Exemple avec cette hélice : plots[spacecurve]([t,sin(t),cos(t)] , t =0..20*Pi , numpoints = 500);.
Il est possible de faire des animations avec Maple. Par exemple, on peut traver 5 fonctions du style y=a*x ou a prends successivement des valeurs entières de 1 à 5. L’animations sera d’afficher les fonctions les unes à la suite des autres.
L’intérêt en cours peut-être par exemple en algo : quand il convient de choisir un pas de résolution. On peut ici choisir différents pas.
Personellement j’ai choisis de faire tourner une sphère sur elle même :
(si l’image n’est pas animée, vous pouvez utiliser ce fichier GIF là).
Maple dispose de plein de fonctions, comme diff() pour dériver, int() pour intégrer, etc. Si vous voulez des exemples ou l'aide pour la syntaxe d'une fonction, vous pouvez l'obtenir directement en tapant ?fonction. L'aide est évidement en Anglais.
Par exemple :
Ne négligez pas la documentation : elle est précise et parsemée d'exemples.
page créée en février 2011. — mise à jour le samedi 13 octobre 2012.
adresse de la page : http://lehollandaisvolant.net/tuto/maple