Sage : le couteau suisse des maths pour Linux

Magazine
Marque
Linux Pratique
Numéro
75
|
Mois de parution
janvier 2013
|
Domaines


Résumé
Vous souvenez-vous des laboratoires de mathématiques avec Maple ou Mathematica, au lycée, à la fac ou en école d'ingénieur ? Calcul, manipulation de matrices, dessin de fonctions... Sage est un logiciel qui vous propose une expérience et des fonctionnalités similaires à ses concurrents, mais dans le monde de l'open source. Découverte de la version 5.

Body

http://www.cbp.ens-lyon.fr/emmanuel.quemener/dokuwiki/doku.php?id=sagemath4debian


 1. Introduction

Sorti pour la première fois en 2005, Sage est un ensemble d'outils mathématiques articulés autour d'un environnement en Python. L'idée du projet est d'incorporer les bibliothèques mathématiques existantes quand cela est possible au sein d'une interface unifiée, ce qui en fait un ensemble modulaire. Son ambition est de proposer une alternative aux solutions propriétaires comme Maple, Magma ou Mathematica. Il est disponible sous Mac, Linux et en machine virtuelle sous Windows.

2. Installation

Étant une collection de nombreux outils mathématiques différents, la compilation de Sage est apparemment épineuse au point qu'il n'y ait d'après le site du projet qu'un paquet binaire pour la distribution Ubuntu, disponible via un PPA. En console, en root, on tape :

apt-add-repository -y ppa:aims/sagemath

apt-get update

apt-get install sagemath-upstream-binary

Sous Debian, plutôt que de tenter l'utilisation du PPA ci-dessus, on peut se tourner vers la compilation des sources. Attention néanmoins : cette étape peut prendre plusieurs heures en fonction de votre processeur et du nombre de cœurs que vous dédiez à la tâche (testé sur une nuit sur un Core 2 Duo avec deux cœurs utilisés).

Pour commencer, on installe les outils nécessaires à la compilation et à l'utilisation de toutes les fonctionnalités de Sage. Dans une console, en root :

apt-get install -y build-essential m4 gfortran readline-common libreadline-dev texlive xpdf evince tk-dev tcl-dev

On se place dans le répertoire voulu pour télécharger les sources :

cd /dossier/de/téléchargement

wget http://www-ftp.lip6.fr/pub/math/sagemath/src/sage-5.3.tar

On se déplace ensuite dans le dossier où l'on souhaite installer Sage et on décompresse l'archive :

cd /dossier/installation

tar xvf /root/sage-5.3.tar

Passons à la compilation :

ln -sf sage-5.3 sage

cd sage

export SAGE_MATPLOTLIB_GUI='yes'

export MAKE="make -j2"

export SAGE_CHECK="yes"

make

Les utilisateurs d'Arch Linux sont assez bien lotis pour installer Sage sur leur système : un paquet compilé à partir des sources de la version 5.3 existe dans le dépôt Community. Dans une console, il suffit de taper la commande magique :

sudo pacman -S sage-mathematics

et de laisser travailler Pacman, qui installera les dépendances nécessaires. Prévoyez 2 Go d'espace libre pour l'installation. Un paquet est également disponible sous Mandriva.

3. Les interfaces

3.1 Le shell

C'est l'usage le plus simple de Sage. Il suffit de taper la commande sage pour lancer le programme en console (Fig. 1). Le programme ouvre un navigateur Internet pour le rendu des graphiques.

sage-console

Fig 1 : Sage peut s'utiliser simplement en ligne de commandes... En tout cas, tant qu'il n'y a rien à représenter graphiquement...

3.2 Le navigateur

Une option plus confortable. Sur Ubuntu, il suffit de taper « Sage » dans la barre de recherche globale, puis de cliquer sur le bouton du binaire. Autre solution : dans une console, lancez sage, puis tapez la commande notebook() et validez. Le navigateur Internet s'ouvre alors (Fig. 2). Cliquez sur New Worksheet pour démarrer dans un nouveau fichier.

sage-navigateur

Fig 2 : L'interface principale de Sage s'affiche dans votre navigateur Internet préféré. La représentation des fonctions et diagrammes repose sur Java.

3.3 Cantor

Cette application du projet KDE Edu peut servir d'interface à de nombreux programmes mathématiques, dont Sage. Il suffit de l'installer et d'ajouter un binaire spécifique. Sous Ubuntu, en root :

apt-get install cantor cantor-backend-sage

Le résultat est une interface proche de celle du navigateur (Fig. 3), mais mieux intégrée à un environnement de bureau, avec plus de menus et des volets ré-arrangeables. Pour valider une ligne dans le fichier, on appuie sur [Shift]+[Entrée].

sage-cantor

Fig 3 : Cantor sert d'interface à de nombreux logiciels scientifiques, dont Sage, à l'aide des bibliothèques spécifiques à KDE.

Les modules

Sage inclut près d'une centaine de paquets mathématiques au rôle spécifique. Parmi les plus connus, on citera Maxima et Singular pour l'algèbre, PARI/GP pour la théorie des nombres, ATLAS pour l'algèbre linéaire, GAP pour l'algorithmique algébrique, ou encore R pour l'analyse statistique.

Pour afficher les listes des paquets standards ou optionnels installés ou non, on tapera respectivement en console (et non dans Sage en console) :

sage --standard

ou

sage --optional

Si l'on a besoin d'un module non encore installé sur le système, on tape dans une nouvelle console :

sage -i paquet

4. Fonctions de base

4.1 Calcul

Un calcul classique s'écrit de manière normale, comme sur les autres logiciels du genre ou sur les calculatrices scolaires, puis on appuie sur la touche [Entrée] :

2+2

4

À noter que comme dans la plupart des logiciels de mathématiques (et scientifiques de manière plus large), la virgule est symbolisée par un point :

4.2/9.76

0.430327868852459

Pour calculer les 100 premières décimales de Pi, une petite formule s'impose :

N(pi, digits=100)

4.2 Fonctions et équations

Pour effectuer des opérations sur les fonctions, on définit d'abord une variable symbolique :

x = var('x')

Puis on entre la fonction et l'opération voulues, par exemple intégrer la fonction racine de x :

integrate(sqrt(x),x)

2/3*x^(3/2)

Pour résoudre une équation simple, on utilise la fonction solve. Dans Sage, le symbole de l'égalité est représenté par == :

solve(x^2+x==1,x)

nous donne les solutions :

[x == -1/2*sqrt(5) - 1/2, x == 1/2*sqrt(5) - 1/2]

À noter que les retours du logiciel peuvent comporter des espaces entre les différents composants d'une expression ; vous pouvez faire de même dans vos expressions pour faciliter la lecture de votre feuille de calcul.

4.3 Matrices

La création de matrices et les opérations sur celles-ci sont aisées à réaliser. Le signe = est utilisé pour assigner une lettre à une expression. Pour définir une matrice, on écrira par exemple :

A = matrix([[1,2,3],[3,2,1],[1,1,1]])

Pour un vecteur, on utilise la même syntaxe :

w = vector([1,1,-4])

Il suffit alors d'utiliser les noms donnés à chaque élément pour réaliser une opération :

w*A

(0, 0, 0)

sage: A*w

(-9, 1, -2)

4.4 Dessin 2D

Dans l'interface navigateur, Sage peut tracer des lignes, des cercles, des polygones, mais aussi tout type de fonctions. Par exemple :

circle((0,0), 1)

produit un cercle de rayon 1, centré sur l'origine.

On peut par exemple changer la couleur du trait :

rgbcolor=(1,1,0)

donne du jaune.

Pour dessiner une figure pleine, on ajoutera l'option et la valeur fill=True.

Une fonction de base se modélise ainsi :

x = var('x')

plot(x^2, (x,-1,1))

On demande ainsi le rendu de la fonction carrée de x, pour x allant de -1 à 1.

sage-2D

Fig 4 : Exemple de rendu graphique d'une fonction dans Sage.

4.5 Dessin 3D

La commande plot a sa contrepartie en relief, plot3d. Voyons un exemple de tracé.

On définit deux variables, x et y :

x = var('x')

y = var('y')

Puis, on crée une fonction :

def f(x,y): return sin(x-y)*y*cos(x)

Enfin, on trace notre fonction en relief :

plot3d(f(x,y),(x,-3,3),(y,-3,3))

sage-3D

Fig 5 : On peut faire pivoter une figure en relief en maintenant appuyé le bouton gauche de la souris.

Il est possible d'agir sur les figures tracées directement avec la souris (glisser-déposer avec le bouton gauche). Le clic droit donne accès à quantité d'options : couleur, axe de vue, zoom, rotation... En bas à droite de la modélisation, Get Image permet de réaliser une capture de la figure pour l'utiliser ailleurs.

Partage des feuilles

Quand vous êtes dans l'interface navigateur, vous pouvez enregistrer votre feuille de travail en cliquant sur Save. Pour partager vos travaux, l'onglet Publish vous y aide. Il vous propose une URL que vous pouvez communiquer à vos collaborateurs. Par défaut, les feuilles de travail sont stockées en local.

sage-partage

Les feuilles de travail sous Sage, une fois enregistrées, peuvent être partagées en ligne. Un exemple ici avec l'université de Leiden.

4.6 Obtenir de l'aide

Pour obtenir des informations sur une fonction dans Sage, on tape le nom de la fonction suivi d'un point d'interrogation :

tan?

Cette commande vous affiche le nom de la fonction (ici tangente), les fichiers rattachés à cette fonction, ou encore des exemples d'utilisation.

Le logiciel gère aussi l'auto-complétion. Écrivez les premières lettres de votre fonction, puis tapez la touche [Tab], qui vous affichera une liste des commandes possibles.

Pour plus de détails, en haut du notebook, l'onglet Help amène une page avec des liens vers des documents d'aide.

Conclusion

Nous n'avons fait que gratter la surface de Sage. En tant qu'alternative aux Maple et autre Mathematica, Sage remplit certainement son pari, avec un fonctionnement similaire à ces solutions. En termes de performances, le projet n'a rien à leur envier, selon ses concepteurs (voir Pour aller plus loin). On regrettera cependant que l'installation de la suite logicielle peut s'avérer difficile pour les distributions non dotées d'un paquet binaire dans leurs dépôts.

Pour aller plus loin

http://www.sagemath.org/ 

Le site du projet Sage. On y trouve des supports de présentation de Sage, les sources et les indications d'installation selon la plateforme, ou encore des cartes de référence rapide pour divers usages.

http://www.cbp.ens-lyon.fr/emmanuel.quemener/dokuwiki/doku.php?id=sagemath4debian

Quelques précisions supplémentaires pour l'installation de Sage à partir des sources sur Debian Squeeze.

http://www.sagemath.org/doc/tutorial/index.html

Un tutoriel pas-à-pas pour Sage. Divers usages avancés y sont décrits.

http://www.sagemath.org/links-components.html

Le détail des paquets contenus dans Sage, avec un lien de référence pour chacun.

http://edu.kde.org/cantor/

Le site de l'application Cantor, pour en savoir plus sur les autres logiciels mathématiques supportés et des fonctionnalités avancées.

http://www.sagemath.org/tour-benchmarks.html

Des tests de performance sur la version 4 de Sage.


Sur le même sujet

Jonglez avec vos tracés via PlotJuggler

Magazine
Marque
Linux Pratique
HS n°
Numéro
47
|
Mois de parution
juillet 2020
|
Domaines
Résumé

Développé par un roboticien, PlotJuggler a été pensé pour répondre à des besoins de tracés très utiles au débogage de drones. Lorsque vous avez de nombreuses données à analyser, parfois en temps réel, il peut être très commode d’afficher celles-ci sous forme de graphiques. Si vous pouvez le faire simplement et avez la possibilité de leur appliquer de nombreuses opérations directement, alors vous gagnez en efficacité, c’est ce que propose PlotJuggler.

Motrix : un gestionnaire de téléchargements simple à prendre en main

Magazine
Marque
Linux Pratique
Numéro
115
|
Mois de parution
septembre 2019
|
Domaines
Résumé
Via son interface graphique simple et épurée, Motrix va vous permettre de gérer tous vos téléchargements HTTP, BitTorrent, FTP, Magnet, etc. Ces derniers sont présentés ici sous forme de tâches et classés au sein de trois catégories : Actives, En attente et Stoppées, afin d’y voir plus clair. Jusqu’à 10 d’entre elles peuvent être lancées simultanément.

ElabFTW, votre cahier de laboratoire numérique

Magazine
Marque
Linux Pratique
Numéro
114
|
Mois de parution
juillet 2019
|
Domaines
Résumé
L’ensemble des travaux scientifiques des chercheurs est retranscrit dans leurs cahiers de laboratoire afin de détailler les expériences, les théories, les conclusions. Le but est à la fois de rendre les résultats compréhensibles par d’autres (ou soi-même), mais aussi de rendre ceux-ci officiellement datés. La plupart du temps, les laboratoires utilisent des cahiers en papier, mais le besoin toujours grandissant de collaboration et de données numériques incite à migrer vers des solutions logicielles.

Mesurez votre temps de travail avec Hamster Time Tracker

Magazine
Marque
Linux Pratique
HS n°
Numéro
45
|
Mois de parution
juin 2019
|
Domaines
Résumé
Avez-vous déjà réfléchi à la façon dont vous passez votre temps au travail ? Le nombre d’heures que vous passez sur les réseaux sociaux, à lire vos mails… Si vous vous demandez où va votre temps, Hamster Time Tracker est un excellent outil pour vous aider à garder un œil sur les activités qui occupent vos journées.

Par le même auteur

Wyrd, l'agenda en console

Magazine
Marque
Linux Pratique
Numéro
76
|
Mois de parution
mars 2013
|
Domaines
Résumé
Vous débarquez sous Linux et vous êtes perdu dans la masse des solutions de planning pour cette plateforme ? Vous avez de mauvais souvenirs d'Outlook et visez un changement radical ? Vous n'avez pas d'interface graphique, mais des rendez-vous à honorer et il vous faut un assistant ? Si la ligne de commandes ne vous effraie pas, alors Wyrd est fait pour vous. Interface graphique en ncurses à Remind, elle offre beaucoup d'options de ce dernier...

Sage : le couteau suisse des maths pour Linux

Magazine
Marque
Linux Pratique
Numéro
75
|
Mois de parution
janvier 2013
|
Domaines
Résumé
Vous souvenez-vous des laboratoires de mathématiques avec Maple ou Mathematica, au lycée, à la fac ou en école d'ingénieur ? Calcul, manipulation de matrices, dessin de fonctions... Sage est un logiciel qui vous propose une expérience et des fonctionnalités similaires à ses concurrents, mais dans le monde de l'open source. Découverte de la version 5.

I3, le « tiling window manager » pour tous

Magazine
Marque
Linux Pratique
Numéro
74
|
Mois de parution
novembre 2012
|
Domaines
Résumé
Et si vous utilisiez un gestionnaire de fenêtres minimaliste, comme les power users ? Mais vous vous dites qu'il faut apprendre un langage de programmation pour le configurer, que cela prend un temps fou... Qu'à cela ne tienne, i3 est un gestionnaire avec des fichiers de configuration en langage naturel et aux raccourcis clavier intuitifs. Présentation de la version 4.2.

Le dessin assisté par ordinateur sous Linux avec LibreCAD et FreeCAD

Magazine
Marque
Linux Pratique
Numéro
74
|
Mois de parution
novembre 2012
|
Domaines
Résumé
En architecture ou en mécanique, les logiciels de dessin assisté par ordinateur en 2D et en 3D sont indispensables. À côté des poids lourds du secteur comme CATIA, AutoCAD ou SolidWorks, il existe des alternatives pour Linux. Petit tour d'horizon de quelques fonctionnalités de LibreCAD pour la 2D et de FreeCAD pour la 3D.

Quod Libet, la gestion musicale à votre image

Magazine
Marque
Linux Pratique
Numéro
73
|
Mois de parution
septembre 2012
|
Domaines
Résumé
Votre collection de musique dépasse allègrement les dix mille titres, et vous êtes confronté à un dilemme : quel gestionnaire musical choisir ? Vous composez avec les défauts des uns et des autres... Quod Libet vous laisse gérer votre musique à votre manière, sans sacrifier la rapidité.

Taskwarrior, rien que pour vos tâches !

Magazine
Marque
Linux Pratique
Numéro
72
|
Mois de parution
juillet 2012
|
Domaines
Résumé
Avec son interface minimaliste et sa flexibilité, Taskwarrior est un compagnon de choix pour effectuer le suivi de ses tâches au quotidien, se rappeler des échéances ou organiser des projets. Découverte de cet outil en ligne de commandes, dont la version 2.0 vient de sortir...