1 University Tahrimohamed de bechar module:M414 spécialité: 2L gènnei civil gro

1 University Tahrimohamed de bechar module:M414 spécialité: 2L gènnei civil group:01 projet sur la méthode d' euler présenter par: 1.Nacer abderrzzaq 2. Samad abdanour 3.makhloufi mohamed tahar 4. 2020/2021 2 y′ University Tahri Mohamed Béchar 2020/2021 la méthode d'euler en physique Introduction En physique, nous recherchons souvent l’évolution temporelle d’une grandeur caractéristique du système étudié. L’étude théorique nous amène à une équation différentielle souvent non linéaire lorsque le système n’a pas été trop modélisé. La résolution exacte de ce type d’équation est rare, on utilise alors une méthode numérique pour approcher la solution graphiquement.L’idée de ce document est de montrer l’utilisation quelques méthodes numériques classiques. Pour cela et afin d’éviter trop de formalisme mathématique, on se basera sur deux exemples classiques de la physique donnant Considérons le systèmes d’équations différentielles :  y′ = f (t, y , · · · , y ), y (0) = y  1 1 1 n 1 10 . (1)  . n = fn(t, y1, · · · , yn), yn(0) = yn0 En notation vectorielle, ce système s’écrit où y = (y1, · · · , yn)T et f : R+ × Rn → Rn. y′ = f (t, y), y(0) = y0 (2) Théorème 1 (Cauchy-Lipschitz) Si f : R+ × Rn → Rn est localement Lipschitzienne, i.e. pour tout R > 0 il existe K telle que si x, y ∈ Rn et t, s ≥ 0 sont tels que ǁxǁ ≤ R, ǁyǁ ≤ R, 0 ≤ t ≤ R et 0 ≤ s ≤ R, alors ǁf (t, x) − f (t, y)ǁ ≤ K(ǁx − yǁ). Alors, pour tout y0 ∈ Rn il existe T ⋆ et y : [0, T ⋆) → Rn de classe C1 solution de (2). De plus, si f est de classe Ck, il est clair que y est de classe Ck+1. La méthode d’Euler explicite Les méthodes traditionnelles permettant de résoudre de manière approchée les systèmes d’EDO sont basée sur l’égalité y′(t) = lim y(t + h) − y(t). h→0 h On a donc, pour h petit 3 i 0 y(t + h) = y(t) + hy′(t) + o(h). Et on utilise le fait que y est solution de (2) pour écrire y(t + h) = y(t) + hf (t, y(t)) + o(h). (3) Négligeant le o(h), on obtient la méthode d’Euler explicite. On se donne un pas h > 0 et on note yh, la valeur approchée de la solution exacte y au temps ti = ih. La méthode d’Euler explicite est définie par h = y0, yh = yh + hf (ti, yh), i ≥ 0 i+1 i y dt L i i i i i On définit ensuite la solution approchée yh(t) à un temps t ≥ 0 par yh(t) = (1 − λ)yh + λyh , avec i et λ tels que ih ≤ t < (i + 1)h et t = (1 − λ)ih + λ(i + 1)h. i i+1 La fonction construite yh est continue et affine par morceaux. Ce n’est pas le seul choix possible, on aurrait pu choisir une fonction constante par morceaux où polynomiale de degrés p par morceaux. Remarque 2 C’est en utilisant cette approximation qu’Euler a montré l’existence de solutions de (2). Q. 1 Ecrire la fonction MATLAB Euler qui réalise la méthode d’Euler. Appliquer cette méthode à l’EDO y′ = −10y, y(0) = 1; (4) Vérifier la convergence en traçant l’erreur eEuler(h) = y(1) − yh(1) en fonction de h. On prendra h = 1, 1/2, 1/4, 1/8, · · · . Même questions avec le système du pendule simple : considérons un pendule constitué d’une masse ponctuelle m au bout d’une tige de masse nulle et de longueur L, tournant sans frottement autour de l’axe orienté dirigé par un vecteur horizontal e, et soumis à la pesanteur g supposée uniforme. On note x l’angle que la tige fait avec la verticale et y = dx la vitesse angulaire de la tige. On est ramené à résoudre l’équation différentielle : avec ω = g d2x dt2 + ωsin(x) = 0, (on se ramenera à un système d’EDO du premier ordre). Ordre de convergence de la méthode d’Euler Soit y la solution exacte de (2). On suppose qu’elle est de classe C2 sur l’intervalle [0, T ]. On suppose aussi que ǁDyf ǁ est uniformément bornée par M > 0. Pour étudier l’erreur, on définit le résidu h := y((i + 1)h) − y(ih) − hf (ti, y(ih)), (i + 1)h ≤ T. Comme y est solution de (2), on a h = y((i + 1)h) − y(ih) − y′(ih), i h 1 ∫ (i+1)h = h ih (y′(s) − y′(ih)) ds, et si on note K le sup sur [0, T ] de ǁD2yǁ, on a Notons eh l’erreur à l’instant ih ǁrhǁ ≤ Kh. (5) h := y(ih) − yh, par définition on a eh h h } h i+1 = ei + h f (ti, y(ih)) − f (ti, yi ) + hri d’où ǁeh ǁ ≤ ǁehǁ + h sup ǁDyf ǁǁy(ih)) − yhǁ + Kh2 i+1 i i r r e i ≤ (1 + Mh)ǁehǁ + Kh2. i On en déduit (en utilisant une version discrète du lemme de Gromwall) h i+1 K ǁ ≤ (exp(M (i + 1)h) − 1) h. M Si on s’interesse à l’erreur à l’instant T = (i + 1)h, on a donc h i+1 K ǁ ≤ (exp(MT ) − 1) h = O(h). M On dit qu’une méthode est d’ordre γ quand l’erreur est en O(hγ) où h est le pas de discrétisation. La méthode d’Euler explicite est donc d’ordre 1. Q. 2 Vérifier qu’on observe bien cet ordre de convergence sur les expemples précédents. Méthode de Runge-Kutta On écrit ( 1 y((i + 1)h) = y(ih) + h h ∫ (i+1)h ih ) f (y(s), s) ds . Les méthodes ci-dessous consistent à remplacer la quantité entre accolades par une approximation. On obtient ainsi des schémas numériques ayant pour forme générale h i+1 = yi + hφ(ti, yh, h). Pour le schéma d’Euler explicite, vu plus haut, on a φ(t, y, h) = f (t, y). Ces méthodes sont nombreuses. La plus couramment utilisée est la méthode de Runge-Kutta 4 définie comme suit Méthode de Runge-Kutta à 4 étages. 1 1 1 1 avec φ(tn, yn, hn) = 6 k1 + 3 k2 + 3 k3 + 6 k4 (6) k1 = f (tn, yn) (7) k2 = f (tn k3 = f (tn + hn , y 2 n + hn , y 2 n + h k1 ) (8) n 2 + h k2 ) (9) n 2 k4 = f (tn + hn, yn + hnk3) (10) Q. 3 Ecrire la fonction MATLAB RungeKutta4. Appliquer cette méthode aux exemples vus plus haut. Quel est l’ordre de convergence de cette méthode ? Appliquer les méthodes d’Euler et de Runge-Kutta 4 au système proie-prédateur de Lotka-Volterra : x˙ 1 = −cx1 + dx1x2, x˙ 2 = ax2 − bx1x2, (11) avec a, b, c, d > ǁ e ǁ e y i+1 Q. 4 Tracez les solutions dans l’espace des phases (y1(t), y2(t))t≥0 pour les systèmes précédents. Méthodes implicites Nous allons voir deux méthodes implicites qui s’écrivent sous la forme générale : yh = yi + hψ(ti, ti+1, yh, yh ). i+1 i i+1 Pour calculer yh , il faut donc résoudre un système. On utilisera pour cela la méthode de Newton Pour le schéma d’Euler implicite, on a ψ(s, t, y, z) = f (t, z), et pour le schéma de Crank-Nicolson, ψ(s, t, y, z) = 1 (f (s, y) + f (t, z)) . 2 Q. 5 Ecrire les fonctions MATLAB EulerImp et CrankNickolson. Appliquer ces méthodes aux exemples de la question 1. Quel est l’ordre de convergence de chaque méthode ? Conclusion La méthode d’Euler permet une première approche de la résolution numérique d’équations différentielles, l’algorithme est simple et rapide (avec un bon choix de pas de calcul). Si les résultats se montrent incohérents avec la méthode d’Euler classique dit explicite, on peut essayer la méthode implicite, plus stable.Quant à elle, la méthode de Runge-Kutta d’ordre 4 est plébiscité par sa précision et sa stabilité. A choisir, c’est elle que l’on mettra en oeuvre. A noter que ces méthodes divergent lorsque l’on aborde des problèmes de systèmes conservatifs aux temps longs: pour plus d’informations à ce sujet ainsi qu’au sujet des erreurs introduites par les méthodes numériques utilisées ici, je vous invite à consulter les références de l’excellent site de Jimmy Roussel (voir ci-dessous). uploads/Litterature/ university-tahrimohamed-de-bechar-module-m414.pdf

  • 25
  • 0
  • 0
Afficher les détails des licences
Licence et utilisation
Gratuit pour un usage personnel Attribution requise
Partager