Vous êtes sur la page 1sur 18

Rsolution numrique d'une quation diffrentielle

Mthode dEULER
Principe de la mthode dEULER :
Cas dune quation diffrentielle du premier ordre dont la forme mathmatique est :

dy
= f(x, y)
dx
A partir de la connaissance de la valeur de y = y0 pour une valeur de x = x0, on peut
calculer la valeur de

dy
dy
en ce point soit . La valeur estime de y pour
dx
dx 0

dy
x = x0 + dX sera prise gale y0+dY = y0+ dx.
dx 0
Cest une mthode itrative.
La valeur yi+1 est dtermine en ajoutant yi la valeur yi .
yi+1 = yi+ yi = yi+ x f(xi,yi)
Si on note h le pas de discrtisation en x, la mthode d'EULER dfinit deux suites :
une premire qui dfinit les valeurs de x :
terme initial : x0
relation de rcurrence : xi+1 = xi+h

une deuxime qui permet d'valuer les valeurs de y :


y
terme initial : 0
relation de rcurrence : yi+1 = yi+hf(xi,yi)

yi+1 = yi +

dy
h
dx i
yi

x
xi

xi + h

EULER03 - Page 1 sur 18


IUFM de Lorraine - M.SCHWING

On remarquera que les valeurs estimes obtenus seront dautant plus proches des
valeurs exactes que le pas h est plus petit.
y

y2 (Euler)
y1 (Euler)

x1

x2

x3

x4

x5

x6

La courbe en trait plein correspond la solution analytique.


Exemple mathmatique : considrons l'quation diffrentielle :

dy
= 2x.y avec
dx

y(x=0)=1
La solution analytique est : y = exp( x 2 )
i

xi

y i = exp( x i2 )

0
1
2
3
4
5

0
0,1
0,2
0,3
0,4
0,5

1
0,9900
0,9608
0,9139
0,8521
0,7788

Mthode d'EULER : complter ligne par ligne


i
0
1
2
3
4
5

xi
0
0,2
0,4
0,6
0,8
1,0

yi
1
1
0,92
0,77

y = -2 xi yi x
-2010,2 = 0
-20,210,2 = - 0,08
-20,40,920,2 = - 0,15

Yi+1= yi +y
1
0,92
0,77

Lexemple ci-dessous montre que la mthode dEULER pourrait tre mise en uvre la
main .

EULER03 - Page 2 sur 18


IUFM de Lorraine - M.SCHWING

1,2
1,0
0,8
0,6
0,4
0,2
0,0
-0,2

0,0

0,2

0,4

0,6

0,8

1,0

1,2

1,4

1,6

1,8

2,0

La courbe en trait gras correspond la solution exacte, les points correspondent aux valeurs
obtenues par la mthode dEULER. Le principe de la mthode dEULER est rappel par
les segments.
Exercice Euler1 : reproduire la figure ci-dessus
1) Mettre en uvre la mthode dEULER avec EXCEL puis tracer manuellement un ou
deux vecteurs tangents.
A
dy

B
x

C
yexact

D
yeuler

=-2*D5*B5*dt

=EXP(-B5^2)

#N/A

#N/A

=-2*D6*B6*pas

0,2

=EXP(-B6*B6)

=D5+A5

#N/A

#N/A

=-2*D7*B7*pas

0,4

=EXP(-B7*B7)

=D6+A6

#N/A

#N/A

=-2*D8*B8*pas

0,6

=EXP(-B8*B8)

=D7+A7

#N/A

#N/A

=-2*D9*B9*pas

0,8

=EXP(-B9*B9)

=D8+A8

#N/A

#N/A

10

=-2*D10*B10*pas

=EXP(-B10*B10)

=D9+A9

#N/A

#N/A

11

=-2*D11*B11*pas

1,2

=EXP(-B11*B11) =D10+A10

#N/A

#N/A

12

=-2*D12*B12*pas

1,4

=EXP(-B12*B12) =D11+A11

#N/A

#N/A

13

=-2*D13*B13*pas

1,6

=EXP(-B13*B13) =D12+A12

#N/A

#N/A

14

=-2*D14*B14*pas

1,8

=EXP(-B14*B14) =D13+A13

#N/A

#N/A

15

=-2*D15*B15*pas

=EXP(-B15*B15) =D14+A14

#N/A

#N/A

16

#N/A

0-pas/2

#N/A

#N/A

YEuler-dy

#N/A

17

#N/A

0+pas/s

#N/A

#N/A

Yeuler+dy

#N/A

18

#N/A

0.2-pas/2

#N/A

#N/A

#N/A

YEuler-dy

19

#N/A

0.2+pas/2

#N/A

#N/A

#N/A

Yeuler+dy

Les contenus des plages B16:B17 et E16:E17 permettent le trac du vecteur tangent au
point (0,1) ; ceux des plages B18:B19 et F18:F19 permettent le trac du vecteur tangent au
point (0,2 ;yeuler(0,2)) et ainsi de suite.
EULER03 - Page 3 sur 18
IUFM de Lorraine - M.SCHWING

2) On pourra crire une macro pour effectuer les calculs relatifs tous les points.
Macro susceptible de raliser les calculs correspondants :
Private Sub CommandButton1_Click()
Dim pas, xx, xxx As Single
Dim compteur, ligne, indice As Integer
Dim x(20), dy(20), y(20), ddy, yy, yyy As Single
Worksheets("feuil2").Range("e5:o37").Value = "#N/A"
Worksheets("feuil2").Range("a16:o37").Value = "#N/A"
'*************************************************
'Recherche de la valeur du pas d'intgration
pas = Worksheets("feuil2").Range("$b$2").Value
'*************************************************
'Lecture des valeurs de x,y et dy et rangement dans un tableau
For compteur = 0 To 10
ligne = compteur + 5
x(compteur) = Worksheets("feuil2").Range("b" & ligne).Value
y(compteur) = Worksheets("feuil2").Range("d" & ligne).Value
dy(compteur) = Worksheets("feuil2").Range("a" & ligne).Value
Next compteur
'*************************************************
'Pour tracer le vecteur tangent en un point il faut dterminer
'les coordonnes de ses deux extrmits
'xi-pas/2, yi-dy/2 et xi+pas/2, yi+dy/2
'on pourra ensuite tracer le segment correspondant
'condition de placer les 2 ordonnes dans une mme colonne
For compteur = 0 To 20
If compteur Mod 2 = 0 Then
indice = Int(compteur / 2)
xx = x(indice) - pas / 2
xxx = x(indice) + pas / 2
ddy = dy(indice)
yy = y(indice) - ddy / 2
yyy = y(indice) + ddy / 2
Worksheets("feuil2").Range("b" & compteur + 16).Value = xx
Worksheets("feuil2").Range("b" & compteur + 17).Value = xxx
Worksheets(2).Cells(compteur + 16, indice + 5).Value = yy
Worksheets(2).Cells(compteur + 17, indice + 5).Value = yyy
End If
Next compteur
End Sub

EULER03 - Page 4 sur 18


IUFM de Lorraine - M.SCHWING

Exercice Euler2 : Dcharge dun condensateur dans une rsistance.

u = Ri = R

dq
du
= RC
dt
dt

du
1
=
u
dt
RC
1
t
RC

Solution analytique : ut = U0exp

Mthode dEULER : ui+1 = ui + ui = ui +

1
ui t
RC

dt
RC
U0

0,1
0,5
5

s
s
V

6,0
5,0
4,0
u(Exact)

3,0

u(Euler)

2,0
1,0
0,0
0

7
8
9

A
t
0
=A7+dt
=A8+dt

0,5

B
u(Exact)
=U0*EXP(-t/RC)
=U0*EXP(-t/RC)
=U0*EXP(-t/RC)

1,5

u(Euler)
5
=C7+D7
=C8+D8

D
u
=dt*(-1/RC)*C7
=dt*(-1/RC)*C8
=dt*(-1/RC)*C9

Un pas dintgration de valeur infrieure 0,1 donnerait un meilleur rsultat.


EULER03 - Page 5 sur 18
IUFM de Lorraine - M.SCHWING

Exercice Euler3 : Cintique chimique : Etude de la raction de saponification de


l'thanoate d'thyle
CH3COOC2H5 + Na+ + OH- CH3COO- + Na+ + C2H5OH
CH3COOC2H5

OH-

Na+

CH3COO-

a-x

a-x

Notations :
a : valeur commune des concentrations molaires initiales de lester et des ions hydroxyde
dans le mlange ractionnel

x : avancement volumique de la raction


Supposons la raction d'ordre global 2 (1 par rapport lester et 1 par rapport lion
hydroxyde ) :

dx
= k (a x )2
dt

dont la solution analytique est :

x = a 1

k t a + 1
On pourra comparer les valeurs obtenues par la mthode analytique et celles obtenues par
la mthode dEULER :
x t + t = x t + x t = x t + k (a - x t ) t
2

0,01
0,009
0,008
0,007
0,006
0,005
0,004
0,003
0,002
0,001
0
0

100

200
EXACT

300

400

EULER

x=f(t)
t
10
s
A
t
11 0
12 =A11+t

k
3
L/mol/s

B
xExact
0
=C0*(1-(1/(k*A12*C0+1)))

c0
0,01
mol/L
C
xEULER
0
=C11+D11

EULER03 - Page 6 sur 18


IUFM de Lorraine - M.SCHWING

D
x
=h*k*(C0-C11)^2
=h*k*(C0-C12)^2

Exercice Euler4 : Etablissement dun courant dans un circuit R,L : rgime transitoire

-L di
dt

Ri + L

Ri

di
= u( t ) = U 2 sin(2ft )
dt

soit :
di
R U
= i+
2 sin(2ft )
dt
L
L
Solution analytique :
Cest un quation diffrentielle du premier ordre du type :
Solution de lquation sans second membre

dy
= -k y + f(x, y)
dx

di R
+ i=0 :
dt L

R
i = A exp t
L
Solution particulire (rgime permanent) : i = I 2 sin(2ft + )
U
L
tan =
Avec
I=
et
R
R 2 + (L) 2
Conditions initiales : i(t=0) = 0
On en dduit :
U 2
i=
R 2 + (L) 2

R
sin(t ) sin( ) exp L t

di U 2 sin(2ft ) R
Mthode dEuler : On utilise la relation =
(i)t pour calculer de
L
L
dt t
proche en proche les valeurs de i partir de la valeur de i(t=0) =0
u R it
di
it + dt = it + dt = it + t
L
dt t
EULER03 - Page 7 sur 18
IUFM de Lorraine - M.SCHWING

u
0

t
t+dt

u(t)
u(t+dt)
R
L
f
w
Z
Ueff
Umax
dt

A
t

t
0

B
u
= Umax SIN(w*t)

C
i

11
1,1
50
= 2**f
=(R2+L2w2)-1/2
23
=Ueff1,141
0,001

i
0

H
Hz

V
V
s

=(u-R*i)/L*dt = Umax /Z* (SIN(w*t-1,54) SIN(-1,54)*EXP(-10*t))

3 =A2+dt = Umax SIN(w*t)

=C2+D2 =(u-R*i)/L*dt = Umax /Z * (SIN(w*t-1,54) SIN(-1,54)*EXP(-10*t))

4 =A3+dt = Umax SIN(w*t)

=C3+D3 =(u-R*i)/L*dt = Umax /Z * (SIN(w*t-1,54) SIN(-1,54)*EXP(-10*t))

5 =A4+dt = Umax *SIN(w*t) =C4+D4 =(u-R*i)/L*dt = Umax /Z * (SIN(w*t-1,54) SIN(-1,54)*EXP(-10*t))

40

0,2

30

0,15

20

0,1

10

0,05
0

0
-10

-0,05

-20

-0,1

-30

-0,15
-0,2

-40
0

0,05
u

0,1
i(EULER)

0,15
i(ANALYTIQUE)

EULER03 - Page 8 sur 18


IUFM de Lorraine - M.SCHWING

0,2

Exercice Euler5 : Oscillations amorties

d2 x
dt

= -h

dx
- kx
dt

soit

x"+2x'+02 x = 0

dx
On pose : x' =
=v
dt
L'quation ci-dessus devient :

d2 x
dt

dv
h
k
= 2v 02 x = - v - x
dt
m m

On a donc transform lquation diffrentielle du 2me ordre en 2 quations


diffrentielles du premier ordre :
dv

= 2v 02 x partir de laquelle on obtient v(t + dt) = v(t) 02 x(t) + 2v(t) dt


dt
On calcule de proche en proche les valeurs de la vitesse partir des valeurs de v(t=0) et
x(t=0).
dx
= v partir de laquelle on obtient : x(t + dt) = x(t) + v(t)t . On calcule de

dt
proche en proche les valeurs de x(t) partir de la valeur de x(t=0) et des valeurs
de v(t) dtermines prcdemment.

Remarque : lorsque lon entreprend le calcul de x(t+dt),on connat dj la valeur de


v(t+dt). Pour calculer v(t+dt), on peut utiliser x(t + dt) = x(t) + v(t + dt)t ou mieux
1
x(t + dt) = x(t) + [v(t) + v(t + t)]t
2
0,06
0,05
0,04
0,03
0,02

X(Euler)

0,01

X(exact)

0
-0,01
-0,02
-0,03
-0,04
0

x(t)
EULER03 - Page 9 sur 18
IUFM de Lorraine - M.SCHWING

Solutions analytiques :
2
2
SI ( - w0 )<0 :
x=EXP(-*t)*(x0*COS((w02-2)^0,5*t)+(v0+*x0)/((w02-2)^0,5)*SIN((w02-2)^0,5*t))
2
2
SI ( - w0 )=0 x=EXP(-*t)*(x0+(v0+*x0)*t)
2
2
SI ( - w0 >0 :
2
2
2
2
2
2
x=EXP(-*t)*(x0*COSH((-w0 + )^0,5*t)+(v0+*x0)/(( -w0 + )^0,5)*SINH((-w0 + )^0,5*t)))
dt
0,02
s

w02
50
s-2

Alpha ()
1
s-1

x0
0,05
m

v0
0
m.s-1

X(Euler)

=v0

=x0

=(-w02_*D30-2**B30)*dt

=V*dt

31

=A30+dt

=B30+C30

=(-w02_*D31-2**B31)*dt

=D30+E31

=V*dt

32

=A31+dt

=B31+C31

=(-w02_*D32-2**B32)*dt

=D31+E32

=V*dt

33

=A32+dt

=B32+C32

=(-w02_*D33-2**B33)*dt

=D32+E33

=V*dt

34

=A33+dt

=B33+C33

=(-w02_*D34-2**B34)*dt

=D33+E34

=V*dt

Pour calculer x(exact), on envisagera la possibilit dobserver un des trois rgimes en


utilisant la condition SI(conditions ;alors ;sinon).
2

=SI(( - w0 )<0 ;
2 2
2 2
2 2
EXP(-*t)*(x0*COS((w0 - )^0,5*t)+(v0+*x0)/(( w0 - )^0,5)*SIN((w0 - )^0,5*t)) ;
2
2
SI(( - w0 )=0 ;
EXP(-*t)*(x0+(v0+*x0)*t) ;
2
2
2
2
2
2
EXP(-*t)*(x0*COSH((-w0 + )^0,5*t)+(v0+*x0)/(( -w0 + )^0,5)*SINH((-w0 + )^0,5*t))))

EULER03 - Page 10 sur 18


IUFM de Lorraine - M.SCHWING

Etude les diffrents rgimes :


0,06

Rgime pseudopriodique

0,05

2 - 02 < 0

0,02

y(0) = 0,05 m
v(0) = 0 m.s-1
= 1s-1
02=50 s-2

0,04
0,03
0,01
0
-0,01
-0,02
-0,03
-0,04
0

X(Euler)

Rgime critique
2 - 02 = 0
y(0) = 0,05 m
v(0) = 0 m.s-1
= 1s-1
02=1 s-2
Le retour l'quilibre
s'effectue plus
rapidement que dans le
rgime apriodique

X(exact)

0,06
0,05
0,04
0,03
0,02
0,01
0
0

2
X(Euler)

3
X(exact)

0,06

Rgime apriodique
2 - 02 > 0

0,05
0,04
0,03

y(0) = 0,05 m
v(0) = 0 m.s-1
= 1 s-1
02=0,4 s-2

0,02
0,01
0
0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15
X(Euler)

EULER03 - Page 11 sur 18


IUFM de Lorraine - M.SCHWING

X(exact)

Exercice Euler6 : Chute libre :


d2 y
dt 2

dv
= g
dt

Mthode d'EULER :

a = g =
y
v=

dv
dv
v(t + dt) = v(t) + dt = v(t)-gdt
dt
dt t

dy
dy
y(t + dt) = y(t) + dt = y(t) + v( t ) dt
dt
dt t

La dtermination des valeurs de y(t) peut se faire par


une des trois mthodes suivantes :

V0

dy
y(t + dt) = y(t) + dt = y(t) + v ( t ) dt not y1
dt t
ou
dy
y(t + dt) = y(t) +
dt = y(t) + v( t + dt ) dt not y2
dt t + dt
ou
y(t + dt) = y(t) +

1
{v( t + dt ) + v( t )} dt not y3
2

Solution exacte :
y=0,5gt2+v0t+y0

EULER03 - Page 12 sur 18


IUFM de Lorraine - M.SCHWING

25
20
y1

15

y2
y3

10

y(exact)

5
0
0

y(t)

y0

v0

dt

20,0

9,80

0,10

m.s-1

m.s-2

Cet exemple met en vidence lintrt du choix de la mthode (3) :


1
y(t + dt) = y(t) + {v( t + dt ) + v( t )} dt
2

EULER03 - Page 13 sur 18


IUFM de Lorraine - M.SCHWING

Exercice Euler7 : Chute amortie par des forces de frottement pouvant tre
modlise par -kV2
m

d2y
dt 2

=m

v2
dv
dv
k
= + mg kv 2 ou a =
= +g v 2 = g1 ,
2
dt
m
dt
v
L

VL dsignant la vitesse limite atteinte par lobjet.


Si on tient compte de la pousse dArchimde, g < g.
Rsolution analytique

Expression de v(t)

v
Effectuons les changements de variable : v = u vL et t = L avec v L =
g

du
g
=
(1 u2 )
dt v L

du
= 1 u2
d

ou

Une primitive de f (u) =

1
1 u

est de la forme : F(u) =

Conditions initiales : t=0 =0


On obtient =

1 (1 + u)(1 u0 )
ln
2 (1 u)(1 + u0 )

dont on dduit : v = v L

1 1+ u
ln
+ cte
2 1 u

et

v=v0 u0=v0/vL

soit

u=

(1 + u0 )exp(2) (1 u0 )
(1 + u0 )exp(2) + (1 u0 )

(vL + v 0 )exp 2gt (vL v 0 )

vL
(vL + v 0 )exp 2gt + (vL v 0 )
vL

Si v = v0 = 0

2gt
exp
1
v L
gt dz

v = vL
= v L TANH =
2gt
v L dt
exp
+1

vL

gt
v2
y = L LN COSH
g
vL

EULER03 - Page 14 sur 18


IUFM de Lorraine - M.SCHWING

mg
k

Expression de v(y)

du
g
du dy
du
(1 u2 ) =
=
= v Lu
dt v L
dy dt
dy

soit

v L2 du2
=
= (1 u2 )
2g
dy

v
On pose y = L

2g

On obtient lquation diffrentielle :

du
2u
=
=1
d (1 u2 )

La solution qui vrifie les conditions initiales est :

= ln

1 - u02

(1 u )

ou

( )

u2 = 1 1 - u02 exp( )

En revenant aux variables initiales : v

v2
2gy
2

= vL 1 1 - 0 exp
v 2
v L2
L

Rsolution numrique

V0

a=

dv
k
dv

v(t + dt) = v(t) + dt = v(t) + g v 2 ( t ) dt


dt
m
dt t

v=

dy
dy
y(t + dt) = y(t) + dt = y(t) + v( t ) dt
dt
dt t

La dtermination des valeurs de y(t) peut se faire par une


des trois mthodes suivantes :
dy
y(t + dt) = y(t) + dt = y(t) + v ( t ) dt
dt t
ou
dy
y(t + dt) = y(t) +
dt = y(t) + v( t + dt ) dt
dt t + dt
ou

y(t + dt) = y(t) +

1
{v( t + dt ) + v( t )} dt
2

EULER03 - Page 15 sur 18


IUFM de Lorraine - M.SCHWING

Rsultats de la rsolution numrique :


6

3,5

3,0
2,5

2,0

1,5

1,0

0,5

0
0,0

0,5

1,0

1,5

0,0

2,0

0,0

0,5

Y=f(t)

10

1,0

1,5

2,0

V(y)=h(t)

dt

0,010

B=k/m

1,00

m-1

10,00

m.s-2

vy0

0,00

m.s-1

B
t

C
Vy

D
Vy

E
y

F
y

=(g-B*Vy^2)xdt

=Vy*dt

11 =B10+dt

=(g-B*Vy^2)*dt

=D10+C10*dt

=Vy*dt

=F10+E10

12 =B11+dt

=(g-B*Vy^2)*dt

=D11+C11*dt

=Vy*dt

=F11+E11

Comparaison des rsultats obtenus par la rsolution numrique et la


rsolution analytique : dt = 0,05 s
v(y)=f(t)
3,50
3,00
2,50
2,00
1,50
1,00
0,50
0,00
0,00

0,50

1,00
vy(Euler)

1,50
vy(exact)

EULER03 - Page 16 sur 18


IUFM de Lorraine - M.SCHWING

2,00

Exercice Euler8 : Mouvement d'un projectile sans frottements (=0)


Exercice Euler9 : Mouvement d'un projectile avec frottements (0)
m

d2 OM
dt 2

Vy3
2

= mg j Vx i +
j

vy

v0

x
ma = mg + R f

Vy3
Vy3
R f = Vx2 i +
j . L'expression
permet de tenir compte de la valeur algbrique.

v
v
y
y

2
d x
= Vx2

2
dt

2
V3
d y = g y
dt 2
Vy

Mthode d'EULER :
A partir des conditions initiales : t=0 ; y(0)=0; x(0) =0; vx(0), vy(0), on calcule de proche en
proches les valeurs suivantes :

t i + 1 = t i + dt

(v x )i+1 = (v x )i + (v x )i dt

( )

avec (v )i = (a x )i t = Vx2 i t

V3
y
vy
= v y + v y dt avec v y = a y t = g
V
i+1
i
i
i
i
y

( )

( ) (

( ) ( )

EULER03 - Page 17 sur 18


IUFM de Lorraine - M.SCHWING

Pour la dtermination de xi+1 et yi+1, on peut utiliser une des trois mthodes suivantes :
Mthode(1) (y1)

Mthode(2) (y2)

x i+1 = x i + (Vx )i dt

( )

y i+1 = y i + Vy i dt

Mthode(3) (y3)
x i +1 = x i +

x i +1 = x i + (Vx )i +1 dt

( )i +1 dt

y i + 1 = y i + Vy

y i +1 = y i +

(Vx )i + (Vx )i +1
2

dt

(Vy )i + (Vy )i +1
2

dt

Dans Interactive Physique, c'est la deuxime mthode qui est utilise !

0,03

m-1

V0x

3,0

m.s-1

V0y

3,0

m.s-1

x0

0,00

y0

0,00

10,0

m.s-2

dt

0,12

0,45
0,40
0,35
0,30
0,25
0,20
y1

0,15

y2

0,10

y3

0,05

y(RK4)

0,00
0,0

0,2

0,4

0,6

0,8

1,0

1,2

1,4

y1 = f(x1) : valeurs obtenues en utilisant la mthode (1).


Y2 = f(x2) : valeurs obtenues en utilisant la mthode (2).
Y3 = f(x3) : valeurs obtenues en utilisant la mthode (3).
La troisime mthode semble plus prcise. La solution obtenue par la mthode RK4 et un
pas identique tant prise comme rfrence.

EULER03 - Page 18 sur 18


IUFM de Lorraine - M.SCHWING