Programmation Scientifique avec Python#

par Marc BUFFAT, dpt Mécanique, Université Lyon 1

cours de Licence en Mécanique

creative common

Mise à disposition selon les termes de la License Creative Commons

Introduction#

L’objectif du cours est d’acquérir une démarche de modélisation numérique appliquée au traitement de problèmes mécaniques. Pour cela, on mettra en oeuvre la démarche suivante du « calcul scientifique », en utilisant le langage de programmation Python couramment utilisé en science.

programmation scientifique

Démarche du calcul scientifique#

  1. Analyse physique du problème

  2. Choix d’un modèle mathématique

  3. Choix d’une méthode numérique

  4. Choix d’une solution algorithmique

  5. Programmation sur un ordinateur

  6. Validation de la démarche

  7. Simulation

  8. Analyse du résultat

  9. Rédaction d’un rapport

Important

La validation est un point essentiel de la démarche !!!

Objectifs#

OBJECTIF

L’objectif est de savoir utilisé différents outils numériques pour traiter des problèmes de mécanique pour du traitement de données et/ou de la modélisation numérique.

En particulier, on utilisera de façon intelligente les bibliothèques et les outils numériques existants sans forcément faire de longs développements informatiques, mais en comprenant les principes, l’utilisation et les limitations de ces outils numériques.

Structure du cours#

python

Objectifs du cours#

Important

L’objectif de ce cours est d”apprendre à utiliser l’outil numérique avec une méthode scientifique pour traiter des problèmes de Mécanique

méthode scientifique à écouter sur France Culture

Méthode

  1. apprentissage d’une méthode scientifique et pas uniquement d’un langage

  2. nécessite de la rigueur (formalisme mathématique)

  3. choix du langage Python et des notebooks Jupyter

  4. rédaction de compte rendu

  5. accès 24/24 à un serveur jupyter

  6. accès à des ressources pédagogiques en ligne

    • vidéos d’introduction à Python et Jupyter

Travail préparatoire en autonomie#

Vidéo d’introduction à Python#

Il s’agit de la première leçon d’un ensemble de modules d’apprentissage pour les étudiants en sciences et technologie. Ces modules utilisent le langage Python, mais en présupposant aucune expérience de programmation préalable. Le premier objectif sera de vous apprendre à utiliser un environnement numérique Python avec des notebooks Jupyter permettant de résoudre des problèmes et de gérer des données scientifiques.

Vidéo d’introduction aux notebooks Jupyter#

Cette vidéo décrit l’utilisation des notebooks Jupyter pour un cours ou TP sur les plateformes jupyter nbgrader du département mécanique.

Une erreur s’est glissée dans la vidéo du cours: seriez vous capable de la trouver?

Partie I: Préambule#

Histoire et enjeux de l’informatique en science#

Tutoriel d’utilisation des notebooks#

Partie II: Introduction à Python#

Base de la programmation sous Python#

  1. Notebook de cours

  2. TP d’application

Partie III: Python pour les scientifiques#

Python scientifique avec numpy et matplotlib

Algèbre linéaire#

  1. Rappel Algèbre linéaire

  2. devoir Webwork sur le portail moodle.mecanique

  3. Notebook d’application du cours

  4. TP Exercices de programmation

Analyse#

  1. Rappel Analyse

  2. devoir Webwork sur le portail moodle.mecanique

  3. TP Exercices de programmation et d’analyse de fonction

Traitement de données#

  1. Traitement de données

  2. TP traitement de données

Partie IV: Applications à des problèmes de Mécanique#

Simulation numérique de problèmes de Mécanique

  1. Analyse cinématique et calcul de trajectoire

  2. Résolution numérique d’EDO

  3. Problème du brachistochrone

Partie V: Application du calcul formel à des problèmes de mécanique#

Calcul formel en Mécanique

  1. Calcul symbolique en Mécanique

  2. Applications en Mécanique

  3. Applications en dynamique des solides

Documentation#

[1]

Marc BUFFAT. Inpros: introduction à la programmation scientifique. 2018. URL: https://perso.univ-lyon1.fr/marc.buffat/2022/BOOK_INPROS/index.html.

[2]

Allen B. Downey. How to think like a computer scientist. 2016. URL: https://www.greenteapress.com/wp/think-python-2e/.

[3]

Python Software Foundation. Python official tutorials. 2001. URL: https://docs.python.org/.

[4]

Python Software Foundation. Scientific python. 2011. URL: https://scipy.org/.

[5]

Python Software Foundation. Symbolic python. 2021. URL: https://sympy.org/.

[6]

Python Software foundation. Jupyter notebook. 2023. URL: https://jupyter.org/.

(C) Marc BUFFAT