Machiavel: l'unité de l'oeuvre et la pérennité du pouvoir ...
Calcul mathématique avec Sage - Ensiwiki · Puissance et pérennité du modèle de développement...
Transcript of Calcul mathématique avec Sage - Ensiwiki · Puissance et pérennité du modèle de développement...
Présentation générale Premiers pas
Calcul mathématique avec Sage
Clément PERNET
Grenoble Université
Stage Liesse,3 mai 2013
Présentation générale Premiers pas
Plan
1 Présentation générale
2 Premiers pas
Présentation générale Premiers pas
DéfinitionSage est un logiciel libre de calcul mathématique
ObjectifAlternative viable, libre et de qualité à Maple, Magma, Matlabet Mathematica :
Quelle confiance avoir en un résultat calculé par un codenon public ?Puissance et pérennité du modèle de développementcontributif.Coût des licences propriétaires
Présentation générale Premiers pas
&Langage PythonPour l’utilisateur : Python + Maths
n’exige pas d’apprendre un nouveau langagelargement adopté pour le calcul scientifique
Pour le développement : Pyhton + Cythonsouplesse et efficacité du développementcompilation Python ⇒ C des parties critiquesInter-connection de bibliothèques
Présentation générale Premiers pas
Apparence
Ligne de commande Interface graphique Web
Présentation générale Premiers pas
Apparence
Ligne de commande
toutes les fonctionnalitéssaisie des commandeslignes à lignesou import d’un fichier decode :
load "monfichier.sage"
NotebookIntégré dans un navigateurmise en forme LATEXintégration des graphiques2D, 3D,applets interractifspartage/publication defeuilles de travail
Présentation générale Premiers pas
Sage, c’est ...
1 Une distribution des meilleures bibliothèques et logicielsmathématiques spécialisés (plus de 80 paquetages)
Arithmétique GMP, MPFR, Givaro, MPFIAlgèbre commutative PolyBoRi, SINGULAR (libSINGULAR)Algèbre linéaire LinBox, M4RI, IML, fpLLLCryptographie GnuTLS, PyCryptoFactorisation FlintQS, ECMThéorie des groupes GAPCombinatoire Symmetrica, sage-combinatThéorie des graphes NetworkXThéorie des nombres PARI, NTL, Flint, mwrank, eclibCalcul numérique GSL, Numpy, Scipy, ATLASCalcul symbolique Maxima, Sympy, PynacStatistiques RInterface graphique Sage Notebook, jsmath, Moin wiki, IPythonTracé de graphiques Matplotlib, Tachyon, libgd, JMolCouche réseau TwistedBase de donnée ZODB, SQLite, SQLAlchemy, Python pickleLangage de programmation Python, Cython (compiled)
Présentation générale Premiers pas
Sage, c’est ...
2 Une bibliothèque à part entière
Plus d’1M de lignes de codeprincipalement Python et Cythoninitialement focalisé autour de la théorie des nombresdésormais couvre tout les spectre du calcul mathématique(certaines implantations ne se trouvent nulle part ailleurs).
3 Une interface avec la plupart des logiciels (libre ou non) decalcul mathématique : Magma,Maple,Mathematica,Matlab, Gap, Pari/GP,...
Présentation générale Premiers pas
Développement du logiciel
Un modèle de développement inspiré des publications scientifiques :
Plus de 150 contributeurs, environs 30 par releaseChaque nouveau morceau de code est
1 proposé par son auteur2 lu, testé et validé par un référé3 éventuellement intégré dans la release suivante
Tests de régression automatiques et documentation(doctests Python )
Confiance dans un calcul mathématique fourni par un logiciel
Standards de qualité élévésInspection du source libre et facilitéeAlgorithmes probabilistes uniquement utilisés à lademande (mode proof=false)
Présentation générale Premiers pas
Comment utiliser Sage
Sur son ordinateur :
en terminal ou en notebookinstallé à partir de binaires ou compilé à partir du source :http://sagemath.org
Installation sur un serveur
une machine l’exécuteconnexion distante par le navigateur webautant de session que d’utilisateurs
Ressources en ligne : serveurs publics
Notebook standard : http://sagenb.org1 seule cellule : http://aleph.sagemath.org
Présentation générale Premiers pas
Ressources bibliographiques
Sur le site http://sagemath.org/help.html
Documentation, tutoriaux, support de cours, etcForum de discussion (utilisateurs, développeurs,...)
Le livre Calcul Mathématique avec Sage
Calcul mathématique avec
SAGE
Calc
ulm
athé
mat
ique
avec
Sage
A.Ca
sam
ayou
� N.C
ohen
� G.C
onna
nT.
Dum
ont�
L.Fo
usse
� F.M
altey
M.M
eulie
n� M
.Mez
zaro
bba� C
.Per
net
N.M
.Thi
éry� P
.Zim
mer
man
nSage est un logiciel libre de calcul mathématique s’appuyant sur lelangage de programmation Python. Ses auteurs, une communautéinternationale de centaines d’enseignants et de chercheurs, se sontdonné pour mission de fournir une alternative viable aux logicielsMagma, Maple, Mathematica et Matlab. Sage fait appel pour celaà de multiples logiciels libres existants, comme GAP, Maxima, PARIet diverses bibliothèques scientifiques pour Python, auxquels il ajoutedes milliers de nouvelles fonctions. Il est disponible gratuitement etfonctionne sur la plupart des systèmes d’exploitation usuels.Pour les lycéens, Sage est une formidable calculatrice scientifique etgraphique. En premier cycle universitaire, Sage assiste efficacementl’étudiant dans ses calculs en analyse, en algèbre linéaire, etc. Pourla suite du parcours universitaire et le monde de la recherche, Sageimplante les algorithmes les plus récents dans diverses branches desmathématiques. De ce fait, de nombreuses universités enseignent Sagedès le premier cycle pour les travaux pratiques et les projets.Ce livre est le premier ouvrage généraliste sur Sage, toutes languesconfondues. Coécrit par des enseignants et chercheurs intervenant à tousles niveaux (IUT, classes préparatoires, licence, master, doctorat), il metl’accent sur les mathématiques sous-jacentes à une bonne compréhensiondu logiciel. En cela, il correspond plus à un cours de mathématiqueseffectives illustré par des exemples avec Sage qu’à un mode d’emploiou un manuel de référence.La première partie est accessible aux élèves de licence. Le contenu desparties suivantes s’inspire du programme de l’épreuve de modélisationde l’agrégation de mathématiques.Ce livre est diffusé sous licence libre Creative Commons. Il peut êtretéléchargé gratuitement ou imprimé à la demande à prix coûtant depuis
http://sagebook.gforge.inria.fr/
cba
http://sagebook.gforge.inria.fr/
license libre CC by SA(bientôt) imprimable à la demande (amazon)en exclusivité pour vous ici une version 1.1β
Présentation générale Premiers pas
Plan
1 Présentation générale
2 Premiers pas
Présentation générale Premiers pas
Premiers pas
En mode terminal pour commencer :
pernet@ensipc20:~$ sage----------------------------------------------------------------------| Sage Version 5.8, Release Date: 2013-03-15 || Type "notebook()" for the browser-based notebook interface. || Type "help()" for help. |----------------------------------------------------------------------sage: 2+1/37/3
Sage connaît les rationnels (contrairement à python)
pernet@ensipc20:~$ pythonPython 2.7.3 (default, Aug 1 2012, 05:14:39)[GCC 4.6.3] on linux2Type "help", "copyright", "credits" or "license" for more information.>>> 2+1/32
Présentation générale Premiers pas
Premiers pas
sage: n=1234567890987654321sage: factor(n)3^2 * 7 * 19 * 928163 * 1111211111sage: n.factor()3^2 * 7 * 19 * 928163 * 1111211111
Présentation générale Premiers pas
Liste des méthodes applicables sur un objet : <TAB>
sage: n.<TAB>Display all 101 possibilities? (y or n)n.N n.kroneckern.abs n.lcmn.additive_order n.leading_coefficientn.base_extend n.listn.base_ring n.logn.binary n.modn.binomial n.multifactorialn.bits n.multiplicative_ordern.cartesian_product n.nn.category n.nbitsn.ceil n.ndigitsn.conjugate n.next_prime...sage: n.fact<TAB>n.factor n.factorial
Présentation générale Premiers pas
Documentation et inspection de code
Calqué sur les docstring Python :
Documentation et exemple d’utilisation
sage: n.is_prime?
Intégralité du code (incluant documentation et examples)
sage: n.is_prime??
Présentation générale Premiers pas
Le notebook
C’est l’interface graphique :Intégrée dans un navigateur WebFeuilles de calculMise en forme post-scriptIntégration des graphiquesAnimations
sage: notebook()The notebook files are stored in: sage_notebook.sagenb*************************************************** ** Open your web browser to http://localhost:8080 ** ***************************************************Executing twistd --pidfile="sage_notebook.sagenb/sagenb.pid" -ny "sage_notebook.sagenb/twistedconf.tac"2013-04-30 11:12:11+0200 [-] Log opened.2013-04-30 11:12:11+0200 [-] twistd 12.3.0 (/home/pernet/Logiciels/sage-5.7/local/bin/python 2.7.3) starting up.2013-04-30 11:12:11+0200 [-] reactor class: twisted.internet.epollreactor.EPollReactor.2013-04-30 11:12:11+0200 [-] QuietSite starting on 8080...
Présentation générale Premiers pas
Le notebook
Présentation générale Premiers pas
La suite : démonstration interractive
Lancez sage et le notebooksage: notebook()
ouvrez la feuille PremiersPas.sws (sur ensiwiki.imag.fr)