Méthode d'Euler explicite
Pour décrire un processus d'évolution, ou le profil d'une ligne d'eau, par exemple, on est souvent amené à résoudre une équation différentielle ordinaire (EDO) du premier ordre. Cette équation écrit comment varie une fonction, en un point donné (un instant ou un point de l'espace), connaissant la valeur de cette fonction mathématique, le problème à résoudre s'écrit:
{dydt=f(y,t)y(t=t0)=y0{dydt=f(y,t)y(t=t0)=y0
où dydtdydt désigne la dérivée par rapport à t de la fonction yy (qui dépend de la variable tt); la variable y0y0 est appelée la condition à la limite; elle conditionne la solution finale de l'équation.
Comme souvent on ne connait pas de solution analytique de ce problème, on va utiliser des méthodes approchées pour estimer la solution. On fait donc une discrétisation de la variable tt. On note ainsi ΔtΔt le pas de discrétisation, et on résout le problème aux points t0t0, t1=t0+Δtt1=t0+Δt, t2=t0+2Δtt2=t0+2Δt, ..., tn=t0+nΔttn=t0+nΔt où nn est un entier.
La méthode d'Euler explicite est la plus intuitive; elle consiste à considérer que, d'un point titi au point ti+1ti+1, la fonction évolue linéairement, avec une trajectoire qui est celle qu'on peut calculer au point titi.
Le problème se résout donc de la façon suivante:
- on connait la fonction ff, un point titi où on connait yiyi
- on peut donc calculer y′i=f(y,t)
- on estime alors la valeur de y au point ti+1=ti+Δt : yi+1≃yi+y′iΔt
- on peut alors itérer (résoudre pas à pas) pour passer au point suivant. Le problème est initialisé en partant de t0 où on connait y0 (condition à la limite).
On sent bien que ce schéma pourra donner de bons résultats uniquement si Δt n'est pas trop grand. Des valeurs de Δt trop grandes peuvent donner des résultats complètement faux, conduisant à des interprétations physiques erronées. Son intérêt est toutefois sa simplicité, et il s'implémente facilement sur un tableau.
Exemple d'application: processus exponentiel
Considérons le problème (simple) suivant: {dydt=−ayy(t=t0)=y0
On a donc ici f(y,t)=−ay. La solution analytique se résout facilement, donnant y(t)=y0exp(−a(t−t0)). On peut résoudre le problème par la méthode d'Euler:
- on choisit Δt (par exemple, Δt=1)
- calculer y1=y0−ay0Δt
- calculer y2=y1−ay1Δt etc.
On constate que la résolution n'est pas très précise; ceci est lié au pas de calcul trop grand compte tenu de la méthode choisie et de l'équation à résoudre.