• Aucun résultat trouvé

Méthodes de Runge-Kutta

Dans le document Méthodes numériques II (Page 40-46)

Introduction à la résolution d'E.D.O

3.5 Méthodes de Runge-Kutta

2

Les méthodes de Runge-Kutta sont des méthodes à un pas dédiées à la résolution de problèmes de Cauchy

3

(3.8)-(3.9).

4

(a) Carle Runge 1856-1927,

math-ématicien et physicien allemand (b) Martin Wilhelm Kutta

1867-1944, Mathématicien allemand (c) John C. Butcher 1933, Math-ématicien appliqué néozélandais

3.5.1 Principe

5

Pour simplier, on suppose hn “h. L'idée fondamentale des méthodes de Runge-Kutta est d'intégrer

6

en utilisant une formule d'intégration numérique àqpoints intermédiaires pour évaluer l'intégrale.

8

La fonctionΦΦΦassociée à une méthode de Runge-Kutta àqévaluations defff peut s'écrire sous la forme

9 que l'on peut représenter sous la forme d'un tableau dit tableau de Butcher :

12

aaa B

ccct (3.18)

avecB“ pbi,jqi,jPv1,qwPMq, qpRq, aaa“ paiqiPv1,qwPRq etccc“ pciqiPv1,qwPRq

13

Méthodes de Runge-Kutta

3.Introductionàlarésolutiond'E.D.O. 3.5.MéthodesdeRunge-Kutta3.5.2FormulesexplicitesdeRunge-Kuttad'ordre2 37

Proposition 3.17: (admis)

1. Les méthodes de Runge-Kutta explicites sont stables sifff est contractante enyyy. 2. Une méthode de Runge-Kutta est d'ordre0si

ai

q

ÿ

j“1

bij.

3. Une méthode de Runge-Kutta est d'ordre1(et donc consistante) si elle est d'ordre 0et si

q

ÿ

i“1

ci“1.

4. Une méthode de Runge-Kutta est d'ordre2si elle est d'ordre 1et si

q

ÿ

i“1

ciai“1{2.

5. Une méthode de Runge-Kutta est explicite si la matriceBest triangulaire inférieure à diagonale nulle :

@pi, jq P v1, qw, jěi, bij “0. 1

3.5.2 Formules explicites de Runge-Kutta d'ordre 2

2

Le tableau de Butcher associé aux méthodes de Runge-Kutta d'ordre2s'écrit sous la forme 3

0 0 0

1

1

0

1´α α

(3.19)

Pour la méthode de Runge-Kutta d'ordre2, la fonctionΦΦΦassociée au schéma général (3.16) est donnée 4

par 5

Φ Φ

Φpt, yyy, hq “ p1´αqfffpt, yyyq `αfffpt` h

2α, yyy` h

2αfffpt, yyyqq.

‚ Avec α“ 12,on obtient la méthode de Heun : y

y

yrn`1s“yyyrns`h

2fffptn, yyyrnsq `h 2fff´

tn`1, yyyrns`hfffptn, yyyrnsq

¯ .

‚ Avec α“1,on obtient la méthode d'Euler modiée ou méthode du point milieu:

y y

yrn`1s“yyyrns`hfff ˆ

tn`h

2, yyyrns`h

2fffptn, yyyrnsq

˙ .

Exercice 3.5.1 6

Compiled on 2016/03/08 at 18:59:44

3.Introductionàlarésolutiond'E.D.O. 3.5.MéthodesdeRunge-Kutta3.5.2FormulesexplicitesdeRunge-Kuttad'ordre2

la méthode de Heun est donnée par y

Q. 1 Ecrire la fonction algorithmiqueREDHeunVec permettant de résoudre un problème de Cauchy (vectoriel par la méthode de Heun en utilisant au plus 2N évaluation defff .

Q. 2 Ecrire un programme algorithmique permettant de retrouver numériquement l'ordre de cette méthode.

1

Correction Exercice 3.5.1

2

Q. 1 Le schéma de Heun peut s'écrire sous la forme y L'algorithme de la fonctionREDHeunVec s'écrit alors :

3

Algorithme 3.5 FonctionREDHeunVec : résolution d'un problème de Cauchy par le schéma de Heun Données : fff : fff :rt0, t0`Ts ˆRdÝÑRd fonction d'un

problème de Cauchy (scalaire) t0 : réel, temps initial

T : réelą0

yyy0 : un vecteur deRd, donnée initiale

N : un entier non nul (nombre de pas de discrétisation).

Résultat : ttt : vecteur de RN`1, tttpnq “tn´1, @nP v1, N`1w

Q. 2 Il est possible de vérier/retrouver numériquement l'ordre du schéma de Heun. Pour celà on choisi un problème de Cauchy dont la solution exacte est connue et on calcule pour diérentes valeurs deh(et donc diérentes valeurs deN) le maximum de l'erreur commise entre la solution exacte et la solution numérique donnée par le schéma de Heun :

Ephq “ max

On représente ensuite la fonctionh ÞÑ Ephq. La méthode de Heun étant d'ordre 2, on a alors Ephq “

4

Oph2q «Ch2 quandhest susament petit. On utilise alors une échelle logarithmique pour représenter

5

la courbe. En eet, on a

6

logEphq «logpCh2q “logpCq `2 logphq

En posantX “logphqet Y “logEphq, coordonnées en échelle logarithmique, on a

7

Y «logpCq `2X

qui est l'équation d'une droite. La pente de cette droite est donc l'ordre de la méthode.

8

Méthodes de Runge-Kutta

14: ... ŹRepresentation graphique

1

Erreur avec h=2/(20imes T), N=20

Erreur avec h=2/(200imes T), N=200

1e-2 1e-1 1e+0

Figure 3.10: Méthode de Heun : vérication numérique de l'ordre et comparaison avec la méthode d'Euler progressive

Les méthodes d'ordrepą1sont plus précises que la méthode d'Euler, et d'autant plus quepaugmente. 4 On se limite dans la pratique àp“4.Cette méthode est connue sous le nom de Runge-Kutta 4. On peut 5 noter que pour ces méthodes le pas peut être adapté à chaque itération. 6

3.5.3 Méthodes de Runge-Kutta d'ordre 4

7

La méthode explicite la plus utilisée est donnée par le tableau de Buchler suivant 8

0 0 0 0 0

Ce qui donne le schéma explicite de Runge-Kutta d'ordre4: 9

kkkrns1 “ fffptn, yyyrnsq

Compiled on 2016/03/08 at 18:59:44

3.Introductionàlarésolutiond'E.D.O. 3.5.MéthodesdeRunge-Kutta3.5.3MéthodesdeRunge-Kuttad'ordre4

Exercice 3.5.2

la méthode de Runge-Kutta d'ordre 4 est donnée par kkkrns1 “ fffptn, yyyrnsq

kkkrns2 “ fffptn`h2, yyyrns`h2kkkrns1 q kkkrns3 “ fffptn`h2, yyyrns`h2kkkrns2 q kkkrns4 “ fffptn`h, yyyrns`hkkkrns3 q

yyyrn`1s “ yyyrns`h6pkkkrns1 `2kkkrns2 `2kkkrns3 `kkkrns4 q.

Q. 1 Ecrire la fonction algorithmiqueREDRK4Vec permettant de résoudre un problème de Cauchy (vectoriel par la méthode de Runge-Kutta d'ordre 4.

Q. 2 Ecrire un programme algorithmique permettant de retrouver numériquement l'ordre de cette méthode.

1

Correction Exercice 3.5.2

2

Q. 1 Il faut noter qu'il n'est pas nécessaire de stocker l'ensemble des vecteurskkkrns1 , . . . , kkkrns4 , nP v1, Nw.

3

Pour minimiser l'occupation mémoire de l'ordinateur, à chaque itération, on calculekkk1Ðkkkrns1 ptn, yyyrnsq,

4

... kkk4Ðkkkrns4 ptn, yyyrnsq.L'algorithme de la fonctionREDRK4Vec s'écrit alors :

5

Algorithme 3.6 FonctionREDRK4Vec : résolution d'un problème de Cauchy par le schéma de RK4 Données : fff : fff :rt0, t0`Ts ˆRdÝÑRd fonction d'un

problème de Cauchy (scalaire) t0 : réel, temps initial

T : réelą0

yyy0 : un vecteur deRd, donnée initiale

N : un entier non nul (nombre de pas de discrétisation).

Résultat : ttt : vecteur de RN`1, tttpnq “tn´1, @nP v1, N`1w YY

Y : matrice réelle de dimensiondˆ pN`1q, YYYp:, nq “yyypn´1q, @nP v1, N`1w

1: Fonctionrttt, YYYs Ð REDRK4Vec(f, t0, T, yyy0, N )

2: tttÐDisRegpt0, t0`T, Nq

3: hÐ pb´aq{N

4: YYYp:,1q Ðyyy0

5: Pour nÐ1à N faire

6: kkk1Ðfffptttpnq, YYYp:, nqq

7: kkk2Ðfffptttpnq `h{2, YYYp:, nq ` ph{2qkkk1q

8: kkk3Ðfffptttpnq `h{2, YYYp:, nq ` ph{2qkkk2q

9: kkk4Ðfffptttpnq `h, YYYp:, nq `hkkk3q

10: YYYp:, n`1q ÐYYYp:, nq ` ph{6q ˚ pkkk1`2kkk2`2kkk3`kkk4q

11: Fin Pour

12: Fin Fonction

Q. 2 voir aussi correction Exercice 3.5.1-Q2 : l'ordre 2 étant remplacé par 4 ici! Il est possible de vérier/retrouver numériquement l'ordre du schéma de Runge-Kutta 4. Pour celà on choisi un problème de Cauchy dont la solution exacte est connue et on calcule pour diérentes valeurs deh(et donc diérentes valeurs deN) le maximum de l'erreur commise entre la solution exacte et la solution numérique donnée par le schéma de Runge-Kutta 4 :

Ephq “ max

nPv0,Nw

›yyyptnq ´yyyrns

On représente ensuite la fonction h ÞÑ Ephq. La méthode de Runge-Kutta 4 étant d'ordre 4, on a

6

alors théoriquement Ephq “ Oph4q « Ch4 quand hest susament petit. On utilise alors une échelle

7

logarithmique pour représenter la courbe. En eet, on a

8

logEphq «logpCh4q “logpCq `4 logphq

Méthodes de Runge-Kutta

3.Introductionàlarésolutiond'E.D.O. 3.5.MéthodesdeRunge-Kutta3.5.3MéthodesdeRunge-Kuttad'ordre4 41

En posantX“logphqetY “logEphq,coordonnées en échelle logarithmique, on a 1

Y «logpCq `4X

qui est l'équation d'une droite. La pente de cette droite est donc l'ordre de la méthode. 2

1: t0Ð0, T Ð4π,

2: f :t, zÝÑcosptq `1, yex:tÝÑsinptq `t

3: y0Ðyexpt0q

4: LN Ð100 : 50 : 1000

5: nLN ÐlengthpLNq

6: H Ð0nLN, Źpour stocker lesh

7: E Ð0nLN, Źpour stocker les erreurs

8: Pour kÐ1 ànLN faire

9: N ÐLNpkq

10: rt, ys ÐREDRK4Vecpf, t0, T, yyy0, Nq

11: Epkq Ðmaxpabspy´yexptqqq

12: Hpkq ÐT{N

13: Fin Pour

14: ... ŹRepresentation graphique

3

˛ 4 5

0 2 4 6 8 10 12 14

0 1e-05 2e-05 3e-05 4e-05 5e-05 6e-05

t

Error

0 2 4 6 8 10 12 14

0 1e-09 2e-09 3e-09 4e-09 5e-09 6e-09

t

Error

Erreur avec h=2/(20imes T), N=20

Erreur avec h=2/(200imes T), N=200

1e-2 1e-1 1e+0

1e-12 1e-11 1e-10 1e-9 1e-8 1e-7 1e-6 1e-5 1e-4 1e-3 1e-2

h

E(h)

Heun (ordre 1.999) RK4 (ordre 3.998) O(h^2) O(h^3) O(h^4)

Figure 3.11: Méthode de Runge-Kutta 4 : vérication numérique de l'ordre et comparaison avec la méthode de Heun

Lorsque l'on diminue encore le pas on obtient la Figure 3.12. L'erreur engendrée par la méthode de 6 Runge-Kutta 4 se stabilise autour de la valeur1e´14: la précision machine est atteinte! 7

Compiled on 2016/03/08 at 18:59:44

3.Introductionàlarésolutiond'E.D.O. 3.6.Méthodesàpasmultiples3.6.2Leprincipe

1e-3 1e-2 1e-1

1e-14 1e-13 1e-12 1e-11 1e-10 1e-9 1e-8 1e-7 1e-6 1e-5 1e-4 1e-3

h

E(h)

Heun (ordre 2.000) RK4 (ordre 2.908) O(h^2) O(h^3) O(h^4)

Figure 3.12: Méthode de Runge-Kutta 4 : vérication numérique de l'ordre avec précision machine atteinte

Dans le document Méthodes numériques II (Page 40-46)