0% ont trouvé ce document utile (0 vote)
5 vues16 pages

Méthode d'Euler pour Équations Différentielles

Le document présente la méthode d'Euler pour approcher les solutions d'équations différentielles, en expliquant les concepts de base tels que les équations différentielles et les conditions initiales. Il illustre la méthode à travers des exemples pratiques, en montrant comment diviser l'intervalle et calculer des approximations successives. Enfin, il propose une généralisation de la méthode et un algorithme pour sa mise en œuvre en Python.

Transféré par

docteurdia7
Copyright
© All Rights Reserved
Nous prenons très au sérieux les droits relatifs au contenu. Si vous pensez qu’il s’agit de votre contenu, signalez une atteinte au droit d’auteur ici.
Formats disponibles
Téléchargez aux formats PDF, TXT ou lisez en ligne sur Scribd
0% ont trouvé ce document utile (0 vote)
5 vues16 pages

Méthode d'Euler pour Équations Différentielles

Le document présente la méthode d'Euler pour approcher les solutions d'équations différentielles, en expliquant les concepts de base tels que les équations différentielles et les conditions initiales. Il illustre la méthode à travers des exemples pratiques, en montrant comment diviser l'intervalle et calculer des approximations successives. Enfin, il propose une généralisation de la méthode et un algorithme pour sa mise en œuvre en Python.

Transféré par

docteurdia7
Copyright
© All Rights Reserved
Nous prenons très au sérieux les droits relatifs au contenu. Si vous pensez qu’il s’agit de votre contenu, signalez une atteinte au droit d’auteur ici.
Formats disponibles
Téléchargez aux formats PDF, TXT ou lisez en ligne sur Scribd

Lycée Jean Bart - MPSI

Tout ce que vous avez toujours voulu savoir sur la méthode d'Euler

Contexte : dans de nombreuses situations issues de la Physique ou de la S2i, interviennent des équations différentielles.
En général, on ne sait pas résoudre exactement – au sens mathématique du terme – ces équations différentielles, càd
que l'on ne dispose pas de formule donnant l'expression exacte des solutions.

Motivation : à l'aide des informations contenues dans l'équation différentielle, construire une « solution approchée » de
cette équation.
Lycée Jean Bart - MPSI

Explicitons les différents termes du problème

Equation différentielle (ED) : c'est une équation dans laquelle l'inconnue est une fonction, et donnant un lien entre
cette fonction et sa dérivée (ou ses dérivées successives).

Exemple 1 : y'(x) = y(x) est une ED dont les solutions sont les fonctions dérivables f telles que pour tout réel x on a :
f '(x) = f(x).

Exemple 2 : dy/dt = y est la même ED que plus haut, écrit « à la Physicienne ».

Exemple 3 : y''(x) = sin(y(x)) est une ED dont les solutions sont les fonctions deux fois dérivables f (càd que f ' et f ''
existent) telles que f ''(x) = sin(f(x)) pour tout réel x.

Condition initiale : très souvent en Physique, on ne recherche pas toutes les solutions d'une ED donnée, mais
seulement la solution vérifiant une (ou plusieurs) condition(s) initiale(s). Ces conditions initiales sont des valeurs que
l'on impose de prendre à la solution f.

Exemple : [y'(x) = y(x) et y(0) = 1] est une ED avec condition initiale. Il existe cette fois une unique solution, la
fonction f telle que f ' = f, et f(0) = 1.

Construire une « solution approchée » d'une ED (avec condition initiale) : lorsque l'on ne sait pas résoudre
exactement une ED (nous en parlerons dans le cours de Maths de cette année), on peut construire une fonction
approximant la solution de cette ED, grâce à la méthode d'Euler.
Graphiquement, cela signifie que l'on construit la courbe représentative d'une fonction qui donne une estimation
« fiable » de la solution exacte.
Lycée Jean Bart - MPSI

Un exemple pour présenter la méthode d'Euler

Dans la suite de ce document, on considère l'ED avec condition initiale :

(***) [ y'(x) = y(x) et y(0) = 1 ]

Observez que sur cet exemple, la recherche d'une solution approchée est « inutile », puisque l'on connaît la solution
exacte de ce problème...

En effet, il existe une unique fonction f telle que pour tout réel x on a f '(x) = f(x), et qui satisfait la condition f(0) = 1 :
la fonction exponentielle.

L'objectif des pages suivantes est d'expliquer le principe de la méthode d'Euler pour obtenir une solution approchée de
(***) sur l'intervalle [0, 1].
Lycée Jean Bart - MPSI

La clef de la méthode d'Euler


Soit f une fonction dérivable en a (avec a réel).
La courbe représentative C de f admet au point d'abscisse admet une tangente T, d'équation :
y = f '(a) (x – a) + f(a) que l'on peut réécrire sans peine : y = f(a) + f '(a) (x – a) (###)
Soit h un réel.
• Le point N d'abscisse a+h de C a pour coordonnées (a+h, f(a+h)) ;
• Le point M d'abscisse a+h de T a pour coordonnées (a+h, f(a)+h f '(a)) (pour obtenir l'ordonnée, prendre x = a+h
dans l'équation (###)).
Lycée Jean Bart - MPSI

Principe de la méthode d'Euler

Avec les notations de la page précédente, le principe de la méthode d'Euler consiste à approcher la fonction f par la
fonction affine représentée par T (graphiquement, cela signifie que l'on approche la courbe C par sa tangente).

Dans ce contexte, la valeur approchée de f(a+h) fournie par la méthode d'Euler sera donc l'ordonnée de M, càd que l'on
se satisfait de l'approximation :
f(a+h)  f(a) + h f '(a) (@@@)

En effectuant cette approximation, on commet une erreur E:

E = | f(a+h) – f(a) – h f '(a) |

Cette erreur est matérialisée par la longueur du segment [MN] sur le graphe de la page précédente.

Remarque : intuitivement, il apparaît assez clairement que plus « h » sera petit, plus l'erreur commise sera petite.
En d'autres termes, plus « h » est petit, plus l'approximation (@@@) est bonne.

************************

Ces observations faites, on explique dans ce qui suit comment utiliser cette approximation pour construire une solution
approchée de l'ED .
Lycée Jean Bart - MPSI

Exemple d'application

Considérons donc l'ED avec condition initiale :

(***) [ y'(x) = y(x) et y(0) = 1 ]

On veut construire une courbe approchant celle de l'unique solution de ce problème sur l'intervalle [0, 1] (rappelons
que cette unique solution est la fonction exponentielle).

Première approximation

Prenons : a = 0 et h = 1. On a alors :

f(a) = f(0) = 1 (condition initiale) ; f '(0) = f(0) = 1 (ED) ; et a+h = 1

Dans ce cas, l'approximation (@@@) donne :

f(1)  f(0) + 1*f '(0) soit : f(1)  2

La courbe de la solution approchée est dans ce cas un segment, joignant les points de coordonnées (0, 1) et (1,2).

Au passage, l'approximation ci-dessus signifie (puisque dans ce cas on connaît la solution exacte) que :

e1  2
Lycée Jean Bart - MPSI

Illustration graphique de la première approximation


La courbe de la solution approchée (notée Capp) est un
segment approchant très grossièrement la courbe
représentative de la solution exacte sur l'intervalle [0, 1].

Pour améliorer cette approximation, l'idée est d'utiliser un


« h » plus petit, afin de réduire l'erreur commise.

A cette fin, on partage l'intervalle [0, 1] en deux


morceaux de longueur égale. On détaille ceci dans la
seconde approximation.
Lycée Jean Bart - MPSI

Deuxième approximation

On partage l'intervalle [0, 1] en deux morceaux : [0, 1/ 2] et [1/ 2, 1].

Prenons dans un premier temps : a = 0 et h = 1/2. On a alors :

f(a) = f(0) = 1 (condition initiale) ; f '(0) = f(0) = 1 (ED) ; et a+h = 1/2

Dans ce cas, l'approximation (@@@) donne :

f(1/2)  f(0) + (1/2)*f '(0) soit : f(1/2)  3/2

Dans un second temps, prenons donc : a = 1/2 et h = 1/2. On a alors :

f(a) = f(1/2) = 3/2 (approx précédente) ; f '(1/2) = f(1/2) = 3/2 (ED) ; et a+h = 1

Dans ce cas, l'approximation (@@@) donne :

f(1)  f(1/2) + (1/2)*f '(1/2) soit : f(1)  9/4

La courbe de la solution approchée est alors une ligne polygonale (constituée de deux segments), joignant les points de
coordonnées (0, 1), (1/2, 3/2) et (1, 9/4).

Au passage, l'approximation ci-dessus signifie (puisque dans ce cas on connaît la solution exacte) que :

e1  2.25
Lycée Jean Bart - MPSI

Illustration graphique de la seconde approximation


La courbe de la solution approchée (notée C app) est un
une ligne polygonale approchant légèrement mieux
(que la première approx) la courbe représentative de la
solution exacte sur l'intervalle [0, 1].

Pour améliorer encore cette approximation, l'idée est,


vous l'avez compris, d'utiliser un « h » encore plus
petit, afin de réduire encore l'erreur commise.

A cette fin, on partage l'intervalle [0, 1] en trois


morceaux de longueur égale. On détaille ceci dans la
troisième approximation.
Lycée Jean Bart - MPSI

Troisième approximation

On partage l'intervalle [0, 1] en trois morceaux : [0, 1/3], [1/3, 2/3] et [2/3, 1].

Prenons dans un premier temps : a = 0 et h = 1/3. On a alors :

f(a) = f(0) = 1 (condition initiale) ; f '(0) = f(0) = 1 (ED) ; et a+h = 1/3


Dans ce cas, l'approximation (@@@) donne :

f(1/3)  f(0) + (1/3)*f '(0) soit : f(1/3)  4/3

Dans un second temps, prenons donc : a = 1/3 et h = 1/3. On a alors :

f(a) = f(1/3) = 4/3 (approx précédente) ; f '(1/3) = f(1/3) = 4/3 (ED) ; et a+h = 2/3

Dans ce cas, l'approximation (@@@) donne :

f(2/3)  f(1/3) + (1/3)*f '(1/3) soit : f(2/3)  16/9

Enfin, prenons: a = 2/3 et h = 1/3. On a alors :

f(a) = f(2/3) = 16/9 (approx précédente) ; f '(2/3) = f(2/3) = 16/9 (ED) ; et a+h = 1

Dans ce cas, l'approximation (@@@) donne :

f(1)  f(2/3) + (1/3)*f '(2/3) soit : f(2/3)  64/27


Lycée Jean Bart - MPSI

La courbe de la solution approchée est alors une ligne polygonale (constituée de trois segments), joignant les points de
coordonnées (0, 1), (1/3, 4/3), (2/3, 16/9) et (1, 64/27).

Au passage, l'approximation ci-dessus signifie que :


e1  2.37
Illustration graphique de la troisième approximation
La courbe de la solution approchée (notée Capp)
est une ligne polygonale approchant encore un
peu mieux la courbe représentative de la solution
exacte sur l'intervalle [0, 1].

Pour améliorer encore cette approximation...


Lycée Jean Bart - MPSI

Généralisation

Il résulte des exemples précédents que la qualité de l'approximation sera d'autant plus grande que le nombre de « petits
segments » pris dans l'intervalle [0, 1] sera grand.

Il résulte également des calculs précédents... que l'on va assez vite confier les lourds calculs à l'ordinateur !

Dans ce contexte, on se propose ci-dessous de généraliser les approximations précédentes (à un nombre de points
quelconque), de décrire l'algorithme général de la méthode d'Euler, et de le coder en Python.

Les ingrédients

• Un entier N : le nombre de « petits segments »


• Un réel h : h = 1/N, la longueur d'un petit intervalle (appelé pas de la méthode d'Euler)
• N+1 nombre réels : x0 = 0, x1 = 1/N, x2 = 2/N,…, xN = N/N = 1: ce sont les abscisses des points de la ligne
polygonale

L'objectif à atteindre

• Construire une liste de N+1 nombre réels : y0, y1, y2,…, yN correspondant aux ordonnées de la ligne polygonale.
Ces réels sont les valeurs approchées des images des réels xi par la solution de l'ED.

C'est cette construction que l'on détaille page suivante.


Lycée Jean Bart - MPSI

Construction de la liste des N+1 nombre réels : y0, y1, y2,…, yN

• y0 = 1 (Condition initiale (¥))

• Puis : y1 = y0 + h * f '(x0) (approximation (@@@)) d'où : y1 = y0 + h * f (x0) (équation différentielle)


Finalement :
y1 = y0 + h * y0

• On recommence avec y2: y2 = y1 + h * f '(x1) d'où : y2 = y1 + h * f (x1) (équation différentielle)


Finalement :
y2 = y1 + h * y1
• Et ainsi de suite...

• Plus généralement, pour tout entier k entre 0 et N-1, on a la relation

yk+1 = yk + h * yk (®)

En résumé, la suite des valeurs des yk est définie par une condition initiale (¥), et une relation de récurrence (®).

Remarque : au passage, la suite des xk est définie par une condition initiale (x0 = 0), et une relation de récurrence :

xk+1 = xk + h (pour tout entier k entre 0 et N-1)


Lycée Jean Bart - MPSI

Illustration : représentation de la solution approchée pour N = 10


Lycée Jean Bart - MPSI

Codage en Python de la méthode d'Euler

L'objectif est à présent de rédiger un programme demandant à la machine de créer deux listes (celle des « xk » et
celle des « yk ») intervenant dans la méthode d'Euler.

Pour y parvenir, on présente ci-dessous le strict minimum à connaître sur la définition et la syntaxe des listes en
langage Python.

• Un outil : les listes en Python

Une liste L est définie en Python avec des crochets : L1 = [ 1, 2, 3 ] et L2 = [ 4 ] sont des exemples de listes (de
longueurs respectives 3 et 1).

On peut faire « la somme » de deux listes : en langage informatique, on parle plutôt de concaténation de listes.
Par exemple, la concaténation des listes L1 et L2 précédentes est :

L1 + L2 = [ 1, 2, 3, 4 ]
Lycée Jean Bart - MPSI

Code Python de la méthode d'Euler (pour la résolution de l'ED (***))

Vous aimerez peut-être aussi