Sage : le couteau suisse des maths pour Linux

Magazine
Marque
Linux Pratique
Numéro
75
Mois de parution
janvier 2013
Spécialité(s)


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.




Article rédigé par

Par le(s) même(s) auteur(s)

I3, le « tiling window manager » pour tous

Magazine
Marque
Linux Pratique
Numéro
74
Mois de parution
novembre 2012
Spécialité(s)
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
Spécialité(s)
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
Spécialité(s)
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é.

Les derniers articles Premiums

Les derniers articles Premium

La place de l’Intelligence Artificielle dans les entreprises

Magazine
Marque
Contenu Premium
Spécialité(s)
Résumé

L’intelligence artificielle est en train de redéfinir le paysage professionnel. De l’automatisation des tâches répétitives à la cybersécurité, en passant par l’analyse des données, l’IA s’immisce dans tous les aspects de l’entreprise moderne. Toutefois, cette révolution technologique soulève des questions éthiques et sociétales, notamment sur l’avenir des emplois. Cet article se penche sur l’évolution de l’IA, ses applications variées, et les enjeux qu’elle engendre dans le monde du travail.

Petit guide d’outils open source pour le télétravail

Magazine
Marque
Contenu Premium
Spécialité(s)
Résumé

Ah le Covid ! Si en cette période de nombreux cas resurgissent, ce n’est rien comparé aux vagues que nous avons connues en 2020 et 2021. Ce fléau a contraint une large partie de la population à faire ce que tout le monde connaît sous le nom de télétravail. Nous avons dû changer nos habitudes et avons dû apprendre à utiliser de nombreux outils collaboratifs, de visioconférence, etc., dont tout le monde n’était pas habitué. Dans cet article, nous passons en revue quelques outils open source utiles pour le travail à la maison. En effet, pour les adeptes du costume en haut et du pyjama en bas, la communauté open source s’est démenée pour proposer des alternatives aux outils propriétaires et payants.

Sécurisez vos applications web : comment Symfony vous protège des menaces courantes

Magazine
Marque
Contenu Premium
Spécialité(s)
Résumé

Les frameworks tels que Symfony ont bouleversé le développement web en apportant une structure solide et des outils performants. Malgré ces qualités, nous pouvons découvrir d’innombrables vulnérabilités. Cet article met le doigt sur les failles de sécurité les plus fréquentes qui affectent même les environnements les plus robustes. De l’injection de requêtes à distance à l’exécution de scripts malveillants, découvrez comment ces failles peuvent mettre en péril vos applications et, surtout, comment vous en prémunir.

Bash des temps modernes

Magazine
Marque
Contenu Premium
Spécialité(s)
Résumé

Les scripts Shell, et Bash spécifiquement, demeurent un standard, de facto, de notre industrie. Ils forment un composant primordial de toute distribution Linux, mais c’est aussi un outil de prédilection pour implémenter de nombreuses tâches d’automatisation, en particulier dans le « Cloud », par eux-mêmes ou conjointement à des solutions telles que Ansible. Pour toutes ces raisons et bien d’autres encore, savoir les concevoir de manière robuste et idempotente est crucial.

Les listes de lecture

8 article(s) - ajoutée le 01/07/2020
Découvrez notre sélection d'articles pour faire vos premiers pas avec les conteneurs, apprendre à les configurer et les utiliser au quotidien.
11 article(s) - ajoutée le 02/07/2020
Si vous recherchez quels sont les outils du DevOps et comment les utiliser, cette liste est faite pour vous.
8 article(s) - ajoutée le 02/07/2020
Il est essentiel d'effectuer des sauvegardes régulières de son travail pour éviter de perdre toutes ses données bêtement. De nombreux outils sont disponibles pour nous assister dans cette tâche.
Voir les 60 listes de lecture

Abonnez-vous maintenant

et profitez de tous les contenus en illimité

Je découvre les offres

Déjà abonné ? Connectez-vous