Méthodes Numériques pour la Physique
Alexandre Mayer
Master en Sciences Physiques
Table des matières :
- Références et liens intéressants
- Conseils généraux pour une programmation en Fortran 90
- Programmation avec Octave / MATLAB
- Mise en route
- Résolution de systèmes linéaires
- Interpolation
- Quadratures numériques
- Ajustements linéaires et optimisation
- Intégration d'un système d'équations différentielles
- Appendice
- Cours de programmation : Fortran 90
- Cours de méthodes numériques pour la physique
- Le site du compilateur GFORTRAN
- Ma page consacrée à GrWin /
Ma page consacrée à LAPACK /
Ma page consacrée à PGPLOT
- W.H. Press, S.A. Teukolsky, W.T. Vetterling and B.P. Flannery, Numerical Recipes in Fortran, 2nd edition,
Cambridge University Press (Cambridge, 1992).
- W.H. Press, S.A. Teukolsky, W.T. Vetterling and B.P. Flannery, Numerical Recipes in Fortran 90,
Cambridge University Press (Cambridge, 1996).
La programmation se fera en Fortran 90. Les programmes seront les plus clairs
possible. Vous veillerez en particulier à :
- définir un module
kinds
contenant les types de données
ainsi qu'un module list_interface
contenant les interfaces de toutes les
sous-routines et fonctions utilisées;
- commencer obligatoirement vos programmes par les instructions
use
, l'instruction implicit none
et les déclarations de variables;
- programmer de manière modulaire (utilisation de
sous-routines) et propre (par l'utilisation de commentaires,
d'indentations et en définissant toujours clairement le type
des variables utilisées);
- permettre une généralisation facile du programme.
Nous utiliserons souvent des sous-routines du Numerical
Recipes. Les interfaces de ces routines sont déjà
définies dans le module nr.
Elles utilisent en général les modules
nrtype et
nrutil qui seront expliqués
plus tard. Il vous suffira d'inclure ces fichiers dans vos
projets.
Pour certains exercices, nous utiliserons la librairie
LAPACK. Cette librairie est
plus performante que le Numerical Recipes.
Vous pouvez réaliser des graphes en Fortran 90 avec GrWin
ou PGPLOT.
Pour une visualisation rapide de vos résultats, j'ai
préparé un exécutable
GetPlot.exe
.
Il suffit de le lancer pour visionner d'un coup tous les fichiers
de données dans le répertoire courant. Il produit
par ailleurs les fichiers PostScript correspondants. Le lien
suivant décrit le format des fichiers de données.
Voici un modèle de programme contenant des
interfaces, fonctions et sous-routines. Il prépare un fichier pour utilisation
avec GetPlot.exe
. Vous devrez, dans tous vos
programmes, utiliser la structure en modules de cet exemple.
Pour chaque projet, vous me remettrez un listing de votre
programme, les résultats obtenus ainsi que les réponses
aux questions posées.
Le GFORTRAN implémente le Fortran 90/95/2003/2008. Il supporte
la librairie OpenMP, ce qui permet de faire de la programmation en parallèle et d'utiliser ainsi
l'ensemble des processeurs de vos machines.
Installation du GFORTRAN pour Windows 10
Pour travailler avec le GFORTRAN vous devez entrer dans une fenêtre d'invite de commandes. Vous trouverez ici les instructions pour compiler.
Pour compiler un projet constitué de plusieurs fichiers, il est plus pratique de faire un
Makefile (on lance l'exécution du Makefile par l'instruction make
).
Pour une utilisation plus avancée de ce compilateur, vous pouvez consulter la
documentation.
Pour faire vos graphiques avec le GFORTRAN sous Windows, vous pouvez utiliser GrWin.
Les librairies LAPACK et
PGPLOT ont été compilées avec le GFORTRAN.
Vous trouverez les instructions d'installation en consultant mes liens.
Pour éditer vos fichiers, vous pourrez finalement utiliser JEdit ou Notepad++.
Si vous souhaitez travailler avec Octave (version libre de MATLAB), voici le site officiel d'Octave.
Vous trouverez sur ce site les fichiers d'installation.
Vous trouverez dans ce cours d'Octave les routines à utiliser pour les exercices qui suivent.
Pour vous remettre au Fortran et à la réalisation de graphiques, vous allez calculer des fractals.
Références
- H.-O. Peitgen, H. Jürgens and D. Saupe, Chaos and Fractals, New Frontiers of Science,
Springer-Verlag (New York, 1992), chap. 10, 11 and 13.
- D.D. McCracken and W.S. Dorn, Numerical Methods and FORTRAN Programming, Wiley (New York, 1964), chap. 2.
- P.H. Sterbenz, Floating-Point Computation, Prentice-Hall (Englewood Cliffs, 1974), chap. 3.
Dans ce chapitre, nous travaillerons sur une application des résolutions
de systèmes linéaires. Pour ce faire, nous utiliserons les routines
decomp et solve données dans le livre de Forsythe.
Référence
- W.H. Press, S.A. Teukolsky, W.T. Vetterling and B.P. Flannery, Numerical Recipes in Fortran, 2nd edition,
Cambridge University Press (Cambridge, 1992), chap. 2.
Dans ce chapitre, nous étudierons les interpolations par fonctions spline.
Pour ce faire, nous utiliserons les routines spline et splint
tirées du Numerical Recipes en Fortran 90.
Référence
- W.H. Press, S.A. Teukolsky, W.T. Vetterling and B.P. Flannery, Numerical Recipes in Fortran, 2nd edition,
Cambridge University Press (Cambridge, 1992), chap. 3.
Utilisation de la routine quanc8
de Forsythe
pour intégrer diverses fonctions.
Vous pouvez utiliser les autres méthodes vues au cours en vous servant du module IntegrationPack.f90.
Référence
- W.H. Press, S.A. Teukolsky, W.T. Vetterling and B.P. Flannery, Numerical Recipes in Fortran, 2nd edition,
Cambridge University Press (Cambridge, 1992), chap. 4.
Le projet vise à calculer la décomposition SVD d'une matrice réelle, en vue
de réaliser un ajustement linéaire général. On utilise
pour cela la sous-routine dgesdd de
LAPACK.
Référence
- W.H. Press, S.A. Teukolsky, W.T. Vetterling and B.P. Flannery, Numerical Recipes in Fortran, 2nd edition,
Cambridge University Press (Cambridge, 1992), chap. 10.
Dans ce chapitre, la routine rkf45
de Forsythe est utilisée pour résoudre l'équation
de Newton d'un pendule excité.
Références sur la résolution d'équations différentielles
- S.O.S. Mathematics : l'essentiel des mathématiques en ligne.
- A. Moussiaux, CONVODE : posez votre équation et recevez la solution sur votre boîte mail !
- W.E. Boyce and R.C. DiPrima, Elementary Differential Equations and Boundary Value Problems,
Seventh Edition, John Wiley & Sons (New York, 2000).
- W.H. Press, S.A. Teukolsky, W.T. Vetterling and B.P. Flannery, Numerical Recipes in Fortran, 2nd edition,
Cambridge University Press (Cambridge, 1992), chap. 16 and 17.