Professional Documents
Culture Documents
Reggio
1
S’appuie sur la série de Taylor
dy 2
d yh2 df h 2
yi +1 = yi + h+ 2 + ... yi +1 = yi + f i h + + ...
dx d x 2 dx 2
h h
xi-2 xi-1 xi xi+1 xi+2
M. Reggio
1
dy
yi +=
1 yi + h
dx i
dy
= f (t , y ) yi +=
1 yi + f i ( xi , yi )h
dt
M. Reggio
1
y ( x ) = y ( x 0 ) + f (ξ )( x − x 0 )
y’(ξ)=f(ξ)
ξ
M. Reggio
1
y1 = y 0 + f ( x 0 )( x1 − x 0 )
M. Reggio
1
dy
= y ′ = f ( x , y ); y(x 0 ) = y 0
dx
y0
x0 x1 x2 x3
M. Reggio
1
dy
= x y , y(0) = 1, 0≤ x≤1
dx
y = ( 1 + x 2 / 4) 2
y i + 1 = y i + hf i , f = x y
x, y x y
y(0.5) = y(0) + hf(0,1.0) = 1 + (0.5)(0 1) = 1.0
y (1.0) = y (0.5) + hf (0.5,1.0) = 1.0 + (0.5)(0.5 1.0 ) = 1.25
M. Reggio
1
yi +=
1 yi + h xi yi y(0)= 1
x, y
y(0.25) = y(0) + hf(0, 1.0)
= 1+ (0.25)(0 1) = 1.0
1
dy
= y′ = x y ; y(0 ) = 1
dx
1
dy
yi +=
1 yi + h
dx i
yi +=
1 yi + f i ( xi , yi )h
M. Reggio
1
2
h
y (t 0 + h) = y (t 0 ) + h( y ' (t 0 )) + y '' (t 0 ) + ..
2
y( t0 + h =
) y( t0 ) + y' ( t0 )h + O( h 2 ).
La précision est proportionnelle à h
Pour obtenir une solution 100 fois plus précise on
doit avoir 100 fois plus de pas
M. Reggio
1
h h
xi-2 xi-1 xi xi+1 xi+2
dy 2
d yh 2 df h 2
yi +1 = yi + h+ 2 + ... yi +1 = yi + f i h + + ...
dx d x 2 dx 2
yi +1 = yi + f i ( xi , yi ) h
M. Reggio
1
dy d 2 y h 2 d 3 y h3
yi +1 =
yi + h + 2
+ 3
+...
dx d x 2 d x 3!
M. Reggio
1
dy d 2 y h 2 d 3 y h3
yi +1 =
yi + h + 2
+ 3
+...
dx d x 2 d x 3!
y′ = x 2 + xy, 0 ≤ x ≤ 1
Exemple :
y (0) = 1
d 2 dy
y′′ = ( x + xy ) = 2 x + y + x = 2 x + y + x( x 2 + xy )
dx dx
2
h
yi +1 = yi + h( xi2 + xi yi ) + (2 xi + yi + xi3 + xi2 yi )
2 M. Reggio
1
h2
y ( x + h)= y ( x) + hy′( x) + y′′( x) + O(h3 )
2
y′( x) = f ( x, y )
∂f ∂f dy ∂f ∂f
y′′( x) = + = + f =f x + ff y
∂x ∂y dx ∂x ∂y
M. Reggio
1
y′( x ) = f
y′′( x=
) f x + ff y
y'''( x ) =f xx + 2 ff xy + f x f y + f y f x + f yy f + f y f
2 2
2 2 n n
dy d y h d y h
yi +1 =
yi + h+ 2
+ ... n
+
dx ï dx i 2 d x ï n!
M. Reggio
1
dy
= 2 x + y ; y (0) = 1
dx
y ' = 2x + y = 1
y'' = 2 + y' = 3
y'' ' = y'' = 3
y ' = y = ... y = 3
v v n
2 3 n
3x 3x 3x
y ( x) = 1 + x + + + ... + = 3e − 2 − 2x
x
M. Reggio
2 3! n!
1
y ' = sin x + cos y
y (0) = 0
y ' = sin x + cos y
y ' ' = cos x − y ' sin y = cos x − (sin x + cos y ) sin y
y ' ' = cos x − sin x sin y − sin y cos y
y ' ' ' = − sin x − y ' ' sin y − ( y ') cos y
2
y 'v = − cos x − y ' ' ' sin y − y ' ' y ' cos y − 2 y ' y ' ' cos y + ( y ') sin y
3
y v = sin x − y 'v sin y − y ' ' ' y ' cos y − y ' ' ' y ' cos y − ( y ' ') cos y + y ' ' ( y ') sin y
2 2
− 2( y ' ') cos y − 2 y ' y ' ' ' cos y + 2( y ') y ' ' sin y + 3( y ') y ' ' sin y +M.(Reggio
y ') cos y
2 2 2 4
1
y v = sin x − y 'v sin y − 4 y ' ' ' y ' cos y − 3( y ' ') cos y + 6 y ' ' ( y ') sin y + ( y ') cos y
2 2 4
y v ' = cos x − y v sin y − y 'v y ' cos y − 4 y 'v y ' cos y − 4 y ' ' ' y ' ' cos y +
+ 4 y ' ' ' ( y ') sin y − 6 y ' ' y ' ' ' cos y + 3( y ' ') y ' sin y + 12 y ' ( y ' ') sin y +
2 2 2
+ 6( y ') y ' ' ' sin y + 6( y ') y ' ' cos y + 4( y ') y ' ' cos y − ( y ') sin y
2 3 3 5
y v ' = cos x − y v sin y − 5 y 'v y ' cos y − 10 y ' ' ' y ' ' cos y +
+ 10 y ' ' ' ( y ') sin y + 15( y ' ') y ' sin y + 6( y ') y ' ' cos y +
2 2 3
M. Reggio
1
UNE MÉTHODE DITE À UN PAS EST DE LA
FORME:
yi +1 = yi + hΦ (t i , yi )
OUΦ EST UNE FONCTION QUELCONQUE.
POUR LA MÉTHODE D’ EULER Φ = f
dy
= f (t , y )
dt M. Reggio
1
M. Reggio
1
df fi +1 − fi
≈
dx h
2
f df+ h
f
=yiy+
yyi +i1+=
1
f h+
i + ih
i i +1 + ...
d x2 2
M. Reggio
1
fi fi+1
f(x)
fi-1
aire = hfi
yi+1 = yi + hfi
ih (i+1)h
x
M. Reggio
1
fi fi+1
f(x)
fi-1
aire = hfi+1
yi+1 = yi + hfi+1
ih (i+1)h
x
M. Reggio
1
fi fi+1
f(x)
fi-1
ih (i+1)h
x
M. Reggio
1
Méthode implicite yn +1 = yn +
h
( f (tn , yn ) + f (tn+1 , yn+1 ))
2
yn +1 = yn +
h
( f (tn , yn ) + f (tn+1 ~yn+1 ))
2
M. Reggio
1
y0 = y( x0 )
Prediction: y = yi + h f ( xi , yi )
0
i +1
yi + ( f ( xi , yi ) + f ( xi +1 , yik+1 ))
k +1 h
Correction: y i +1 =
2
1
Avec la pente f(xi,yi) évaluée en xi et on prédit
yp(xi+1)
y yp(xi+1 )
xi xi+1 M. Reggio
1
On utilise yp(xi+1) pour calculer la pente f(xi+1,yi+1)
y yp(xi+1 )
xi xi+1 M. Reggio
1
On calcule alors la moyenne entre le pentes
f(xi ,yi) et f(xi+1 ,yi+1 )
y y(xi+1 )
xi xi+1 M. Reggio
1
On utilise alors la pente moyenne pour
recalculer yi+1
y y(xi+1 )
yi + ( f ( xi , yi ) + f ( xi +1 , yi +1 ) )
h
yi +1 =
2
h
xi xi+1 M. Reggio
1
yi + ( f ( xi , yi ) + f ( xi +1 , yi +1 ) )
h
yi +1 = y i +1 = y i + φh
2
y y(xi+1 )
xi xi+1 M. Reggio
1
On utilise la méthode d’ Euler pour prédire une valeur
de y au point milieu de l’intervalle
h
yi +1/ 2 = yi + f i
2
Cette quantité est utilisée pour estimer la pente en
ce point milieu
1
• On utilise cette pente et on applique la méthode
d’Euler dans l’intervalle [xi ,xi+1]
f i + f i +1
1i +=
yi +y= yih+ fi +1/ 2 h
1 yi +
2
M. Reggio
1
• Avec la pente f(xi,yi) évaluée en xi et on
prédit y(xi+1/2)
y y(xi+1/2 )
h/2
xi xi+1/2
M. Reggio
1
y
y(xi+1/2 )
y(xi+1 ) yi +=1 yi + h f ( xi +1 / 2 , yi +1 / 2 )
h/2
h
xi xi+1/2 xi+1
M. Reggio
1
Carl Runge Martin Kutta
M. Reggio
1
Obtenir des méthodes faciles, plus
précises sans l’ utilisation des série de
Taylor:
d y d 2 y h2 d 3 y h3
yi +1 = yi + h+ 2 2 + 3 3! + ...
d x d x d x
Comment?
M. Reggio
1
yi+1 __
__
=f w1 f1 + w2 f 2
f __
dy ∆y =h f
= f (t , y )
dt
f ( xi , ti )
yi
h
ti ti+1
M. Reggio
1
yi +1 =
yi + ∆y yi +1 =
yi + hf
__
=f w1 f1 + w2 f 2
The image part with relationship ID rId11 was not found in the file.
∆y21 = a21k1
M. Reggio
1
w1∆y1 + w2 ∆y2 = ∆y
yi +1 =yi + w1k1 + w2 k2
k1 = hf (ti , yi )
k2 = hf (ti + c2 h, yi + a21k1 )
w1 et w2 sont des poids
f (ti , yi ) et f (ti + c2 h, yi + a21k1 ) sont des pentes
Il faut déterminer w1, w2, c2 et a21
M. Reggio
1
f(x1+c2h,y1+a21k1) k2=h f(x1+c2h,y1+a21k1)
kl=h f(x1,y1)
a21k1
f ( x1 , y1 )
y1
c2h
x1 h x2
M. Reggio
1
Séries de Taylor
2
dy d y h2
yi + 1 = yi + h+ 2 + ..
dx dx 2 3 équations,
un paramètre est libre
h 2
w1
yi + 1 = yi + fh + f ' + .. w
2 2
yi +1 = yi + w1 k1 + w2 k 2 c2
a21 M. Reggio
1
=c2 1/=
2, a21 1/ 2, k1 = =
∆y1 , w1 0 w2 = 1 k 1 = hf ( x i , y i ) = hf 1
h 1
k 2 = hf ( x i + , y i + k 1 )
f2 2 2
= hf 2
y i +1 = y i + k 2
f1 k1 = hf ( xi , yi ) 1/ 2 1/ 2
k2 =hf ( xi + c2 h, yi + a21k1 )
h
yi +1 =yi + w1k1 + w2 k2
0 1
xi xi+1/2 xi+1 M. Reggio
1
=k1 hf= ( xi , yi ) hf1
k =hf ( x + c h, y + a k )
f2 2 i 2 i 21 1
= hf 2
y =y + w k + w k
i +1 i 1 1 2 2
= yi + h( w1 f1 + w2 f 2 )
f1
c2 a21
h w1 w2
1
k1 = hf ( xi , yi )
k2 =hf ( xi + c2 h, yi + a21k1 )
yi + ( f ( xi , yi ) + f ( xi +1 , yi +1 ) )
h
yi +1 =
yi +1 =yi + w1k1 + w2 k2 2
k1 = hf ( xi , yi ) = hf1
k 2 = hf ( xi + h, yi + k1 ) = hf 2
1 1
yi +1 = yi + k 2 + k 2 1 1
2 2
1/2 1/2
M. Reggio
1
k1 = hf ( xi , yi )
k2 =hf ( xi + c2 h, yi + a21k1 )
yi +1 =yi + w1k1 + w2 k2
k1 hf=
( xi , yi ) hf1
2 2
k2 = hf ( xi + h, yi + k1 ) = hf 2
3 3
1 3
yi +1 =yi + k1 + k2 2/3 2/3
4 4
1/4 3/4
M. Reggio
1
k1 = hf ( xi , yi )
k2 =hf ( xi + c2 h, yi + a21k1 )
yi +1 =yi + w1k1 + w2 k2
1
1
f = ( f1 + 2 f 2 + 2 f 3 + f 4 )
6 f2
f4
f3
f1 f
1
h
yi + 1 = yi + ( k 1 + 2 k 2 + 2 k 3 + k 4 )
6
k1 = f (t n , yn )
h h
k 2 = f t n + , yn + k1
2 2
h h
k3 = f t n + , yn + k 2
2 2
k 4 = f (t n + h, yn + hk3 ) M. Reggio
1
dy t − y
=
dt 2
y (0) = 1
Avec ∆t=h=0.25, on a
M. Reggio
1
dy t − y
=
dt 2
y (0) = 1
0 −1 h=0.25
f (0,1) = =
−0.5 k1 =
hf1 =
0.25(−0.5)
2
Δy1
0.25
tn + h / 2 =
0+ =
0.125 yn + k1 / 2 =
1 + 1/ 2(0.25(−0.5)) =
0.9375
2
0.125 − 0.9375
f2 = = −0.40625 k2 =
hf 2 =
0.25(−0.40625)
2
Δy2
0.25
tn + h / 2 =
0+ =
0.125 yn + k 2 / 2 =
1 + 1/ 2(0.25(−0.40625) =
0.94921875
2
M. Reggio
1
dy t − y
=
dt 2
y ( 0) = 1
0.25
tn + h / 2 =
0+ =
0.125 yn + k 2 / 2 =
1 + 1/ 2(0.25(−0.4625) =
0.94921875
2
0.125 − 0.94921875
f3 = =
−0.4121094 k3 =
hf3 =
0.25(−0.4121094)
2
Δy3
tn + h =0 + 0.25 =0.25 yn + k3 =1 + 0.25(−0.4121094) =0.89697265
0.25 − 0.89697265
f4 = =
−0.3234863 k4 =
hf 4 =
0.25(−0.3234863)
2
Δy4
1
y1 = y0 + (k1 + 2k2 + 2k3 + k4 ) =0.8984375
6 M. Reggio
1
dy
= x y , y(0) = 1, 0≤ x≤1
dx
= k1 hf= =
( x0 , y0 ) (0.5)(0 1.0) 0
k2 = hf ( x0 + 0.5h, y0 + 0.5k1 ) = hf (0.25, 1.0) =(0.50)(0.25 1) = 0.125
k3 =hf ( x0 + 0.5h, y0 + 0.5k2 ) = hf (0.25, 1.0625) = (0.5)(0.25 1.0625) =0.128847
k4 = hf ( x0 + h, y0 + k3 ) = hf (0.5, 1.128847) = (0.5)(0.5 1.128847) = 0.265618
1 1
y1 = y0 + (k1 + 2k2 + 2k3 + k4 ) = 1 + [ 0 + 2(0.125) + 2(0.128847) + 0.265618]
6 6
=
1.128885 (ε t 0.0018%)
M. Reggio
1
= −2 x − y, y (0 ) = −1
dy
dx
M. Reggio
1
h
yi + 1 = yi + ( k 1 + 2 k 2 + 2 k 3 + k 4 )
6
k1 = f (t n , yn )
h h
k 2 = f t n + , yn + k1
2 2
h h
k3 = f t n + , yn + k 2
2 2
k 4 = f (t n + h, yn + hk3 ) M. Reggio
1
aij
1/2 1/2
cj 1/2 0 1/2
1 0 0 1
1/6 1/3 1/3 1/6
wi
M. Reggio
1
k1 = hf ( xi , yi ) = hf 1
k 2 = hf ( xi + c2 h , yi + a21k1 ) = hf 2
k3 = hf ( xi + c3 h , yi + a31k1 + a32 k 2 ) = hf 3
k4 = hf ( xi + c4 h , yi + a41k1 + a42 k 2 + a43 k3 ) = hf 4
=
∆xm cm h, ∆
=ymn amn kn
yi +1 = yi + w1k1 + w2 k 2 + w3 k3 + w4 k4
M. Reggio
1
k1
k2 c2 a21 0< cm <1
k3 c3 a31 a32
k4 c4 a41 a42 a43
w1 w2 w3 w4
M. Reggio
1
Quelques coefficients aij sont nuls
k1 = hf ( xi , yi ) 1/2 1/2 = hf 1
k 2 = hf ( xi + c2 h , yi + a21k1 ) 1/2 = hf 2
1/2
k3 = hf ( xi + c3 h , yi + a31k1 + a32 k 2 ) 1 = hf 3
1
k4 = hf ( xi + c4 h , yi0+ a41k1 + a42 k 2 + a43 k3 ) = hf 4
0 0
yi +1 = yi + w1k1 + w2 k 2 + w3 k3 + w4 k4
1/6 2/6 2/6 1/6
M. Reggio
1
k1 = hf ( xi , yi ) = hf 1
k 2 = hf ( xi + c2 h , yi + a21k1 ) = hf 2
k3 = hf ( xi + c3 h , yi + a31k1 + a32 k 2 ) = hf 3
k4 = hf ( xi + c4 h , yi + a41k1 + a42 k 2 + a43 k3 ) = hf 4
Δyinterne
k m = hf ( xi + cm h , yi + am1k1 + + am ,m −1k m −1 ) = hf m
yi +1 = yi + w1k1 + w2 k 2 + + wm k m
= yi + h( w1 f 1 + w2 f 2 + + wm f m )
Δyfinale M. Reggio
1
c2 a21
0< cm <1
c3 a31 a32
c4 a41 a42 a43
cm am1 am 2 am 3 am ,m −1
w1 w2 w3 wm −1 wm
M. Reggio
1
1/2 1/2
1/2 0 0 1/2
Lawson d’ordre 5
3/4 0 -3/16 6/16 9/16
M. Reggio
1
1/3 1/3
2/3 0 2/3
1/3 1/12 1/3 -1/12
M. Reggio
1
M. Reggio
1
On voudrait estimer l’erreur au fur et à mesure que
les calculs progressent et ainsi modifier la grandeur
du pas h
Une possibilité est d’effectuer les calculs deux fois.
Une première fois avec un pas h et une seconde fois
avec un pas 2h
Une autre possibilité est d’effectuer les calculs deux
fois avec deux méthodes d’ordre successif (4 et 5 par
exemple).
M. Reggio
1
Valeur exacte
y( x + h ) = y RK 4 + O( h 5 )
Valeur exacte
y( x + h ) = y RK 5 + O( h )6
1
y RK 5 − y RK 4 ≈= O( h ) − O( h )
5 6
O( h ) << O( h )
6 5
M. Reggio
1
1 1
Ordre 4
4 4
3 3 9
8 32 32
12 1932 −7200 7296
13 2197 2197 2197
439 3680 −845
1 −8
216 513 4104
25 1408 2197 1
0 −
126 2565 41047 5
M. Reggio
1
1 1
4 4 Ordre 5
3 3 9
8 32 32
12 1932 − 7200 7296
13 2197 2197 2197
439 3680 − 845
1 −8
216 513 4104
1 −8 − 3544 1859 − 11
2
2 27 2565 4104 40
16 6656 28561 −9 2
0
135 12825 56430 50 55
M. Reggio
1
Mêmes coefficients (k1, k2, k3, k4, k5) pour l’ordre 4 et 5
Plus économique
Estimation d’erreur – solution à pas de temps adaptatif (variable)
16 25 6656 1408
Erreur= − k1 + ( 0 − 0 ) k2 + − k3
135 216 12825 2565
28561 2197 −9 2
+ − k 4 + − 5 k5 + k 6
56430 4104 50 55
M. Reggio
1
Calcul de yi+1 avec une méthode R-K-F de 4ièmeordre ⇒
(y1)4ieme
Calcul de yi+1 avec une méthode R-K-F de 5ièmeordre ⇒
(y2)5ieme
Calcul de l’erreur estimée Ee ~ (y2)5ieme - (y1)4ieme
Ajustement du pas en fonction de l’ Ee
M. Reggio
1
cj aij
1/2 1/2
3/4 0 3/4
wi 2/9 1/3 4/9 0
w*i 7/24 1/4 1/3 1/8
= h∑ ( wi − wi* ) ki
s
Erreur
i =1
M. Reggio
1
cj aij
1/5 1/5
3/10 3/40 9/40
4/5 44/45 −56/15 32/9
= h∑ ( wi − wi* ) ki
s
Erreur M. Reggio
i =1
1
Méthodes Runge-Kutta d’ordre 2 et 3
[ x, y ] = ode23 (‘F’, tspan, y0)
Contrôle du pas
M. Reggio