Nicolas Gourmelon Calcul Scientifique et Symbolique avancés
7 février 2014 TP n˚2
Introduction à Sage. Algorithmes élémentaires de tri.
Sage est un logiciel libre de calcul scientifique et symbolique qui réunit sous une seule interface de
nombreux paquets ou bibliothèques (librairies en anglais) de logiciels mathématiques existants : Matlab,
Mathematica, Maple, Magma, Gap, Scilab, R, etc... Au contraire de ces autres logiciels qui ont chacun
un langage de programmation spécifique, les créateurs de Sage ont choisi de s’appuyer sur le langage
de programmation orientée objet Python, lequel est devenu standard et dispose de vastes ressources
documentaires en libre accès. En apprenant Sage, vous vous familiarisez avec Python. Pour ceux qui sont
déjà familiers avec Python, les différences entre Sage et Python sont détaillées dans
http://www.sagemath.org/doc/tutorial/afterword.html#why-python
Je vous recommande de télécharger Sage à l’adresse suivante :
http://www.sagemath.org/
Une version beta de Sage sur le "nuage" est testable depuis peu (creez un compte, puis creez et partagez
vos worksheets) :
https://cloud.sagemath.com/#settings
Le SageMathCloud semble cependant très incomplet pour l’instant. Une introduction à Sage, ainsi que
de nombreux tutoriels sont accessibles sur http://www.sagemath.org. Ceci peut être complémenté par
le tutoriel d’introduction à Python http://docs.python.org/2/tutorial/introduction.html.
Une fois Sage installé et lancé (sous linux, Sage se lance depuis la console), le prompt suivant apparaît :
sage:
On peut alors tester les différentes fonctions de Sage dans la console. Lancez par ailleurs l’environnement
intéractif de Sage en tapant
sage: notebook()
Une fenêtre de votre navigateur par défaut s’ouvre, dans lequel vous pouvez créer des feuilles de travail
(worksheets) et exécuter vos programmes Sage. Le notebook permet en outre d’y insérer du code html,
LaTeX, R, ... et de le compiler. Le jour du TP terminal noté (en août), vous m’enverrez par email votre
feuille de travail.
1 Premiers pas dans Sage
Testez et retestez toutes les commandes suggerées dans la suite.
L’aide s’obtient en entrant la fonction ou la classe, suivie de "?". Exemple : la fonction is_prime teste
la primalité des entiers, et ZZ désigne l’anneau des entiers.
sage: 4==5
sage: 4!=5
sage: 3==3 ; 3!=3
sage: ZZ
sage: 4 in ZZ
sage: 3.5 in ZZ
sage: is_prime(4)
sage: 4?
sage: is_prime?
sage: ZZ?
Les trois dernières commandes donnent l’aide relative aux entiers, à la fonction is_prime et à l’anneau
des entiers, respectivement. Lorsque vous serez plus familier, vous pourrez vous intéresser au code source
(et un jour y contribuer, j’espère).
1