SageMath
Développé par | William Steinet al. |
---|---|
Première version | |
Dernière version | 10.3 ()[1] |
Dépôt | github.com/sagemath/sage |
Écrit en | Python,Cython,C,C++etFortran |
Système d'exploitation | Linux,Microsoft WindowsetmacOS |
Environnement | Multiplate-forme |
Type | Système de calcul formel |
Licence | Licence publique générale GNU version 2 |
Site web | sagemath.org |
SageMath(anciennement Sage) est unlogiciel libregénéraliste de calcul mathématique.
Le projet SageMath vise à « développer une alternativeopen sourceviable » aux systèmes decalcul formelMagma,Maple,etMathematicaainsi qu'au logiciel decalcul numériqueMATLAB[2].
SageMath dispose de fonctionnalités avancées dans des domaines tels que l'algèbre linéaire,l'algèbre commutative,lathéorie des nombresou encore lacombinatoire algébrique.
En revanche, sa prise en charge ducalcul symboliqueclassique (sommationetintégrationsymboliques, résolution d'équations différentielles,asymptotique...), point fort de systèmes comme Maple et Mathematica, est à ce stade limitée.
Une originalité architecturale importante de SageMath, vis-à-vis de la plupart des autres systèmes decalcul formel,est la manière dont il s'appuie sur des logiciels existants. Plutôt que de fournir un langage de commande spécifique, SageMath utilisePython,unlangage de programmationgénéraliste préexistant. Les fonctionnalités mathématiques proprement dites s'appuient elles aussi largement sur d'autres logiciels, que SageMath inclut et dont il unifie l'interface.
Le système SageMath se compose ainsi à la fois d'unedistributionde logiciels tiers, d'unebibliothèquePythonde calcul mathématique dont une partie des fonctionnalités fait directement appel aux logiciels de la distribution, et d'interfaces utilisateurpermettant l'utilisation interactive de cette bibliothèque.
SageMath est diffusé sous les termes de lalicence publique générale GNUversion 2.
Fonctionnalités
[modifier|modifier le code]Outre ses fonctionnalités mathématiques, SageMath fournit une interface Python pour les logiciels qu'il inclut, par exempleMaxima,PARI/GPetSingular,ainsi que pour différents logiciels mathématiques non-intégrés commeFricas,gnuplot,GNU Octave,Maple,MagmaetMathematica.
Soninterface en ligne de commanderepose surIPython.Un « préparseur » ajoute au langage Python quelques extensionssyntaxiquesqui facilitent l'utilisation interactive de la bibliothèque Sage. Par ailleurs, uneinterface graphiqueappelée lenotebook(« bloc-notes »), qui fonctionne dans unnavigateur web,permet de créer des feuilles de calcul mêlant texte et calculs effectués avec SageMath ou d'autres logiciels. Via cette interface web, il est possible de se connecter à unserveurSageMath installé sur un ordinateur distant. Plusieurs serveurs SageMath publics[3]permettent aujourd'hui d'utiliser SageMath sans l'installer sur son propreordinateur.
Architecture
[modifier|modifier le code]La bibliothèque SageMath est écrite pour l'essentiel dans leslangagesde programmation Python etCython. Parmi les logiciels mathématiques externes sur lesquels elle s'appuie de façon majeure, on peut citer les bibliothèquesMPIR,MPFR,Flint,NTL,ou encoreLinbox,ainsi que leslogiciels de calcul formelplus spécialisésGAP,Maxima,PARI/GPetSingular. Ceux-ci sont écrits notamment enC,C++,Python,LispetFortran[4].
Voir aussi
[modifier|modifier le code]Articles connexes
[modifier|modifier le code]Liens externes
[modifier|modifier le code]- Site officiel
- Mathematical Software and Me: A Very Personal Recollection,William Stein,
- Avec Sage, le Python est dans la boîte!,Paul Zimmermann,
- A. Casamayou, N. Cohen, G. Connan, T. Dumont, L. Fousse, F. Maltey, M. Meulien, M. Mezzarobba, C. Pernet, N. M. Thiéry, P. Zimmermann, «Calcul mathématique avec Sage»(consulté le)
Référence
[modifier|modifier le code]- «Release 10.3»,(consulté le)
- https://raw.github.com/sagemath/sage/master/README.txt
- http://alpha.sagenb.org«Copie archivée»(version dusurInternet Archive)https://cloud.sagemath.comhttps://sagecell.sagemath.org
- Sage has significant components written in the following languages: C/C++, Python, Lisp, and Fortran.Fichier README.txt; version 4.2