• Aucun résultat trouvé

Physique Numérique

N/A
N/A
Protected

Academic year: 2022

Partager "Physique Numérique"

Copied!
163
0
0

Texte intégral

(1)

Physique Numérique

Badis Ydri

Departement de Physique, Faculté des Sciences, Université

www.al3abkari-pro.com

(2)

www.al3abkari-pro.com

(3)

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

(4)

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 . . . 45

6.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

(5)

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 . . . 93

10.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

(6)

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 . . . 149

B.2 Epsilon de la Machine et Erreurs d’Arrondi . . . 151

B.3 Erreurs Systématiques (algorithmique) . . . 152

C Exercices 155

www.al3abkari-pro.com

(7)

Introduction et Références

www.al3abkari-pro.com

(8)

www.al3abkari-pro.com

(9)

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

(10)

• 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

(11)

Partie I

www.al3abkari-pro.com

(12)

www.al3abkari-pro.com

(13)

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

(14)

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

(15)

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

(16)

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

(17)

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

(18)

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

(19)

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

(20)

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

(21)

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

(22)

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

(23)

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

(24)

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

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

(25)

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

(26)

ˆ

ω(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

θ21+ ∆t ω1. (4.22)

www.al3abkari-pro.com

(27)

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

(28)

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

(29)

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

xn1

dx f(x) =

Z xn+1

xn1

dx(αx2+βx+γ)

= ∆x

f(xn−1)

3 +4f(xn)

3 + f(xn+1) 3

. (3.14)

www.al3abkari-pro.com

(30)

En ajoutant les contributions de chaque paire de sous-intervalles adjacentes nous obtenons l’intégrale compléte

SN = ∆x

N2 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

(31)

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

xn1

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

(32)

Alors l’erreur dans l’approximation parabolique dans l’intervalle [xn−1, xn+1] est Z xn+1

xn1

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

(33)

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

(34)

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

(35)

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+1i+ 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

(36)

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

(37)

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

(38)

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

(39)

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 −6p1. (5.44)

hn−1(p′′n−1+ 2p′′n) =−6(pn−pn−1) hn−1

+ 6pn. (5.45)

Lesn équations (5.43), (5.44) and (5.45) correspondent á un systéme tridiagonale linéaire. En généralp1 etpnne 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 −p1 = pn−pn−1

hn−1 −pn= 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

(40)

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

(41)

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

(42)

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

(43)

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.

www.al3abkari-pro.com

Références

Documents relatifs

Pour essayer de voir comment mon comportement était perçu par les enfants, j'ai encore, à la suite des huit questions du sociogramme, posé trois questions me

Cette encre à base d'alcool que vous fabriquerez sera aussi volatile que celle d'origine et vous donnera de bons résultats. J'al expérimenté cela

Propriété (et définition) Pour tout nombre réel k, il existe un unique nombre réel solution de l’équation x 3 = k, autrement dit un unique réel dont le cube est k.. Ce nombre

Les diff´ erentes branches correspondent ` a des ´ ev` enements incompatibles (par construction de l’arbre), donc on fait la somme des probabilit´ es de ces 3 branches, on obtient

6 Sur le plan d’une maison, les portes sont repré- sentées par un segment de 1,2 cm

Quelle est la taille sur la maquette d’une pièce de 7,2 m de long dans la

L’entreprise doit revoir sa politique salariale et elle pense à deux options possibles décrites dans les deux parties qui suivent. Les deux parties

L’entreprise doit revoir sa politique salariale et elle pense à deux options possibles décrites dans les deux parties qui suivent. Les deux parties