Calcul formel avec SageMATH

Documents pareils
Calculer avec Sage. Revision : 417 du 1 er juillet 2010

L informatique en BCPST

Le Master Mathématiques et Applications

Éditorial. Tangente ÉDUCATION. Scratch, AlgoBox, Python. Trimestriel - n 15 - janvier 2011 Numéro spécial 16 activités TICE pour le lycée

MASTER (LMD) MODELISATION, OPTIMISATION, COMBINATOIRE ET ALGORITHME

Suivant les langages de programmation, modules plus avancés : modules imbriqués modules paramétrés par des modules (foncteurs)

Cours 1 : La compilation

Cours 1 : Introduction Ordinateurs - Langages de haut niveau - Application

LES OUTILS D ALIMENTATION DU REFERENTIEL DE DB-MAIN

ÉdIteur officiel et fournisseur de ServIceS professionnels du LogIcIeL open Source ScILab

Maple: premiers calculs et premières applications

Table des matières. I Mise à niveau 11. Préface

Bases de programmation. Cours 5. Structurer les données

Anne Tasso. Java. Le livre de. premier langage. 10 e édition. Avec 109 exercices corrigés. Groupe Eyrolles, , ISBN :

Programmation C. Apprendre à développer des programmes simples dans le langage C

MABioVis. Bio-informatique et la

Présentation du langage et premières fonctions

Informatique et sciences du numérique

Mathcad Ces capacités font de Mathcad l outil de calcul technique le plus utilisé au monde.

INGENIERIE DES SYSTEMES INFORMATIQUES - PARCOURS : MOBILITE ET CLOUD COMPUTING

Évaluation et implémentation des langages

Introduction à l étude des Corps Finis

Section «Maturité fédérale» EXAMENS D'ADMISSION Session de février 2014 RÉCAPITULATIFS DES MATIÈRES EXAMINÉES. Formation visée

Premiers pas avec Mathematica

Correction de l examen de la première session

1 Définition et Appel d une fonction. V. Phan Luong. Cours 4 : Fonctions

Environnements et Outils de Développement Cours 1 Introduction

Laboratoire d informatique Gaspard-Monge UMR Journée Labex Bézout- ANSES

OPTION SCIENCES BELLE-ISLE-EN-TERRE

Calcul Formel et Numérique, Partie I

Exercices Alternatifs. Quelqu un aurait-il vu passer un polynôme?

Exercices Alternatifs. Quelqu un aurait-il vu passer un polynôme?

UNIVERSITE DES ANTILLES et DE LA GUYANE Campus de Fouillole BP Pointe-à-Pitre Cedex CONTRAT LE MASTER NOM DU DOMAINE STS

Calcul Formel et Numérique, Partie I

Entraînement au concours ACM-ICPC

Les formations de remise à niveau(!) l'entrée des licences scientifiques. Patrick Frétigné CIIU

Utiliser Dev-C++ .1Installation de Dev-C++ Table des matières

Les apports de l informatique. Aux autres disciplines

INFORMATIQUE & WEB. PARCOURS CERTIFICAT PROFESSIONNEL Programmation de sites Web. 1 an 7 MODULES. Code du diplôme : CP09

Cours 1 : Qu est-ce que la programmation?

Programmes des classes préparatoires aux Grandes Ecoles

Ateliers Python+Qt : Premiers pas : S'installer pour PyQt... en quelques minutes sous Windows!

MATHÉMATIQUES 10 e 12 e ANNÉE

Introduction à MATLAB R

Aide - mémoire gnuplot 4.0

Des conditions d accueil privilégiées au lycée Couperin

Titre : Communiquer avec des formules mathématiques

STAGE IREM 0- Premiers pas en Python

Python - introduction à la programmation et calcul scientifique

1/24. I passer d un problème exprimé en français à la réalisation d un. I expressions arithmétiques. I structures de contrôle (tests, boucles)

Cours de Master Recherche

Présentation du Master Ingénierie Informatique et du Master Science Informatique , Année 2 Université Paris-Est Marne-la-Vallée

Éléments de programmation et introduction à Java

Cours 7 : Utilisation de modules sous python

ALGORITHMIQUE ET PROGRAMMATION En C

Générer du code à partir d une description de haut niveau

Le langage C++ est un langage de programmation puissant, polyvalent, on serait presque tenté de dire universel, massivement utilisé dans l'industrie

S LICENCE INFORMATIQUE Non Alt Alt SS1 S2 S3 S4 S5 S6 Parcours : IL (Ingénierie Logicielle) SRI (Systèmes et Réseaux Informatiques)

ISFA INSTITUT DE SCIENCE FINANCIÈRE ET D ASSURANCES GRANDE ÉCOLE D ACTUARIAT ET DE GESTION DES RISQUES

Machines virtuelles Cours 1 : Introduction

Chapitre 1 Qu est-ce qu une expression régulière?

I. Programmation I. 1 Ecrire un programme en Scilab traduisant l organigramme montré ci-après (on pourra utiliser les annexes):

Cours Informatique Master STEP

Manuel d utilisation 26 juin Tâche à effectuer : écrire un algorithme 2

Chapitre I Notions de base et outils de travail

INITIATION AU LANGAGE C SUR PIC DE MICROSHIP

MÉTHODES NUMERIQUES. Cours. Licence de Physique Année Universitaire : Licence Chimie, parcours Physique. Semestre S3

Carl-Louis-Ferdinand von Lindemann ( )

Logique binaire. Aujourd'hui, l'algèbre de Boole trouve de nombreuses applications en informatique et dans la conception des circuits électroniques.

Logiciel Libre Cours 3 Fondements: Génie Logiciel

Cours d initiation à la programmation en C++ Johann Cuenin

APRES LE BAC S

3. SPÉCIFICATIONS DU LOGICIEL. de l'expression des besoins à la conception. Spécifications fonctionnelles Analyse fonctionnelle et méthodes

ANALYSTE PROGRAMMEUR DIPLÔME D ÉTABLISSEMENT

UFR d Informatique. FORMATION MASTER Domaine SCIENCES, TECHNOLOGIE, SANTE Mention INFORMATIQUE

Gestion des Clés Publiques (PKI)

Initiation à l algorithmique

Baccalauréat universitaire (bachelor) en mathématiques et sciences informatiques

Comparer l intérêt simple et l intérêt composé

Cours de C++ François Laroussinie. 2 novembre Dept. d Informatique, ENS de Cachan

Né le 13/06/1984 Russe Célibataire Langues : Russe, Anglais,

Langage SQL (1) 4 septembre IUT Orléans. Introduction Le langage SQL : données Le langage SQL : requêtes

Licence STS mention Mathématiques Parcours Ingénieur Télécom Bretagne (ITB)

1 Introduction et installation

DUT. Informatique, orientation Imagerie Numérique. Domaine : Sciences, Technologies, Santé. Mention : Informatique

IN Cours 1. 1 Informatique, calculateurs. 2 Un premier programme en C

Ce cours introduit l'électrodynamique classique. Les chapitres principaux sont :

Chapitre 1 : Introduction aux bases de données

Cours d introduction à l informatique. Partie 2 : Comment écrire un algorithme? Qu est-ce qu une variable? Expressions et instructions

Logiciel Libre Cours 9 Modèles Économiques

Exercices types Algorithmique et simulation numérique Oral Mathématiques et algorithmique Banque PT

4. Utilisation d un SGBD : le langage SQL. 5. Normalisation

Informatique. Les réponses doivent être données en cochant les cases sur la dernière feuille du sujet, intitulée feuille de réponse

MATHÉMATIQUES. Les préalables pour l algèbre MAT-P020-1 DÉFINITION DU DOMAINE D EXAMEN

F7n COUP DE BOURSE, NOMBRE DÉRIVÉ

Le nombre d or et Fibonacci

Faculté des Sciences Mathématiques, Physiques et Naturelles de Tunis

Initiation à la programmation en Python

Fondements de l informatique Logique, modèles, et calculs

Transcription:

Laboratoire d Informatique Gaspard Monge Université Paris Est à Marne-La-Vallée, France 14 janvier 2016 Le calcul sous toutes ses formes, du lycée à l université

Qu est ce que le calcul formel? Le calcul formel manipule des entités mathématiques de manière exacte. Tous les objets manipulés DOIVENT ainsi être construits/décrits de manière finie. -->%pi %pi = 3.1415927 -->2*%pi ans = 6.2831853 -->exp(-%i*%pi) ans = - 1. - 1.225D-16i Scilab : Sage : sage: pi pi sage: 2*pi 2*pi sage: exp(-i*pi) -1 sage: pi.n() #demande explicite d approximation numérique ici!!! 3.14159265358979

Calcul formel Calcul numérique Toujours juste. Un algorithme de calcul formel provient (extrêmement souvent) d une démonstration mathématique constructive. Modélisation limitée : les nombres réels n existent pas en calcul formel, seule une partie (infime) des réels est considérable, les réels décrits de manière déterministe et constructive en temps fini. Lourdes complexités : la justesse à un prix. Phénomènes compliqués comme l explosion arithmétique. sage: QQ.random_element(100,100) 100/43 sage: M=matrix(6,6,[QQ.random_element(100,100) for i in range(36)]); M [-25/78 83/68 81/71-78/59-86/23 23/93] [ 68/93-11/3 22/69-6/59-59/30-31/45] [ 61/45 11/27 44/17-3/4-28/39 5/6] [ -8/21 2/17 32/43-37/73 49/68 4/3] [ -5/28 5-23/9 45/41-68/75-16/75] [ 5/23-31/30-3/14 52/11 1 19/11] sage: M.determinant() 1494935005594402758126228891665686657/3290502108398027553081089438400000

Les enjeux du calcul formel Listes non exhaustives, classification non standard... Enjeux arithmétiques : théorie des nombres, racines de polynômes, systèmes d équations algébriques, primalité(s), factorisation(s), cryptographie, théorie de Galois effective, théorie des groupes... Enjeux combinatoires : modélisation d objets combinatoires (permutations, partitions, composition, tableaux (de Young), chemins discrets, graphes...), séries formelles, décompositions, énumérations, générations... Enjeux symboliques : représentation des polynômes, matrices et séries, fonctions spéciales, fonctions D-finie, expressions algébriques, dérivation/intégration formelle, algèbre linéaire exacte,...

Systèmes de calcul formel (CAS) : état de l art Caractéristiques listées subjectives... Maple : Propriétaire, langage spécifique, nombreux packages, limité dans la modélisation d objets, le plus puissant dans la manipulation symbolique,... Mathematica : Propriétaire, langage spécifique, généraliste, environnement de développement riche,... Magma : Propriétaire, langage spécifique, spécialisé vers l algèbre, la théorie des nombres et la géométrie,... Singular : Libre, langage spécifique, spécialisé vers les polynômes et ses environs, notamment vers la géométrie algébrique effective,... Gap : Libre, langage spécifique, spécialiste de la théorie des groupes et ses environs,... Sage : Libre, basé sur le langage Python, généraliste, jeune,......

Qu attends-on d un système de calcul formel? Point de vu utilisateur classique : Fonctionnalités formelles évoluées Prise en main aisée Efficacité, stabilité et justesse (tous les CAS ont des bogues...) Comprendre les enjeux de ce que l on demande à la machine Point de vu recherche : Un chercheur est tout d abord un utilisateur classique COMPRENDRE LES ENJEUX DE CE QUE L ON DEMANDE À LA MACHINE Être capable de développer son propre code pour faire de l exploration informatique Valoriser sa recherche via le biais d expériences concrètes sur machine

Qu attends-on d un système de calcul formel? Point de vu étudiant : Savoir résoudre les problèmes Facilité de translation entre mathématique et CAS, trouver les choses dont on a besoin rapidement, avoir l impression d écrire des maths, ne pas être bridé par syntaxe et environnement de développement,... Point de vu enseignant : Écrire/Trouver/Reprendre des problèmes dont la résolution est intéressante sur le CAS Limiter les coûts de prise en main, limiter les coûts d apprentissage de la syntaxe, limiter les coûts de recherche d information, limiter les coûts relatif aux déboguages,...

Les CAS aujourd hui... changent trop souvent. (fin d instruction : - ; - ;; - : - (rien) -... ) (exit - quit - quit();; - exit(1): -... ) (help func -?func -??func - help(func) - func? -... ) sont possiblement chers. Les élèves/étudiants ne peuvent pas raisonnablement le posséder chez eux. ne présente pas de plus value à leur apprentissage. (J ai tapé du code XXXX durant un certains nombre d année mais XXXX n existe plus...) D autres petits problèmes comme la documentation en langue anglaise, le manque d exemples, la difficulté pour savoir quels algorithmes sont utilisés en interne,...

Le système Sage logiciel libre (gratuit, sources consultable, bogues documentés, contribution ouverte,...) développé par des enseignants/étudiants/chercheurs pour des enseignants/étudiants/chercheurs propriété intellectuelle du code disséminée sur toute la planète utilise un langage de programmation généraliste existant : Python review en peer to peer des correctifs/améliorations/nouvelles fonctionnalités philosophie de ré-utiliser les meilleurs programmes existants sans les réécrire (nombreux interfaces vers d autres CAS) utilise un maximum de standards existants (documentation Sphnix à la Python, système de gestion de version git, gestionnaire de tickets trac) Sage : building the car, not reinventing the wheel.

Historique 2005 : une demi-douzaine de développeurs lassés des gros CAS lancent Sage, basé sur le langage Python 2006 : Gap, Singular, Clisp, Maxima sont dans Sage Février 2006 : Premières journées Sage (UCSD) Octobre 2008 : Journées Sage 10 à Nancy Février 2010 : Journées Sage 20 et Journées Sage pour l enseignement 2 à Marseille 2014-2015 : Sage langage possible pour l agrégation de mathématique Aujourd hui : Journées Sage 70: (9-13 Novembre, 2015, Berkeley) environs 800 k lignes de codes plus de 5300 classes d objets plus de 54 k fonctions contenu mathématique riche de nombreux algorithmes exclusifs plus de 500 contributeurs sur la planète plus de 19800 tickets sur la plateforme de gestion de développement

Ce qui ne fonctionne toujours pas... Sage est difficile à installer complètement (6 heures de compilation depuis les sources sous Linux). L installation de Sage sous Windows n est pas aisée. Sage contient de nombreux bogues. De nombreuses fonctionnalités disponibles dans les logiciels tiers ne sont pas encore interfacées correctement. La jeunesse de Sage force parfois de casser la compatibilité lors d une sortie de nouvelle version. Sage manque de performance dans certains domaines....

Ce qui fonctionne... Utilisation de Sage gratuitement en ligne sans installation (juste un navigateur web). La mayonnaise a pris (le nombre d utilisateurs et de contributeurs croient très fortement). Les décisions de design sont longues à prendre (discussion sur internet) mais sont des délibérations fines pour le futur. De nombreuses publications scientifiques utilisent Sage pour illustration (expériences scientifiques reproductibles gratuitement). Une grande maîtrise de ce que l on exécute en machine. (?? : double point d interrogation pour voir le code exécuté) Python : Premier langage en licence math-info à Marne-la-vallée Langage utilisé en lycées Langage informatique des CPGE Langage fort utilisé pour des cours de math-info et cryptographie Apprendre le CAS Sage, c est aussi apprendre un langage de programmation généraliste.

Contributeurs à Sage