Calcul mathématique avec Sage - Ensiwiki · Puissance et pérennité du modèle de développement...

19
Présentation générale Premiers pas Calcul mathématique avec Sage Clément PERNET Grenoble Université Stage Liesse, 3 mai 2013

Transcript of Calcul mathématique avec Sage - Ensiwiki · Puissance et pérennité du modèle de développement...

Page 1: Calcul mathématique avec Sage - Ensiwiki · Puissance et pérennité du modèle de développement contributif. Coût des licences propriétaires. Présentation générale Premiers

Présentation générale Premiers pas

Calcul mathématique avec Sage

Clément PERNET

Grenoble Université

Stage Liesse,3 mai 2013

Page 2: Calcul mathématique avec Sage - Ensiwiki · Puissance et pérennité du modèle de développement contributif. Coût des licences propriétaires. Présentation générale Premiers

Présentation générale Premiers pas

Plan

1 Présentation générale

2 Premiers pas

Page 3: Calcul mathématique avec Sage - Ensiwiki · Puissance et pérennité du modèle de développement contributif. Coût des licences propriétaires. Présentation générale Premiers

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

Page 4: Calcul mathématique avec Sage - Ensiwiki · Puissance et pérennité du modèle de développement contributif. Coût des licences propriétaires. Présentation générale Premiers

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

Page 5: Calcul mathématique avec Sage - Ensiwiki · Puissance et pérennité du modèle de développement contributif. Coût des licences propriétaires. Présentation générale Premiers

Présentation générale Premiers pas

Apparence

Ligne de commande Interface graphique Web

Page 6: Calcul mathématique avec Sage - Ensiwiki · Puissance et pérennité du modèle de développement contributif. Coût des licences propriétaires. Présentation générale Premiers

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

Page 7: Calcul mathématique avec Sage - Ensiwiki · Puissance et pérennité du modèle de développement contributif. Coût des licences propriétaires. Présentation générale Premiers

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)

Page 8: Calcul mathématique avec Sage - Ensiwiki · Puissance et pérennité du modèle de développement contributif. Coût des licences propriétaires. Présentation générale Premiers

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,...

Page 9: Calcul mathématique avec Sage - Ensiwiki · Puissance et pérennité du modèle de développement contributif. Coût des licences propriétaires. Présentation générale Premiers

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)

Page 10: Calcul mathématique avec Sage - Ensiwiki · Puissance et pérennité du modèle de développement contributif. Coût des licences propriétaires. Présentation générale Premiers

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

Page 11: Calcul mathématique avec Sage - Ensiwiki · Puissance et pérennité du modèle de développement contributif. Coût des licences propriétaires. Présentation générale Premiers

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β

Page 12: Calcul mathématique avec Sage - Ensiwiki · Puissance et pérennité du modèle de développement contributif. Coût des licences propriétaires. Présentation générale Premiers

Présentation générale Premiers pas

Plan

1 Présentation générale

2 Premiers pas

Page 13: Calcul mathématique avec Sage - Ensiwiki · Puissance et pérennité du modèle de développement contributif. Coût des licences propriétaires. Présentation générale Premiers

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

Page 14: Calcul mathématique avec Sage - Ensiwiki · Puissance et pérennité du modèle de développement contributif. Coût des licences propriétaires. Présentation générale Premiers

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

Page 15: Calcul mathématique avec Sage - Ensiwiki · Puissance et pérennité du modèle de développement contributif. Coût des licences propriétaires. Présentation générale Premiers

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

Page 16: Calcul mathématique avec Sage - Ensiwiki · Puissance et pérennité du modèle de développement contributif. Coût des licences propriétaires. Présentation générale Premiers

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??

Page 17: Calcul mathématique avec Sage - Ensiwiki · Puissance et pérennité du modèle de développement contributif. Coût des licences propriétaires. Présentation générale Premiers

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...

Page 18: Calcul mathématique avec Sage - Ensiwiki · Puissance et pérennité du modèle de développement contributif. Coût des licences propriétaires. Présentation générale Premiers

Présentation générale Premiers pas

Le notebook

Page 19: Calcul mathématique avec Sage - Ensiwiki · Puissance et pérennité du modèle de développement contributif. Coût des licences propriétaires. Présentation générale Premiers

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)