Maple

logiciel mathématique
Maple
Description de l'image Maple_Logo.svg.
Description de cette image, également commentée ci-après
Interface de Maple 2016
Informations
Développé par Waterloo MapleVoir et modifier les données sur Wikidata
Première version Voir et modifier les données sur Wikidata
Dernière version 2023 ()[1]Voir et modifier les données sur Wikidata
Écrit en C et JavaVoir et modifier les données sur Wikidata
Système d'exploitation Microsoft Windows, Linux et macOSVoir et modifier les données sur Wikidata
Formats lus STL, Maple Common Binary (Amiga) (d) et Maple compressed Worksheet (d)Voir et modifier les données sur Wikidata
Formats écrits Maple Common Binary (Amiga) (d) et Maple compressed Worksheet (d)Voir et modifier les données sur Wikidata
Langues MultilingueVoir et modifier les données sur Wikidata
Type Système de calcul formel
Logiciel d'analyse de données (d)
Langage de programmation
Langage interprétéVoir et modifier les données sur Wikidata
Licence Licence propriétaireVoir et modifier les données sur Wikidata
Documentation www.maplesoft.com/support/help/maple/view.aspx?path=UserManual/ContentsVoir et modifier les données sur Wikidata
Site web www.maplesoft.com/products/mapleVoir et modifier les données sur Wikidata

Maple est un logiciel propriétaire de calcul formel développé depuis les années 1980 et aujourd'hui édité par la société canadienne Maplesoft. La version la plus récente est sortie en mars 2023.

Les objets de base du calcul sont les expressions mathématiques, représentées sous forme de graphes orientés acycliques. Maple fournit un langage de programmation spécifique, inspiré d'Algol, qui est à la fois le langage d'utilisation interactive et celui dans lequel est écrite la plus grande partie de la bibliothèque mathématique du logiciel.

Histoire modifier

Maple a été initialement développé au sein du Symbolic Computation Group de l'université de Waterloo en Ontario (Canada) à partir de décembre 1980[2]. La première version publique date de 1985 (version 3.3).

Maple a été utilisé dans un nombre remarquable d'applications des sciences et des mathématiques allant de la démonstration du dernier théorème de Fermat en théorie des nombres, à des problèmes de la relativité générale et de la mécanique quantique. Ces applications sont présentées dans un numéro spécial d'un bulletin d'information créé par les développeurs de Maple appelé MapleTech[3].

Fonctionnalités modifier

Le logiciel permet aussi bien de travailler sur des quantités numériques (entières, réelles, complexes) qu'avec des polynômes, des fonctions, ou des séries. Maple réalise des dérivations, des intégrations, des résolutions de systèmes d'équations linéaires, des inversions de matrices, des développements asymptotiques ou encore des résolutions d'équations différentielles sous forme symbolique, c'est-à-dire en gardant des inconnues dans la résolution. Le système Maple offre aussi de nombreuses fonctionnalités en théorie des nombres et en combinatoire.

Maple est un système interprété. Dans son utilisation la plus courante, l'utilisateur entre une ligne de commande écrite dans un langage spécifique, et le système retourne un résultat. Par exemple, la commande suivante calcule la solution de l'équation différentielle du second ordre   vérifiant les conditions initiales   et   :

dsolve({diff(y(x),x,x)-3*y(x)=x,y(0)=1,D(y)(0)=2},y(x));

Il est également possible d'écrire, dans le même langage, des programmes qui ne seront pas compilés, mais interprétés à leur appel, et d'enrichir ainsi le système avec de nouvelles commandes.

Au-delà des fonctionnalités de calcul formel et de programmation à proprement parler, Maple permet par exemple de copier et coller dans un traitement de texte les formules mathématiques issues des calculs, de tracer des courbes et surfaces, ou encore de générer des programmes numériques en langage C. Il offre un mode console et un mode graphique. Il est disponible sur la majorité des systèmes d'exploitation (GNU/Linux, Macintosh, Windows).

Modèle de calcul et langage modifier

Expressions modifier

La structure de donnée fondamentale manipulée par Maple est l'expression.

Dans la pratique courante, lorsque l’on utilise une expression mathématique telle que  , on a en tête une fonction ( ) et un réel   dont on connaît de nombreuses propriétés, ainsi qu’une variable  . Du point de vue du système, en revanche, il s’agit d’une expression, formée en l'occurrence d'une fonction nommée   appliquée à une somme de deux termes, à savoir une variable nommée   et le quotient d’une autre variable   par l’entier  . Pour toutes les opérations mathématiques que l’utilisateur souhaite réaliser sur cette expression, le système ne dispose que de cette information syntaxique. Ainsi,   et   sont deux objets identiques d'un point de vue mathématique, mais très différents comme expressions Maple. Des questions centrales comme celle de la simplification, sont liées à cette distinction entre la vision syntaxique du système et la vision mathématique de l'utilisateur.

Une expression comme le produit

 

est vue comme un arbre. Ici, la racine de l'arbre est étiquetée par l'opérateur de multiplication *. Ses trois fils sont les (étiquettes des) racines des arbres qui représentent les trois facteurs  ,   et  , à savoir ^, exp et sin. Les nœuds de l'arbre, comme la racine, représentent des opérations ou des fonctions, et les feuilles représentent soit des rationnels, soit des constantes symboliques ou des indéterminées (comme π ou x).

Les objets Maple sont (sauf exception) représentés avec partage maximal, c'est-à-dire que deux objets identiques sont représentées par le même objet en mémoire. En particulier, les arbres d'expressions sont stockés comme des graphes orientés acycliques. Concrètement, tous les objets (ou presque) construits au cours d'une session Maple sont stockés dans une table de hachage globale. Ceci s'applique non seulement aux objets nommés, mais aussi aux expressions et sous-expressions qui interviennent durant le calcul. Chaque sous-objet nouvellement créé est comparé aux éléments déjà présents dans la table. Si l'objet est nouveau, il est conservé et ajouté à la table. Si au contraire un objet identique a déjà été utilisé, l'ancien objet est immédiatement utilisé à la place. Ceci garantit l'existence d'une seule copie de chaque expression en mémoire.

Les procédures Maple travaillent sur des expressions représentées par de tels arbres et les opérations de base consistent à analyser ces arbres pour en déterminer les composants, à extraire ces composants et à les utiliser pour construire de nouveaux arbres. Les arbres qui se trouvent sous la racine sont les opérandes de l'expression et peuvent être isolés par la procédure op, leur nombre étant renvoyé par la commande nops. L'ordre des opérandes d'un opérateur commutatif peut changer d'une session à l'autre. La procédure has détermine si une expression apparaît comme sous-expression d'une autre. Elle permet par exemple de déterminer qu'une expression est indépendante d'une variable donnée.

Parmi les procédures de base qui construisent de nouveaux objets à partir d'expressions existantes, citons eval, subs, convert, select et remove. Notamment, la façon naturelle de calculer la valeur d'une fonction pour une valeur donnée de ses variables consiste à évaluer l'expression qui représente la fonction à l'aide de eval. Une procédure de plus bas niveau que eval est subs, qui effectue une simple substitution. Le logiciel applique les règles de simplification automatique, mais n'évalue pas le résultat de la substitution.

Ces procédures ne modifient pas leur argument — la plupart des objets Maple ne peuvent pas être modifiés — mais en créent des copies altérées. Grâce au partage maximal, cette copie n'entraîne pas une trop grande consommation de mémoire.

Variables et indéterminées modifier

Une différence notable entre le langage Maple et les langages de programmation traditionnels réside dans l'évaluation des variables non affectées. Dans la plupart des langages, cette évaluation est une erreur, alors que Maple renvoie le nom de la variable, qui peut être utilisé comme nom de variable dans une expression. Ce mécanisme permet de traiter les indéterminées mathématiques comme des variables informatiques.

L'affectation se visualise comme la création d'une flèche de la variable vers la valeur. Par exemple, la suite d'affectations x:=y; y:=z; crée une structure de la forme xyz. L'évaluation consiste alors à suivre ces flèches pour obtenir une valeur. Ainsi, après les affectations précédentes, x et y s'évaluent toutes deux en z.

Notes et références modifier

Voir aussi modifier

Sur les autres projets Wikimedia :

Bibliographie modifier

Articles connexes modifier

Liens externes modifier