La programmation scientifique avec Python

Mis à jour le vendredi 6 décembre 2013

La programmation scientifique avec Python, une alternative gratuite, libre et performante à Matlab, IDL, Scilab, etc. et un complément pratique et utile au C et/ou au Fortran.

La programmation scientifique, c'est quoi ? Pour qui ? Je dois savoir quoi ?

Qu'est-ce que c'est ?
C'est l'utilisation de l'informatique et des langages de programmation pour résoudre un problème numérique. Bon on n'est pas forcément plus avancé avec ça. :-°
Donc détaillons :
La programmation scientifique sert à résoudre des problèmes le plus souvent mathématiques grâce à l'utilisation d'algorithmes numériques optimisés pour les ordinateurs modernes. Ces ordinateurs permettent d'automatiser des tâches répétitives, rébarbatives, ou tout simplement trop longues pour être effectués par un être humain.
Tout repose sur l'utilisation de scalaires, de vecteurs et de matrices et de tout l'attirail d'outils mathématiques qui leur est associé (produit, transposé, extremum, etc).

Pour qui ?
Toute personne voulant faire faire des calculs par son ordinateur est potentiellement un "programmeur scientifique". ^^

Prérequis ?
Pour aborder ce tuto serainement il faudra :

  • Savoir compter ; ^^

  • Être au point sur les notions mathématiques de vecteur, matrice, et plus généralement sur l'algèbre. Pas besoin d'être agrégé en mathématiques mais il vous faudra au moins être relativement à l'aise avec ces notions ;

  • Être au point sur le language Python en lui même. Pour ce faire je ne peux que conseiller l'excellent tuto Python du sdz. :-°

Compter avec Python ?

Pourquoi faire du calcul scientifique avec Python me demanderez vous, c'est interprété (donc moins rapide), c'est gratuit (donc louche ;) ), et de toutes façons rien ne remplace le C et/ou le Fortran :-° ...

Alors donc pourquoi Python :

  • Avantage intrinsèque au langage cf le tuto python ;

  • Les modules scientifiques que je vais détailler après sont basés sur certaines grosses bibliothèques scientifiques en C, C++ ou Fortran qui ont fait leurs preuves (Blas, Lapack, Atlas) ;

  • ça s'interface très facilement avec des codes Fortran et C : on peut donc réutiliser ses anciens codes sans souci ;

  • C'est interactif donc particulièrement adapté à de multiples petits calculs, plots, etc. dans l'interpréteur (les utilisateurs de Matlab et IDL savent à quel point c'est utile ;) ).

Ouverture des hostilités

Attaquons donc le cœur du sujet :
De quoi avons-nous, scientifiques, besoin pour travailler/programmer :

  • des tableaux de nombres (vecteurs, matrices);

  • des opérations de traitement de ces tableaux de nombres (addition, multiplication, puissance, tri, minimum, etc. ;

  • des outils de visualisation (tracé de graphes 2D, 3D, surface, contour, etc. ) ;

  • des routines de traitements (transformées de Fourier, interpolation, résolution de système linéaire, etc. ) ;

  • plein d'autres petites choses créées à la main...

Nous allons étudier ici essentiellement les outils mis à disposition par le Projet SciPy qui fournit tout ce dont on aura besoin pour commencer.

déroulement d'un cours

  • 1

    Dès aujourd'hui, vous avez accès au contenu pédagogique et aux exercices du cours.

  • 2

    Vous progressez dans le cours semaine par semaine. Une partie du cours correspond à une semaine de travail de votre part.

  • !

    Les exercices doivent être réalisés en une semaine. La date limite vous sera annoncée au démarrage de chaque nouvelle partie. Les exercices sont indispensables pour obtenir votre certification.

  • 3

    À l'issue du cours, vous recevrez vos résultats par e-mail. Votre certificat de réussite vous sera également transmis si vous êtes membre Premium et que vous avez au moins 70% de bonnes réponses.

Découvrez aussi ce cours en...

Exemple de certificat de réussite
Exemple de certificat de réussite