Accueil
Dominique Lefebvre novembre 2009
Introduction à la physique numérique
La physique numérique est une spécialité à la croisée de la physique théorique et de la physique expérimentale.
Dans les grandes lignes, l’expérimentateur fait une manip pour mettre en évidence un phénomène et obtient des résultats de mesures. Le théoricien propose une théorie et le modèle qui convient pour tenter de prédire les résultats expérimentaux, avec plus ou moins de précision.
Mais bien souvent, le modèle proposé est trop simpliste pour prédire avec exactitude les résultats obtenus (et je ne parle pas des incertitudes expérimentales). En effet, pour bâtir son modèle, le théoricien a été conduit à faire des simplifications afin de proposer un modèle qui ait une solution analytique. Or ces simplifications sont souvent sujettes à caution…
Je vais prendre un cas simple, celui du pendule...simple. Vous savez tous que l’équation différentielle qui régit son mouvement est d²q/dt² = -(g/l)*sin(q).
Cette équation n’a pas de solution analytique : elle est non-linéaire. C’est ennuyeux pour étudier le mouvement ! Alors on va la linéariser afin de lui trouver une solution simple. On y arrive en posant q petit ce qui implique que sin(q) est sensiblement égal à q (en radian bien sur). Et là, tout le monde connait la solution !
Oui, mais dans la pratique ce n’est pas terrible pour décrire le mouvement du pendule, car on est limité aux petits angles (disons moins de 10°). Si l’on veut étudier le mouvement d’un pendule qu’on lâche depuis l’horizontale, on est très mal.
Plus généralement, la physique numérique permet :
D’obtenir des solutions numériques à des équations connues mais qui ne possèdent pas de solution analytique.
De vérifier la validité des approximations proposées par les théoriciens,
De réaliser des expériences qui ne sont pas réalisables en pratique : comment expérimenter le mouvement des galaxies en fonction de la répartition de la matière noire (si elle existe...) ?
Accessoirement, de mettre au point des expériences avant de les tenter réellement. Avant de construire un accélérateur de plusieurs milliards d’euros, il est prudent de simuler ce qu’on peut en attendre….
Sa pratique nécessite :
Une très bonne connaissance des domaines de la physique concernée,
Une connaissance aussi bonne des méthodes de l’analyse numérique,
Une bonne pratique de l’algorithmique et d’un ou de plusieurs langages de programmation.
Les objectifs de ce site sont simples :
sensibiliser les lycéens et les étudiants en sciences du premier cycle (L1 - L3) à l'utilisation du calcul numérique en physique,
leur fournir les schémas numériques et les outils nécessaires aux premiers pas en physique numérique,
donner quelques aperçus de la programmation en FORTRAN ou en C,
faire quelques expériences de physique numérique.
Pour aborder ces différents points, je me baserai sur le niveau d'un élève moyen de TS en math et en physique. Dans certains cas, je me servirai d'outils abordés en L1 ou L2, mais dans ce cas, je le préciserai.
Mes outils de physique numérique
Mon ordinateur
Je travaille sur deux ordinateurs différents: un Dell Dimension 9200 sous Linux et un Dell Precision M6400 sous Windows. En fait, pour faire les expériences que je vous propose, n'importe quel ordinateur courant convient. Il suffit qu'il soit doté d'au moins 2 Go de mémoire (avec 1 Go, ça risque de ramer un peu), de 200 Mo de disque libre (pour installer les outils) et d'une carte graphique et d'un écran 1024*768 couleur. Pour ma part je travaille sur un moniteur 20" 1920*1200.
Le choix de l'OS
Tous les outils et les programmes que j'écris sont utilisables sous Windows ou sous Linux indifférement. Je travaille sous Windows XP SP3 ou sous Linux Mandriva 2009, selon l'humeur. Et la plupart du temps, j'accède à mon PC Linux (le Dell Dimension) à partir de mon portable Dell Precision, en utilisant l'excellent émulateur de terminal X X-Win32, qui lui n'est pas un logiciel gratuit! Il en existe une version de démo gratuite limitée à 30 mn par session. J'ai essayé d'autres émulateurs (tous ceux qui peuvent vous venir à l'esprit) et j'ai été très deçu. Rien ne vaut X-Win32, ma philosophie est faite.
Les logiciels
Tous les logiciels que j'utilise sont LIBRES et GRATUITS pour un usage non commercial! Merci à la communauté scientifique! Ce sont:
l'environnement Dev Cpp, pour développer en C/C++
l'environnement VFort, pour développer en FORTRAN 77 (il semble que le lien original soit cassé - j'ai mis un zip d'installation sur mon site)
la librairie graphique Dislin, pour FORTRAN et C/C++
le logiciel de plot GnuPlot
le logiciel de calcul SciLab
le logiciel de calcul Octave
le logiciel de gestion d'images XnView (pour les hard copy écran).
Vous pouvez les télécharger librement aux adresses indiquées. Ils disposent tous d'un site d'assistance et d'une multitude de forums (pour la plupart..)
Les livres de référence
Je cite dans mes pages quelques livres de référence en physique numérique (computational physics en anglais):
"Physique numérique" de Philippe Depondt (en français)
"Numerical methods for physics" de Alejandro Garcia (en anglais)
"An introduction to computational physics" de Tao Pang (en anglais)
"Computational physics" de Rubin Landau and all (en anglais)
et bien sur, pour les routines de calcul, les indispensables "Numerical recipes" in C et in Fortran.
Vous trouverez tous ces ouvrages sur Amazon.
Je suis physicien (52 ans), formé à une époque où l'informatique scientifique n'était pas aussi visible qu'aujourd'hui. Mes travaux m'ont vite conduits à l'usage intensif des ordinateurs: IBM 370, PDP 11 et HP1000 pour commencer, puis VAX et Sun, et donc à l'élaboration de codes de calcul. J'ai donc fait du FORTRAN (depuis 1980), de l'assembleur, du Pascal et enfin du C/C++ (depuis 1985). J'ai travaillé pour la recherche et l'industrie dans divers domaines : recherche en MQ, systèmes d'armes, contrôle/commande des systèmes, détection radar et ASM, modélisation et simulation des procédés. Depuis 1997, je suis consultant indépendant en ingénierie des systèmes auprès de grandes entreprises et administrations.
Vous pouvez me joindre sur mon forum pour poser toutes vos questions concernant cette page ou plus généralement la programmation scientifique.