Programmation Scientifique avec Python#
par Marc BUFFAT, dpt Mécanique, Université Lyon 1
cours de Licence en Mécanique
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.
Démarche du calcul scientifique#
Analyse physique du problème
Choix d’un modèle mathématique
Choix d’une méthode numérique
Choix d’une solution algorithmique
Programmation sur un ordinateur
Validation de la démarche
Simulation
Analyse du résultat
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#
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
apprentissage d’une méthode scientifique et pas uniquement d’un langage
nécessite de la rigueur (formalisme mathématique)
choix du langage Python et des notebooks Jupyter
rédaction de compte rendu
accès 24/24 à un serveur jupyter
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#
Notebook de cours
Base de la programmation sous Python:
Résumé: règles de base de la programmation
En cas de problème
TP d’application
TP introduction: traitement de données textuelles:
Partie III: Python pour les scientifiques#
Python scientifique avec numpy et matplotlib
Algèbre linéaire#
Analyse#
Traitement de données#
Partie IV: Applications à des problèmes de Mécanique#
Simulation numérique de problèmes de Mécanique
Analyse cinématique et calcul de trajectoire
Résolution numérique d’EDO
Problème du brachistochrone
Partie V: Application du calcul formel à des problèmes de mécanique#
Calcul symbolique en Mécanique
Applications en Mécanique
Applications en dynamique des solides
Documentation#
Marc BUFFAT. Inpros: introduction à la programmation scientifique. 2018. URL: https://perso.univ-lyon1.fr/marc.buffat/2022/BOOK_INPROS/index.html.
Allen B. Downey. How to think like a computer scientist. 2016. URL: https://www.greenteapress.com/wp/think-python-2e/.
Python Software Foundation. Python official tutorials. 2001. URL: https://docs.python.org/.
Python Software Foundation. Scientific python. 2011. URL: https://scipy.org/.
Python Software Foundation. Symbolic python. 2021. URL: https://sympy.org/.
Python Software foundation. Jupyter notebook. 2023. URL: https://jupyter.org/.
(C) Marc BUFFAT