Méthode d’Euler
1er ordre
Informatique pour tous
Objectif
On veut calculer de façon approchée une solution y : I ⊆ R −→ R
d’une équation différentielle du 1er ordre, de la forme:
y 0 (t) = f (t, y (t))
Objectif
On veut calculer de façon approchée une solution y : I ⊆ R −→ R
d’une équation différentielle du 1er ordre, de la forme:
y 0 (t) = f (t, y (t))
1er ordre signifie qu’il y a seulement y 0 (t) et y (t) qui apparaissent,
mais pas y 00 (t), par exemple.
Équation différentielle du 1er ordre
y 0 (t) = f (t, y (t))
Quelques exemples:
1 Si f (a, b) = a:
Équation différentielle du 1er ordre
y 0 (t) = f (t, y (t))
Quelques exemples:
1 Si f (a, b) = a:
t2
solutions: y (t) = +K
2
2 Si f (a, b) = b:
Équation différentielle du 1er ordre
y 0 (t) = f (t, y (t))
Quelques exemples:
1 Si f (a, b) = a:
t2
solutions: y (t) = +K
2
2 Si f (a, b) = b:
solutions: y (t) = Ke t
3 Si f (a, b) = ab:
Équation différentielle du 1er ordre
y 0 (t) = f (t, y (t))
Quelques exemples:
1 Si f (a, b) = a:
t2
solutions: y (t) = +K
2
2 Si f (a, b) = b:
solutions: y (t) = Ke t
3 Si f (a, b) = ab:
t2
solutions: y (t) = Ke 2
4 En général: on ne sait pas résoudre explicitement.
Théorème de Cauchy
Un problème de Cauchy consiste à trouver les solutions y de:
(
y 0 (t) = f (t, y (t))
y (t0 ) = y0
Théorème de Cauchy
Un problème de Cauchy consiste à trouver les solutions y de:
(
y 0 (t) = f (t, y (t))
y (t0 ) = y0
Théorème de Cauchy-Lipschitz (admis)
Si f est de classe C 1 alors le problème de Cauchy ci-dessus possède
une unique solution maximale, définie sur un intervalle ouvert.
(Une version plus précise sera vue en maths, en 2ème année)
Méthode d’Euler
La méthode d’Euler consiste à approximer la solution y d’un
problème de Cauchy sur un intervalle I.
On souhaite approximer une fonction (un objet continu) alors que
l’informatique ne permet que de traiter d’objets discrets (finis).
Méthode d’Euler
La méthode d’Euler consiste à approximer la solution y d’un
problème de Cauchy sur un intervalle I.
On souhaite approximer une fonction (un objet continu) alors que
l’informatique ne permet que de traiter d’objets discrets (finis).
On va donc discrétiser le problème: on découpe I en n points t0 , t1 ,
..., tn−1 régulièrement espacés de h (le pas) et on cherche des
approximations yk de y (tk ).
Plus h est petit, plus l’approximation est bonne.
Méthode d’Euler
Soit y une solution de:
(
y 0 (t) = f (t, y (t))
y (t0 ) = y0
Méthode d’Euler
Soit y une solution de:
(
y 0 (t) = f (t, y (t))
y (t0 ) = y0
On peut approximer y 0 (tk ) par un taux d’accroissement:
yk+1 − yk
≈ y 0 (tk )
tk+1 − tk
Méthode d’Euler
Soit y une solution de:
(
y 0 (t) = f (t, y (t))
y (t0 ) = y0
On peut approximer y 0 (tk ) par un taux d’accroissement:
yk+1 − yk
≈ y 0 (tk ) = f (tk , y (tk ))
tk+1 − tk
Méthode d’Euler
Soit y une solution de:
(
y 0 (t) = f (t, y (t))
y (t0 ) = y0
On peut approximer y 0 (tk ) par un taux d’accroissement:
yk+1 − yk
≈ y 0 (tk ) = f (tk , y (tk ))
tk+1 − tk
D’où:
yk+1 = yk + (tk+1 − tk ) × f (tk , yk )
| {z }
h
Résumé de la méthode d’Euler
Si f est C 1 , l’équation différentielle suivante a une unique solution y
avec une valeur fixée y (t0 ):
y 0 (t) = f (t, y (t))
Résumé de la méthode d’Euler
Si f est C 1 , l’équation différentielle suivante a une unique solution y
avec une valeur fixée y (t0 ):
y 0 (t) = f (t, y (t))
La méthode d’Euler (explicite), de pas h, consiste à approximer y par
une suite récurrente (yk )0≤k<n telle que:
1 y0 = y (t0 )
2 yk+1 = yk + h × f (tk , yk )
On espère alors que yk ≈ y (tk ).
Exemple
On souhaite approximer la solution, sur [0, 1], de:
(
y 0 (t) = y (t)
y (0) = 1
Exemple
On souhaite approximer la solution, sur [0, 1], de:
(
y 0 (t) = y (t)
y (0) = 1
On subdivise, par exemple, [0, 1] en 101 points: t0 = 0, t1 = 0.01, ...,
t99 = 0.99, t100 = 1. Le pas est donc
Exemple
On souhaite approximer la solution, sur [0, 1], de:
(
y 0 (t) = y (t)
y (0) = 1
On subdivise, par exemple, [0, 1] en 101 points: t0 = 0, t1 = 0.01, ...,
t99 = 0.99, t100 = 1. Le pas est donc h = 0.01.
Les approximations de la méthode d’Euler vérifient:
Exemple
On souhaite approximer la solution, sur [0, 1], de:
(
y 0 (t) = y (t)
y (0) = 1
On subdivise, par exemple, [0, 1] en 101 points: t0 = 0, t1 = 0.01, ...,
t99 = 0.99, t100 = 1. Le pas est donc h = 0.01.
Les approximations de la méthode d’Euler vérifient:
yk+1 = yk + h × yk
Exemple
Implémentation en Python:
Exemple
Implémentation en Python:
On peut alors obtenir une approximation de e:
Exemple
Implémentation en Python:
On peut alors obtenir une approximation de e:
Exemple
Implémentation en Python:
On peut alors obtenir une approximation de e:
Question
Comment afficher graphiquement les approximations obtenues?
Exemple
Implémentation en Python:
On peut alors obtenir une approximation de e:
Question
Comment afficher graphiquement les approximations obtenues?
[Link](t, y) où t est la liste des temps d’approximations tk .
Exemple d’équation différentielle non linéaire
Écrire en Python la méthode d’Euler sur [−2, 2], avec un pas 0.001,
appliquée au problème de Cauchy:
(
y 0 (t) = t sin(y (t)) + 1
y (−2) = −1
Exemple d’équation différentielle non linéaire
Écrire en Python la méthode d’Euler sur [−2, 2], avec un pas 0.001,
appliquée au problème de Cauchy:
(
y 0 (t) = t sin(y (t)) + 1
y (−2) = −1
Voir le code euler_ex sur hugoprépa.
Implémentation de la méthode d’Euler générale
Écrire une fonction ayant en argument une fonction f , des valeurs
initiales t0, y 0, un pas h, un nombre d’itérations n et renvoyant la
liste des tk et des yk (0 ≤ k ≤ n) de la méthode d’Euler appliquée à:
(
y 0 (t) = f (t, y (t))
y (t0 ) = y0
Implémentation de la méthode d’Euler générale
Implémentation de la méthode d’Euler générale
Question
Utiliser cette fonction pour approcher sur [2, 7], avec un pas de 0.1,
une solution de: ( √
y 0 (t) = t + y (t)2
y (2) = 1
Implémentation de la méthode d’Euler générale
Quelle est la complexité de euler?
Implémentation de la méthode d’Euler générale
Quelle est la complexité de euler?
O(n), si f se calcule en temps constant.
Implémentation de la méthode d’Euler générale
Quelle est la complexité de euler?
O(n), si f se calcule en temps constant.
La méthode est plus précise si le nombre de points d’approximations
est élevé, mais elle est aussi plus lente.
Implémentation de la méthode d’Euler générale
Si on veut approximer une solution sur un intervalle de longueur `,
` 1
alors h = et euler est aussi en O( ): plus le pas est petit, plus la
n h
méthode est précise mais lente.
QCM ENAC
QCM ENAC
1 k +1 k
Réponse: le pas est de (= − ). Donc la méthode d’Euler
n n n
conduit à la récurrence C).
QCM ENAC
QCM ENAC
Réponse:
L’équation n’est pas linéaire, à cause du v 2 .
La méthode de Newton ne permet pas de résoudre une équation
différentielle, contrairement à la méthode d’Euler.
La bonne équation de récurrence est la D).