![]() ![]() Méthode d'Euler pour la résolution approchée d'une équation différentielle |
La résolution d'une équation différentielle
x∈J, Φ(x,y,y',y",...) = 0, y = f(x)
par différences finies consiste à discrétiser l'intervalle d'étude J = [a,b] sur lequel est définie l'équation. On recherche une solution approchée sous la forme d'un nuage de points (xi, yi), yi = f(xi). Les xi sont connus, les yi sont l'objet de la recherche.
Considérons le cas d'une équation différentielle du 1er ordre, se ramenant à la forme simple :
y' = φ(x,y), avec xo , yo donnés » problème de Cauchy
On sait qu'une approximation de y' =
f'(x) est donnée,
pour h "petit", par le quotient des différences finies
Δy/Δx
(taux d'accroissement) :
Comme dans le cas de l'intégration approchée, subdivisons J en n sous-intervalles (de même amplitude pour simplifier l'algorithme) :
a = xo < x1 < x2 < ... < xn= b , xi = a + ih, h = (b - a)/n
Si yn désigne l'approximation de f(xn), on peut écrire alors écrire :
Notre équation différentielle y' = φ(x,y) s'écrit alors :
yn+1 - yn = hφ(xn,yn), xo, yo donnés
en espérant que le processus est convergent, ce qui est le cas lorsque f est suffisamment lisse : au moins de C1 (continue ainsi que sa dérivée première) sur l'intervalle J. Cependant, la précision est d'ordre 1 (en 1/h). Ce qui est faible. Pour des équations non pathologiques (évitez d'intégrer au voisinage d'une asymptote de la courbe intégrale...), il y a peu d'espoir d'un résultat satisfaisant si h > 1/1000 : évitez d'intégrer sur des intervalles de forte amplitude.
Pour une
étude rigoureuse de la méthode
(consistance, choix judicieux de h, convergence, erreur commise), on pourra se
reporter aux références indiquées in fine et tout
particulièrement à l'excellent livre de
Claude Brezinski (professeur honoraire
de l'université des sciences et techniques de Lille) : Algorithmique
numérique (»
réf.4): on ne peut que très difficilement faire mieux à ce sujet.
La représentation graphique du nuage de points M(xi, yi) obtenus fournit une approximation de la courbe intégrale dont on peut ensuite rechercher une équation approchée (polynomiale, logarithmique, exponentielle) par diverses méthodes d'approximation polynomiale ou non, comme par les moindres carrés, fournissant une expression acceptable de f.
Approximation et polynômes orthogonaux : »
Pour une fonction ne posant pas de problème aux bornes de J, il peut être plus judicieux d'utiliser la dérivée symétrique :
conduisant à :
L'algorithme se programme très facilement. On peut bien entendu l'améliorer pour contrôler la convergence et évaluer l'erreur commise.
Programmation de la méthode en JavaScript : |
➔ Pour tester ce programme vous devez entrer votre fonction φ(x,y) en utilisant une syntaxe comprise par le langage JavaScript. L'instruction with (Math), placée en début de procédure, évite à l'utilisateur de préciser Math devant chaque fonction mathématique utilisée. Les opérations et fonctions usuelles sont les suivantes :
Le programme utilise par défaut l'équation différentielle y' + y + 1 = ex sur [0,1] avec y(0) = 1/2. On entre y' = φ(x,y) sous la forme exp(x) - y - 1. J = [0,1], xo = 0, yo = 1/2. La solution exacte est : y = e-x + ½ex - 1
! Pensez à refermer les fenêtres d'affichage avant de relancer le programme, sinon rien ne se passe... !
Comparaison entre la solution approchée
(nuage de points, n = 40) et la solution exacte
avec l'excellentissime logiciel gratuit Graphmatica (capture d'écran) :
➔ Pour en savoir plus :
La méthode d'Euler (niveau TerS), par Rémy
Coste, professeur lycée d'Arpajon :
http://numerisation.univ-irem.fr/AAA/AAA04008/AAA04008.pdf
http://vekemans.free.fr/E1/pb_cauchy.pdf, par Denis Vekemans, IUFM Pas
de Calais.
Le Problème de Cauchy, condition de Lipschitz et la
résolution approchée des équations différentielles du 1er ordre (méthode
d'Euler et de Runge-Kutta, étude de la convergence, consistance, stabilité).
Résolution numérique des équations différentielles
ordinaires, niv. master, par Jacques Lefrère (UPMC, Paris).
Méthodes d'Euler, Runge-Kutta, Adams, ..., systèmes différentiels.
http://wwwens.aero.jussieu.fr/lefrere/master/mni/mncs/cours/equa-diff-x4.pdf
Algorithmique numérique,
ch. 3, pages 75-99, par Claude Brezinski, Coll. Elipses, Paris - 1988
Étude la méthode d'Euler, consistance, convergence, accélération de
convergence (méth. Runge-Kutta), évaluation de l'erreur commise.
Mathématiques et informatique (classes
prépa.), pages 188-205, par Denis Monasse, Éd. Vuibert, Paris - 1988.
Méthodes d'Euler et de Runge-Kutta, équations d'ordre supérieur à 1 en
se ramenant en se ramenant à un système différentiel du 1er ordre.
Méthodes numériques de résolution d’équations
différentielles, par Brian Stout (univ. Marseille) :
https://www.fresnel.fr/perso/stout/Anal_numer/Cours4.pdf