08 Formulaire Euler PDF
08 Formulaire Euler PDF
08 Formulaire Euler PDF
La méthode d’Euler sert à résoudre de manière L’approximation de la méthode d’Euler consiste alors à
approchée des équations différentielles. écrire que f (x, t) ≈ f (x0 , t0 ) sur l’intervalle considéré.
x0 cos(t) + 2xt = −5 Dit autrement, cela revient à dire que la fonction se com-
x(0) = 0 porte sur [t0 , t1 ] comme sa tangente au point d’abscisse
t0 .
Mise en forme
2.4 Et c’est tout ?
−5 − 2xt Oui. Enfin quasiment. Ensuite, plutôt que de le faire
x0 = juste entre deux points, t0 et t1 , on utilise cette méthode
cos(t)
sur des subdivisions de l’intervalle. Plus la subdivision
est fine, plus les valeurs obtenues se rapprochent de la
Méthode d’Euler
solution réelle de l’équation différentielle.
Solution Concrètement, on prend une suite monotone de valeurs
(t0 , t1 , . . . tn ). La solution approchée calculée par la
méthode d’Euler sera définie par :
x(t0 ) = x0
x(ti+1 ) = x(ti ) + f (xi , ti ) × (ti+1 − ti )
La méthode d’Euler sert à obtenir une approximation Où f est une fonction de R2 → R, x0 un flottant, et t un
numérique de cette solution. tableau de flottants.
Note : Beaucoup d’équations peuvent se mettre sous Dans le cadre du programme, t doit être une subdivision
cette forme (y compris des équations non linéaires, par régulière, mais ce n’est pas toujours adapté dans la Vraie
exemple x0 = cos(x). Par contre, une équation « à re- Vie™.
tard » comme x0 (t) = x(t − 1) ne peut pas être résolue Exemple d’utilisation :
par cette méthode. import numpy as np
import matplotlib . pyplot as plt
2.2 Interprétation graphique
def f(x , t ):
À tout point du plan (x, t) on associe le vecteur return (−5−2*x*t )/ np . cos (t)
−
→v (1, f (x, t)). Ceci définit un champ de vecteur qu’on
peut tracer. En chaque point d’une courbe solution, le x0 = 0
vecteur du champ en ce point est aussi le vecteur di- t = np . linspace (0 , 1.3 , 150)
x = euler (f , x0 , t)
recteur de la tangente en ce point. plt . plot (t , x)
plt . show ()
cb [email protected] 1/2
Méthode d’Euler Math Sup
Attention : la fonction f n’est pas linéaire et n’a aucune Par exemple, pour l’équation x00 = x0 − x + cos(t), on va
raison de l’être. On ne cherchera pas à l’écrire comme un poser :
produit matriciel.
v1 v2
f: , t 7→
v2 v2 − v1 + cos(t)
Sous cette nouvelle forme, la méthode d’Euler se formule
exactement comme plus haut.
(ici v1 correspond à x et v2 à x0 )
3.2 Exemple commenté V Améliorations
On prendra comme exemple les équations de Lotka- La méthode d’Euler présentée ici est assez instable dans
Volterra : on fixe α, β, δ, γ quatre constantes, et on s’in- certains cas. On propose deux manières d’affiner les
téresse au système : choses.
x0 = x(α − βy) 5.1 Euler implicite
y 0 = y(δx − γ) En reprenant les notations de 2.3, on utilise cette fois que
f (x, t) ≈ f (x1 , t1 ). On arrive donc à :
x1 = x0 + (t1 − t0 )f (x1 , t1 )
On utilisera alors la fonction
et il s’agit alors de trouvere la valeur de x1 en résolvant
f:
x
, t 7→
x(α − βy) une équation (ce qui peut se faire de manière approchée
y y(δx − γ) également).
def euler_2d (f , V0 , t ):
n = len (t)
res = [[0 , 0] for i in range(n )]
res [0] = x0
for i in range(1 , n ):
tion
olu
old_value = res [i−1] e la s
te d
dt = t[i] − t[i−1] Pen
derivee = f( old_value , t[i−1]) Point milieu où la
res [i ][0] = res [i −1][0] + dt * derivee [0] pente sera estimée
xn+1/2
res [i ][1] = res [i −1][1] + dt * derivee [1] Pen
t e d
e la m
return res étho d
e d
’Eule
r
def f(V , t ):
x = V [0]
y = V [1]
tn tn+1/2 tn+1
return [x*( alpha−beta *y), y*( delta *x−gamma )]
Cette méthode se généralise : voir méthodes de Runge-
V0 = [50 , 50] Kutta.
t = np . linspace (0 , 20 , 250) VI Encore mieux ?
Il existe directement dans Python une fonction odeint :
res = euler_2d (f , V0 , t)
cb [email protected] 2/2