Vous êtes sur la page 1sur 29

CHAPITRE 8

CALCUL NUMERIQUE DES EQUATIONSDIFFERENTIELLES


ORDINAIRES (I)
1.1 Définitions
• Equation différentielle : c’est une relation entre une variablet, une fonction inconnuey(t), et
(n)
certaines de ces dérivées: F ( t , y , y' , y" ,...y ) = 0 .
• Ordre d’une équation différentielle : est égale au maximum de l’ordre des dérivées qui y figurent.
• Forme résolue ou explicite d’une équation différentielle: c’est la forme qui donne la dérivée
(k) ( k −1 )
d’ordre le plus élevé en fonction des autres: y = f ( t , y , y' , y" ,...y ).
• Système différentiel: c’est l’ensemble de p relations entre la variablet, pfonctions inconnues de
cette variable, et certaines de leurs dérivées:

 F ( t , y , y ' , y" , z , z ' , z " ) = 0


Exemple:  deux relations de deux fonctions de y et z.
 G ( t , y , y ' , y " , z , z ' , z " ) = 0

• Ordre d’un système différentiel: est égale à la somme des ordres maximum k i des dérivées des p

fonctions indépendantes fi .

1.2 Problème de cauchy pour les équations differentielles ordinaires


8.2.1 Théorie élémentaire des problèmes de Cauchy:(condition initiale)

Définition1:Une fonction 𝑓(𝑡, 𝑦) est dite Lipschitzienne en ysur 𝐷 𝑅 2 s’il existe une constante
𝐿  0 telle que: f ( t , y1 ) − f ( t , y 2 )  L y1 − y 2  ( t , y1 ) et ( t , y 2 )  D
La constante 𝐿 est appelée la constante de Lipschitz pour la fonction 𝑓.

Exemple 1:


La fonction f ( t , y ) = t y , avec (t , y )  D = (t , y )  R 2 / 1  t  2, − 3  y  4 
est Lipchitzienne.En effet,
f ( t , y1 ) − f ( t , y 2 ) = t y1 − t y 2 = t y1 − y 2

 t y1 − y 2  2 y1 − y 2

Définition 2:Un ensembleD  R2est dit convexe si quels que soient les couples: ( t1 , y1 )

et ( t 2 , y 2 )  D , le couple: (( 1 −  )t1 + t 2 , ( 1 −  ) y1 + y 2 ) appartient aussi à D quel que soit


[0,1].

1
Domaine Convexe Domaine Non convexe

Théorème 1:Soit f ( t , y ) une fonction définie sur un convexe 𝐷 𝑅 2 . S’il existe uneconstante 𝐿  0
f ( t , y )
telle que:  L  (t, y )  D
y

Alors 𝑓 est Lipschitzienne en 𝑦 sur 𝐷, et 𝐿 est la constante de Lipshitz.

Définition 3:Le problème donné de la manière suivante:


Existe-t-il une fonction 𝑦(𝑡) définie sur [𝑎, 𝑏] à valeur dans 𝑅,qui soit dérivable sur [𝑎, 𝑏], et qui
vérifie:
 y( a ) = 
( I )
 y' ( t ) = dy / dt = f ( t , y ( t )) , t  [ a,b ]

est appelé problème de Cauchy ou problème de condition initiale.


Théorème 2: Soit f ( t , y ) une fonction continue sur D = (t , y )  R 2 / a  t  b, −   y  + 
Si 𝑓 est Lipchitzienne en 𝑦 sur 𝐷, alors le problème de Cauchy(I) possè une solution unique 𝑦(𝑡).

Exemple 2:Considérons le problème suivant:

 y( 0 ) = 0
 y' ( t ) = dy / dt = 1 + t sin( ty ) ,
 t  [ 0 ,2 ]

possède une solution unique. En effet, d’après le théorème de la valeur moyenne, il existe  compris
entre 𝑦1 et 𝑦2 tel que:

2
f ( t , y 2 ) − f ( t , y1 ) f ( t ,  ) 2
= = t cos( t )
y2 − y1 y

2
f ( t , y 2 ) − f ( t , y1 ) = ( y 2 − y1 )t cos( t )  f ( t , y ) − f ( t , y )  4 y 2 − y1
2 1
 f est Lipchitzienne en 𝑦. Et puisqu’elle est continue sur D, il existe donc une solution unique.

8.2.2 Méthode d’Euler


Dans ce qui suit nous essayons de développer des méthodes numériques pour trouver une solution
approchée de la solution exacte du problème de Cauchy précédent. Commençons par le
développement de la méthode d’Euler qui est la plus simple et la moins utilisée. Pour faire ceci,
considérons une partition: {t0, t1, ...,tN} de [𝑎, 𝑏] telle que: t i = a + ih , i = 0 ,..., N , où
h = ( b − a ) / N . Supposons que la solution exacte 𝑦(𝑡) ait deux dérivées continues sur [𝑎, 𝑏].
Alors d’après la formule de Taylor on a:
2
y i +1 = y ( t i +1 ) = y ( t i + h ) = y i + hy' i + ( h )
2
y i +1 = y i + hf ( t i , y i ) +  ( h ) , i = 0 ,..., N − 1 (1)

Lorsque ℎ est suffisamment petit,  (h2) est aussi petit. En négligeant ce terme et en posant:

wi  yi , i = 0 ,..., N − 1 , l’équation (1) devient:

wi +1 = wi + hf ( t i , wi ) , i = 0 ,..., N − 1 et w0 = y0 = 

Interprétation géométrique:
Sur le petit intervalle [𝑡0 , 𝑡0 + ℎ] on suppose que la
courbe 𝑦(𝑡) n’est pas très éloignée de sa tangente en
(𝑡0 , 𝑦(𝑡0 )) et par conséquent la solution 𝑦 au point 𝒕𝟏 est
proche de l’ordonnée 𝒘𝟏 du point d’intersection de la
parallèle passant par 𝑡1 à l’axe des ordonnées avec cette
tangente.
Pour obtenir une approximation de (𝑡2 ) , on suppose que
𝑦’(𝑡1 )  𝑓(𝑡1 , 𝑤1 ) et que sur [𝑡1 , 𝑡2 ], 𝑦(𝑡) n’est pas très
éloignée de sa tangente approchée en 𝑡1 . Donc cette
méthode consiste à remplacer 𝑦(𝑡) par une ligne brisée
(voir figure ci-dessous). Figure 1 : Représentation graphique
des estimations de pente dans le cas
Lemme 1: de la méthode d’Euler simple
Quel que soit l’entier positif m, on a:
0  (1 + x) m  e mx ,  x  −1

Démonstration:

3
On a: e x = 1 + x + ( x 2 / 2)e , où  est compris entre 0 et 𝑥, alors:
0  1 + x  1 + x + ( x 2 / 2)e = e x
0  1 + x  e x  0  (1 + x )  e mx
m

Lemme 2:
Simetnsont deux nombres réels positifs et a i i =inf une que: a0  0
k
suite telle
et ai +1  (1 + m)ai + n pour chaque 𝑖 = 0,1 , . . . , 𝑘 − 1. Alors:

ai +1  e (i +1) m (n / m + a0 ) + n / m

Démonstration:
On a:
ai +1  (1 + m)ai + n  (1 + m)((1 + m)ai −1 + n) + n
ai +1  (1 + m)ai + n  (1 + m) 2 ai −1 + (1 + m)n + n
ai +1  (1 + m)ai + n  (1 + m) 2 ((1 + m)ai −2 + n) + (1 + m)n + n
(
ai +1  (1 + m)ai + n  (1 + m) 3 ai −2 + (1 + m) 2 + (1 + m) + 1 n )
.
.
.
(
ai +1  (1 + m)ai + n  (1 + m) i +1 a0 + (1 + m) i + (1 + m) i −1 +  + 1 n )
1 − (1 + m) i +1
Or: (1 + m) i + (1 + m) i −1 +  + (1 + m) + 1 =
1 − (1 + m)
Donc:
1 − (1 + m) i +1
ai +1  (1 + m) i +1 a0 + n
1 − (1 + m)
ai +1  (1 + m) i +1 (a0 + n / m) − n / m
ai +1  (a0 + n / m)e m(i +1) − n / m

Théorème 3:
Soit 𝒚(𝒕) la solution unique du problème de Cauchy suivant:

 y( a ) = 
 y' ( t ) = dy / dt =
 f ( t , y ( t )) , t  [ a,b ]

Et soient w0 , w1 , ... , wn les approximations de 𝒚(𝒕) aux points t0 , t1 , ... , tn engendrées par la
méthode d’Euler. Si f est Lipchitzienne en y sur D = (t , y ) / t  a, b; −   y  + et y" (t )  M
, t  a, b. Alors:

4
hM L (ti −a )
y (t i ) − wi  (e − 1) , i = 1,2, ..., n
2L
Démonstration:
Si 𝑖 = 0, le résultat est trivial. Et on a pour chaque 𝑖 = 0,1, . . . . , 𝑛 − 1 :
y(t i + 1) = yi +1 = yi + hf (t i , yi ) + (h 2 / 2) y" (t i +  i h) , 0   i  1 (1)
Et wi +1 = wi + hf (t i , wi ) (2)

En retranchant l’équation (2) de l’équation (1) , nous obtenons:


yi +1 − wi +1 = ( yi − wi ) + h( f (t i , yi ) − f (t i , wi )) + (h 2 / 2) y" (t i +  i h)
y i +1 − wi +1 = ( y i − wi ) + h( f (t i , yi ) − f (t i , wi ) ) + (h 2 / 2) y" (t i +  i h)
yi +1 − wi +1  yi − wi + h ( f (t i , y i ) − f (t i , wi ) ) + (h 2 / 2) y" (t i +  i h)
y i +1 − wi +1  y i − wi + hL y i − wi + h 2 M / 2
y i +1 − wi +1  (1 + hL) y i − wi + h 2 M / 2

D’après le lemme cité précédemment, cette dernière inégalité peut s’écrire:


y i +1 − wi +1  e ( i +1) hL ( y 0 − w0 + h 2 M / 2hL) − h 2 M / 2hL
y i +1 − wi +1  e ( i +1) hL (hM / 2 L) − hM / 2 L
Or: (i + 1)h = t i +1 − t 0 = t i +1 − a
Donc: (
y i +1 − wi +1  (hM / 2 L) e ( ti +1 − a ) L − 1 )
Exemple 4:
Soit le problème de condition initiale suivant:

 y ' (t ) = − y + t + 1 t  0, 1

 y (0) = 1

On a: f (t , y) = − y + t + 1 , f / y = −1  L = 1

On sait que la solution exacte de ce problème est: y(t ) = t + e −t y(t).

Donc:
y" (t ) = e − t  y" (t )  1 ,  t  0,1
y i − wi  0.5(e − 1) ti

Remarque:L’importance de la formule donnant une borne de l’erreur du théorème 3 est que cette
borne dépend linéairement du pas h. Donc réduire le pas h revient à augmenter la

5
précision. Cependant on doit s’attendre aux erreurs d’arrondi. Une valeur optimale
de 𝒉 est:(𝟐 /𝑴)𝟏/𝟐où  est l’erreur dans la condition initiale.

8.2.3. Méthode d’Euler modifiée


Définition 4:
a) Le nombre ei = yi − wi est appelé : l’erreur au point t i .

b) Une méthode de calcul numérique fournissant les valeurs approchées wi de yi telles que:
ei  kh p est dite d’ordre p.

D’après cette définition et le théorème 3, la méthode d’Euler est du premier ordre. Dans ce
paragraphe, on essayera de développer une méthode d’ordre supérieur à celui de la
méthoded’Euler.

On a d’après la formule de Taylor:


yi +1 = yi + hyi' + (h 2 / 2) yi" +  (h 3 ) , i = 0, 1, , N − 1 (1)
or yi" = ( yi' +1 − yi' ) / h +  (h)

Portons l’expression de y i" dans l’équation (1) , nous obtenons:

( )
yi +1 = yi + hyi' + (h 2 / 2) ( yi' +1 − yi' ) / h +  (h) +  (h 3 )
yi +1 = yi + (h / 2)( y '
i +1 + y ) +  (h ),
'
i
3
i = 0, 1, , N − 1
( )
yi +1 = yi + (h / 2) f (t i , yi ) + f (t i +1 , yi +1 ) +  (h 3 ), i = 0, 1, , N − 1 (2)
En négligeant (h3) et en posant wi  yi, l’équation (2) nous donne:
(
wi +1 = wi + (h / 2) f (t i , wi ) + f (t i +1 , wi +1 ) ,) i = 0, 1, , N − 1 (3)
avec w0 = y0 = 

Cette formule est appelée formule d’Euler modifiée.


Remarquons que cette formule ne donne pas wi+1 explicitement. Pour surmonter ce problème,on
estime (prédit) wi+1 par la méthode d’Euler. Appelons cette valeur estimée: wi+1,P.
Cette valeur peut être utilisée dans l’équation (3) pour obtenir une estimation meilleur de wi+1. La
méthode d’Euler modifiée consiste donc à:

1) Prédire wi+1 par la méthode d’Euler: wi +1, p = wi + hf (t i , wi ) .



2) Corriger wi+1,p par: wi +1,c = wi + (h / 2) f (t i , wi ) + f (t i +1 , wi +1, p ) 
8.2.4. Méthode de Taylor d’Ordre Supérieur à Un
Considérant le problème de Cauchy suivant:

6
 y( a ) = 
( I )
 y' ( t ) = dy / dt = f ( t , y ( t )) , t  [ a,b ]

Dans la pratique on utilise rarement une méthode d’ordre 1. Pour obtenir des résultats acceptables
dans la pratique, on doit en général, utiliser des méthode d’ordre plus élevé que 1. Développons
donc celles-ci.

Supposons que la solution 𝒚(𝒕) du problème (𝑰) possède 𝒏 + 𝟏 dérivées continues, alors d’après
la formule de Taylor on a:
yi +1 = yi + hyi' + (h 2 / 2) yi" +  + (h n / n!) yi( n ) + (h n+1 /(n + 1)!) yi( n+1) (t i +  i h) (1)
Où : 0   i  1
Or : y' (t ) = f (t , y)  yi' = y' (t i ) = f (t i , yi )
y" (t ) = f ' (t , y)  yi" = y" (t i ) = f ' (t i , yi )
.
.
.
y ( n ) (t ) = f ( n−1) (t , y)  yi( n) = y ( n) (t i ) = f ( n−1) (t i , yi )

Portons ces expressions dans l’équation (1) , nous obtenons:


yi +1 = yi + hf (t i , yi ) + (h 2 / 2) f ' (t i , yi ) +  + (h n / n!) f ( n−1) (t i , yi ) +  (h n+1 )

En négligeant (hn+1) et en posant wi  yi, on obtient:


( )
wi +1 = wi + h f (t i , wi ) + (h / 2) f ' (t i , wi ) +  + (h n−1 / n!) f ( n−1) (t i , wi ) (2)

En posant:
T ( n ) = f (t i , wi ) + (h / 2) f ' (t i , wi ) +  + (h n−1 / n!) f ( n−1) (t i , wi )
l’équation (2) devient:
wi +1 = wi + hT ( n ) (t i , wi ), i = 0, 1,, n − 1
avec w0 = y0 = 

Donc la solution y(t) du problème (I) aux points: ti = a + ih, (i = 0,1,, n − 1) , est
approximativement donnée par:
w0 = y 0 = y (a) = 

wi +1 = wi + hT (t i , wi ), i = 0, 1,, n − 1
(n)

Exemple 5:
soit le problème de Cauchy suivant:

7
 y ' (t ) = t − y + 1, t  0,1

 y (0) = 1, h = 0.1

Trouver les valeurs approchées de y(ti ) pour: i = 0,1,, n , par:


1/ La méthode d’Euler .
2/ La méthode d’Euler modifiée .
3/ La méthode de Taylor 2.

Solution:
1/ Par la méthode d’Euler:
On a:
wi +1 = wi + hf (ti , wi ) , pour i = 0,1,, n − 1 = 9
w0 = 1
wi +1 = wi + h(t i − wi + 1) = (1 − h)wi + hti + h = 0.9wi + 0.01i + 0.1

Finalement , on peut écrire:


wi +1 = 0.9wi + 0.01i + 0.1, i = 0,1,, n − 1 = 9

w0 = 1

2/ Par la méthode d’Euler modifiée:


On a:
w0 = 1
wi +1,c = wi + (h / 2)( f (t i , wi ) + f (t i +1 , wi +1, p ))où wi +1, p = wi + hf (t i , wi )
wi +1,c = wi + (h / 2)((1 − h)t i − (2 − h)wi + t i + (h − h) + 2)
wi +1,c = wi + (h / 2)((1 − h)t i − (2 − h)wi + t i + 2)
wi +1,c = (1 − (0.1 / 2)(1.9))wi + (0.1 / 2)(1.9t i ) + 0.1

En fin, on obtient que:


wi +1,c = 0.905wi + 0.095t i + 0.1 , pour : i = 0,1,, n − 1 = 9

3/ Par la méthode de Taylor d’ordre 2:


On a: w0 = 1
et wi +1 = wi + hT ( 2) (t i , wi ), i = 0, 1,, n − 1 = 9 ,
où : T ( 2) = f (t i , wi ) + (h / 2) f ' (t i , wi )
Or : f ' (t, y) = 1 − y' (t ) = 1 − t + y(t ) − 1 = −t + y(t )
f ' (ti , wi ) = −ti + wi

8
wi +1 = wi + h(ti − wi + 1 + h(−ti + wi )) = wi + h((1 − h)(ti − wi ) + 1)

wi +1 = 0.905wi + 0.905ti + 0.1, i = 0,1,, n − 1 = 9

Voici les valeurs de wi , i = 0,1,, n − 1 = 9 ,obtenues par les 3 méthodes:

Euler, Euler modifiée, et Taylor d’ordre 2.


ti Euler ( wi ) Euler modifiée ( wi ) Taylor 2 ( wi ) Solution Exacte ( wi )
0.0 1.000000 1.000000 1.000000 1.000000
0.1 1.000000 1.005000 1.005000 1.004837
0.2 1.010000 1.019025 1.019025 1.018731
0.3 1.029000 1.041218 1.041218 1.040818
0.4 1.056100 1.070802 1.070802 1.070320
0.5 1.090490 1.107076 1.107076 1.106531
0.6 1.131441 1.149404 1.149404 1.148812
0.7 1.178297 1.197211 1.197211 1.196586
0.8 1.230467 1.249976 1.249976 1.249328
0.9 1.287420 1.307228 1.307228 1.306570

8.2.5 Méthodes de Runge – Kutta


En pratique les méthodes de Taylor sont rarement utilisées car elles demandent le calcul
desdérivées de f (t , y) et leurs valeurs aux points (t i , wi ) .Les méthodes de Runge - Kutta ont
presque le même degré de précision que celles de Taylor, sauf qu’elles ne demandent pas
ladétermination des dérivées de f .

Dans ce qui suit nous allons développer les méthodes de Runge - Kutta d’ordre 2. En ce qui
concerne les autres méthodes de R-K d’ordre supérieur à 2, nous donnons seulement l’algorithme
de Runge - Kutta d’ordre 4.
Le principe de la méthode de R-K d’ordre 2 consiste à remplacer:

T ( 2) = f (t i , wi ) + (h / 2) f ' (t i , wi ) par: a1 f (t +  1 , y +  1 ) ,
où: a1 , 1 et 1 : sont des constantes à déterminer.
Celles-ci doivent être choisies de telle sorte que: T ( 2) (t , y) − a1 f (t + 1 , y + 1 ) soit de l’ordre de
h2 .
f ( t , y ) f ( t , y )
On a: f ' (t, y ) = + . y' ( t )
t y

et y' (t ) = f (t , y)

h  f (t , y ) f (t , y ) 
Donc T ( 2) (t , y) s’écrit : T ( 2) (t , y ) = f (t , y ) +  + . f (t , y )  (1)
2  t y 

D’après la formule de Taylor appliquée à la fonction f (t , y) , on a:

9
f (t , y ) f (t , y )
f (t +  1 , y + 1 ) = f (t , y ) + 1 + 1 + R2 (t + 1 , y + 1 ) (2)
t y

12  2 f ( , ) 12  2 f ( , )  2 f ( , )
Où : R2 (t + 1 , y + 1 ) = + + 1 1
2 t 2 2 y 2 ty
( , ) :appartient au cercle de centre (t , y) et de rayon: ((t − 1 ) 2 + ( y − 1 ) 2 ) . Multiplions les
1/ 2

deux membres de l’équation (2) par la constante a1, nous obtenons alors:

f (t , y ) f (t , y )
a1 f (t +  1 , y + 1 ) = a1 f (t , y ) + a1 1 + a1  1 + a1 R2 (3)
t y

En égalant les équations (1) et (3) ,on obtient par identification:

a1 = 1 , a1 1 = h / 2 et a1 1 = (h / 2) f (t , y)   1 = h / 2 et 1 = (h / 2) f (t , y)

Donc:
T ( 2) (t , y) = f (t + h / 2, y + (h / 2) f (t , y)) − R2 (t + h / 2, y + (h / 2) f (t, y))

Si toutes les dérivées partielles d’ordre 2 sont bornées, R2 (t + h / 2, y + (h / 2) f (t , y )) sera de l’ordre


de h 2 . En posant:
T ( 2) (t i , wi ) = f (t i + h / 2, wi + (h / 2) f (t i , wi )) ,
on peut écrire à l’aide de la méthode de Taylor d’ordre 2:
wi +1 = wi + hf (ti + h / 2, wi + (h / 2) f (ti , wi )), i = 0, 1,, n − 1

w0 = 
La méthode ainsi construite est appelée méthode de R-K d’ordre 2. Plus précisément, elle est
appelée méthode du milieu.

De la même manière, on peut obtenir d’autres méthodes d’ordre 3, si T(3) est remplacé par:
a1 f (t , y ) + a 2 f (t +  2 , y +  2 f (t , y ))
où: T (3) = f (t i , wi ) + (h / 2) f ' (t i , wi ) + (h 2 / 6) f " (t i , wi )
Après tout calcul fait on obtient la formule de Rung-Kutta 3 donnée par :
ℎ 2ℎ 2ℎ ℎ ℎ
𝑤𝑖+1 = 𝑤𝑖 + [𝑓(𝑡𝑖 , 𝑤𝑖 ) + 3𝑓 (𝑡𝑖 + , 𝑤𝑖 + 𝑓(𝑡𝑖 + , 𝑤𝑖 + 𝑓(𝑡𝑖 , 𝑤𝑖 ))) ]
4 3 3 3 3
Avec : 𝑤0 = 𝛼
Ou encore :
1
𝑤𝑖+1 = 𝑤𝑖 + (𝑘1 + 4𝑘2 + 𝑘3 )
6
Avec :
𝑘1 = ℎ𝑓(𝑡𝑖 , 𝑤𝑖 )

10
ℎ 1
𝑘2 = ℎ𝑓(𝑡𝑖 + , 𝑤𝑖 + 𝑘1 )
2 2
𝑘3 = ℎ𝑓(𝑡𝑖 + ℎ, 𝑤𝑖 − 𝑘1 + 2𝑘2 )

Voici d’autres méthodes de R-K d’ordre 2:


Méthode d’Euler modifiée (déjà développée, dans ce chapitre)

(
wi +1 = wi + (h / 2) f (t i , wi ) + f (t i +1 , wi + hf (t i , wi )) , ) i = 0, 1, , n − 1

w0 = y 0 = 

Méthode de Heun

(
wi +1 = wi + (h / 4) f (t i , wi ) + 3 f (t i + 2h / 3, wi + (2h / 3) f (t i , wi )) , ) i = 0, 1, , n − 1

w0 = y 0 = 

8.2.6. Méthode de Runge-Kutta d’ordre 4


Pour obtenir une approximation de la solution exactey(t) du problème de Cauchy:
 y ' (t ) = f (t , y ) t  a, b
 ,
 y (a) = 

en utilisant la méthode de R-K d’ordre 4, on procède de la manière suivante:


• Posant : h = (b − a) / n , avec: t 0 = a , w0 =  et n un entier positif choisi.
• Calculant les constantes k1 , k 2 , k3 et k 4 :

k1 = hf (t i , wi )
k 2 = hf (ti + h / 2, wi + k1 / 2)
k3 = hf (ti + h / 2, wi + k 2 / 2)
k 4 = hf (ti +1 , wi + k3 )
• La solution 𝑦(𝑡) du problème de Cauchy est donnée approximativement par:
wi +1 = wi + (k1 + 2k 2 + 2k3 + k 4 ) / 6
avec: ti +1 = a + (i + 1)h

11
Figure 2 : Représentation graphique des estimations de pente dans le cas de la méthode RK 4.

Effort de calcul :
L’effort principal de calcul dans l’application des méthodes de Runge-Kutta est l’évaluation de 𝑓.
Dans les méthodes du second ordre, l'erreur de troncature locale est 𝑂(ℎ2 ) et le coût est de deux
évaluations de la fonction 𝑓 par étape. La méthode de Runge-Kutta d'ordre 4 nécessite 4 évaluations
par étape et l'erreur de troncature locale est 𝑂(ℎ4 ). Butcher a établi la relation entre le nombre
d’évaluations par étape et l’ordre de l’erreur de troncature locale indiquée dans le tableau ci-
dessous. Ce tableau indique pourquoi les méthodes d'ordre inférieur à cinq avec une taille de pas
plus petite sont de préférence à utiliser que les méthodes d'ordre supérieur utilisant une taille de
pas plus grande.

Evaluations par étape 2 3 4 5≤𝑛≤7 8≤𝑛≤9 𝑛 ≥ 10

Erreur de troncature locale 𝑂(ℎ2 ) 𝑂(ℎ3 ) 𝑂(ℎ4 ) 𝑂(ℎ𝑛−1 ) 𝑂(ℎ𝑛−2 ) 𝑂(ℎ𝑛−3 )

La méthode de Runge-Kutta d'ordre 4 nécessite quatre évaluations par étape, alors que la méthode
d'Euler ne nécessite qu'une évaluation. Par conséquent, la méthode de Runge-Kutta d’ordre 4 doit
donner des résultats plus précis que la méthode d’Euler avec un quart de la taille du pas ℎ. De
même, la méthode de Runge-Kutta d'ordre 4 doit être plus pricise que les méthodes de Runge-Kutta
du second ordre avec une taille du pas de calcul égal à ℎ/2, et qui nécessitent deux évaluations par
étape.

Dans l’exemple qui suit nous illustrons le degré de précision de la méthode Runge-Kutta d’orde 4
dans la résolution du problème de condition initiale suivant :

𝑦 ′ (𝑡) = 𝑦 − 𝑡 2 + 1 = 𝑓(𝑡, 𝑦), 0 ≤ 𝑡 ≤ 2, 𝑎𝑣𝑒𝑐 𝑦(0) = 0.5,

On compare dans exemple la méthode d’Euler avec le pas ℎ = 0.025, la méthode de Runge – Kutta
2 (Méthode du milieu) avec un pas ℎ = 0.05 et la méthode de Runge – Kutta 4 avec un pas ℎ =
0.10 pour le calcul des valeurs approchées de 𝑦(𝑡) aux points d’abscisses : 0.1, 0.2, 0.3, 0.4 et 0.5.

12
Chacune des trois techniques de calcul nécessite 20 évaluations de la fonction 𝑓 pour déterminer
l’ensemble des valeurs tabulées ci-dessous pour arriver à l’approximation de 𝑦(0.5). Il est clair des
résultats obtenus que la méthode d’ordre 4 de Runge – Kutta est la plus précise.

𝑡𝑖 Solution Exacte Méthode d’Euler Méthode d’Euler Méthode de Runge


modifiée Kutta d’ordre 4
(𝒉 = 𝟎. 𝟎𝟐𝟓)
(𝒉 = 𝟎. 𝟎𝟓) (𝒉 = 𝟎. 𝟏)

0.0 0.5000000 0.5000000 0.5000000 0.5000000

0.1 0.6574145 0.6554982 0.6573085 0.6574144

0.2 0.8292986 0.8253385 0.8290778 0.8292983

0.3 1.0150706 1.0089334 1.0147254 1.0150701

0.4 1.2140877 1.2056345 1.2136079 1.2140869

0.5 1.4256394 1.4147264 1.4250141 1.4256384

Erreur de calcul :

Toute méthode nécessitant une étape de calcul pour approcher la solution 𝑦 (𝑡) du problème de
condition initiale:
𝑦 ′ = 𝑓 (𝑡, 𝑦), 𝑝𝑜𝑢𝑟 𝑎 ≤ 𝑡 ≤ 𝑏, 𝑎𝑣𝑒𝑐 𝑦(𝑎) = 𝛼
peut être exprimé sous la forme:

𝑤𝑖+1 = 𝑤𝑖 + ℎ𝑖 𝜑(𝑡𝑖 , 𝑤𝑖 , ℎ𝑖 ), 𝑝𝑜𝑢𝑟 𝑖 = 0, 1, . . . , 𝑁 − 1,


pour une fonction 𝜑.
Cette approximation a la propriété qu’avec une tolérance 𝜀 > 0, un nombre minimal de points de
maillage pourrait être utilisé pour garantir que l'erreur globale :
|𝑦(𝑡𝑖 ) − 𝑤𝑖 | ≤ 𝜀 pour tout 𝑖 = 0,1, . . . , 𝑁
Bien que nous ne puissions généralement pas déterminer l'erreur globale d'une méthode, il existe
une relation étroite entre l'erreur de troncature locale et l'erreur globale. En utilisant des méthodes
d'ordre différent, nous pouvons prédire l'erreur de troncature locale et, à l'aide de cette prédiction
on peut choisir la taille du pas de calcul ℎ qui la conservera.

Pour illustrer la technique, supposons que nous ayons deux méthodes d'approximation. La
première est d'ordre 𝑛, de la forme :
𝑤𝑖+1 = 𝑤𝑖 + ℎ𝜑(𝑡𝑖 , 𝑤𝑖 , ℎ), 𝑝𝑜𝑢𝑟 𝑖 > 0 𝑒𝑡 𝑎𝑣𝑒𝑐 𝑤0 = 𝛼
Avec une erreur de troncature locale 𝜏𝑖+1 (ℎ) = 𝑂(ℎ𝑛 )
La deuxième est d'ordre 𝑛 + 1, de la forme :
𝑤̃ 𝑖+1 = 𝑤
̃ 𝑖 + ℎ𝜑(𝑡𝑖 , 𝑤
̃ 𝑖 , ℎ), 𝑝𝑜𝑢𝑟 𝑖 > 0 𝑒𝑡 𝑎𝑣𝑒𝑐 𝑤
̃0 = 𝛼
𝑛+1
Avec une erreur de troncature locale 𝜏̃ 𝑖+1 (ℎ) = 𝑂(ℎ )

13
Nous supposons d’abord que 𝑤𝑖 ≈ 𝑦(𝑡𝑖 ) ≈ 𝑤 ̃ 𝑖 et choisissons une taille fixe du pas ℎ pour générer
les approximations 𝑤𝑖+1 et 𝑤
̃ 𝑖+1 de 𝑦(𝑡𝑖+1 ). Soit :
𝑦(𝑡𝑖+1 ) − 𝑦(𝑡𝑖 ) 𝑦(𝑡𝑖+1 ) − 𝑤𝑖
𝜏𝑖+1 (ℎ) = − 𝜙(𝑡𝑖 , 𝑤𝑖 , ℎ) = − 𝜙(𝑡𝑖 , 𝑤𝑖 , ℎ)
ℎ ℎ
𝑦(𝑡𝑖+1 ) − [ 𝑤𝑖 + 𝜙(𝑡𝑖 , 𝑤𝑖 , ℎ)]
𝜏𝑖+1 (ℎ) =

𝑦(𝑡𝑖+1 ) − 𝑤𝑖+1
𝜏𝑖+1 (ℎ) =

De la même manière on trouve :

𝑦(𝑡𝑖+1 ) − 𝑤
̃ 𝑖+1
𝜏̃𝑖+1 (ℎ) =

1
On peut écrire aussi : 𝜏𝑖+1 (ℎ) = ℎ [(𝑦(𝑡𝑖+1 ) − 𝑤
̃ 𝑖+1) + ( 𝑤
̃ 𝑖+1 − 𝑤𝑖+1 )]

1
𝜏𝑖+1 (ℎ) = 𝜏̃ 𝑖+1 (ℎ) + ( 𝑤
̃ 𝑖+1 − 𝑤𝑖+1 )

Comme 𝜏𝑖+1 (ℎ) est d’ordre 𝑂(ℎ𝑛 ) et 𝜏̃ 𝑖+1 (ℎ) est d’ordre 𝑂(ℎ𝑛+1 ) donc la partie significative de
𝜏𝑖+1 (ℎ) doit venir du terme :
1
(𝑤̃ 𝑖+1 − 𝑤𝑖+1 )

Cela nous donne une approximation facile à calculer pour l’erreur de troncature locale de
méthode d’ordre 𝑂(ℎ𝑛 ) donnée par:
1
𝜏𝑖+1 (ℎ) ≈ ( 𝑤 ̃ 𝑖+1 − 𝑤𝑖+1 )

L'objet, cependant, n'est pas simplement d'estimer l'erreur de troncature locale, mais d'ajuster la
taille du pas de calcul pour le maintenir dans une limite spécifiée. Pour faire cela, supposons qu’il
existe un nombre 𝐾, indépendant de ℎ tel que :
𝜏𝑖+1 (ℎ) ≈ 𝐾ℎ𝑛
Ensuite, l'erreur de troncature locale générée par l'application de la méthode d'ordre 𝑛 avec une
nouvelle taille de pas 𝑞ℎ peut être estimée à l'aide des approximations d'origine 𝑤𝑖+1 et 𝑤 ̃ 𝑖+1 :
𝑛
𝑞
𝜏𝑖+1 (𝑞ℎ) ≈ 𝐾(𝑞ℎ)𝑛 ≈ 𝑞 𝑛 𝜏𝑖+1 (ℎ) ≈ (𝑤
̃ 𝑖+1 − 𝑤𝑖+1 )

Lorsqu’on impose une borne supérieure 𝜀 de 𝜏𝑖+1 (𝑞ℎ), on peut choisir 𝑞 tel que :
𝑞𝑛
|𝜏𝑖+1 (𝑞ℎ)| ≈ ̃ 𝑖+1 − 𝑤𝑖+1 |) ≤ 𝜀
(| 𝑤

Ce qui donne :
1/𝑛
𝜀ℎ
𝑞≤( )
|𝑤
̃ 𝑖+1 − 𝑤𝑖+1 |

14
8.2.6. Méthode de Runge-Kutta-Butcher d’ordre 5

Il est certainement possible de développer des méthodes RK d'ordre 5 et supérieur. Par exemple,
la méthode RK du cinquième ordre de Butcher (1964) s’écrit de la manière suivante:
1
𝑤𝑖+1 = 𝑤𝑖 + (7𝑘1 + 32𝑘3 + 12𝑘4 + 32𝑘5 + 7𝑘6 )
90

𝑘1 = ℎ𝑓(𝑡𝑖 , 𝑤𝑖 )
ℎ 1
𝑘2 = ℎ𝑓(𝑡𝑖 + , 𝑤𝑖 + 𝑘1 )
4 4
ℎ 1 1
𝑘3 = ℎ𝑓(𝑡𝑖 + , 𝑤𝑖 + 𝑘1 + 𝑘2 )
4 8 8
ℎ 1
𝑘4 = ℎ𝑓(𝑡𝑖 + , 𝑤𝑖 − 𝑘2 + 𝑘3 )
2 2
3ℎ 3 9
𝑘5 = ℎ𝑓(𝑡𝑖 + , 𝑤𝑖 + 𝑘1 + 𝑘4 )
4 16 16
3 2 12 12 8
𝑘6 = ℎ𝑓(𝑡𝑖 + ℎ, 𝑤𝑖 − 𝑘1 + 𝑘2 + 𝑘3 − 𝑘4 − 𝑘5 )
7 7 7 7 7
La méthode de Butcher a une erreur de troncature globale de 𝑂(ℎ5 ). Bien que la version de
cinquième ordre offre plus de précision, notez que six évaluations de fonction sont requises. A
cause du grand temps de calcul nécéssaire pour ces évaluations de fonction, les méthodes d'ordre
5 et plus sont généralement considérées comme relativement moins efficace que les versions de
quatrième ordre. C’est l’une des principales raisons de la popularité de la méthode de RK d’ordre
quatre.

8.2.6. Méthode de Runge-Kutta-Fehlberg d’ordre 5

La méthode de Runge-Kutta-Fehlberg founie une solution du problème de Cauchy avec une


erreur de troncature d'ordre cinq. Elle est donnée par la formule

16 6656 28561 9 2
𝑤𝑖+1 = 𝑤𝑖 + 𝑘1 + 𝑘3 + 𝑘4 − 𝑘5 + 𝑘6
135 12825 56430 50 55
Avec :
𝑘1 = ℎ𝑓(𝑡𝑖 , 𝑤𝑖 )
ℎ 1
𝑘2 = ℎ𝑓(𝑡𝑖 + , 𝑤𝑖 + 𝑘1 )
4 4
3ℎ 3𝑘1 9𝑘2
𝑘3 = ℎ𝑓(𝑡𝑖 + , 𝑤𝑖 + + )
8 32 32
12ℎ 1932𝑘1 7200𝑘2 7296𝑘3
𝑘4 = ℎ𝑓(𝑡𝑖 + , 𝑤𝑖 + − + )
13 2197 2197 2197
439𝑘1 3680𝑘3 845𝑘4
𝑘5 = ℎ𝑓(𝑡𝑖 + ℎ, 𝑤𝑖 + − 8𝑘2 + − )
216 513 4104
ℎ 8𝑘1 3544𝑘3 1859𝑘4 11𝑘5
𝑘6 = ℎ𝑓(𝑡𝑖 + , 𝑤𝑖 − + 2𝑘2 − + − )
2 27 2565 4104 40
La méthode de Runge-Kutta-Fehlberg donnant une solution au problème de Cauchy avec une
erreur de troncature d'ordre quatre 𝑂(ℎ4 ) est donnée par la formule :

15
25 1408 2197 1
𝑤𝑖+1 = 𝑤𝑖 + 𝑘1 + 𝑘3 + 𝑘4 − 𝑘5
216 2565 4104 5
L’erreur globale est donnée par :
𝑘1 128𝑘3 2197𝑘4 𝑘5 2𝑘6
𝐸= − − + +
360 4275 75240 50 55
Exemple :
Rédoudre le problème de cauchy suivant :

𝑑𝑦
= −2𝑥 − 𝑦
{ 𝑑𝑥
𝑦(0) = −1 𝑎𝑣𝑒𝑐 ℎ = 0.1

En utilisant la méthode de Runge-Kutta-Fehlberg.


Solution :
On calcule les 6 coefficients :

𝑘1 = 0.10000,

𝑘2 = 0.0925000,

𝑘3 = 0.0889609,

𝑘4 = 0.0735157,

𝑘5 = 0.0713736,

𝑘6 = 0.0853872,
Pour une estimation d’ordre 4, on trouve : 𝑤1 = −0.914512212
Pour une estimation d’ordre 5, on trouve : 𝑤1 = −0.914512251
Avec une erreur globale de 𝐸 = −0.000000040.
Alors que la solution exacte est 𝑦(0.1) = −0.914512254

8.2.7. Méthode de Runge-Kutta-Merson d’ordre 4


La méthode de Runge-Kutta- Merson founie une approximation de la solution du problème de
Cauchy avec une erreur de troncature d'ordre cinq. Elle est donnée par la formule
1
𝑤𝑖+1 = 𝑤𝑖 + (𝑘1 + 4𝑘4 + 𝑘5 ) + 𝑂(ℎ5 )
6
Avec :
𝑘1 = ℎ𝑓(𝑡𝑖 , 𝑤𝑖 )
ℎ 1
𝑘2 = ℎ𝑓(𝑡𝑖 + , 𝑤𝑖 + 𝑘1 )
3 3
ℎ 𝑘1 𝑘2
𝑘3 = ℎ𝑓(𝑡𝑖 + , 𝑤𝑖 + + )
3 6 6
ℎ 𝑘1 3𝑘3
𝑘4 = ℎ𝑓(𝑡𝑖 + , 𝑤𝑖 + + )
2 8 8

16
𝑘1 3𝑘3
𝑘5 = ℎ𝑓(𝑡𝑖 + ℎ, 𝑤𝑖 + − + 2𝑘4 )
2 2
L’erreur globale est donnée par :
1
𝐸= (2𝑘1 − 9𝑘3 + 8𝑘4 − 𝑘5 )
30

8.2.7. Méthode de Runge-Kutta-Verner d’ordre 6

La méthode de Runge-Kutta- Verner founie une solution du problème de Cauchy avec une erreur
de troncature d'ordre six. Elle est donnée par la formule

13 2375 5 12 3
𝑤𝑖+1 = 𝑤𝑖 + 𝑘1 + 𝑘3 + 𝑘4 + 𝑘5 + 𝑘
160 5984 16 85 44 6
3 875 23 264 125 43
𝑤
̃ 𝑖+1 = 𝑤𝑖 + 𝑘1 + 𝑘3 + 𝑘4 + 𝑘5 + 𝑘7 + 𝑘
40 2244 72 1955 11592 616 8
Avec :
𝑘1 = ℎ𝑓(𝑡𝑖 , 𝑤𝑖 )
ℎ 1
𝑘2 = ℎ𝑓(𝑡𝑖 + , 𝑤𝑖 + 𝑘1 )
6 6
4ℎ 4 16
𝑘3 = ℎ𝑓(𝑡𝑖 + , 𝑤𝑖 + 𝑘1 + 𝑘2 )
15 75 75
2ℎ 5 8 5
𝑘4 = ℎ𝑓(𝑡𝑖 + , 𝑤𝑖 + 𝑘1 − 𝑘2 + 𝑘3 )
3 6 3 2
5ℎ 16 55 425 85
𝑘5 = ℎ𝑓(𝑡𝑖 + , 𝑤𝑖 − 𝑘1 + 𝑘2 − 𝑘3 + 𝑘4 )
6 64 6 64 96
12 4015 11 88
𝑘6 = ℎ𝑓(𝑡𝑖 + ℎ, 𝑤𝑖 + 𝑘1 − 8𝑘2 + 𝑘3 − 𝑘4 + 𝑘 )
5 612 36 255 5
ℎ 8263 124 643 81 2484
𝑘7 = ℎ𝑓(𝑡𝑖 + , 𝑤𝑖 − 𝑘1 + 𝑘2 − 𝑘3 − 𝑘4 + 𝑘 )
15 15000 75 680 250 10625 5
3501 300 297275 319 24068 3850
𝑘8 = ℎ𝑓(𝑡𝑖 + ℎ, 𝑤𝑖 + 𝑘1 − 𝑘2 + 𝑘3 − 𝑘4 + 𝑘5 + 𝑘 )
1720 43 52632 2322 84065 26703 7

La méthode du sixième ordre 𝑤


̃ 𝑖+1 est utilisée pour estimer l'erreur dans la méthode du cinquième
ordre 𝑤𝑖+1.

8.2.8. Méthode à Multi-pas


Les méthodes de R-K qu’on vient de développer sont des méthode à un pas. C’est à dire pour trouver
l’approximation wi +1 de y au point t i +1 , elle n’utilisent que l’approximation wi de y au point t i . Elles
n’exploitent, donc, pas les approximations de 𝒚 aux points: t i −1 , t i − 2 , ..., t 0 . En pratique, les méthodes
de R-K sont utilisées pour déterminer les premières approximations de 𝒚. Celles-ci introduisent les
méthodes à multi-pas qui sont l’objet de ce paragraphe. Le principe de ces méthodes consiste à
remplacer f (t , y) = y' (t ) par un polynôme P(t ) , en utilisant les approximations de 𝒚: wi , wi −1 , ...,
w0 , déjà calculées.

17
Considérons le problème de Cauchy suivant:
 y ' (t ) = f (t , y ) t  a, b

 y (a) = 
y i +1 t i +1
On a: y' (t ) = f (t , y)   dy ( t ) =  f ( t , y ( t )) dt
yi yi
t i +1 t i +1

 y i +1 − y i =  f (t , y(t ))dt
ti
 y i +1 = y i +  f (t , y(t ))dt
ti
(1)

ti +1

Puisqu’on ne peut pas intégrer  f (t , y(t ))dt sans


yi
connaître y(t) solution du problème (I),

remplaçons f (t , y(t )) par un polynôme d’interpolation 𝑃(𝑡) passant par les points:
(t0 , f (t0 , y0 )), (t1 , f (t1 , y1 )),, (ti , f (ti , yi )). Dans ce cas yi+1 est approximativement donnée par
t i +1

yi +  P(t )dt .
ti

A titre d’exemple développons la méthode à 2 pas d’Adams-Bashforth. Pour faire ceci, remplaçons
f (t , y(t )) par un polynôme de Lagrange de degré 1 passant par les deux points:
(ti−1 , f (ti−1 , yi−1 )) et (ti , f (ti , yi )) . Soit:
t − ti t − t i −1
P1 (t ) = f (t i −1 , y i −1 ) + f (t i , y i )
t i −1 − t i t i − t i −1
t − ti t − t i −1
P1 (t ) = − f (t i −1 , y i −1 ) + f (t i , y i )
h h
Donc:
f (t , y(t )) = P1 (t ) + 0.5(t − ti −1 )(t − ti ) f " ( i +1 , y( i +1 ))

Où:  i : est compris entre t i −1 et t i .

En portant l’expression de f (t , y(t )) dans l’équation (1),on obtient:


ti +1 1 ti +1
y i +1 = y i +  P1 (t )dt +  (t − t i −1 )(t − t i ) f " ( i +1 , y ( i +1 )) dt
ti 2 ti

f (t i −1 , y i −1 ) ti +1 f (t i , y i ) ti +1 1 ti +1
y i +1 = yi −  (t − t i )dt +  (t − t i −1 )dt +  f " ( i +1 , y ( i +1 ))(t − t i −1 )(t − t i )dt
h ti h ti 2 ti
h 3h 1 ti +1
y i +1 = y i − f (t i −1 , y i −1 ) + f (t i , y i ) +  f " ( i +1 , y ( i +1 ))(t − t i −1 )(t − t i )dt (2)
2 2 2 ti

18
Puisque (t − ti −1 )(t − ti ) ne change pas de signe sur t i , t i +1 , alors d’après le théorème de la valeur
moyenne pour les intégrales, il existe un nombre i +1  ti , ti +1  tel que:

ti +1 ti +1
 f " (  i +1 , y (  i +1 ))( t − t i −1 )( t − t i ) dt = f " (  i +1 , y (  i +1 ))  ( t − t i −1 )( t − t i ) dt
ti ti
ti +1 5 3
 f " (  i +1 , y (  i +1 ))( t − t i −1 )( t − t i ) dt = h f " (  i +1 , y (  i +1 ))
ti 6
ti +1 5 3
 f " (  i +1 , y (  i +1 ))( t − t i −1 )( t − t i ) dt = h y' " (  i +1 )
ti 6

En portant cette expression dans (2). on obtient:

yi +1 = yi + (3h / 2) f (t i , yi ) − (h / 2) f (t i −1 , yi −1 ) + (5h 3 / 12) y" ' (  i +1 )

En négligeant le terme contenant h 3 et en posant wi  yi, on obtient:


wi +1 = wi + (3h / 2) f (ti , wi ) − (h / 2) f (ti −1 , wi −1 )

Sachant que wo =  , w1 = 1 : sont déterminées par l’une des méthodes déjà développées.
Cette méthode est appelée méthode à 2 pas d’Adams-Bashforth.

Remarque:On peut trouver des formules d’Adams-Bashforth d’ordre supérieur. Pour faire ceci, il
suffit d’augmenter le degré du polynôme P(t). Par exemple la méthode suivante:
 1 5 
wi +1 = wi + h f (t i , wi ) − ( f (t i , wi ) − f (t i −1 , wi −1 ) + ( f (t i , wi ) − 2 f (t i −1 , wi −1 ) + 5 f (t i − 2 , wi − 2 ))) 
 2 12 

Ou encore:
wi +1 = wi +
h
(23 f (t i , wi ) − 16 f (t i −1 , wi −1 ) + 5 f (t i −2 , wi −2 ))
12

est obtenue en remplaçant 𝒇(𝒕 , 𝒚(𝒕)) par un polynôme 𝑷(𝒕) de degré 2. L’erreur est de l’ordre de h4.
Dans ce qui suit, nous allons donner deux autres méthodes à Multi-pas appelées Milne et Adams-
Moulton . Ces deux méthodes appartiennent à la classe des méthodes qui consistent à

1) Prédire yi +1
2) Corriger la valeur prédite.

• La méthode de Milne est simple et donne une erreur de l’ordre de (h5). Cependant elle est instable.
• La méthode d’Adams-Moulton est aussi efficiente que la méthode de Milne sauf qu’elle est
stable.

La méthode de Milne consiste à:

19
1) Prédire wi +1 par la formule:
4h
(2 f (t i −2 , wi −2 ) − f (t i −1 , wi −1 ) + 2 f (t i , wi ))
wi +1, p = wi −3 +
3
2) Corriger wi +1, p par la formule:

wi +1,c = wi −1 +
h
( f (t i +1 , wi +1, p ) + 4 f (t i , wi ) + f (t i −1 , wi−1 ))
3

La méthode d’Adams-Moulton consiste à:

1) Prédire wi +1 par la formule

wi +1, p = wi +
h
(55 f (t i , wi ) − 59 f (t i −1 , wi −1 ) + 37 f (t i −2 , wi −2 ) − 9 f (t i −3 , wi −3 ))
24

2) Corriger wi +1, p par la formule:

wi +1,c = wi +
h
(9 f (t i +1 , wi +1, p ) + 19 f (t i , wi ) − 5 f (t i −1 , wi −1 ) + f (t i−2 , wi −2 ))
24

8.2.8. Equations Différentielles d’ordre supérieur à 1 et Systèmes d’équations différentielles


Considérons le problème suivant:
 y ( m ) (t ) = f (t , y, y ' ,, y ( m−1) ) t  a, b
(I) 
 y (a) = 1 , y ' (a) =  2 , , y ( m−1) (a) =  m ,

L’équation différentielle d’ordre m du problème (I) peut être transformée en un système de m


équations différentielles d’ordre 1. En effet posons:
u1 (t ) = y(t ) , u 2 (t ) = y' (t ) , …, u m (t ) = y ( m−1) (t ) ,

nous obtenons le système suivant:


 du1
 dt = u 2
 du
 2 = u3
 dt
(II)  .
 .
 du
 m = f (t , y, y ' , , y ( m −1) )
 dt
u1 (a ) = y (a ) =  1 , u 2 (a ) = y ' (a ) =  2 ,  , u m (a) = y ( m −1) (a ) =  m

Les méthodes de résolution des équations différentielles d’ordre 1:Euler, Euler modifié, Runge-
Kutta, etc. peuvent être généralisées pour résoudre le problème (II). Par exemple pour appliquer la

20
méthode de R-K d’ordre 4 à un système d’équations différentielles, nous procédons de la manière
suivante:
Soit wij une approximation de laiemecomposante de la solution du système (II) au point t j , pour
i = 1, 2,, m et j = 0, 1, 2,, N , où N = (b − a) / h , t j = a + jh .

Les conditions initiales sont données par:


w1,0 = 1 , w2,0 =  2 , , wm,0 =  m ,

Supposons que: w1, j , w2, j , , wm, j ,viennent d’être calculées, alors pour déterminer
w1, j +1 , w2, j +1 , , wm, j +1 nous devons premièrement calculer:

k1,i = hf i (t j , w1, j , w2, j ,, wm, j ) , i = 1, 2,, m


k 2,i = hf i (t j + h / 2, w1, j + k1,1 / 2, w2, j + k1, 2 / 2,, wm, j + k1,m / 2) , i = 1, 2,, m

k 3,i = hf i (t j + h / 2, w1, j + k 2,1 / 2, w2, j + k 2, 2 / 2,, wm, j + k 2,m / 2) , i = 1, 2,, m

k 4,i = hf i (t j +1 , w1, j + k 3,1 , w2, j + k 3, 2 ,, wm, j + k 3,m ) , i = 1, 2,, m

Puis, on détermine:
w i j +1 = w i j + (k1,i + 2k 2,i + 2k 3,i + k 4,i )/6 pour i = 1, 2,, m

Exemple 6:
Considérons le système des deux équations différentielles d’ordre 1, suivant:
 du1
 dt = u 2 t  0,1

 du2
 = e 2t sin t − 2u1 + 2u 2
 dt
u1 (0) = −0.4, u 2 (0) = −0.6, h = 0.1


Appliquons la méthode de R - K d’ordre 4 à ce problème.
On a:
w1,0 = −0.4 w, w2,0 = −0.6
k1,1 = hf1 (t 0 , w1,0 , w2,0 ) = hw2,0 = −0.06
k1, 2 = hf 2 (t 0 , w1, 0 , w2,0 ) = h(e 2t0 sin t 0 − 2w1,0 + 2 w2,0 ) = −0.04
k 2,1 = hf1 (t 0 + h / 2, w1,0 + k1,1 / 2, w2,0 + k1, 2 / 2) = h(w2,0 + k1, 2 / 2) = −0.062
k 2, 2 = hf 2 (t 0 + h / 2, w1,0 + k1,1 / 2, w2,0 + k1, 2 / 2) = −0.03247
k 3,1 = hf1 (t 0 + h / 2, w1,0 + k 2,1 / 2, w2,0 + k 2, 2 / 2) = h(w2,0 + k 2, 2 / 2) = 0.0616

21
k 3, 2 = hf 2 (t 0 + h / 2, w1,0 + k 2,1 / 2, w2,0 + k 2, 2 / 2) = −0.03152
k 4,1 = hf1 (t 0 + h, w1,0 + k 3,1 , w2,0 + k 3, 2 ) = h(w2,0 + k 3, 2 ) = −0.06315
k 4, 2 = hf 2 (t 0 + h, w1,0 + k 3,1 , w2,0 + k 3, 2 ) = −0.02178

On aura donc:
w 1 1 = w 1 0 + (k1,1 + 2k 2,1 + 2k3,1 + k 4,1 )/6 = -0.4617
w 1 2 = w 2 0 + (k1,2 + 2k2,2 + 2k3,2 + k 4,2 )/6 = -0.6316

On procède de la même manière pour calculer w1, j , w2, j ( j = 2, 3,, N ).

Exemple 7:
En utilisant la méthode d’Euler modifiée, résoudre le problème suivant:
 y1' (t ) = y1 y 2 + t
 '
 y 2 (t ) = ty 2 + y1
 y (0) = 1, y (0) = −1, h = 0.1
 1 2

On a:
w1, p = 1 + 0.1(1(−1) + 0) = 0.9
w2, p = −1 + 0.1(0(−1) + 1) = −0.9
w1,c = 1 + 0.1(−1 + 0.9(−0.9) + 0.1) / 2 = 0.9145
w2,c = −1 + 0.1(1 + 0.1(0.9) + 0.9145) / 2 = −0.9088

Donc la solution approximative de y au point t = 0.1 est w1 (0.1) = 0.9145 , w2 (0.1) = −0.9088 .
On procède de la même manière pour calculer w1 (ti ) , w2 (t i ) ( i = 2, 3,, N ).

8.3 Exercices et problèmes

Exercice 1
Soit le problème de Cauchy suivant :
𝑦 ′ (𝑡) = 2𝑡 − 𝑦(𝑡) = 𝑓(𝑡, 𝑦)
{
𝑦(0) = 1
1. Vérifier si ce problème admet une solution unique sur l’intervalle [0; 0.3].
2. Résoudre ce problème par l’application de la méthode d’Euler simple pour une valeur de
ℎ = 0.1.
3. Estimer l’erreur en chaque point 𝑡𝑖 = 0(0.1)0.3.
4. Comparer l’erreur trouvée avec celle directe calculée à partir de la solution exacte donnée
par : 𝑦(𝑡) = 2𝑡 − 2 + 3𝑒 −𝑡

Exercice 2
3𝑦(𝑥)
Soit à résoudre l'équation différentielle : 𝑦 ′ (𝑥) = 𝑥 avec 𝑦(1) = 1.

22
(1) Montrez que y respecte la condition de Lipschitz entre 1 et 5.
(2) Pour h=1, calculez y1 à y 5 par Euler-Cauchy et calculez l'erreur réelle sachant que la
solution de cette équation est y( x) = x 3 .
(3) Comparez l'erreur réelle à l'erreur prévisible.
(4) Effectuez la prédiction de Runge-Kutta d'ordre 2 pour h = 0.5 .

Exercice 3
Résoudre le problème de Cauchy suivant:

x  0, 2
2x
 y ' ( x ) = f ( x, y ) = y ( x ) −
 y ( x)
 y (0) = 1, h = 0.1

en utilisant les méthodes suivantes: Euler, Taylor, R-K2 et R-K4.
Sachant que la solution exacte est: y( x) = (2 x + 1) 0.5 .

Exercice 4
Illustrez la méthode d’Euler la plus simple pour le calcul de la solution de:
 y ' ( x) = f ( x, y ) = − x( y ( x) )1 / 3 x  1, 2

 y (1) = 1, h = 0.1
Appliquez à nouveau la méthode locale des série de Taylor pour retrouver la solution du présent
problème.
Appliquez la méthode de R-K pour retrouver une solution du problème de Cauchy posé.

Exercice 5
Soit le problème de Cauchy suivant:
 y ' ( x ) = f ( x, y ) = 2 x + y ( x )

 y (0) = 1, h = 0.25

Trouver la valeur approximative de y(0.5) , par la méthode deRunge-Kutta d’ordre 4.

Exercice 6
En utilisant la méthode d’Euler modifiée, résoudre le problème de Cauchy suivant:
 y' = sin x + y

 y( 0 ) = 2 , h = 0.1

pour déterminer la valeur de y(0.1).

Exercice 7
Soit le problème de Cauchy suivant:

23
 dy
 =x +y
3 2

 dx
 y (0) = 0, h = 0.2
Trouver les trois premières valeurs de y, en utilisant la méthode de Runge-Kutta d’ordre 4 (quatre
décimales près.). Puis calculer le reste des valeurs jusqu’à x = 1.4 par la méthode d’Adams –
Moulton.

Exercice 8
Soit le problème de Cauchy suivant:
 dy
 = x + y + xy
 dx
 y (0) = 1, h = 0.025
Trouver la valeur approximative de 𝑦(0.1), par la méthode d’Euler modifiée. Retrouver la valeur
de 𝑦(0.1), en utilisant la méthode deRunge-Kutta d’ordre 4 avec un pas ℎ = 0.1. Comparer les
deux résultats obtenus avec cinq décimales près.

Exercice 9
Le mouvement d'un système amortisseur ressort-masse (Voir la figure ci-dessous) est décrit par
l'équation différentielle ordinaire suivante:
𝑑2 𝑥 𝑑𝑥
𝑚 𝑑𝑡 2 + 𝑐 𝑑𝑡 + 𝑘𝑥 = 0

où 𝑥 est le déplacement par rapport à la position


d'équilibre (en mètre), 𝑡 est le temps(en seconde), 𝑚 est
une masse de 20 𝑘𝑔 et 𝑐 = 5 est le coefficient
d’amortissement (en 𝑁. 𝑠/𝑚). La constante du ressort
𝑘 = 20 𝑁 / 𝑚. La vitesse initiale est zéro et le
déplacement initial 𝑥 = 1 𝑚. Résoudre cette équation en
utilisant la méthode de Rung-Kutta d’ordre 4 pour un pas
de temps ∆𝑡 = 3𝑠 sur une période de 0 ≤ 𝑡 ≤ 15 𝑠. Tracer le déplacement en fonction du temps.

Exercice 10
Soit l’´equation différentielle du troisième ordre et à conditions initiales :
𝑦 ′′′ (𝑡) = 3𝑦(𝑡), 𝑡 ∈ [0,1]
{ ′ (0) ′′ (0)
𝑦(0) = 1 𝑒𝑡 𝑦 = −2 𝑒𝑡 𝑦 = −1
Ecrire cette équation différentielle sous la forme d’un système différentiel de deux équations
d’ordre un. On applique la méthode d’Euler à ce système, écrire l’algorithme correspondant. (on
notera ℎ .le pas numérique).

Exercice 11
Résoudre par la méthode RK2 l’équation différentielle du second ordre à conditions initiales
suivante :
𝑦 ′′ (𝑡) + 2𝑦 ′ (𝑡) = 2𝑦(𝑡), 𝑡 ∈ [0,1]
{
𝑦(0) = 1 𝑒𝑡 𝑦 ′ (0) = 1; ℎ = 0.2

24
Exercice 12
Pour un système résonnant de ressort avec une fonction périodique de poids, l'équation différentielle
est donnée par:
d 2x
+ 64 x = 16 cos 8t avec x(0) = x' (0) = 0 .
dt 2
Déterminer le déplacement des ressors à t = 0.1 (0.1) 0.8 en utilisant la méthode d'Adams-Bachforth à
deux pas. Pour déterminer les valeurs de démarrage de cette méthode, utiliser une méthode à pas simple
de votre choix.
Comparer vos résultats à ceux de la solution analytique : y(t ) = t sin 8t .

Exercice 13
Soit l’´equation différentielle
𝑦 ′ = 𝑓(𝑥, 𝑦) = −2𝑥𝑦 2 , 𝑥 ∈ [0, 5] 𝑒𝑡 𝑦(0) = 1
1. Calculer la solution exacte.
2. En appliquant la méthode de Range Kutta d’ordre 2, calculer les valeurs approchées 𝑦0 , et
𝑦1 avec un pas ℎ = 0.5.

Exercice 14
Résoudre le problème de Cauchy suivant:
( x 2 − 4) y"+3xy'+ y = 0
 , h = 0.50
 y (0) = 2 ; y ' (0) = 1
Pour déterminer l’approximation de y(0.5) en utilisant les deux méthodes : Taylor 2 et Runge - Kutta
d’ordre 4.

Exercice 15
Résoudre le problème de Cauchy suivant:
 y" '+ xy"− xy'−2 y = x

 y (0) = y" (0) = 0 ; y ' (0) = 1
en utilisant la méthode de Runge - Kutta d’ordre 4 pour x = 0.2 (0.2) 0.6 .
Exercice 16
Résoudre l’´equation différentielle du troisième ordre à conditions initiales suivante :
𝑡 3 𝑦 ′′′ (𝑡) − 𝑡 2 𝑦 ′′ (𝑡) + 3𝑡𝑦 ′ (𝑡) − 4𝑦(𝑡) = 5𝑡 3 ln(𝑡) + 𝑡 3 , 𝑡 ∈ [1, 2]
{
𝑦(1) = 0 ; 𝑦 ′ (1) = 1 𝑒𝑡 𝑦 ′′ (1) = 3; ℎ = 0.1
Par la méthode Runge-Kutta d’ordre 4 et comparer les résultats obtenus à ceux de la solution
exacte donnée par : 𝑦(𝑡) = −𝑡 2 + 𝑡𝑐𝑜𝑠(𝑙𝑛𝑡) + 𝑡𝑠𝑖𝑛(𝑙𝑛𝑡) + 𝑡 3 𝑙𝑛𝑡.

Exercice 17
Soit le problème de Cauchy suivant:

= t 2 , t  0,1
u
u ' ' ' (t ) + sin(t ) 1 + (u ' ' ) u '+
2
−t
 1+ e

u (0) = 1; u ' (0) = 2; u ' ' (0) = 3
Calculer l'approximation de y(0,2) en utilisant la méthode de Rung-Kutta 4 pour une valeur de
h = 0.2 .

25
Exercice 18
Soit le problème de Cauchy suivant :
𝑦 ′ (𝑡) = −2𝑡𝑦 2
{
𝑦(0) = 1
1
Sachant que la solution exacte de ce problème est : 𝑦(𝑡) = 𝑡 2 +1
1. Résoudre ce problème par l’application de la méthode d’Euler explicite pour une valeur de
ℎ = 0.1 et 0 ≤ 𝑡 ≤ 0.5.
2. Estimer l’erreur en chaque point 𝑡𝑖 = 0(0.1)0.5.
3. Comparer l’erreur trouvée avec celle directe calculée à partir de la solution exacte.

Exercice 19
Résoudre simultanément les deux équations différentielles suivantes:
 dx
 dt = xy + t

 dy
 = x−t
 dt
 x(0) = 0, y (0) = −1


en utilisant la méthode d'Adams-Bachforth à deux pas pour déterminer les valeurs des deux fonctions
x(t ) et y (t ) à t = 0.2 (0.2) 0.6 . Pour déterminer les valeurs de démarrage de cette méthode, utiliser
une méthode à pas simple de votre choix.

Exercice 20
On s’intéresse au mouvement d’un pendule de longueur l auquel est attachée une masse m et soumis
à une force d’excitation périodique f (t ) = f 0 cos(0t ) . L’angle que fait le pendule avec la verticale est
la solution de l’équation différentielle ordinaire suivante :
 "+q '+ sin = b cos(0t )
Où q = k / m et b = f 0 / ml avec (q, b, 0 ) = (0.5,0.9,2 / 3) . Résoudre cette EDO sur l’intervalle
t  0, 3  en utilisant la méthode de Rung-Kutta 4. On prendra comme conditions initiales :
 0 = 0 ;  ' 0 = 2 et h =  / 4 .

Exercice 21
Soit le problème de Cauchy suivant:
dy
y' = = y ex + 1 y (0) = 0.5
dx
Montrer que ce problème admet une solution unique. Calculer l'approximation de y(1.0) en
utilisant la méthode de Rung-Kutta 4 pour une valeur de h = 1.0 . Si on prend h = 0.25 ; quelle
serait la diminution de l'erreur de troncature en y (1)? (sans refaire les calculs).

Exercice 22
Soit le problème de Cauchy suivant:

26
 y ' (t ) = sin(t ) − y (t ) = f (t , y ) , t  0,1

 y (0) = 1
Montrer que ce problème admet une solution unique. Calculer l'approximation de y(0,2) en utilisant la
méthode d'Euler et estimer l'erreur commise pour une valeur de h = 0.2 .

Exercice 23
Soit le problème de Cauchy suivant:
 y ' '−2 y '+ y = xe x , t  0,1

 y (0) = 2 ; y ' (0) = 1
Calculer l'approximation de y(0,2) en utilisant la méthode de Rung-Kutta 4 pour une valeur de
h = 0.2 .

Exercice 24
Soit l’équation différentielle : x 2 y'−xy = 1 avec la condition initiale y(1) = 0 définie sur le segment
[1, 2] .
1. Calculer les deux premières valeurs de la solution de cette équation en utilisant la
méthode Runge-Kutta d’ordre 4.
2. Calculer le reste des solutions en utilisant la méthode d’Adams Bashforth.
3. Prendre comme prédicteur les valeurs obtenues précédemment pour calculer la solution
au point x = 2 par la méthode d’Adams Moulton d’ordre 3. Estimer les résultats obtenus si
la solution exacte est donnée par : y( x) = 0.5x − 1/ 2x

Exercice 25
Soit l’équation différentielle : y' = x − y 2 avec la condition initiale y(0) = 0 définie sur le
segment [0, 0.8] .
1. Calculer les deux premières valeurs de la solution de cette équation en utilisant la méthode
Runge-Kutta d’ordre 4 en prenant h = 0.2 .
2. Calculer le reste des solutions en utilisant la méthode d’Adams Bashforth.
3. Prendre comme prédicteur les valeurs obtenues précédemment pour calculer la solution au
point x = 0.8 par la méthode d’Adams Moulton d’ordre 3.

8.4 Devoir à domicile


Problème A:
Soit le problème de Cauchy suivant:
 y( 0 ) = 0.04
 y' ( t ) = dy / dt =
 f ( t , y ( t )) = −50 y + 1 , h =1
Déterminer la valeur de 𝑦(1) en utilisant une méthode analytique (solution exacte) puis
l’approchant avec les deux méthodes: Euler et celle d’Euler modifiée. Comparer et commenter les
résultats obtenus. Si les solutions numériques, obtenues, sont très éloignées de la solution exacte
quelle méthode proposer vous pour obtenir un meilleur résultat? Retrouver la valeur de 𝑦(1) en
utilisant la méthode proposée.

27
Problème B:
On considère l’équation de Vander Pol qui consiste en une équation différentielle du 2 ème ordre à
coefficients non constants. Elle se rencontre dans les problèmes de vibrations et sert à décrire la
relaxation et les régimes intermédiaires entre celle ci et les oscillations entretenues.
Il s’agit d’équation comportant un terme d’amortissement négatif (qui provoque une croissance des
oscillations) s’annulant à partir d’une certaine amplitude. (exemple simple: lampe à néon).
2
y 2
y" − ( 1 − ) y' + y = 0
y0
Donner une explication physique des différents termes constituant cette dernière équation.
Dans un cas simple:
2
y" −0.1( 1 − y ) y' + y = 0
y( 0 ) = 1 , y' ( 0 ) = 0 , t  [ 0 ,+ ]
Déterminer la valeur de y1 en prenant ℎ = 0.2.

Problème C:
Soit le problème deCauchysuivant:

 y ' = x + y + xy

 y (0) = 1 h = 0,025
Trouver la valeur approximative de y(0.1) , par la méthode d’Euler modifiée.
Retrouver la valeur de y(0.1) , en utilisant la méthode deRunge-Kutta d’ordre 4 avec un pas h = 0.1
.
Comparer les deux résultats obtenus avec cinq décimales près.

Problème D
Considérons deux masses attachées à un mur par des ressorts linéaires ( Voir Figure).
L’équilibrage des forces basé sur la deuxième loi de Newton peut être donné par :

𝑑2 𝑥1 𝑘1 𝑘2
= − (𝑥1 − 𝐿1 ) + (𝑥 − 𝑥1 − 𝑤1 −𝐿2 )
𝑑𝑡 2 𝑚1 𝑚1 2
𝑑 2 𝑥2 𝑘2
= − (𝑥 − 𝑥1 − 𝑤1 −𝐿2 )
{ 𝑑𝑡
2 𝑚2 2

où 𝑘𝑖 sont les constantes du ressort, 𝑚 est la masse, 𝐿 est la


longueur du ressort non étiré, et 𝑤 est la largeur de la masse. Calculer les positions des masses en
fonction du temps en utilisant
les valeurs des paramètres suivantes: 𝑘1 = 𝑘2 = 5, 𝑚1 = 𝑚2 = 2, 𝑤1 = 𝑤2 = 5 et 𝐿1 = 𝐿2 = 2.
Les conditions initiales sont données comme : 𝑥1 = 𝐿1 et 𝑥2 = 𝐿1 + 𝑤1 +𝐿2 + 6. Effectuer la

28
simulation de 𝑡 = 0 à 20. Construire des diagrammes des séries temporelles des déplacements et
des vitesses. Tracer les résultats obtenus dans un plan (𝑥1 , 𝑥2) .

29

Vous aimerez peut-être aussi