Les méthodes d`Euler et ses cousines
Transcription
Les méthodes d`Euler et ses cousines
POIRET Aurélien Ingénierie Numérique MPSI FF Chapitre No 3 : Les méthodes d’Euler et ses cousines Dans ce chapitre, on présente les méthodes (schémas) d’Euler et ses cousines qui consistent à résoudre de manière approchée une équation différentielle puis on établit leurs vitesses de convergences respectives. 1 Le théorème de Cauchy-Lipschitz Un théorème de mathématiques, dont la démonstration utilise des résultats d’analyses hors programme, dit la chose suivante : Théorème 1 : Le théorème de Cauchy-Lipschitz Soient I un intervalle de R, a ∈ I, ye0 ∈ R et f : I × R → R une fonction continue et lipschitzienne par rapport à la seconde variable uniformément localement par rapport à la première, c’est-à-dire, vérifiant pour tout K segment inclus dans I, ∃ CK > 0 / ∀(t, x1 , x2 ) ∈ K × R × R, |f (t, x1 ) − f (t, x2 )| 6 CK |x1 − x2 |. Alors il existe b ∈ I, a < b tel que le problème de Cauchy ∀t ∈ I, y 0 (t) = f (t, y(t)), y(a) = ye0 . admet une unique solution y ∈ C 1 ([a, b]). Remarque I Vérifions que ce théorème s’applique dans le cadre du cours de mathématiques, c’est-à-dire, dans le cas des équations linéaires d’ordre 1. Soit I un intervalle de R et a, b deux fonctions continues sur I et cherchons à résoudre 0 y + ay = b, y(a) = ye0 Dans ce cas, nous avons f (t, x) = a(t)x − b(t). Vu que a et b sont continues, la fonction f est bien continue sur I × R. Vérifions que cette fonction est lipschitzienne par rapport à la seconde variable uniformément localement par rapport à la première. Si K est un segment de I alors |f (t, x1 ) − f (t, x2 )| = |a(t)||x1 − x2 | 6 CK |x1 − x2 |, puisque la fonction a est continue sur le segment K donc y est bornée. 1 Les équations linéaires d’ordres 1 ont le mérite de donner une solution explicite ce qui n’est pas le cas de la plupart des autres équations différentielles. C’est pourquoi il est donc nécessaire d’introduire une méthode numérique qui va approcher la solution du problème de Cauchy : on présente dans ce cours les méthodes d’Euler et de ses cousines. 2 La méthode d’Euler explicite On cherche donc à approximer la solution de ∀t ∈ I, y 0 (t) = f (t, y(t)), y(a) = ye0 . sur un segment [a, b]. Plus précisément, on veut calculer une approximation, notée yk , des y(tk ) avec tk = a + k × h où h = b−a n est un pas qu’il conviendra d’ajuster. De façon très simple, si on écrit à la physicienne : Z tk+1 Z tk+1 0 f (u, y(u)) du ≈ hf (tk , y(tk )). y (u) du = y(tk+1 ) − y(tk ) = tk tk alors on obtient la méthode d’Euler explicite. On a en réalité approximé la dernière intégrale par la méthode des rectangles. La méthode d’Euler explicite consiste donc à définir la suite (yk ) par la relation de récurrence y0 = ye0 ∀k ∈ {0, · · · , n − 1}, yk+1 = yk + hf (tk , yk ). La méthode d’Euler explicite est une méthode convergente d’ordre 1. Plus précisément, nous avons le résultat suivant : Théorème 2 - Soient I un intervalle de R, f ∈ C 1 (I × R), a et b deux points de I et ye0 ∈ R. - On suppose qu’il existe L > 0 tel que ∀t ∈ [a, b], ∀(x1 , x2 ) ∈ R2 , |f (t, x1 ) − f (t, x2 )| 6 L|x1 − x2 |. - Supposons données y une (la) solution exacte du problème de Cauchy définie sur [a, b] et (yk )06k6n la suite obtenue par le schéma d’Euler explicite. Alors il existe une constante C > 0 telle que b−a ∀k ∈ {0, · · · , n}, |y(tk ) − yk | 6 C × . n 3 La méthode d’Euler implicite Le schéma d’Euler implicite ou rétrograde consiste à remplacer la relation : yk+1 = yk + hf (tk , yk ) par yk+1 = yk + hf (tk+1 , yk+1 ). 2 Bien entendu, cette relation ne donne pas explicitement yk+1 en fonction de yk (d’où son nom) et nécessite donc à chaque étape une résolution d’équation de la forme Φ(y) = 0 d’inconnue y. Des théorèmes d’analyse (le théorème de Banach-Picard et le théorème des fonctions implicites pour ne pas citer leurs noms) permettent d’établir que si f est classe C 1 alors le schéma possède à chaque étape une unique solution. La méthode d’Euler implicite est une méthode convergente d’ordre 1. Plus précisément, nous avons le résultat suivant : Théorème 3 - Soient I un intervalle de R, f ∈ C 1 (I × R), a et b deux points de I et ye0 ∈ R. - On suppose qu’il existe L > 0 tel que ∀t ∈ [a, b], ∀(x1 , x2 ) ∈ R2 , |f (t, x1 ) − f (t, x2 )| 6 L|x1 − x2 |. - Supposons données y une (la) solution exacte du problème de Cauchy définie sur [a, b] et (yk )06k6n la suite obtenue par le schéma d’Euler implicite. Alors il existe une constante C > 0 telle que b−a . ∀k ∈ {0, · · · , n}, |y(tk ) − yk | 6 C × n Remarque II La méthode d’Euler implicite consiste à effectuer l’approximation suivante Z tk+1 Z tk+1 y(tk+1 ) − y(tk ) = y 0 (u) du = f (u, y(u)) du ≈ hf (tk+1 , y(tk+1 )). tk tk En réalité, on approxime l’intégrale par la méthode des rectangles modifiée. Vu que la vitesse de convergence de la méthode des rectangles et la même que la méthode des rectangles modifiée, c’est en toute logique que les vitesses de convergences des méthodes d’Euler explicite et implicite sont identiques. 4 La méthode d’Euler modifiée Le schéma d’Euler modifié consiste à remplacer la relation : yk+1 = yk + hf (tk , yk ) par yk+1 = yk + hf (tk + h/2, yk + h/2f (tk , yk ))). Cela revient à approximer l’intégrale par la méthode du point milieu. En effet, à la physicienne, Z tk+1 Z tk+1 y(tk+1 ) − y(tk ) = y 0 (u) du = f (u, y(u)) du tk tk ≈ hf (tk + h/2, y(tk + h/2)) ≈ hf (tk + h/2, y(tk ) + h/2y 0 (tk )) = hf (tk + h/2, y(tk ) + h/2f (tk , y(tk ))). 3 La méthode d’Euler modifiée consiste donc à définir la suite (yk ) par la relation de récurrence y0 = ye0 ∀k ∈ {0, · · · , n − 1}, yk+1 = yk + hf (tk + h/2, yk + h/2f (tk , yk ))). La méthode d’Euler modifiée est une méthode convergente d’ordre 2. Plus précisément, nous avons le résultat suivant : Théorème 4 - Soient I un intervalle de R, f ∈ C 1 (I × R), a et b deux points de I et ye0 ∈ R. - On suppose qu’il existe L > 0 tel que ∀t ∈ [a, b], ∀(x1 , x2 ) ∈ R2 , |f (t, x1 ) − f (t, x2 )| 6 L|x1 − x2 |. - Supposons données y une (la) solution exacte du problème de Cauchy définie sur [a, b] et (yk )06k6n la suite obtenue par le schéma d’Euler modifié. Alors il existe une constante C > 0 telle que ∀k ∈ {0, · · · , n}, |y(tk ) − yk | 6 C × 5 b−a n 2 . La méthode de Heun La méthode de Heun consiste à prendre yk+1 = yk + h (f (tk , yk ) + f (tk+1 , yk + hf (tk , yk ))). 2 On fait une moyenne entre la dérivée au temps tk et celle au temps tk+1 en la valeur approchée calculée par Euler. Cela revient à approximer l’intégrale par la méthode des trapèzes. En effet, à la physicienne, Z tk+1 Z tk+1 0 f (u, y(u)) du y(tk+1 ) − y(tk ) = y (u) du = tk tk ≈ h/2(f (tk , y(tk )) + f (tk+1 , y(tk+1 ))) ≈ h/2(f (tk , y(tk )) + f (tk+1 , y(tk ) + hy 0 (tk ))) = h/2(f (tk , y(tk )) + f (tk+1 , y(tk ) + hf (tk , y(tk )))). La méthode de Heun consiste donc à définir la suite (yk ) par la relation de récurrence y0 = ye0 ∀k ∈ {0, · · · , n − 1}, yk+1 = yk + h2 × (f (tk , yk ) + f (tk+1 , yk + hf (tk , yk ))). La méthode de Heun est une méthode convergente d’ordre 2. Plus précisément, nous avons le résultat suivant : 4 Théorème 5 - Soient I un intervalle de R, f ∈ C 1 (I × R), a et b deux points de I et ye0 ∈ R. - On suppose qu’il existe L > 0 tel que ∀t ∈ [a, b], ∀(x1 , x2 ) ∈ R2 , |f (t, x1 ) − f (t, x2 )| 6 L|x1 − x2 |. - Supposons données y une (la) solution exacte du problème de Cauchy définie sur [a, b] et (yk )06k6n la suite obtenue par le schéma de Heun. Alors il existe une constante C > 0 telle que ∀k ∈ {0, · · · , n}, |y(tk ) − yk | 6 C × 6 b−a n 2 . La méthode de Runge-Kutta d’ordre 4 Dans la méthode de Runge-Kutta d’ordre 4, on réinjecte successivement des premières approximations dans de nouvelles. On calcule donc successivement : αk = yk + h h f (tk , yk ), βk = yk + f (tk + h/2, αk ), γk = yk + hf (tk + h/2, βk ) 2 2 et enfin h (f (tk , yk ) + 2f (tk + h/2, αk ) + 2f (tk + h/2, βk ) + f (tk+1 , γk )). 6 En réalité, on approxime l’intégrale par la méthode de Simpson. La méthode de Runge-Kutta d’ordre 4 (RK4) est une méthode convergente d’ordre 4. Plus précisément, nous avons le résultat suivant : yk+1 = yk + Théorème 6 - Soient I un intervalle de R, f ∈ C 1 (I × R), a et b deux points de I et ye0 ∈ R. - On suppose qu’il existe L > 0 tel que ∀t ∈ [a, b], ∀(x1 , x2 ) ∈ R2 , |f (t, x1 ) − f (t, x2 )| 6 L|x1 − x2 |. - Supposons données y une (la) solution exacte du problème de Cauchy définie sur [a, b] et (yk )06k6n la suite obtenue par le schéma de RK4. Alors il existe une constante C > 0 telle que ∀k ∈ {0, · · · , n}, |y(tk ) − yk | 6 C × 7 b−a n 4 . Preuve de la convergence de la méthode d’Euler explicite Dans cette partie, on cherche à montrer le théorème suivant : 5 Théorème 7 - Soient I un intervalle de R, f ∈ C 1 (I × R), a et b deux points de I et ye0 ∈ R. - On suppose qu’il existe L > 0 tel que ∀t ∈ [a, b], ∀(x1 , x2 ) ∈ R2 , |f (t, x1 ) − f (t, x2 )| 6 L|x1 − x2 |. - Supposons données y une (la) solution exacte du problème de Cauchy définie sur [a, b] et (yk )06k6n la suite obtenue par le schéma d’Euler explicite. Alors il existe une constante C > 0 telle que b−a . ∀k ∈ {0, · · · , n}, |y(tk ) − yk | 6 C × n Preuve : Remarquons que comme y ∈ C 1 ([a, b]) et vérifie y 0 = f (t, y) avec f de classe C 1 sur I × R, on en déduit que y est de classe C 2 sur [a, b]. La fonction y 00 est continue sur le segment [a, b] donc y est bornée par une constante notée M . Appliquons l’inégalité de Taylor-Lagrange à y à l’ordre 2 sur le segment [tk , tk+1 ], on obtient 2 y(tk+1 ) − y(tk ) − (tk+1 − tk )y 0 (tk ) 6 (tk+1 − tk ) M. 2 Comme tk+1 − tk = h et 1 2 6 1, nous obtenons |y(tk+1 ) − y(tk ) − hf (tk , y(tk ))| 6 h2 M. Puis comme, yk+1 = yk + hf (tk , yk ), on en déduit |y(tk+1 ) − yk+1 | 6 |y(tk+1 ) − y(tk ) − hf (tk , y(tk ))| + |y(tk ) + hf (tk , y(tk )) − yk − hf (tk , yk )| 6 h2 M + |y(tk ) − yk | + h|f (tk , y(tk )) − f (tk , yk )| 6 |y(tk ) − yk | × (1 + Lh) + h2 × M. Ainsi, pour k ∈ {0, · · · , n − 1}, 2 b−a b−a |y(tk+1 ) − yk+1 | 6 |y(tk ) − yk | × 1 + L × + ×M n n | {z } | {z } :=α :=β On pose alors δk = |y(tk ) − yk | × α−k qui vérifie donc ∀k ∈ {0, · · · , n − 1}, δk+1 6 δk + β . αk+1 Par télescopage et en utilisant que δ0 = 0, on obtient ∀k ∈ {1, · · · , n}, δk 6 k−1 1 − α−k β X −i α 6β× . α i=0 α−1 Ainsi, ∀k ∈ {1, · · · , n}, |y(tk ) − yk | 6 β × αk − 1 βαk 6 . α−1 α−1 Or αk = exp (k ln (1 + Lh)) et en exploitant que si u > −1 alors ln(1 + u) 6 u, on obtient αk 6 exp (kLh) 6 exp (L(b − a)) puisque 0 6 k 6 n et h = b−a . n Par conséquent, ∀k ∈ {0, · · · , n}, |y(tk ) − yk | 6 6 hM × exp (L(b − a)) . L Remarque III Pour que notre schéma converge, il faut s’assurer que y soit définie sur [a, b], où le réel b, donné par le théorème de Cauchy, n’est pas connu. Il faut donc dans la pratique choisir un b qui ne soit pas trop éloigné de a. 7