Physique Numérique
Badis Ydri
Departement de Physique, Faculté des Sciences, Université
www.al3abkari-pro.com
www.al3abkari-pro.com
Contents
Introduction et Références 3
Partie I 7
1 Algorithme d’Euler- Résistance d’Air et Projectiles 7
1.1 Algorithme d’Euler . . . 7
1.2 Désintégration Radioactive . . . 8
1.3 La Résistance de l’Air . . . 10
1.4 Code de Fortran . . . 12
1.5 Mouvement d’un Projectile . . . 15
2 Algorithmes d’Euler-Cromer et de Verlet-Oscillateur Harmonique 17 2.1 Pendule Simple . . . 17
2.2 Algorithme d’Euler . . . 18
2.3 Algoritme d’Euler-Cromer . . . 19
2.4 Algorithme de Verlet . . . 20
3 Intégration Numérique 21 3.1 Approximation Rectangulaire . . . 21
3.2 Méthode des Trapèzes . . . 22
3.3 Approximation Parabolique oú la Régle de Simpson . . . 23
3.4 Erreurs . . . 25
4 Algorithmes de Newton-Raphson et Interpolation 27 4.1 Méthode de Dichotomie . . . 27
4.2 Algorithme de Newton-Raphson . . . 28
4.3 Méthode Hybride . . . 29
4.4 Interpolation de Lagrange . . . 30
4.5 Interpolation Spline Cubique . . . 31
4.6 Méthode des Moindres Carrés . . . 33
www.al3abkari-pro.com
5 Travaux Pratiques 35
5.1 Algorithme d’Euler- Resistance d’Air . . . 35
5.2 Mouvement des Projectiles Sous l’Effet de la Résistance de l’Air . . 36
5.3 Oscillateur Harmonique-Algorithmes d’Euler-Cromer et de Verlet . 37 5.4 Intégration Numériques . . . 39
5.5 Algorithmes de Newton-Raphson . . . 40
Partie II 45
6 Le Systéme Solaire-Les Méthodes de Runge-Kutta 45 6.1 Le Systéme Solaire: Le Probléme . . . 456.2 Algorithmes de Euler et de Euler-Cromer . . . 46
6.3 L’algorithme de Runge-Kutta . . . 47
6.3.1 La Méthode . . . 47
6.3.2 Example 1: L’Oscillateur Harmonique . . . 49
6.3.3 Example 2: Le Systéme Solaire . . . 49
6.4 Les lois de Kepler . . . 51
6.5 Loi de l’Inverse Carré et Stabilité des Orbites . . . 53
6.6 Unités Astronomiques et Conditions Initiales . . . 54
6.7 Précession du Périhélie de Mercure . . . 55
7 Le Chaos: Pendule Chaotique 57 7.1 Equation du Mouvement . . . 57
7.2 Algorithmes Numériques . . . 60
7.3 Chaos . . . 61
7.3.1 Effet Papillon:Sensibilité aux Conditions Initiales . . . 61
7.3.2 Section de Poincaré et Attractors . . . 62
7.3.3 Bifurcations: Doublement de Période . . . 63
7.3.4 Rapport de Feigenbaum . . . 64
7.3.5 Brisure Spontanée de Symétrie . . . 64
8 Dynamique Moléculaire 67 8.1 Introduction . . . 67
8.2 Le Potentiel de Lennard-Jones . . . 68
8.3 Unités, Conditions aux Limites et Algorithme de Verlet . . . 69
8.4 Applications Physiques . . . 72
8.4.1 Gaz Dilué . . . 72
8.4.2 La Transition de Fusion . . . 73
www.al3abkari-pro.com
physique numérique, ydri et al. 5
9 Travaux Pratiques 75
9.1 Algorithme de Runge-Kutta - Le Systéme Solaire . . . 76
9.2 La Précession du Périhélie de Mercure . . . 78
9.3 Le Pendule Chaotique et l’Effet Papillon . . . 80
9.4 Sections de Poincaré . . . 82
9.5 Chaos par Doublement de Période . . . 84
9.6 Diagrammes de Bifurcation et Brisure Spontanée de la Symétrie . . 86
9.7 Dynamique Moléculaire . . . 88
Partie III 93
10 Nombres (Pseudo) Aléatoires et Marche Au Hasard 93 10.1 Nombres Aléatoires . . . 9310.1.1 Générateur Congruentiel Linéaire . . . 93
10.1.2 Tests Statistiques des Nombres Aléatoires . . . 94
10.2 Systémes Aléatoires . . . 96
10.2.1 Marches Aléatoires . . . 97
10.2.2 Équation de Diffusion . . . 99
10.3 Les générateurs des Nombres Aléatoires RAN0,1,2 . . . 101
11 Intégration Monte Carlo 105 11.1 Intégration Numérique . . . 105
11.1.1 Approximation Rectangulaire . . . 105
11.1.2 Approximation du Point Médian et Intégrales Multidimen- sionnelles . . . 106
11.1.3 Les Sphéres et les Boules dansd Dimensions . . . 108
11.2 Intégration de Monte Carlo: Échantillonnage Simple . . . 109
11.2.1 La Méthode de Rjet: "Hit or Miss" . . . 110
11.2.2 La Méthode de l’Échantillon Moyen . . . 110
11.2.3 Echantillon Moyen dans les Dimensions Supérieures . . . 110
11.3 Le Théorème Central Limite . . . 111
11.4 Erreurs de Monte Carlo et Déviation Standard . . . 113
11.5 Distributions de Probabilités Non Uniformes . . . 116
11.5.1 La Méthode de Transformation Inverse . . . 116
11.5.2 La Méthode de Rejet de Von Neumann . . . 118
12 Échantillonnage d’ Importance, Algorithme de Metropolis et Mod- éle d’Ising 119 12.1 L’Ensemble Canonique . . . 119
12.2 Échantillonnage d’ Importance . . . 120
www.al3abkari-pro.com
12.3 Le modéle d’Ising . . . 121
12.4 L’Algorithme de Metropolis . . . 122
12.5 L’Algorithme de Bain de Chaleur . . . 125
12.6 L’Approximation du Champ Moyen . . . 125
12.7 Résultats Numériques . . . 129
12.8 La Méthode de Jackknife . . . 129
13 Travaux Pratiques 131 13.1 Nombres Aléatoires . . . 132
13.2 Marche au Hasard . . . 134
13.3 Approximation du Point Médian . . . 136
13.4 Approximations de Monte Carlo . . . 137
13.5 Distributions de Probabilité Non Uniforme . . . 138
13.6 Algorithme de Metropolis et Modèle d’Ising . . . 140
13.7 Transition de Phase Ferromagnétiques . . . 142
13.8 La Fonction de Corrélation . . . 143
13.9 Hystérésis et Transition de Phase du Premier Ordre . . . 144
Appendix 147
A Éléments de Fortran 147 B Note sur les Erreurs Numériques 149 B.1 Représentation en Virgule Flottante . . . 149B.2 Epsilon de la Machine et Erreurs d’Arrondi . . . 151
B.3 Erreurs Systématiques (algorithmique) . . . 152
C Exercices 155
www.al3abkari-pro.com
Introduction et Références
www.al3abkari-pro.com
www.al3abkari-pro.com
physique numérique, ydri et al. 3
• La physique numérique est un sous-domaine de la science numérique et de calcul scientifique.
• En physique numérique, nous combinons des éléments de la physique (surtout théoriques), des éléments de mathématiques (en particulier les mathéma- tiques appliquées, telles que l’analyse numérique) et des éléments de l’informatique (programmation) dans le but de résoudre un probléme physique.
• En physique il existe traditionnellement deux approches. 1) L’approche théorique et2)L’approche expérimentale. L’approche numérique est générale- ment considéré comme un complément á l’approche théorique et parfois comme un pont entre l’approche théorique et l’approche expérimentale. Au- jourd’hui nous pouvons même considérer l’approche numérique comme une troisiéme voie en physique indépendante des deux autre approches.
• L’usage le plus important des ordinateurs en physique est simulation. Les simulations sont naturellement adaptés pour les problémes non-linéaires qui ne peuvent pas généralement être résolu par des méthodes analytiques. Le point de départ d’une simulation numérique est un modéle idéalisé d’un sys- téme physique d’intérêt. Nous voulons vérifier si le comportement de ce mod- éle est cohérent avec l’observation expérimentale oú la prévision théorique.
Nous spécifions un algorithme pour la réalisation du modéle sur un ordi- nateur. L’exécution de l’algorithme sur un ordinateur est une simulation.
Les simulations sont donc des expériences virtuelles. La comparaison entre simulations et expériences de laboratoire va comme suit
Expérience de labora- toire
Simulation
échantillon modéle
appareil physique programme (le code)
calibration test de code
mesure calcul
analyse des données analyse des données
• Les outils les plus indispensables de la physique numérique sont les lan- gages de programmation. Dans la plupart des simulations effectuées par des physiciens professionnels dans leurs recherches les codes sont écrits dans un langage compilé de haut niveau comme Fortran et C/C++. Dans ces simu- lations, nous utilisons également des appels á des bibliothéques des routines telles que LAPACK. Dans ce cours, nous allons écrire tous nos codes dans un langage compilé de haut niveau. En particulier, nous n’allons pas faire appel aux bibliothéques numériques .
www.al3abkari-pro.com
• L’usage des logiciels mathématiques tels que Maple, Mathematica et MAT- LAB est seulement efficace pour les calculs relativement faible. Ces logi- ciels sont des langages interprétés et donc le code qu’ils produisent s’exécute généralement trop lentement par comparaison avec les langages compilés.
• Comme notre langage de programmation, nous allons utiliser Fortran77sous le systéme d’exploitation Linux. Nous adoptons la distribution Ubuntu de Linux. Nous allons utiliser les compilateurs Fortran f77 et gfortran. Nous allons utiliser l’éditeur emacs et pour les graphiques, nous allons utiliser gnuplot.
• Les références principales que nous allons suivre dans ce cours sont:
– 1)N.J.Giordano, Computational Physics.
– 2)R.H.Landau, M.J.Paez, C.C.Bordeianu, Computational Physics.
– 3)H.Gould, J.Tobochnick, D.Christian, An Introduction To Computer Simulation Methods.
– 4)R.Fitzpatrick, Computational Physics.
– 5)M. Hjorth-Jensen,Computational Physics.
– 6)Paul L.DeVries, A First Course in Computational Physics.
www.al3abkari-pro.com
Partie I
www.al3abkari-pro.com
www.al3abkari-pro.com
1
Algorithme d’Euler- Résistance d’Air et Projectiles
1.1 Algorithme d’Euler
Nous considérons l’équation différentielle ordinaire du premier ordre y′ = dy
dx =f(x, y). (1.1)
Nous prenons la condition initiale générale
y(x0) =y0. (1.2)
On résout cette équation differentielle pour la fonctiony=y(x)dans un intervalle qui commence par x0. Nous faisons la discrétisation suivante
xn =x0+n∆x , n= 0,1, ... (1.3) L’algorithme d’Euler consiste á remplacer la fonctiony(x)dans l’intervalle[xn, xn+1] par la ligne droite reliant les points (xn, yn)et (xn+1, yn+1). Cela signifie que nous remplaçons l’équation différentielle ci-dessus par l’équation aux différences finies donnée par
yn+1 ≃yn+ ∆xf(xn, yn). (1.4)
www.al3abkari-pro.com
Cette équation est une approximation. L’erreur de troncature est donnée par le prochain terme dans l’expansion de Taylor de la fonction y(x)qui s’écrit
1
2(∆x)2df(x, y)
dx |x=xn. (1.5)
L’erreur par étape est donc proportionnel á(δx)2. Dans un intervalle unitaire nous effectuerons N = 1/δx étapes. L’erreur systématique totale est donc proportion- nelle á
N(∆x)2 = 1
N. (1.6)
1.2 Désintégration Radioactive
Dans une désintégration spontanée, une particule radioactive se désintégre en d’autres particules sans aucune influence extérieure. Un exemple typique est l’isotope nucléaires uranium 235. Le moment exact de la désintégration spontanée est aléatoire. Cela signifie que le nombre −dN(t) des noyaux qui se désintégrent pendant un intervalle de temps dt doit être proportionnel á dtet le nombre N(t) de particules présentes á l’instant t. Donc
−dN(t) = N(t)− N(t+dt)
∝ N(t)dt. (2.7)
En d’autres termes la probabilité de désintégration par unité de temps qui est donnée par (−dN(t)/N(t))/dt est une constante que nous notons 1/τ. (Le signe moins est dû au fait quedN(t)est négatif puisque le nombre de particules diminue avec le temps). Nous écrivons
dN(t)
dt =−N(t)
τ . (2.8)
La solution de cette équation différentielle du premier ordre est
N(t) = N0exp(−t/τ). (2.9) Le nombre N0 est le nombre de particules au tempst = 0. Le temps τ est appelée la durée de vie moyenne. Il est le temps moyen pour la désintégration. Pour l’uranium 235 la durée de vie moyenne est d’environ 109 année.
L’objectif est maintenant d’obtenir une solution numérique approchée au prob- léme de la radioactivité en utilisant l’algorithme d’Euler. Dans ce cas particulier, nous pouvons comparer l’approximation á la solution exacte donnée par la loi de désintégration exponentielle (2.9). Nous partons de l’expansion de Taylor
www.al3abkari-pro.com
physique numérique, ydri et al. 9
N(t+ ∆t) =N(t) + ∆tdN dt +1
2(∆t)2d2N
dt2 +... (2.10)
Nous obtenons dans la limite ∆t−→0 dN
dt = Lim∆t−→0N(t+ ∆t)− N(t)
∆t . (2.11)
Nous prenons ∆t petit mais non nul. Dans ce cas, nous obtenons l’approximation dN
dt ≃N(t+ ∆t)− N(t)
∆t . (2.12)
De maniére équivalente
N(t+ ∆t)≃ N(t) + ∆tdN
dt . (2.13)
En utilisant (2.8) nous obtenons
N(t+ ∆t)≃ N(t)−∆tN(t)
τ . (2.14)
Nous allons commencer par le nombre de particules au temps t = 0 donnée par N(0) = N0, ce qui est connu. Nous remplaçons t = 0 dans (2.14) pour obtenir N(∆t) = N(1) en fonction de N(0). La valeur ainsi obtenue de N(1) peut être utilisé dans l’équation (2.14) pour obtenir N(2∆t) = N(2), etc . Nous sommes amenés alors á la discrétisation du temps
t ≡t(i) =i∆t , i= 0, ..., N. (2.15) En d’autres termes
N(t) =N(i). (2.16)
Le nombre entierN va déterminer l’intervalle de temps totalT =N∆t. La solution numérique (2.14) peut être réécrite comme
N(i+ 1) =N(i)−∆tN(i)
τ , i= 0, ..., N. (2.17) C’est l’algorithme d’Euler pour la désintégration radioactive. Pour plus de com- modité nous changeons le nombre entier i de tel sorte que l’équation ci-dessus prend la forme
N(i) =N(i−1)−∆tN(i−1)
τ , i= 1, ..., N + 1. (2.18)
www.al3abkari-pro.com
Nous introduisons Nˆ(i) =N(i−1), i.e. Nˆ(1) =N(0) =N0. Nous obtenons Nˆ(i+ 1) = ˆN(i)−∆tNˆ(i)
τ , i= 1, ..., N + 1. (2.19) Les temps associés
t ≡ˆt(i+ 1) =i∆t , i= 1, ..., N + 1. (2.20) Cette solution approchée doit être comparée avec la solution exacte (2.9). Le nombre initial de particules au temps ˆt(1) = 0est Nˆ(1) =N0.
1.3 La Résistance de l’Air
Nous considérons un cycliste conduisant son vélo sur un terrain plat. L’objectif est de déterminer sa vitesse. La deuxiéme loi de Newton est donnée par
mdv
dt =F. (3.21)
F est la force exercée par l’athléte sur le vélo. Il est évidemment trés difficile d’écrire une expression précise de F. On va alors formuler le probléme en termes de puissance générée par l’athléte pour éviter l’utilisation d’une formule explicite pour F. En multipliant l’équation ci-dessus parv, nous obtenons
dE
dt =P. (3.22)
E est l’énergie cinétique et P est la puissance, á savoir E = 1
2mv2 , P =F v. (3.23)
Expérimentalement, nous constatons que le rendement des athlétes bien entraînés est d’environ P = 400 watts sur une période d’une 1h. L’équation ci-dessus peut aussi être réécrite comme
dv2 dt = 2P
m . (3.24)
Pour P constante nous obtenons la solution v2 = 2P
m t+v20. (3.25)
On remarque l’effet non physique: v −→ ∞ lorsque t −→ ∞. Cela est dû á l’absence de l’effet du frottement et de résistance de l’air en particulier.
www.al3abkari-pro.com
physique numérique, ydri et al. 11 La forme la plus importante de frottement est la résistance de l’air. La force due á la résistance de l’air (la force de traînée) est
Fdrag =−B1v−B2v2. (3.26) Á faibles vitesses le premier terme domine tandis que pour les vitesses importantes, il est le deuxiéme terme qui domine. Pour des vitesses trés faibles la dépendance sur v est donnée parFdrag =−B1v qui est connue sous le nom de la loi de Stockes.
Pour des vitesses raisonnables la force de traînée est dominé par le second terme, c’est á dire qu’il est donné pour la plupart des objets par
Fdrag =−B2v2. (3.27)
Le coefficient B2 peut être calculée comme suit. La combinaison vélo-cycliste, qui se déplace avec la vitesse v, pousse dans un temps dt une masse d’air donnée par dmair = ρAvdt oú ρ est la densité de l’air et A est la section frontale. L’énergie cinétique correspondante est
dEair=dmairv2/2. (3.28)
Ceci est égale au travail effectué par la force de traînée, c’est á dire
−Fdragvdt=dEair. (3.29)
De ceci, nous obtenons
B2 =CρA. (3.30)
Le coefficient de traînée est C = 1/2. La force de traînée devient
Fdrag =−CρAv2. (3.31)
Tenant compte de la force due á la résistance de l’air, nous constatons qu la loi de Newton devient
mdv
dt =F +Fdrag. (3.32)
De maniére équivalente
dv dt = P
mv − CρAv2
m . (3.33)
Cette équation ne peut pas être résolue exactement. L’algorithme d’Euler donne la solution approchée
v(i+ 1) = v(i) + ∆tdv
dt(i). (3.34)
www.al3abkari-pro.com
En d’autres termes
v(i+ 1) = v(i) + ∆t P
mv(i) −CρAv2(i) m
, i= 0, ..., N. (3.35) Cela peut aussi être mise sous la forme (avec v(i) =ˆ v(i−1))
ˆ
v(i+ 1) = ˆv(i) + ∆t P
mˆv(i) − CρAˆv2(i) m
, i= 1, ..., N + 1. (3.36) Les temps associés
t ≡ˆt(i+ 1) =i∆t , i= 1, ..., N + 1. (3.37) La vitesse initiale ˆv(1) au temps t(1) = 0 est connue.
1.4 Code de Fortran
Le mot "Fortran" vient de FORmula TRANslator. Il est le langage de programma- tion qui est utilisé le plus dans les calculs et simulations numériques de la physique.
Nous allons donné ici un exemple de code en Fortran qui va nous aider á introduir quleques caractéristiques importantes de Fortran.
Les instructions "program", "return" et "end" : Un programme de For- tran commence avec l’instruction program et se termine par l’ instruction end.
L’instruction programnous permet de donner un nom au programme. L’ instruc- tion end peut être précédée par l’instruction return. Le programme va ressembler á
program radioactivity c ici c est le code return
end
Nous avons choisi le nom "radioactivity" pour notre programme. Le "c" dans la deuxiéme ligne indique que la phrase " ici c’est le code" est seulement un com- mentaire et non pas une partie du code.
Les instructions "subroutine" et "function": Autres "blocs fonctionnels"
qui peuvent être utiliser dans un programme de Fortran sont les subroutines et les fonctions. Les subroutines sont inclus entre subroutine et end tandis que les fonctions sont inclus entre functionet end.
www.al3abkari-pro.com
physique numérique, ydri et al. 13 Partie déclaration: Aprés l’instruction programvient la partie déclaration du programme. Nous indiquons les variables et leur types qui seront utilisés dans le programme. En Fortran, nous avons le type integerpour les variables entiers et le type double precision pour les variables réels. Dans notre cas, les variables Nˆ(i), ˆt(i), τ, ∆t, N0 sont réels alors queN eti sont des nombres entiers.
Tableau: Un tableau A de dimension K est une liste ordonnée de K variables d’un type donné. Les élements de tableau sont notés A(1), A(2),...,A(K). Dans notre exemple, Nˆ(i) et t(i)ˆ sont des tableaux réels de dimension N + 1. Nous déclarons que Nˆ(i) et t(i)ˆ sont réels pour tout i = 1, ..., N + 1 en écrivant Nˆ(1 : N + 1) et ˆt(1 :N + 1).
L’instruction "parameter": Parce que un tableau est déclarée au début du programme, il doit avoir une taille fixe. En d’autres termes la limite supérieure doit être une constante et non pas une variable. En Fortran une constante est déclarée par l’instruction "parameter". Dans notre cas, la limite supérieure est N+ 1 et doncN doit être doit être donné une valeur fixe au début du programme avec l’instruction "parameter".
En mettant toutes les déclarations ensemble nous obtenons program radioactivity
integer i, N
parameter (N = 100)
doubleprecisionNˆ(1 :N + 1),ˆt(1 :N + 1),N0,∆t, τ c ici c est le code
return end
Entrées : Les paramétres d’entrées de ce probléme sont N0, τ et ∆t.
Partie instructions exécutables: Pour le probléme de la radioactivité la partie principale du code est constitué des équations (2.19) et (2.20). Nous commençons avec les quantités connues Nˆ(1) =N0 áˆt(1) = 0et nous générons via l’utilisation successive de (2.19) et (2.20) Nˆ(i) etˆt(i) pour tousi >1.
Boucle "do"..."enddo": Cette procédure sera codée en utilisant la boucle do...enddo qui commence avec l’instruction do et se termine avec l’instruction enddo. Nous pouvons également indiquer un pas pas pour la boucle.
www.al3abkari-pro.com
Sorties et l’instruction "write": Le résultat du calcul peut être sauvegardé dans un fichier en utilisant l’instruction write. Dans notre cas, le résultat est le nombre de particules Nˆ(i)et les temps ˆt(i). l’instruction write s’écrit
write(10,∗) ˆt(i),Nˆ(i)
Les données seront enregistrées dans un fichier appelé fort.10. La boucle do avec l’instruction write s’écrit
Nˆ(1) =N0
ˆt(1) = 0
do i= 1, N + 1,1
Nˆ(i+ 1) = ˆN(i)−(∆tNˆ(i))/τ ˆt(i+ 1) =i∆t
write(10,∗) ˆt(i+ 1),Nˆ(i+ 1) enddo
Edition d’un fichier Fortran : Nous ouvrons un terminale sous Linux Ubuntu.
Nous tappons emacspour ouvrir l’éditeur emacs. Nous entrons le code suivant program radioactivity
integer i, N
parameter (N = 100)
doubleprecisiontau, dt, t(1 :N + 1), NN(1 :N + 1), NN0 c paramétres d’ entrées
NN0 = 1000 tau = 1.0d0 dt= 0.01 NN(1) =NN0 t(1) = 0.0d0 c la boucle do do i= 1, N + 1
NN(i+ 1) =NN(i)−(dt∗NN(i))/tau t(i+ 1) =i∗dt
c l’ instruction write
write (10,∗) t(i+ 1), N(i+ 1)
www.al3abkari-pro.com
physique numérique, ydri et al. 15
enddo return end
Compilation et exécution: Nous sauvegardons notre fichier sous le nomcode.f.
Nous compilons en tapant dans le terminale f77 code.f
Nous pouvons également utiliser le compilateur gfortran au lieu de f77. Nous exécutons le programme en tapant dans le terminale
./a.out
Nous obtenons le fichier de sortiefort.10. Nous pouvons l’ouvrir en utilisant emacs.
Visualisation: Nous ouvrons gnuplot. Pour tracer le fichier de données fort.10 nous tappons
plot ’fort.10’ u 1 : 2 Ceci va produire le graphique.
1.5 Mouvement d’un Projectile
Il y a deux forces agissant sur le projectile. La force de poids et la force de traînée.
La force de traînée est opposée á la vitesse. Dans ce cas, la loi de Newton est donnée par
md~v
dt = F~ +F~drag
= m~g−B2v2~v v
= m~g−B2v~v. (5.38)
www.al3abkari-pro.com
L’objectif est de déterminer la position du projectile et donc il faut résoudre les deux équations
d~x
dt =~v. (5.39)
md~v
dt =m~g−B2v~v. (5.40)
En projetant sur les deux axes (l’axe horizontal est x et l’axe vertical est y) on obtient 4 équations de mouvement données par
dx
dt =vx. (5.41)
mdvx
dt = −B2vvx. (5.42)
dy
dt =vy. (5.43)
mdvy
dt = −mg−B2vvy. (5.44)
Nous rappelons la contrainte
v =q
vx2+vy2. (5.45)
L’approche numérique que nous allons employer pour résoudre les 4 équations du mouvement (5.41)-(5.44) consiste á utiliser l’algorithme d’Euler. Cela donne la solution approchée donnée par les équations
x(i+ 1) =x(i) + ∆tvx(i). (5.46) vx(i+ 1) = vx(i)−∆tB2v(i)vx(i)
m . (5.47)
y(i+ 1) =y(i) + ∆tvy(i). (5.48) vy(i+ 1) = vy(i)−∆tg−∆tB2v(i)vy(i)
m . (5.49)
La contrainte est
v(i) = q
vx(i)2+vy(i)2. (5.50) Dans les équations ci-dessus l’indiceiest tel quei= 0, ..., N. La position initiale et la vitesse initiale sont données, c’est á dire x(0), y(0),vx(0) etvy(0) sont connues.
www.al3abkari-pro.com
2
Algorithmes d’Euler-Cromer et de Verlet-Oscillateur Harmonique
2.1 Pendule Simple
Nous considérons un pendule simple, c’est á dire une particule de masse M sus- pendue á un fil sans masse qui est accroché á un support rigide. Il y a deux forces qui agissent sur la particule. Le poids et la tension de la corde. La deuxiéme loi de Newton s’écrit
md2~s
dt = m~g+T .~ (1.1)
Le projection paralléle (par rapport au fil) est
0 = −mgcosθ+T. (1.2)
La projection perpendiculaire s’écrit md2s
dt2 = −mgsinθ. (1.3)
θ est l’angle formé par le fil avec la verticale. Il est clair que s = lθ. La force mgsinθ est une force de rappel qui signifie qu’elle est toujours dirigée vers la position d’équilibre θ = 0. Cette force est alors toujours opposée au déplacement
www.al3abkari-pro.com
qui est á l’origine de signe moins dans l’équation ci-dessus. Nous obtenons en utilisant s=lθ l’équation
d2θ
dt2 = −g
l sinθ. (1.4)
Pour les valeurs petites de θ, nous avons sinθ ≃θ. Nous obtenons d2θ
dt2 = −g
lθ. (1.5)
La solution est une fonction sinusoïdale du temps avec la fréquence Ω = p g/l.
Elle est donnée par
θ(t) = θ0sin(Ωt+φ). (1.6)
Les constantes θ0 et φ dépendent du déplacement et vitesse initiales du pendule.
La fréquence est indépendante de la masse m et de l’amplitude de mouvement et elle ne dépend que de la longueur l du fil.
2.2 Algorithme d’Euler
La premiére solution numérique est basé sur l’algorithme d’Euler. Elle se trouve comme suit. Nous devons d’abord remplacer l’équation du mouvement (1.5) par les deux équations différentielles du premier ordre suivantes
dθ
dt =ω. (2.7)
dω dt =−g
lθ. (2.8)
En utilisant la définition de la dérivé d’une fonction, á savoir df
dt = f(t+ ∆t)−f(t)
∆t , ∆t−→0. (2.9)
Nous obtenons pour ∆t petit mais non nul les approximations θ(t+ ∆t)≃θ(t) +ω(t)∆t
ω(t+ ∆t)≃ω(t)− g
lθ(t)∆t. (2.10)
Nous considérons la discrétisation du temps
t ≡t(i) =i∆t , i= 0, ..., N. (2.11)
www.al3abkari-pro.com
physique numérique, ydri et al. 19 En d’autre termes
θ(t) =θ(i), ω(t) =ω(i). (2.12)
Le nombre entierNva déterminer l’intervalle de temps totalT =N∆t. La solution numérique ci-dessus peut être réécrite comme
ω(i+ 1) =ω(i)− g
lθ(i)∆t
θ(i+ 1) =θ(i) +ω(i)∆t. (2.13) Nous faisons le changement i −→i+ 1pour que l’entier iprend des valeurs dans l’intervalle [1, N+ 1]. Nous obtenons
ω(i) = ω(i−1)−g
lθ(i−1)∆t
θ(i) =θ(i−1) +ω(i−1)∆t. (2.14) Nous introduisons ω(i) =ˆ ω(i−1) et θ(i) =ˆ θ(i−1). Nous obtenons avec i = 1, ..., N + 1 les équations
ˆ
ω(i+ 1) = ˆω(i)− g
lθ(i)∆tˆ
θ(iˆ + 1) = ˆθ(i) + ˆω(i)∆t. (2.15) En utilisant les valeurs de θ etω au temps i, nous calculons les valeurs correspon- dantes au temps i+ 1. L’angle initial et la vitesse angulaire initialeθ(1) =ˆ θ(0)et
ˆ
ω(1) =ω(0) sont connues. Ce processus sera répété jusqu’á ce que les fonctions θ et ω sont déterminés pour tous les temps.
2.3 Algoritme d’Euler-Cromer
Il s’avére que l’algorithme d’Euler ci-dessus ne conserve pas l’énergie. En fait la méthode d’Euler n’est pas un bon choix pour les systémes oscillatoires en générale.
Une simple modification de l’algorithme dû á Cromer va résoudre ce probléme de non conservation de l’énergie. Cela va comme suit. Nous utilisons les valeurs de l’angle et de la vitesse angulaire θ(i)ˆ et ω(i)ˆ au temps i pour calculer la vitesse angulaire ω(iˆ + 1) au temps i+ 1. Cette étape est la même que dans l’algoritme d’Euler. Cependant nous allons utiliser θ(i)ˆ et ω(iˆ + 1) (et non pas ω(i)) pourˆ calculer θ(iˆ + 1) au temps i+ 1. Cette procédure, comme indiqué par Cromer conserve l’énergie dans les problémes oscillatoire mieux que Euler. En d’autres termes les équations (2.15) deviennent
www.al3abkari-pro.com
ˆ
ω(i+ 1) = ˆω(i)− g
lθ(i)∆tˆ
θ(iˆ + 1) = ˆθ(i) + ˆω(i+ 1)∆t. (3.16) L’erreur peut être calculée comme suit. De ces deux équations nous obtenons
θ(iˆ + 1) = ˆθ(i) + ˆω(i)∆t− g
lθ(i)∆tˆ 2
= ˆθ(i) + ˆω(i)∆t+ d2θˆ
dt |i∆t2. (3.17) En d’autres termes l’erreur par étape est toujours de l’ordre de ∆t2. Cependant l’algorithme d’Euler-Cromer fait mieux que l’algorithme d’Euler avec un mouve- ment périodique.
2.4 Algorithme de Verlet
Nous considérons les développement de Taylor suivants θ(ti+ ∆t) =θ(ti) + ∆tdθ
dt|ti +1
2(∆t)2d2θ dt2|ti +1
6(∆t)3d3θ
dt3|ti+... (4.18) θ(ti−∆t) =θ(ti)−∆tdθ
dt|ti +1
2(∆t)2d2θ dt2|ti− 1
6(∆t)3d3θ
dt3|ti +... (4.19) La somme de ces deux expressions est
θ(ti+ ∆t) = 2θ(ti)−θ(ti−∆t) + (∆t)2d2θ
dt2|ti +O(∆4). (4.20) Nous écrivons cette équation sous la form
θi+1 = 2θi−θi−1−g
l(∆t)2θi. (4.21)
Cette équation est l’algorithme de Verlet pour l’oscillateur harmonique. D’abord on remarque que l’erreur est proportionnelle à ∆t4. Donc cette méthode est plus précise que les méthodes d’Euler, d’Euler-Cromer et de Runge-Kutta de deuxième ordre. Ensuite on remarque que dans cette méthode nous n’avons pas besoin de calculer ω = dθ/dt. Troisièmement, nous remarquons que cette méthode ne peut pas être lancer étant donné seulement les conditions initiales θ1 et ω1 mais nous avons besoin aussi de savoir θ2 pour lancer l’algorithme. Généralement, on va déterminer θ2 en utilisant la méthode d’Euler, à savoir
θ2 =θ1+ ∆t ω1. (4.22)
www.al3abkari-pro.com
3
Intégration Numérique
3.1 Approximation Rectangulaire
Nous considérons une intégrale unidimensionnelle de la forme
F = Z b
a
f(x)dx. (1.1)
En général cette intégral ne peut pas être calculer analytiquement. Toutefois, il est trés simple á faire numériquement. Le point de départ est la définition de Riemann de l’intégraleF comme l’aire oú la superficie sous la courbe de la fonctionf(x) de x = a jusqu’a x = b. Ceci est obtenu comme suit. Nous discrétisons l’intervalle [a, b], c’est á dire nous coupons cette intervalle enN morceaus chacun de longueur
∆x. En d’autre termes nous introduisons les points xn=x0+n∆x , ∆x= b−a
N (1.2)
Il est clair que x0 = a et xN = b. La définition de Riemann est alors donnée par la limite suivante
F = lim
∆x−→0 , N−→∞ , b−a=fixed
∆x
N−1
X
n=0
f(xn)
. (1.3)
www.al3abkari-pro.com
La premiére approximation qui peut être faite est de supprimer la limite. Nous obtenons l’approximation dite rectangulaire donnée par
FN = ∆x
N−1
X
n=0
f(xn). (1.4)
Les algorithmes d’intégration générale vont remplacer l’intégrale F par
FN =
N
X
n=0
f(xn)wn. (1.5)
En d’autres termes, nous évaluons la fonctionf(x)áN+ 1points dans l’intervalle [a, b], puis nous prenons la somme des valeurs f(xn) avec des pondérations corre- spondantes wn. Par exemple dans l’approximation rectangulaire (1.4), les valeurs f(xn)sont additionnés avec des poids égaux wn= ∆x, n= 0, N−1etwN = 0. Il est également clair que l’estimation Fn de l’intégrale F devient exact uniquement dans la limite de grande N.
3.2 Méthode des Trapèzes
La régle oú bien la méthode des trapèze nous permet d’approcher l’intégrale par une somme des superficies des trapézes. Dans le sous-intervalle [xn, xn+1] nous remplaçons la fonctionf(x)par une ligne droite reliant les deux points (xn, f(xn)) et(xn+1, f(xn+1)). Le trapéze a comme côtés verticaux les deux droites x=xn et x = xn+1. La base est l’intervalle ∆x = xn+1 −xn. Il n’est pas difficile de nous convaincre que la superficie de ce trapéze est
(f(xn+1)−f(xn))∆x
2 +f(xn)∆x= (f(xn+1) +f(xn))∆x
2 . (2.6)
L’intégraleF calculée en utilisant l’approximation des trapéze est donc donnée par la somme des contributions de tous les sous-intervalle, á savoir
TN =
N−1
X
n=0
(f(xn+1) +f(xn))∆x
2 =
1
2f(x0) +
N−1
X
n=1
f(xn) + 1 2f(xN)
∆x. (2.7) On remarque que les poids sont donnés ici par w0 = ∆x/2, wn = ∆x, n = 1, ..., N −1 etwN = ∆x/2.
www.al3abkari-pro.com
physique numérique, ydri et al. 23
3.3 Approximation Parabolique oú la Régle de Simp- son
Dans ce cas nous approchons la fonction dans le sous-intervalle [xn, xn+1] par une parabole donnée par
f(x) =αx2+βx+γ. (3.8)
La superficie correspondante est donc donnée par Z xn+1
xn
dx(αx2+βx+γ) = αx3
3 +βx2 2 +γx
xn+1
xn
. (3.9)
Nous considérons maintenant l’intégrale Z 1
−1
dx(αx2+βx+γ) = 2α
3 + 2γ. (3.10)
On remarque que
f(−1) = α−β+γ , f(0) =γ , f(1) =α+β+γ. (3.11) De maniére équivalente
α= f(1) +f(−1)
2 −f(0) , β= f(1)−f(−1)
2 , γ =f(0). (3.12)
Ainsi
Z 1
−1
dx(αx2+βx+γ) = f(−1)
3 + 4f(0)
3 + f(1)
3 . (3.13)
En d’autres termes, nous pouvons exprimer l’intégrale de la fonction f(x) = αx2+βx+γsur l’intervalle[−1,1]en termes des valeurs de cette fonctionf(x)áx=
−1,0,1. De même on peut exprimer l’intégrale de f(x)sur les sous-intervalles ad- jacentes [xn−1, xn]et[xn, xn+1] en termes des valeurs def(x)áx=xn+1, xn, xn−1, á savoir
Z xn+1
xn−1
dx f(x) =
Z xn+1
xn−1
dx(αx2+βx+γ)
= ∆x
f(xn−1)
3 +4f(xn)
3 + f(xn+1) 3
. (3.14)
www.al3abkari-pro.com
En ajoutant les contributions de chaque paire de sous-intervalles adjacentes nous obtenons l’intégrale compléte
SN = ∆x
N−2 2
X
p=0
f(x2p)
3 + 4f(x2p+1)
3 + f(x2p+2) 3
. (3.15)
Il est clair que nous devons avoir N (le nombre de sous-intervalles) pair. Nous calculons
SN = ∆x 3
f(x0) + 4f(x1) + 2f(x2) + 4f(x3) + 2f(x4) +...+ 2f(xN−2) + 4f(xN−1) +f(xN)
. (3.16) Nous pouvons lire directement de cette expression les poidswn dans cette approx-
imation.
Nous rappelons maintenant l’approximation des trapézes donnée par
TN =
f(x0) + 2
N−1
X
n=1
f(xn) +f(xN) ∆x
2 . (3.17)
Nous rappelons également que N∆x = b−a est la longueur de l’intervalle total qui est toujours maintenu fixe. Ainsi, en doublant le nombre de sous-intervalles, nous réduisons par moitié la largeur, á savoir
4T2N =
2f(ˆx0) + 4
2N−1
X
n=1
f(ˆxn) + 2f(ˆx2N) ∆x
2
=
2f(ˆx0) + 4
N−1
X
n=1
f(ˆx2n) + 4
N−1
X
n=0
f(ˆx2n+1) + 2f(ˆx2N) ∆x
2
=
2f(x0) + 4
N−1
X
n=1
f(xn) + 4
N−1
X
n=0
f(ˆx2n+1) + 2f(xN) ∆x
2 . (3.18) Au-dessus, nous avons utilisé l’identificationxˆ2n =xn,n= 0,1, ..., N−1, N. Ainsi
4T2N −TN =
f(x0) + 2
N−1
X
n=1
f(xn) + 4
N−1
X
n=0
f(ˆx2n+1) +f(xN)
∆ˆx
= 3SN. (3.19)
www.al3abkari-pro.com
physique numérique, ydri et al. 25
3.4 Erreurs
Les erreurs dans les méthodes d’intégration numériques sont calculés comme suit.
Nous commençons avec le développement de Taylor f(x) =f(xn) + (x−xn)f(1)(xn) + 1
2!(x−xn)2f(2)(xn) +... (4.20) Ainsi
Z xn+1
xn
dx f(x) =f(xn)∆x+ 1
2!f(1)(xn)(∆x)2+ 1
3!f(2)(xn)(∆x)3+... (4.21) Rectangulaire: L’erreur dans l’intervalle [xn, xn+1] dans l’approximation rect- angulaire est
Z xn+1
xn
dx f(x)−f(xn)∆x= 1
2!f(1)(xn)(∆x)2+ 1
3!f(2)(xn)(∆x)3+... (4.22) Cela est de l’ordre de 1/N2. Mais nous avons N sous-intervalles. Ainsi, l’erreur totale est de l’ordre de 1/N.
Trapéze: L’erreur dans l’intervalle [xn, xn+1]dans l’approximation trapézoïdale est
Z xn+1
xn
dx f(x)−1
2(f(xn) +f(xn+1))∆x =
Z xn+1
xn
dx f(x)
− 1
2(2f(xn) + ∆xf(1)(xn) + 1
2!(∆x)2f(2)(xn) +...)∆x
= (1 3!− 1
2 1
2!)f(2)(xn)(∆x)3 +... (4.23) Ceci est de l’ordre 1/N3 et donc l’erreur totale est de l’ordre de 1/N2.
Parabolic: Afin de calculer l’erreur dans l’intervalle[xn−1, xn+1]dans l’approximation parabolique, nous calculons
Z xn
xn−1
dx f(x) + Z xn+1
xn
dx f(x) = 2f(xn)∆x+ 2
3!(∆x)3f(2)(xn) + 2
5!(∆x)5f(4)(xn) +...
(4.24) Aussi, nous calculons
∆x
3 (f(xn+1) +f(xn−1) + 4f(xn)) = 2f(xn)∆x+ 2
3!(∆x)3f(2)(xn) + 2
3.4!(∆x)5f(4)(xn) +...
(4.25)
www.al3abkari-pro.com
Alors l’erreur dans l’approximation parabolique dans l’intervalle [xn−1, xn+1] est Z xn+1
xn−1
dx f(x)−∆x
3 (f(xn+1) +f(xn−1) + 4f(xn)) = (2 5!− 2
3.4!)(∆x)5f(4)(xn(4.26)) +...
Ceci est de l’ordre de 1/N5. L’erreur totale est donc de l’ordre de1/N4.
www.al3abkari-pro.com
4
Algorithmes de Newton-Raphson et Interpolation
4.1 Méthode de Dichotomie
Soitf est une certaine fonction. Nous sommes intéressés par les solutions (racines) de l’équation
f(x) = 0. (1.1)
La Méthode de dichotomie (aussi la méthode de la bissection) fonctionne comme suit. Nous commençons avec deux valeurs x+ etx− dex tel que
f(x−)<0, f(x+)>0. (1.2) En d’autres termes la fonction f change signe dans l’intervalle entre x− et x+ et donc il doit exister une racine entre x− et x+. Si la fonction change de positif à négatif lorsque nous augmentons x, nous concluons que x+ ≤ x−. Nous coupons l’intervalle [x+, x−] au point
x= x++x−
2 . (1.3)
Si f(x)f(x+) > 0 alors x+ sera changé au point x autrement x− sera changé au point x. Nous continuons ce processus jusqu’à ce que le changement de x devient
www.al3abkari-pro.com
insignifiant ou jusqu’à ce que l’erreur devient plus petite qu’une certaine tolérance.
L’erreur relative est définie par
error = x+−x−
x . (1.4)
Clairement l’erreur absolue e=xi −xf est réduit de moitié à chaque itération et donc le taux de convergence de la régle de dichotomie est linéaire. C’est vraiment lent.
4.2 Algorithme de Newton-Raphson
Nous commençons par une conjecture x0. La nouvelle conjecture x est écrite comme x0 plus une certaine correction inconnue ∆x, á savoir
x=x0+ ∆x. (2.5)
Ensuite, nous développons la fonction f(x)autour de x0, á savoir f(x) =f(x0) + ∆xdf
dx|x=x0. (2.6)
La correction ∆x est déterminé par le point d’intersection de cette approximation linéaire de f(x) avec l’axe x. Ainsi
f(x0) + ∆xdf
dx|x=x0 = 0 =⇒∆x=− f(x0) (df /dx)|x=x0
. (2.7)
La dérivée de la fonction f est requis dans ce calcul. Dans des problémes plus compliqués, il est beaucoup plus simple d’évaluer la dérivée numériquement que analytiquement. Dans ces cas, la dérivé peut être donné par l’approximation de la différence avancée (avec δx pas nécessairement égal á∆x)
df
dx|x=x0 = f(x0+δx)−f(x0)
δx . (2.8)
En résumé dans cette méthode nous prenons comme notre nouvelle conjecture x l’intersection avec l’axe des x de la tangente de la fonction f(x) á la conjecture précédente x0. Le processus est répété jusqu’à ce que le changement de x devient insignifiant.
Maintenant, nous calculons le taux de convergence de l’algorithme de Newton- Raphson. A partir de xi la conjecture suivante estxi+1 donnée par
xi+1 =xi− f(xi)
f′(x). (2.9)
www.al3abkari-pro.com
physique numérique, ydri et al. 29 L’erreur absolue à l’étape i est ǫi = x−xi, tandis que l’erreur absolue à l’étape i+ 1 est ǫi+1 =x−xi+1 oùx est la racine réelle. Alors
ǫi+1 =ǫi+ f(xi)
f′(x). (2.10)
En utilisant l’expansion de Taylor, nous avons
f(x) = 0 =f(xi) + (x−xi)f′(xi) + (x−xi)2
2! f′′(xi) +... (2.11) En d’autre termes
f(xi) =−ǫif′(xi)−ǫ2i
2!f′′(xi) +... (2.12) Par conséquent, l’erreur est donnée par
ǫi+1 =−ǫ2i 2
f′′(xi)
f′(xi). (2.13)
Cette convergence est quadratique ce qui est plus rapide que la régle de bissection.
4.3 Méthode Hybride
Nous pouvons combiner la certitude de la régle de bissection de trouver une racine avec la convergence rapide de l’algorithme de Newton-Raphson dans un algorithme hybride comme suit. D’abord il faut savoir que la racine est borné dans un certain intervalle [a, c]. Nous pouvons par exemple utiliser une méthode graphique pour déterminer ce fait. Ensuite, nous partons d’une certaine conjecture initiale b et nous prenons une étape de Newton-Raphson comme suit
b′ =b− f(b)
f′(b). (3.14)
Nous vérifions maintenant si cette étape est bornée dans l’intervalle [a, c]. En d’autres termes, nous devons vérifier que
a≤b− f(b)
f′(b)≤c ⇔(b−c)f′(b)−f(b)≤0≤(b−a)f′(b)−f(b). (3.15) Par conséquent si (b −c)f′(b)−f(b)
(b−a)f′(b)−f(b)
< 0 alors l’étape de Newton-Raphson est accepté sinon on prendra plutôt une étape de bissection.
www.al3abkari-pro.com
4.4 Interpolation de Lagrange
Le développpement de Taylor nous permet d’approximer une fonction en un pointx si la fonction et ses dérivés sont connus dans un certain point voisinx0. L’interpolation de Lagrange tente de approximer la fonction en un point xsi seulement les valeurs de cette fonction dans plusieurs autres points sont connus. Ainsi, cette méth- ode ne nécessite pas la connaissance des dérivés de la fonction. Nous partons du développement de Taylor
f(y) =f(x) + (y−x)f′(x) + 1
2!(y−x)2f′′(x) +.. (4.16) Supposons que la fonction est connue en trois points x1, x2 et x3. Dans ce cas, nous pouvons approcher la fonction f(x)par une fonction p(x) et écrire
f(y) =p(x) + (y−x)p′(x) + 1
2!(y−x)2p′′(x). (4.17) Nous avons
f(x1) =p(x) + (x1−x)p′(x) + 1
2!(x1−x)2p′′(x) f(x2) =p(x) + (x2−x)p′(x) + 1
2!(x2−x)2p′′(x) f(x3) =p(x) + (x3−x)p′(x) + 1
2!(x3−x)2p′′(x). (4.18) Nous pouvons trouver immédiatement
p(x) = 1
1 +a2+a3
f(x1) + a2
1 +a2+a3
f(x2) + a3
1 +a2+a3
f(x3). (4.19) Les coefficients a2 eta3 résoudre les équations
a2(x2−x)2+a3(x3−x)2 =−(x1−x)2
a2(x2−x) +a3(x3−x) =−(x1−x). (4.20) Nous trouvons
a2 = (x1−x)(x3−x1)
(x2−x)(x2−x3) , a3 =−(x1 −x)(x2−x1)
(x3 −x)(x2−x3). (4.21) Ainsi
1 +a2+a3 = (x3 −x1)(x2−x1)
(x2−x)(x3−x) . (4.22)
www.al3abkari-pro.com
physique numérique, ydri et al. 31 Alors nous obtenons
p(x) = (x−x2)(x−x3)
(x1−x2)(x1 −x3)f(x1) + (x−x1)(x−x3)
(x2−x1)(x2 −x3)f(x2) + (x−x1)(x−x2)
(x3−x1)(x3 −x2)f(x3(4.23)).
Ceci est un polynôme quadratique.
Soit x une variable indépendante avec les valeurs tabulées xi, i = 1,2, ..., n..
La variable dépendante est une fonction f(x) avec fi valeurs tabulées fi =f(xi).
Nous allons supposer qu’ on peut approximerf(x)par un polynôme de degrén−1, á savoir
p(x) =a0+a1x+a2x2+...+an−1xn−1. (4.24) Un polynôme qui passe par lesnpoints(xi, fi =f(xi))a été donnée par Lagrange.
Il est donné par
p(x) =f1λ1(x) +f2λ2(x) +...+fnλn(x). (4.25)
λi(x) =Yn
j(6=i)=1
x−xj
xi−xj. (4.26)
Nous remarquons
λi(xj) =δij. (4.27)
n
X
i=1
λi(x) = 1. (4.28)
Le polynôme de Lagrange peut être utilisé pour ajuster l’ensemble du tableau avec négal au nombre de points dans le tableau. Mais il est préférable d’utiliser le polynôme de Lagrange pour adjuster seulement une petite région du tableau avec une petite valeur de n. En d’autres termes il est préférable d’utiliser plusieurs polynômes pour couvrir le tableau et par consequent l’ajustement considéré est locale et non pas globale.
4.5 Interpolation Spline Cubique
Nous considérons les n points (x1, f(x1)),(x2, f(x2)),...,(xn, f(xn)) dans le plan.
Dans chaque intervalle xj≤x≤xj+1, nous allons approximer la fonction f(x) avec un polynôme cubique de la forme
p(x) =aj(x−xj)3+bj(x−xj)2+cj(x−xj) +dj. (5.29)
www.al3abkari-pro.com
Nous supposons que
pj =p(xj) = f(xj). (5.30)
En d’autre termes les pj pour j = 1,2, ..., n − 1 sont connues. De l’équation ci-dessus, nous concluons que
dj =pj. (5.31)
Nous calculons
p′(x) = 3aj(x−xj)2+ 2bj(x−xj) +cj. (5.32) p′′(x) = 6aj(x−xj) + 2bj. (5.33) Ainsi nous obtenons en substituant x=xj dans p′′(x) le résultat
bj = p′′j
2. (5.34)
En remplaçant x=xj+1 en p′′(x), nous obtenons le résultat aj = p′′j+1−p′′j
6hj , hj =xj+1−xj. (5.35) En remplaçant x=xj+1 en p(x), nous obtenons
pj+1 =ajh3j +bjh2j +cjhj +pj. (5.36) En utilisant les valeurs de aj et bj, nous obtenons
cj = pj+1−pj
hj − hj
6(p′′j+1+ 2p′′j). (5.37) Alors
p(x) = p′′j+1−p′′j 6hj
(x−xj)3+ p′′j
2(x−xj)2+
pj+1−pj hj − hj
6(p′′j+1+ 2p′′j)
(x−xj) +p(5.38)j. En d’autres termes les polynômes sont déterminés á partir depj etp′′j. Les pj sont
connus donnés par pj =f(xj). Il reste á déterminer p′′j. Nous prenons la dérivée de l’équation ci-dessus
p′(x) = p′′j+1−p′′j 2hj
(x−xj)2+p′′j(x−xj) +
pj+1−pj
hj − hj
6 (p′′j+1+ 2p′′j)
.(5.39)
www.al3abkari-pro.com
physique numérique, ydri et al. 33 Ceci est la dérivée dans l’intervalle [xj, xj+1]. Nous calculons
p′(xj) =
pj+1−pj hj − hj
6(p′′j+1+ 2p′′j)
. (5.40)
La dérivée dans l’intervalle [xj−1, xj] est p′(x) = p′′j −p′′j−1
2hj−1
(x−xj−1)2+p′′j−1(x−xj−1) +
pj −pj−1
hj−1 − hj−1
6 (p′′j + 2p′′j−1)
(5.41). Nous calculons
p′(xj) = p′′j −p′′j−1
2 hj−1+p′′j−1hj−1+
pj −pj−1
hj−1 − hj−1
6 (p′′j + 2p′′j−1)
. (5.42) En appariant les deux expressions pour p′(xj) nous obtenons
hj−1p′′j−1+ 2(hj+hj−1)p′′j +hjp′′j+1 = 6
pj+1−pj
hj −pj −pj−1
hj−1
. (5.43) Ce sont n −2 équations puisque j = 2, ..., n−1 pour les n inconnus p′′j. Nous avons besoin en plus de deux équations. Ces derniers sont obtenus en calculant la dérivée premiére p′(x) áx=x1 et x=xn. Nous obtenons les deux équations
h1(p′′2 + 2p′′1) = 6(p2−p1)
h1 −6p′1. (5.44)
hn−1(p′′n−1+ 2p′′n) =−6(pn−pn−1) hn−1
+ 6p′n. (5.45)
Lesn équations (5.43), (5.44) and (5.45) correspondent á un systéme tridiagonale linéaire. En généralp′1 etp′nne sont pas connus. Dans ce cas nous pouvons utiliser la spline naturelle dans laquel la dérivée seconde s’annule au points d’extrémités et donc
p2−p1
h1 −p′1 = pn−pn−1
hn−1 −p′n= 0. (5.46)
4.6 Méthode des Moindres Carrés
Nous supposons que nous avons N points de données (x(i), y(i)). Nous voulons adjuster ces données á une courbe linéaire, c’est á dire á la ligne droiteyfit =mx+b.
Á cette fin, nous définissons la fonction
∆ =
N
X
i=1
(y(i)−yfit(i))2 =
N
X
i=1
(y(i)−mx(i)−b)2. (6.47)
www.al3abkari-pro.com
L’objectif est de minimiser cette fonction par rapport á b etm. Nous avons
∂∆
∂m = 0 ,∂∆
∂b = 0. (6.48)
Nous obtenons la solution b =
P
ix(i)P
jx(j)y(j)−P
ix(i)2P
jy(j) (P
ix(i))2−NP
ix2i . (6.49)
m = P
ix(i)P
jy(j)−NP
ix(i)y(i) (P
ix(i))2−NP
ix2i . (6.50)
www.al3abkari-pro.com
5
Travaux Pratiques
5.1 Algorithme d’Euler- Resistance d’Air
Un cycliste conduit un vélo en ligne droite sur un terrain plat avec une vitesse v.
La force exercée par le cycliste sur le vélo est équivalent á une puissance constante égale á200watt qui peut être maintenue pendant une heure. La force de résistance de l’air agit contre le mouvement et elle est proportionnelle au carré de la vitesse, á savoir
Fdrag =−CρAv2.
Dans cette equation ρest la densité de l’air,C est le coefficient de traînée etA est la section efficace de system cyclist+vélo. La 2eme pour ce system loi de Newton prend la form
dv dt = P
mv − CρAv2
m .
L’inconnue est la vitesse v comme une fonction du temps, c’est á dire v = v(t).
Dans cette partie de probléme nous prendrons C = 0.5.
L’approche numérique que nous allons considérer ici est basé sur la méthode d’Euler. La solution approchée de l’équation différentielle ci-dessus selon la méth- ode d’Euler est donné par les équations
ˆ
v(i+ 1) = ˆv(i) + ∆t P
mˆv(i) − CρAˆv2(i) m
. i= 1, ..., N + 1
www.al3abkari-pro.com
t(iˆ + 1) =i∆t , i= 1, ..., N + 1.
(1) Calculer la vitesse en fonction du temps dans le cas oú la résistance de l’air est absent et puis dans le cas oú la résistance de l’air est présent. Qu’est-ce que vous remarquez. Nous donnons les valeurs
m= 70kg , A= 0.33m2 , ρ= 1.2kg/m3 , ∆t= 0.1s , T = 200s.
La vitesse initiale est ˆ
v(1) = 4m/s , ˆt(1) = 0.
(2) Qu’est-ce que vous remarquez si nous changeons le coefficient de traînée et/ou la puissance. Qu’est-ce que vous remarquez si nous diminuons le pas de temps.
5.2 Mouvement des Projectiles Sous l’Effet de la Résistance de l’Air
Nous considérons le mouvement d’un projectile sous l’influence de la force de résis- tance de l’air. Nous supposons que la force de résistance de l’air est proportionnelle au carré de la vitesse avec un facteur de proportionnalité egale á B. La deuxiéme loi de Newton donne les équations du mouvement suivantes
dx
dt =vx , mdvx
dt =−Bvvx. dy
dt =vy , mdvy
dt =−mg−Bvvy.
La solution numérique de ces équations différentielles selon l’algorithme d’Euler prend la forme suivante
vx(i+ 1) =vx(i)−∆tBv(i)vx(i)
m .
vy(i+ 1) =vy(i)−∆tg−∆tBv(i)vy(i)
m .
v(i+ 1) =q
vx2(i+ 1) +vy2(i+ 1).
x(i+ 1) =x(i) + ∆t vx(i).
y(i+ 1) =y(i) + ∆t vy(i).
Les valeurs initiales de la position et de la vitesse dans les directions x and y correspond á i= 1 et i prend les valeurs de1 á N.
www.al3abkari-pro.com
physique numérique, ydri et al. 37 (1) Écrire un code de fortran qui implémente l’algorirthme d’Euler ci-dessus.
(2) Nous prenons les valeurs suivantes B
m = 0.00004m−1 , g = 9.8m/s2. v(1) = 700m/s , θ= 30 degree.
vx(1) =v(1) cosθ , vy(1) =v(1) sinθ.
N = 105 , ∆t= 0.01s.
Calculer la trajectoire du projectile avec et sans la résistance de l’air. Qu’est- ce que vous remarquez.
(3) Nous pouvons déterminer la portée du projectile á l’aide de l’instruction conditionnelle "if". Cette déclaration peut être ajouté á l’intérieur de la boucle "do" comme suit
if(y(i+ 1).le.0)exit.
Déterminer la portée du projectile avec et sans la résistance de l’air.
(4) Dans le cas oú la résistance de l’air est absent nous savons que la portée est maximale lorsque l’angle initial est45degrés. Vérifier ce fait numériquement en considérant plusieurs angles initiales. Plus précisément nous pouvons ajouter une boucle "do" sur l’angle initial pour étudier la portée en fonction de l’angle initial.
(5) Dans le cas oú la résistance de l’air n’est pas nulle calculer l’angle sous lequel la portée est á son maximum.
5.3 Oscillateur Harmonique-Algorithmes d’Euler- Cromer et de Verlet
Nous considérons un oscillateur harmonique simple composé d’une masse m á la fin d’une chaîne de longueur l suspendu sous l’influence de la pesanteur g, c’est á dire un pendule. Nous supposons un mouvement linéaire oú l’angle formé par le pendule avec la verticale est de petite taille. L’équation du mouvement provenant de la deuxiéme loi de Newton est
d2θ dt2 +g
lθ = 0.