résolution numérique d'une équation différentielle …...m. schwing - iufm de lorraine...

25
M. SCHWING - IUFM de Lorraine RK4_02 Page 1 Résolution numérique d'une équation différentielle Méthode de RUNGE-KUTTA RK4 Considérons une équation différentielle du premier ordre : y) f(x, dx dy = La méthode RK4 utilise plusieurs points intermédiaires pour calculer la valeur de y i+1 à partir de la valeur de y i : On considère un point intermédiaire A d'abscisse x i +h/2 dont la valeur de l'ordonnée est donnée par : 2 h dx dy y y i i iA × + = soit 2 k 2 h dx dy y y 1 i i iA = × = puis un point B d'ordonnée : 2 h dx dy y y iA i iB × + = soit 2 k 2 h dx dy y y 2 iA i iB = × = On calcule alors l'ordonnée d'un point C d'abscisse x i +h à l'aide de la relation : h dx dy y y iB i iC × + = soit 3 iB i iC k h dx dy y y = × = Soit ic dx dy la valeur de dx dy au point C. On pose : 4 ic k h dx dy = × L'ordonnée définitive y i+1 du point d'abscisse x i +h est donnée par la relation : h dx dy dx dy 2 dx dy 2 dx dy 6 1 y y iC iB iA i i 1 i × + × + × + + = + ou [ ] 4 3 2 1 i 1 i k k 2 k 2 k 6 1 y y + × + × + + = +

Upload: others

Post on 29-Feb-2020

8 views

Category:

Documents


0 download

TRANSCRIPT

Page 1: Résolution numérique d'une équation différentielle …...M. SCHWING - IUFM de Lorraine RK4_02 Page 1 Résolution numérique d'une équation différentielle Méthode de RUNGE-KUTTA

M. SCHWING - IUFM de LorraineRK4_02 Page 1

Résolution numérique d'une équation différentielleMéthode de RUNGE-KUTTA RK4

Considérons une équation différentielle du premier ordre :

y)f(x,dxdy

=

La méthode RK4 utilise plusieurs points intermédiaires pour calculer la valeur de yi+1 àpartir de la valeur de yi :

On considère un point intermédiaire A d'abscisse xi+h/2 dont la valeur de l'ordonnée estdonnée par :

2h

dxdyyy

iiiA ×

+= soit

2k

2h

dxdyyy 1

iiiA =×

=−

puis un point B d'ordonnée :

2h

dxdyyy

iAiiB ×

+= soit

2k

2h

dxdyyy 2

iAiiB =×

=−

On calcule alors l'ordonnée d'un point C d'abscisse xi+h à l'aide de la relation :

hdxdyyy

iBiiC ×

+= soit 3

iBiiC kh

dxdyyy =×

=−

Soit icdx

dy

la valeur de

dxdy

au point C.

On pose : 4ic

khdxdy

L'ordonnée définitive yi+1 du point d'abscisse xi+h est donnée par la relation :

hdxdy

dxdy2

dxdy2

dxdy

61yy

iCiBiAii1i ×

+

×+

×+

+=+

ou

[ ]4321i1i kk2k2k61yy +×+×++=+

Page 2: Résolution numérique d'une équation différentielle …...M. SCHWING - IUFM de Lorraine RK4_02 Page 1 Résolution numérique d'une équation différentielle Méthode de RUNGE-KUTTA

M. SCHWING - IUFM de LorraineRK4_02 Page 2

xi xi+1=xi + h

A

B C

+

Pi

Pi+1

α

+

×+

×+

iCiBiAi dxdy

dxdy2

dxdy2

dxdy

61tg

Présentation géométrique de la méthode RK4

La méthode de RUNGE KUTTA d'ordre 4 définit deux suites, h étant le pas de discrétisationen x :

• une première qui permet de définir les valeurs de xterme initial :

relation de récurrence :

• une deuxième qui permet d'évaluer les valeurs de yterme initial :

relation de récurrence :

x0xi+1 = xi+h

y0yi+1 = yi+1/6(k1+2k2+2k3+k4)aveck1 = h×f(xi,yi)k2 = h×f(xi+h/2,yi+k1/2)k3 = h×f(xi+h/2,yi+k2/2)k4 = h×f(xi+h,yi+k3)

Page 3: Résolution numérique d'une équation différentielle …...M. SCHWING - IUFM de Lorraine RK4_02 Page 1 Résolution numérique d'une équation différentielle Méthode de RUNGE-KUTTA

M. SCHWING - IUFM de LorraineRK4_02 Page 3

Exemple : y.x2dxdy

−=

Pi

i

i

y

x

dxkyx2

dxdy 1

iii

=××−=

A

+=×

+

+

2ky

2dx

dxdyy

2dxx

1i

ii

i

dxk

2ky

2dxx2

dxdy 21

iiia

=

+×−=

B

+=×

+

+

2ky

2dx

dxdyy

2dxx

2i

iAi

i

dxk

2ky

2dxx2

dxdy 32

iiiB

=

+×−=

C

+=×

+

+

3iiB

i

i

kydxdxdyy

dxx( ) ( )

dxkkydxx2

dxdy 4

3iiiC

=+×+×−=

Pi+1 dxdxdy

dxdy2

dxdy2

dxdy

61yy

iCiBiAii1i ×

+

×+

×+

+=+

[ ]4321i1i kk2k2k61yy +×+×++=+

Page 4: Résolution numérique d'une équation différentielle …...M. SCHWING - IUFM de Lorraine RK4_02 Page 1 Résolution numérique d'une équation différentielle Méthode de RUNGE-KUTTA

M. SCHWING - IUFM de LorraineRK4_02 Page 4

Exemple mathématique : considérons l'équation différentielle : y.x2dxdy

−= avec y(x=0)=1

La solution analytique est : )xexp(y 2−=

i xi yi0 0 11 0,1 0,99002 0,2 0,96083 0,3 0,91394 0,4 0,85215 0,5 0,7788

Méthode RK4 :

i xi yi k1=-2 × xi × yi ×∆x k2 =-2 × (xi+∆x/2)×( yi + k1/2)×∆x0 0 1 -2 × 0 × 1 ×0,1=0 -2 × 0,05 × 1 ×0,1=-0,011 0,1 0.990 -2 × 0,1 × 0,99 ×0,1=0,0198 -2 × 0,15 × 0,98 ×0,1=-0,02942 0,23 0,24 0,45 0,5

i xi yi k3 =-2 × (xi+∆x/2)×( yi + k2/2)×∆x k4 =-2 × (xi+∆x)×( yi + k3)×∆x0 0 1 -2 × 0,05 × 0,995×0,1=-9,9510-3 -2 × 0,1 × 0,995 ×0,1= -0,01991 0,1 0,990 -2 × 0,15 × 0,975×0,1=-2,92610-2 -2 × 0,2 × 0,961 ×0,1= -0,03842 0,2 0,9613 0,24 0,45 0,5

Avec EXCEL :

A B Cx k1 k2

6 0 =-2*x*y*dx =-2*(x+dx/2)*(y+k1/2)*dx7 =A6+dx =-2*x*y*dx =-2*(x+dx/2)*(y+k1/2)*dx8 =A7+dx =-2*x*y*dx =-2*(x+dx/2)*(y+k1/2)*dx

D E Fk3 k4 y

6 =-2*(x+dx/2)*(y+k2/2)*dx =-2*(x+dx)*(y+k3)*dx 17 =-2*(x+dx/2)*(y+k2/2)*dx =-2*(x+dx)*(y+k3)*dx =F6+1/6*(B6+2*C6+2*D6+E6)8 =-2*(x+dx/2)*(y+k2/2)*dx =-2*(x+dx)*(y+k3)*dx =F7+1/6*(B7+2*C7+2*D7+E7)

Page 5: Résolution numérique d'une équation différentielle …...M. SCHWING - IUFM de Lorraine RK4_02 Page 1 Résolution numérique d'une équation différentielle Méthode de RUNGE-KUTTA

M. SCHWING - IUFM de LorraineRK4_02 Page 5

Exercice RK4_1 : décharge d’un condensateur dans une résistance.

RC

i

u

dtduRC

dtdqRRiu −=−==

uRC1

dtdu

−=

Exercice : Utiliser la méthode RK4 pour résoudre cette équation différentielle :

k1 = h×f(xi,yi)k2 = h×f(xi+h/2,yi+k1/2)k3 = h×f(xi+h/2,yi+k2/2)

k4 = h×f(xi+h,yi+k3)

dtuRC1k i1

−= dt

2ku

RC1k 1

i2

+−=

dt2

kuRC1k 2

i3

+−= [ ] dtku

RC1k 3i4

+−=

[ ]4321+tdt+t k2k2kk61u= u +++

0,0

1,0

2,0

3,0

4,0

5,0

6,0

0 1 2 3

u(Exact)u(Euler)u(RK4)

Page 6: Résolution numérique d'une équation différentielle …...M. SCHWING - IUFM de Lorraine RK4_02 Page 1 Résolution numérique d'une équation différentielle Méthode de RUNGE-KUTTA

M. SCHWING - IUFM de LorraineRK4_02 Page 6

Détail de la feuille de calcul

6789

101112131415161718

A B C Dt k1 k2 k3

0 =-dt/RC*F7 =-dt/RC*(F7+k1_/2) =-dt/RC*(F7+k2_/2)=A7+dt =-dt/RC*F8 =-dt/RC*(F8+k1_/2) =-dt/RC*(F8+k2_/2)=A8+dt =-dt/RC*F9 =-dt/RC*(F9+k1_/2) =-dt/RC*(F9+k2_/2)=A9+dt =-dt/RC*F10 =-dt/RC*(F10+k1_/2) =-dt/RC*(F10+k2_/2)=A10+dt =-dt/RC*F11 =-dt/RC*(F11+k1_/2) =-dt/RC*(F11+k2_/2)=A11+dt =-dt/RC*F12 =-dt/RC*(F12+k1_/2) =-dt/RC*(F12+k2_/2)=A12+dt =-dt/RC*F13 =-dt/RC*(F13+k1_/2) =-dt/RC*(F13+k2_/2)=A13+dt =-dt/RC*F14 =-dt/RC*(F14+k1_/2) =-dt/RC*(F14+k2_/2)=A14+dt =-dt/RC*F15 =-dt/RC*(F15+k1_/2) =-dt/RC*(F15+k2_/2)=A15+dt =-dt/RC*F16 =-dt/RC*(F16+k1_/2) =-dt/RC*(F16+k2_/2)=A16+dt =-dt/RC*F17 =-dt/RC*(F17+k1_/2) =-dt/RC*(F17+k2_/2)=A17+dt =-dt/RC*F18 =-dt/RC*(F18+k1_/2) =-dt/RC*(F18+k2_/2)

6789

101112131415161718

E Fk4 u(RK4)

=-dt/RC*(F7+k3_) 5=-dt/RC*(F8+k3_) =F7+1/6*(B7+2*C7+2*D7+E7)=-dt/RC*(F9+k3_) =F8+1/6*(B8+2*C8+2*D8+E8)=-dt/RC*(F10+k3_) =F9+1/6*(B9+2*C9+2*D9+E9)=-dt/RC*(F11+k3_) =F10+1/6*(B10+2*C10+2*D10+E10)=-dt/RC*(F12+k3_) =F11+1/6*(B11+2*C11+2*D11+E11)=-dt/RC*(F13+k3_) =F12+1/6*(B12+2*C12+2*D12+E12)=-dt/RC*(F14+k3_) =F13+1/6*(B13+2*C13+2*D13+E13)=-dt/RC*(F15+k3_) =F14+1/6*(B14+2*C14+2*D14+E14)=-dt/RC*(F16+k3_) =F15+1/6*(B15+2*C15+2*D15+E15)=-dt/RC*(F17+k3_) =F16+1/6*(B16+2*C16+2*D16+E16)=-dt/RC*(F18+k3_) =F17+1/6*(B17+2*C17+2*D17+E17)

dt 0,1 sRC 0,5 sU0 5 V

Page 7: Résolution numérique d'une équation différentielle …...M. SCHWING - IUFM de Lorraine RK4_02 Page 1 Résolution numérique d'une équation différentielle Méthode de RUNGE-KUTTA

M. SCHWING - IUFM de LorraineRK4_02 Page 7

Exercice RK4_2 : Cinétique chimique

Considérons la réaction A + B → P

A B P

Conc. initiales c c 0

C(t) c-y c-y y

Supposons la réaction d'ordre global 2 (1 par rapport à A et 1 par rapport à B) :

( )2yckdtdy

−×=

La solution analytique est :

+××−×=

1ctk11cy

On pourra donc confronter les valeurs obtenues par la méthode analytique et celles obtenuspar les méthodes numériques.

( )2t1 yckdt =k −×2

1t2 2

k-y-ckdt = k

××

22

t3 2k-y-ckdt = k

×× ( )23t4 k-y-ckdt = k ××

[ ]4321+tdt+t k2k2kk61y= y +++

0

0,001

0,002

0,003

0,004

0,005

0,006

0,007

0,008

0,009

0,01

0 100 200 300 400

yExact y RK4

h k c0

10 3 0,01s L.mol-1s-1 mol.L-1

Page 8: Résolution numérique d'une équation différentielle …...M. SCHWING - IUFM de Lorraine RK4_02 Page 1 Résolution numérique d'une équation différentielle Méthode de RUNGE-KUTTA

M. SCHWING - IUFM de LorraineRK4_02 Page 8

Exercice RK4_3 : Circuit RC alimenté par une tension e(t).

R

C u

e

( )u-eRC1

dtdu

=

[ ]tt1 u-eRC1dt = k ×

−×× −

2kue

RC1dt =k 1

t+dt/2t2

−×× −

2kue

RC1dt = k 2

t+dt/2t3 ( )3tdtt4 k-u-eRC1dt = k +××

[ ]4321+tdt+t k2k2kk61u= u +++

On retrouvera facilement ces expressions des ki en considérant que les valeurs de k2 et k3 serapportent à la date ti +dt/2.

( )ft2sin24=e π×

R(ohm) 1,0×104 f (Hz) 50 RC 1,0×10-2

C(F) 1,0×10-6 dt(s) 5,0×10-4

-30

-20

-10

0

10

20

30

0,00 0,02 0,04 0,06 0,08 0,10

e(t)u(t)

On observe le régime transitoire initial.

Page 9: Résolution numérique d'une équation différentielle …...M. SCHWING - IUFM de Lorraine RK4_02 Page 1 Résolution numérique d'une équation différentielle Méthode de RUNGE-KUTTA

M. SCHWING - IUFM de LorraineRK4_02 Page 9

Détail de la feuille de calcul :

A B C D Et e(t) u(t) ∆u k1

6 0 =(24*SIN(2*PI()*f*t)) 0 (k1+2*k2+2*k3+k4)/6 =dt*1/RC*(B6-C6)7 =A6+dt =(24*SIN(2*PI()*f*t)) =C6+D6 (k1+2*k2+2*k3+k4)/6 =dt*1/RC*(B7-C7)8 =A7+dt =(24*SIN(2*PI()*f*t)) =C7+D7 (k1+2*k2+2*k3+k4)/6 =dt*1/RC*(B8-C8)

F G H Ik2 k3 k4 e(t+dt/2)

6 =dt/RC*(I6-C6-k1/2) =dt/RC*(I6-C6-k2/2) =dt/RC*(B7-C6-k3) =(24*SIN(2*PI()*f*(t+dt/2)))7 =dt/RC*(I7-C7-k1/2) =dt/RC*(I7-C7-k2/2) =dt/RC*(B8-C7-k3) =(24*SIN(2*PI()*f*(t+dt/2)))8 =dt/RC*(I8-C8-k1/2) =dt/RC*(I8-C8-k2/2) =dt/RC*(B9-C8-k3) =(24*SIN(2*PI()*f*(t+dt/2)))

Page 10: Résolution numérique d'une équation différentielle …...M. SCHWING - IUFM de Lorraine RK4_02 Page 1 Résolution numérique d'une équation différentielle Méthode de RUNGE-KUTTA

M. SCHWING - IUFM de LorraineRK4_02 Page 10

Exercice RK4_4 : Pendule pesant0sin'' 2

0 =θω+θ

On pose : Ω=θ

dtd

L'équation ci-dessus devient :

θω−Ω

=θ sin=

dtd

dtd 2

02

2

Méthode RK4 :

Pi

Ωθ

i

i

it

hksin

dtd

hj

dtd

1i

20

i

1i

i

=θ×ω−=

Ω

=Ω=

θ

A

+Ω=×

Ω

+θ=×

θ

+

2k

2h

dtd

2j

2h

dtd

2ht

1i

ii

1i

ii

i

hk

2jsin

dtd

hj

2k

dtd

21i

20

ia

21i

ia

=

+θ×ω−=

Ω

=+Ω=

θ

B

+Ω=×

Ω

+θ=×

θ

+

2k

2h

dtd

2j

2h

dtd

2ht

2i

iai

2i

iai

i

Page 11: Résolution numérique d'une équation différentielle …...M. SCHWING - IUFM de Lorraine RK4_02 Page 1 Résolution numérique d'une équation différentielle Méthode de RUNGE-KUTTA

M. SCHWING - IUFM de LorraineRK4_02 Page 11

hk

2jsin

dtd

hj

2k

dtd

32i

20

ib

32i

ib

=

+θ×ω−=

Ω

=+Ω=

θ

C

+Ω=×

Ω

+θ=×

θ

+

3iib

i

3iib

i

i

khdtd

jhdtd

ht

( )h

kjsindtd

hjk

dtd

43i

20

ic

43i

ic

=+θω−=

Ω

=+Ω=

θ

Soit :dtj t1 ×Ω=

( ) dtsink t201 ×θ×ω−=

dt2kj 1

t2 ×

+Ω=

dt2jsink 1

t202 ×

+θ×ω−=

dt2

kj 2t3 ×

+Ω=

dt2jsink 2

t203 ×

+θ×ω−=

[ ] dtkj 3t4 ×+Ω=

[ ]( ) dtjsink 3t204 ×+θ×ω−=

( )[ ]4321t k+k+k2k61dt)(t ++Ω=+Ω

( )[ ]4321t j+j+j2j61dt)(t ++θ=+θ

Page 12: Résolution numérique d'une équation différentielle …...M. SCHWING - IUFM de Lorraine RK4_02 Page 1 Résolution numérique d'une équation différentielle Méthode de RUNGE-KUTTA

M. SCHWING - IUFM de LorraineRK4_02 Page 12

A B C9 t teta omega

10 0 =teta0 =omega011 =A10+dt =B10+1/6*(E10+2*G10+2*I10+K10) =C10+1/6*(D10+2*F10+2*H10+J10)12 =A11+dt =B11+1/6*(E11+2*G11+2*I11+K11) =C11+1/6*(D11+2*F11+2*H11+J11)13 =A12+dt =B12+1/6*(E12+2*G12+2*I12+K12) =C12+1/6*(D12+2*F12+2*H12+J12)14 =A13+dt =B13+1/6*(E13+2*G13+2*I13+K13) =C13+1/6*(D13+2*F13+2*H13+J13)15 =A14+dt =B14+1/6*(E14+2*G14+2*I14+K14) =C14+1/6*(D14+2*F14+2*H14+J14)

D E9 k1 j1

10 =-dt*w02_*SIN(teta) =dt*omega11 =-dt*w02_*SIN(teta) =dt*omega12 =-dt*w02_*SIN(teta) =dt*omega13 =-dt*w02_*SIN(teta) =dt*omega14 =-dt*w02_*SIN(teta) =dt*omega15 =-dt*w02_*SIN(teta) =dt*omega

F G9 k2 j2

10 =-dt*w02_*SIN(teta+j1_/2) =dt*(omega+k1_/2)11 =-dt*w02_* SIN(teta+j1_/2) =dt*(omega+k1_/2)12 =-dt*w02_* SIN(teta+j1_/2) =dt*(omega+k1_/2)13 =-dt*w02_* SIN(teta+j1_/2) =dt*(omega+k1_/2)14 =-dt*w02_* SIN(teta+j1_/2) =dt*(omega+k1_/2)15 =-dt*w02_* SIN(teta+j1_/2) =dt*(omega+k1_/2)

H I9 k3 j310 =-dt*w02_*SIN(teta+j2_/2) =dt*(omega+k2_/2)11 =-dt*w02_* SIN(teta+j2_/2) =dt*(omega+k2_/2)12 =-dt*w02_* SIN(teta+j2_/2) =dt*(omega+k2_/2)13 =-dt*w02_* SIN(teta+j2_/2) =dt*(omega+k2_/2)14 =-dt*w02_* SIN(teta+j2_/2) =dt*(omega+k2_/2)15 =-dt*w02_* SIN(teta+j2_/2) =dt*(omega+k2_/2)

J K9 k4 j4

10 =-dt*w02_*SIN(teta+j3_) =dt*(omega+k3_)11 =-dt*w02_* SIN(teta+j3_) =dt*(omega+k3_)12 =-dt*w02_* SIN(teta+j3_) =dt*(omega+k3_)13 =-dt*w02_* SIN(teta+j3_) =dt*(omega+k3_)14 =-dt*w02_* SIN(teta+j3_) =dt*(omega+k3_)15 =-dt*w02_* SIN(teta+j3_) =dt*(omega+k3_)

Page 13: Résolution numérique d'une équation différentielle …...M. SCHWING - IUFM de Lorraine RK4_02 Page 1 Résolution numérique d'une équation différentielle Méthode de RUNGE-KUTTA

M. SCHWING - IUFM de LorraineRK4_02 Page 13

θ0 = 0,80 radΩ (t=0)=0,15 rad/sdt = 0,08 sω0

2=16 rad/s2

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

00,20,40,60,8

1

0 2 4 6 8 10

tetaRK4 tetaEuler

Comparer les résultats obtenus par la méthode RK4 et la méthode d’EULER.

Page 14: Résolution numérique d'une équation différentielle …...M. SCHWING - IUFM de Lorraine RK4_02 Page 1 Résolution numérique d'une équation différentielle Méthode de RUNGE-KUTTA

M. SCHWING - IUFM de LorraineRK4_02 Page 14

Exercice RK4_5 : Pendule simple

On se reportera à l’exercice RK4_4 pour la mise en équation ( θ≈θins ) :

0'' 20 =θ×ω+θ

θ"= - ω02θ

θ0 = 0,80 radΩ (t=0)= 0,15 rad/sdt = 0,16 sω0

2=16 rad/s2

-1,00-0,80-0,60-0,40-0,200,000,200,400,600,801,00

0 2 4 6 8

tetaRK4 tetaExact

Comparer les résultats obtenus par la méthode RK4 et la solution analytique :

teta =teta0/COS(ATAN(-omega0/w0/teta0))*COS(w0*t+ATAN(-omega0/w0/teta0))

Page 15: Résolution numérique d'une équation différentielle …...M. SCHWING - IUFM de Lorraine RK4_02 Page 1 Résolution numérique d'une équation différentielle Méthode de RUNGE-KUTTA

M. SCHWING - IUFM de LorraineRK4_02 Page 15

Exercice RK4_6 :Oscillateur amorti0yy'2'y' 2

0 =ω+α+

y

On pose : vdtdy

=

L'équation ci-dessus devient :

y-v-2=dtdv

dtyd 2

02

2ωα=

Méthode RK4 :

i

i

i

vyt

hkyv2

dtdv

hjv

dtdy

1i

20i

i

1i

i

=×ω−×α−=

==

A

+=×

+

+=×

+

+

2kv

2h

dtdvv

2jy

2h

dtdyy

2ht

1i

ii

1i

ii

i

hk

2jy

2kv2

dtdv

hj

2kv

dtdy

21i

20

1i

ia

21i

ia

=

+×ω−

+×α−=

=+=

Page 16: Résolution numérique d'une équation différentielle …...M. SCHWING - IUFM de Lorraine RK4_02 Page 1 Résolution numérique d'une équation différentielle Méthode de RUNGE-KUTTA

M. SCHWING - IUFM de LorraineRK4_02 Page 16

B

+=×

+

+=×

+

+

2kv

2h

dtdvv

2jy

2h

dtdyy

2ht

2i

iai

2i

iai

i

hk

2jy

2kv2

dtdv

hj

2kv

dtdy

32i

20

2i

ib

32i

ib

=

+×ω−

+×α−=

=+=

C

+=×

+

+=×

+

+

3iib

i

3iib

i

i

kvhdtdvv

jyhdtdyy

ht

( ) ( )h

kjykv2dtdv

hjkv

dtdy

43i

203i

ic

43i

ic

=+ω−+×α−=

=+=

Soit :dtvj t1 ×=

( ) dtyv2k t20t1 ××ω−×α−=

dt2kvj 1

t2 ×

+=

dt2jy

2kv2k 1

t20

1t2 ×

+×ω−

+×α−=

dt2

kvj 2t3 ×

+=

dt2jy

2kv2k 2

t20

2t3 ×

+×ω−

+×α−=

[ ] dtkvj 3t4 ×+=

Page 17: Résolution numérique d'une équation différentielle …...M. SCHWING - IUFM de Lorraine RK4_02 Page 1 Résolution numérique d'une équation différentielle Méthode de RUNGE-KUTTA

M. SCHWING - IUFM de LorraineRK4_02 Page 17

[ ] [ ]( ) dtjykv2k 3t203t4 ×+×ω−+×α−=

( )[ ]4321t k+k+k2k61vdt)v(t ++=+

( )[ ]4321t j+j+j2j61ydt)y(t ++=+

Page 18: Résolution numérique d'une équation différentielle …...M. SCHWING - IUFM de Lorraine RK4_02 Page 1 Résolution numérique d'une équation différentielle Méthode de RUNGE-KUTTA

M. SCHWING - IUFM de LorraineRK4_02 Page 18

alpha 1,00 s-1 v0 0,00 m.s-1

w02 50,0 s-2 y0 0,05 mdt 0,10 s

A B C

x j1 k17 0 =dt*J7 =-dt*(2*alpha*v+w02_*y)8 =A7+dt =dt*J8 =-dt*(2*alpha*v+w02_*y)9 =A8+dt =dt*J9 =-dt*(2*alpha*v+w02_*y)

D E F

j2 k2 j37 =dt*(v+k1_/2) =-dt*(2*alpha*(v+k1_/2)+w02_*(y+j1_/2)) =dt*(v+k2_/2)8 =dt*(v+k1_/2) =-dt*(2*alpha*(v+k1_/2)+w02_*(y+j1_/2)) =dt*(v+k2_/2)9 =dt*(v+k1_/2) =-dt*(2*alpha*(v+k1_/2)+w02_*(y+j1_/2)) =dt*(v+k2_/2)

G H I

k3 j4 k47 =-dt*(2*alpha*(v+k2_/2)+w02_*(y+j2_/2)) =dt*(v+k3_) =-dt*(2*alpha*(v+k3_)+w02_*(y+j3_))8 =-dt*(2*alpha*(v+k2_/2)+w02_*(y+j2_/2)) =dt*(v+k3_) =-dt*(2*alpha*(v+k3_)+w02_*(y+j3_))9 =-dt*(2*alpha*(v+k2_/2)+w02_*(y+j2_/2)) =dt*(v+k3_) =-dt*(2*alpha*(v+k3_)+w02_*(y+j3_))

J K L M

v y k j7 =v0 =y0 =1/6*(k1_+2*k2_+2*k3_+k4_) =1/6*(j1_+2*j2_+2*j3_+j4_)8 =J7+L7 =K7+M7 =1/6*(k1_+2*k2_+2*k3_+k4_) =1/6*(j1_+2*j2_+2*j3_+j4_)9 =J8+L8 =K8+M8 =1/6*(k1_+2*k2_+2*k3_+k4_) =1/6*(j1_+2*j2_+2*j3_+j4_)

Page 19: Résolution numérique d'une équation différentielle …...M. SCHWING - IUFM de Lorraine RK4_02 Page 1 Résolution numérique d'une équation différentielle Méthode de RUNGE-KUTTA

M. SCHWING - IUFM de LorraineRK4_02 Page 19

Différents régimes :

Régime pseudo-périodique

α2 - ω02 < 0

y(0) = 5 cmv(0) = 0α = 1ω0

2=50-4,00

-3,00

-2,00

-1,00

0,00

1,00

2,00

3,00

4,00

5,00

6,00

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

Régime critique

α2 - ω02 = 0

y(0) = 5 cmv(0) = 0α = 1ω0

2=1

Le retour à l'équilibres'effectue plus rapidement

que dans le régimeapériodique

0,00

1,00

2,00

3,00

4,00

5,00

6,00

0,00 2,00 4,00 6,00 8,00 10,00

Régime apériodique

α2 - ω02 > 0

y(0) = 5 cmv(0) = 0α = 1ω0

2=0,40,00

1,00

2,00

3,00

4,00

5,00

6,00

0,00 5,00 10,00 15,00 20,00

Page 20: Résolution numérique d'une équation différentielle …...M. SCHWING - IUFM de Lorraine RK4_02 Page 1 Résolution numérique d'une équation différentielle Méthode de RUNGE-KUTTA

M. SCHWING - IUFM de LorraineRK4_02 Page 20

Exercice RK4_7 : Mouvement d'un projectile avec frottements

x

y

α

v0

fRgmam +=

+×β−= j

v

ViVR

y

3y2

xf . L'expression y

3y

vV

permet de tenir compte de la valeur algébrique.

×β−−=

×β−=

y

3y

2

2

2x2

2

V

Vg

dtyd

Vdt

xd

Méthode RK4

Pour la projection de l'équation différentielle sur l'axe des x :

2x

x

x

Vdt

dv

dtdxv

×β−=

=

A partir des conditions initiales : t=0 ; y(0)=0; x(0) =0; vx(0), vy(0), on calcule de proche enproches les valeurs suivantes :

Page 21: Résolution numérique d'une équation différentielle …...M. SCHWING - IUFM de Lorraine RK4_02 Page 1 Résolution numérique d'une équation différentielle Méthode de RUNGE-KUTTA

M. SCHWING - IUFM de LorraineRK4_02 Page 21

Pi

( )ix

i

i

v

x

t

( )

( )h

kvdt

dvhjv

dtdx

x12ix

i

x

x1ix

i

=×β−=

==

A

( ) ( )

+=×

+

+=×

+

+

2kv

2h

dtdvv

2jx

2h

dtdxx

2ht

1xix

i

xix

1xi

ii

i

( )

( )h

k2

kvdt

dv

hj

2kv

dtdx

x22

x1ix

ia

x

x2x1ix

ia

=

+×β−=

=+=

Page 22: Résolution numérique d'une équation différentielle …...M. SCHWING - IUFM de Lorraine RK4_02 Page 1 Résolution numérique d'une équation différentielle Méthode de RUNGE-KUTTA

M. SCHWING - IUFM de LorraineRK4_02 Page 22

B

( ) ( )

+=×

+

+=×

+

+

2kv

2h

dtdvv

2jx

2h

dtdxx

2ht

2xix

ia

xix

2xi

iai

i

( )

( )h

k2

kvdt

dv

hj

2kv

dtdx

x32

x2ix

ib

x

x3x2ix

ib

=

+×β−=

=+=

C

( ) ( )

+=×

+

+=×

+

+

3xixib

xix

3xiib

i

i

kvhdt

dvv

jxhdtdxx

ht

( )

( )( )h

kkvdt

dvh

jkvdtdx

x42x3ix

ic

x

x4x3ix

ic

=+β−=

=+=

Pi+1

( ) ( ) ( )[ ]ix4x3x2x1ix1ix k+k+k2k61vv ++=+

( )[ ]ix4x3x2x1i1i j+j+j2j61xx ++=+

Page 23: Résolution numérique d'une équation différentielle …...M. SCHWING - IUFM de Lorraine RK4_02 Page 1 Résolution numérique d'une équation différentielle Méthode de RUNGE-KUTTA

M. SCHWING - IUFM de LorraineRK4_02 Page 23

Pour la projection de l'équation différentielle sur l'axe des y :

y

3yy

y

v

Vg

dtdv

dtdyv

×β−−=

=

A partir des conditions initiales : t=0 ; y(0)=0; x(0) =0; vx(0), vy(0), on calcule de proche enproches les valeurs suivantes :

Pi

( )

iy

i

i

v

y

t

( )

( )( ) h

k

v

vg

dtdv

hj

dtdyv

y1

iy

3iy

i

y

y1

iiy

=×β−−=

=

=

A

( ) ( )

+=×

+

+=×

+

+

2k

v2h

dtdv

v

2j

y2h

dtdyy

2ht

1yiy

i

yiy

1yi

ii

i

( )

( )

( ) hk

2k

v

2k

vg

dtdv

hj

2k

vdtdy

y2

y1iy

3y1

iy

ia

y

y2y1iy

ia

=

+

+

×β−−=

=+=

Page 24: Résolution numérique d'une équation différentielle …...M. SCHWING - IUFM de Lorraine RK4_02 Page 1 Résolution numérique d'une équation différentielle Méthode de RUNGE-KUTTA

M. SCHWING - IUFM de LorraineRK4_02 Page 24

B

( ) ( )

+=×

+

+=×

+

+

2k

v2h

dtdv

v

2j

y2h

dtdyy

2ht

2yiy

ia

yiy

2yi

iai

i

( )

( )

( ) hk

2k

v

2k

vg

dtdv

hj

2k

vdtdy

y3

y2iy

3y2

iy

ib

y

y3y2iy

ib

=

+

+

×β−−=

=+=

C

( ) ( )

+=×

+

+=×

+

+

3yiyib

yiy

3yiib

i

i

kvhdt

dvv

jyhdtdyy

ht

( )

( )( )( ) h

k

kv

kvg

dtdv

hj

kvdtdy

y43

y3iy

y3iy

ic

y

y4y3iy

ic

=+

+β−−=

=+=

Pi+1

( ) ( )[ ]iy4y3y2y1iy1iy k+k+k2k

61vv ++=

+

( )[ ]iy4y3y2y1i1i j+j+j2j61yy ++=+

Page 25: Résolution numérique d'une équation différentielle …...M. SCHWING - IUFM de Lorraine RK4_02 Page 1 Résolution numérique d'une équation différentielle Méthode de RUNGE-KUTTA

M. SCHWING - IUFM de LorraineRK4_02 Page 25

dt 0,01 Sg 10,0 m.s-2

B 0,30 m-1

vx0 4,00 m.s-1

vy0 3,00 m.s-1

0,00

0,05

0,10

0,15

0,20

0,25

0,30

0,35

0,40

0,45

0 1 1 2 2

y=f(x)