You are on page 1of 18

EDO

UPMC

1 Introduction

Master P&A/SDUEE

1
UE MP025 = 4P056

1.1

Mthodes Numriques et Calcul Scientifique

Introduction
Problme diffrentiel

quation diffrentielle scalaire dordre n

Rsolution numrique des

dn y
=f
dtn

quations diffrentielles ordinaires (EDO)



dy
dn1 y
t, y,
, ...,
dt
dtn1

famille de solutions n paramtres


ensemble de n conditions imposes

20142015

choix dune solution dans la famille

Jacques.Lefrere@upmc.fr

MNCS

EDO

1 Introduction

1.2 Deux types de problmes diffrentiels rsoudre

EDO

1 Introduction

2014-2015

1.3 quations diffrentielles scalaires du 1er ordre

1.2 Deux types de problmes diffrentiels rsoudre


1.3

Conditions initiales donnes pour une seule valeur t0 de t, par exemple

y(t0 ) = y0 , y 0 (t0 ) = y00 , . . . ,

(n1)

tudier dabord les quations diffrentielles scalaires du premier ordre.

y (n1) (t0 ) = y0

famille de solutions un paramtre (y0 )

Problme de conditions initiales ou de Cauchy

dy
= f (t, y(t)) avec y(t0 ) = y0
dt

Conditions donnes pour des valeurs distinctes de la variable indpendante t,


par exemple :

y(t0 ) = y0 , y(t1 ) = y1 , . . . ,

Les EDO dordre suprieur se ramnent des systmes diffrentiels coupls du

y(tn1 ) = yn1

premier ordre (EDO vectorielles du premier ordre).

Problme de conditions aux limites (non trait, sauf problme de tir).

MNCS

quations diffrentielles scalaires du 1er ordre

2014-2015

MNCS

2014-2015

EDO

1 Introduction

1.4 Conditions suffisantes

EDO

1 Introduction

1.5

1.4 Conditions suffisantes

1.5 Mthodes de rsolution numrique et notations

Mthodes de rsolution numrique et notations

Discrtisation par dcoupage de lintervalle de longueur L selon un pas constant h


La condition de Lipschitz

ti = t0 + ih pour 1 6 i 6 n.
Solution numrique : ui = approximation de y(ti )
chantillonnage de la solution aux instants

|f (t, y2 ) f (t, y1 )| 6 K |y2 y1 |

partir de la condition initiale u0

= y(t0 ) impose,
faire une boucle sur les abscisses ti pour calculer lapproximation ui+1 ti+1
approximer ainsi de proche en proche la solution sur lintervalle L.

assure lunicit de la solution.



f

(t, y) 6 K dans un domaine convexe condition de Lipschitz vrifie.
y

Les erreurs darrondi amnent toujours rsoudre un problme perturb.

accumulation des erreurs dans la boucle


chaque pas de la boucle, pour calculer ui+1 , on peut sappuyer :

Problme bien pos si : le problme faiblement perturb (second membre ou


condition initiale) possde une solution proche de celle du problme original.

sur la dernire valeur calcule ui : mthodes un pas

La condition de Lipschitz assure que le problme est bien pos.

sur plusieurs valeurs uik (k

> 0) antrieurement calcules :

mthodes plusieurs pas (initialisation ncessaire par mthode un pas)

MNCS

EDO

1 Introduction

2014-2015

1.5 Mthodes de rsolution numrique et notations

MNCS

EDO

2 Mthodes un pas

2
exacte

y
famille de solutions exactes
dpendant de y0

approx.

yi+1

erreur
cumule

ui+1

la solution
passant par (ti , ui )

ui

t0
MNCS

ti

ti+1

constant

linstant ti+1

= ti + h, connaissant seulement ui , celle ti .

Dcoupage de
longueur L selon

h2 d2 y
dy
(ti ) +
(ti ) +
dt
2 dt2
Ordre n de la mthode = plus grande puissance de h prise en compte dans

un pas fixe

lapproximation.

La valeur estimer peut tre approche par un dveloppement limit de Taylor :

y(ti + h) = y(ti ) + h

lintervalle de

Somme des termes ngligs

h = L/n.

(1)

= erreur de troncature locale hn+1

augmente si le pas h augmente et si lordre de la mthode diminue


Prcision finie des oprations sur les rels erreur darrondi

augmente lorsque les calculs se compliquent, en particulier si le pas h diminue.

Un pas :

Indpendamment du cot (en temps de calcul) des oprations, et des cas o la

ui ui+1

fonction est tabule, ne pas croire que diminuer le pas amliore toujours la
qualit du rsultat : un compromis doit tre trouv entre ces deux types derreurs.

t
6

Mthodes un pas

Constituent lalgorithme de base qui permet destimer la valeur de la solution

Mthode pas

ui = approximat.
de y(ti )

y0

2014-2015

2014-2015

MNCS

2014-2015

EDO

2 Mthodes un pas

2.1 Mthodes du premier ordre

EDO

2 Mthodes un pas

2.1 Mthodes du premier ordre

2.1 Mthodes du premier ordre


2.1.1

Mthode dEuler progressive (explicite)

Mthode du premier ordre dintrt pdagogique ( viter en pratique).

Mthode dEuler
(2)

ui+1 = ui + hf (ti , ui )

Mthode explicite qui ne

Exemple :

ui+1

dy
= y
dt

solution analytique

ui+1 = ui hui
Si

y = y0 et yn = y0 (eh )n

solution approche

un = y0 (1 h)

ncessite quune

0 |1 h| < 1 0 < h <

ui

2
.

de la fonction second

k1
h

> 0, la solution exacte vrifie y() = 0,

Mais pour lapproximation, un

seule valuation

k1 h

membre f par pas :

k1 = f (ti , ui )

ti

ti+1

facilement instable

2
(pas h petit)

Mais, si h > 1/, alors (1 h) < 0 : alternance de signe de la solution un .


Condition de stabilit : h

<

MNCS

EDO

2014-2015

2 Mthodes un pas

2.1.2

2.1 Mthodes du premier ordre

MNCS

EDO

ui+1 = ui hui+1

solution analytique

dy
= f (t, y(t))
dt

y = y0 et

d2 y
f dy
f
f
f
=
+
=
+f
2
dt
t
y dt
t
y

(4)

Prfrer utiliser plusieurs valuations du second membre f en des points adapts.

un =

solution approche

ui+1

ui
=
1 + h

Centrer lvaluation de la drive au point milieu

y0
n
(1 + h)

h dy
(tm ) +
2 dt
h dy
y(ti ) = y(tm )
(tm ) +
2 dt

y(ti + h) = y(tm ) +

Si

> 0, y() = 0, et aussi un 0 > 0, h > 0 solution stable


Mthode implicite plus difficile mettre en uvre, sauf lorsque la forme de f (t, u)
permet le calcul analytique de ui+1 partir de lquation (3).

10

tm = (ti + ti+1 )/2.

1 h2 d2 y
(tm ) + O(h3 )
2 4 dt2
1 h2 d2 y
(tm ) + O(h3 )
2 4 dt2

(5a)
(5b)

Par diffrence, (approximation locale parabolique, voir aussi drive centre 2 termes)

Avantage : meilleure stabilit que la mthode progressive explicite.

MNCS

Mthodes du deuxime ordre

rarement utilis, car ncessite lvaluation des drives partielles de f .

Exemple :

2.2 Mthodes du deuxime ordre

Premire ide : augmenter le nombre de termes du dveloppement de Taylor :

(3)

ui+1 = ui + hf (ti+1 , ui+1 )

2014-2015

2 Mthodes un pas

2.2

Mthode dEuler rtrograde (implicite)

dy
= y
dt

y(ti + h) y(ti ) = h
2014-2015

MNCS

11

dy
(tm ) + O(h3 )
dt
2014-2015

EDO

2 Mthodes un pas

2.2.1

2.2 Mthodes du deuxime ordre

EDO

Mthode du point milieu

ui+1

k2



h
h
= ui + hf ti + , ui + f (ti , ui )
2
2
(6a)

h
h
, u i + k1 )
2
2
= ui + hk2

2.2.2

qui

k1

ui

2014-2015

2.2 Mthodes du deuxime ordre

deux

membre par pas dont

ti + h/2

ti+1

MNCS

EDO

ncessite

une hors grille.

ti

(6c)

explicite

valuations du second

k1 h/2

(6b)

12

2 Mthodes un pas

Mthode

k2

k2 = f (ti +

EDO

point milieu

k2 h

k1 = f (ti , ui )

MNCS

Mthode du

ui+1

= ti + h/2 dun pas (hors grille).

ui+1

2.2 Mthodes du deuxime ordre

Ncessite lvaluation du second membre f en 2 points :


en ti et au milieu tm

2 Mthodes un pas

13

2 Mthodes un pas

2014-2015

2.2 Mthodes du deuxime ordre

Mthode dEuler modifie


Bilan : mthode de type prdicteur-correcteur quivalent

En appliquant 5a et 5b la drive et en faisant la somme, on peut remplacer la


drive au milieu par la moyenne des drives aux extrmits de lintervalle :

un demi-pas avec la pente initiale k1

dy
dy
dy
(ti ) +
(ti+1 ) = 2 (tm ) + O(h2 )
dt
dt
dt

et un demi-pas avec la pente k2 du point prdit par Euler progressif.

Do une approximation nutilisant pas la valeur de f au point milieu tm :

ui+1

h
= ui + [f (ti , ui ) + f (ti+1 , ui+1 )]
2

De nouveau, mthode a priori implicite, plus stable, mais plus lourde.

MNCS

k2 = f (ti+1 , ui + k1 h)

(7b)

h
[k1 + k2 ]
2

(7c)

NB : mthode parfois appele mthode de Heun


(toutes deux sont des Runge Kutta du deuxime ordre)

h
[f (ti , ui ) + f (ti+1 , ui + hf (ti , ui ))]
2
14

(7a)

ui+1 = ui +

Contournement du problme en utilisant lapproximation dEuler explicite (voir 2)


pour valuer ui+1 intervenant dans f .
ui+1 = ui +

k1 = f (ti , ui )

2014-2015

MNCS

15

2014-2015

EDO

2 Mthodes un pas

2.2 Mthodes du deuxime ordre

EDO

2 Mthodes un pas

2.2.3

2.3 Mthodes de Runge Kutta

Mthode de Heun

ui+1

2
2
k2 = f (ti + h, ui + k1 h)
3
3
h
ui+1 = ui + [k1 + 3k2 ]
4

modifie

k2

k2 h/2

k2

Mthode explicite qui

prdit

k1 h/2
ui

ncessite deux valuations de la fonction

k1

2.3

par pas en des points


de la grille.

ti

ti + h/2

ti+1

(8a)

k1 = f (ti , ui )

Mthode dEuler

corrig

(8b)
(8c)

Mthodes de Runge Kutta

Plus gnralement, avec r valuations de f , on peut atteindre une mthode dordre

r si r 6 4. Pour atteindre lordre 5, six valuations sont ncessaires.


= la mthode de Runge Kutta dordre 4 est trs utilise.
Les mthodes de Runge-Kutta sont stables.

MNCS

16

EDO

2014-2015

2 Mthodes un pas

2.3 Mthodes de Runge Kutta

MNCS

17

EDO

2 Mthodes un pas

2.3.2
2.3.1

2014-2015

2.3 Mthodes de Runge Kutta

Mthode de Runge Kutta dordre 4

Mthode de Runge Kutta dordre 3

(10a)

k1 = f (ti , ui )
(9a)

k1 = f (ti , ui )
h
h
, u i + k1 )
2
2
k3 = f (ti + h, ui + (2k2 k1 )h)
k2 = f (ti +

ui+1 = ui + (k1 + 4k2 + k3 )

MNCS

18

h
6

h
h
, ui + k1 )
2
2
h
h
k3 = f (ti + , ui + k2 )
2
2
k4 = f (ti + h, ui + k3 h)

(10b)

k2 = f (ti +
(9b)
(9c)
(9d)

ui+1 = ui + (k1 + 2k2 + 2k3 + k4 )

2014-2015

MNCS

19

(10c)
(10d)

h
6

(10e)

2014-2015

EDO

2 Mthodes un pas

2.4 Erreur absolue en fonction du pas et de lordre

EDO

2 Mthodes un pas

2.5

Exemple de lquation logistique

2.4 Erreur absolue en fonction du pas et de lordre

2.5 Exemple de lquation logistique

dy
= y(1 y/2)
dt

fichier euler.dat ordre 1 erreur max 0.183E01 position de lerr max 0.286E+01
0.005

nombre de pas =

L/h

erreur globale

erreur locale/h

0.000

Mthode
Euler explicite

ordre

erreur locale

erreur globale

h2

Point milieu Euler modifie

Runge-Kutta 3

Runge-Kutta 4

h2

h5

h4

h4

Erreur = Exact Estim

TABLE 1 Erreur de troncature seule

h3

Erreur darrondi locale indpendante de h erreur darrondi globale

0.020
0

1/h

20

EDO

exact estim

10

12

14

16

18

20

temps

F IGURE 1 Erreur dans lintgration de lquation logistique avec la mthode dEuler

2014-2015

2 Mthodes un pas

0.010

0.015

pour h
MNCS

0.005

2.5 Exemple de lquation logistique

= 0, 02. Lallure rgulire montre que lerreur de troncature domine.

MNCS

21

EDO

2014-2015

2 Mthodes un pas

2.5.1

2.5 Exemple de lquation logistique

Exemple derreur totale maximale en simple prcision

fichier rk4.dat ordre 4 erreur max 0.954E06 position de lerr max 0.190E+01
1e06

Valeur absolue de lerreur absolue pour y= y(1y/2) sur [0,20] y(0)=0.1 simple prcision
10

8e07

101

4e07

pente +1

102

0e+00
2e07
4e07
6e07
8e07
1e06
0

exact estim

10

12

14

16

18

dordre 4 pour h

pente +2
3

10

temps

104

pente +3

105
pente +4
106

= 0, 02. Lallure bruite est caractristique de lerreur darrondi.

107
104
22

pente 1

20

F IGURE 2 Erreur dans lintgration de lquation logistique avec Runge Kutta

MNCS

euler sp
milieu sp
rk3 sp
rk4 sp

2e07

erreur maximale

Erreur = Exact Estim

6e07

2014-2015

MNCS

103

102
pas
23

101

100
2014-2015

EDO

2 Mthodes un pas

2.5.2

2.5 Exemple de lquation logistique

EDO

Exemple derreur totale maximale en double prcision

2 Mthodes un pas

2.5.3

Comparaison des erreurs maximales simple/double prcision

Erreur absolue y= y(1y/2) sur [0,20] y(0)=0.1 double prcision

Erreur absolue y= y(1y/2) sur [0,20] y(0)=0.1 simple/double prcision

100

100

10

10

pente +1

104
pente +2

106

erreur maximale

erreur maximale

104

108
pente +3
1010
1012

MNCS

EDO

108
1010
euler sp
milieu sp
rk3 sp
rk4 sp
euler dp
milieu dp
rk3 dp
rk4 dp

1014

euler dp
milieu dp
rk3 dp
rk4 dp
103

106

1012

pente +4

1014
1016
104

2.5 Exemple de lquation logistique

102
pas
24

101

1016
104

100
2014-2015

3 Mthodes plusieurs pas

103

102
pas
25

MNCS

EDO

101

100
2014-2015

3 Mthodes plusieurs pas

3.1 Mthodes dAdams

3 Mthodes plusieurs pas


3.1.1

Adams Bashforth (explicite : pas de terme en f (ti+1 , ui+1 ))

3.1 Mthodes dAdams


Principe : les erreurs augmentent avec lintgration, les points les plus proches de

ui+1 = ui + h

la valeur initiale ont tendance tre plus fiables. Pour calculer ui+1 , on peut

m
X

j f (tij+1 , uij+1 ) avec

j=1

si le calcul invoque la pente au point recherch f (ti+1 , ui+1 ), la mthode est


implicite (voir 2.1.2) : A DAMS -M OULTON
sinon elle est explicite : A DAMS -B ASHFORTH .
Dans les deux cas, il faut initialiser le calcul par une mthode un pas sur les m
premiers points.

j = 1

j=1

mthode dordre m (nombre dvaluations du second membre)

sappuyer non seulement sur la dernire valeur estime ui , mais sur les m prcdentes.

m
X

1/2

1/12

23

1/24

55

2
1

16
59

Le calcul rutilise les valuations antrieures du second membre.

5
37

= stocker ces valeurs pour conomiser les calculs


MNCS

26

2014-2015

MNCS

27

2014-2015

EDO

3 Mthodes plusieurs pas

3.1 Mthodes dAdams

EDO

Exemple : Adams-Bashforth deux pas

ui+1 = ui +

3 Mthodes plusieurs pas

3.1.2

Adams Moulton (implicite : terme en f (ti+1 , ui+1 ))

h
[3f (ti , ui ) f (ti1 , ui1 )]
2
ui+1 = ui + h

Adams-Bashforth

k1 h/2

Mthode

h/2

dordre

3k0 h/2
k0

ui
ui1
ti1

ti

MNCS

ti+1

mais

seulement une va-

1/2

1/12

1/24

19

deux
nouvelle

du

membre

mmoriser

les

3.1.3

1
5

inject ensuite dans lexpression dAdams-Moulton vue comme correcteur .


2014-2015

3 Mthodes plusieurs pas

viter les difficults de limplicite en utilisant un prdicteur explicite de ui+1 ,

seconds membres.

28

EDO

j = 1

mthode dordre m + 1 (nombre dvaluations du second membre)

chaque pas

m
X
j=0

second

3h/2

j f (tij+1 , uij+1 ) avec

explicite

luation

k1

m
X
j=0

deux pas

ui+1

3.1 Mthodes dAdams

3.1 Mthodes dAdams

MNCS

29

EDO

3 Mthodes plusieurs pas

2014-2015

3.1 Mthodes dAdams

Comparaison mthodes un pas et Adams explicite


3.1.4

Erreur absolue y= y(1y/2) sur [0,20] y(0)=0.1 simple prcision

Mthodes de prdicteur correcteur

10

101

euler sp
milieu sp
rk3 sp
rk4 sp
adamsbashforth2 sp
adamsbashforth3 sp
adamsbashforth4 sp

Principe : bnficier des qualits dune mthode implicite mais lappliquer une
estimation obtenue par une mthode explicite du mme ordre (voir Euler modifie).
prdiction de ui+1 par une mthode explicite

erreur maximale

102

correction de ui+1 par une formule implicite o f (ti+1 , y(ti+1 )) a t


3

approxim par la prdiction f (ti+1 , ui+1 ).

10

Exemple : mthode dEuler modifie

104

Une itration de la partie correction est possible.


Lordre est celui du correcteur, mais la stabilit dpend plus du prdicteur.

10

Ces mthodes permettent destimer lerreur de troncature partir de la diffrence


entre prdicteur et correcteur = adaptation du pas

10

107
104
MNCS

103

102
pas
30

101

100
2014-2015

MNCS

31

2014-2015

EDO

3 Mthodes plusieurs pas

3.2 Mthodes adaptatives

EDO

3 Mthodes plusieurs pas

Contrainte de prcision relative

3.2 Mthodes adaptatives

i (hq) 6

Principe : ajuster le pas localement pour obtenir une prcision impose.

lune ui , dordre n, lautre u?i , dordre n + 1.

q6

y(ti+1 ) ui+1
hn
i =
h
y(ti+1 ) u?i+1
i? =
hn+1
h
u? ui+1
hn
i i+1
h

(11a)

h
u?i+1 ui+1

1/n

(14)

NB. : cette mthode suppose que le pas permet de ngliger lerreur darrondi.

(11b)
3.2.1

Exemple : mthode de Runge Kutta Fehlberg

(11c)
Une mthode de Runge Kutta dordre 5 (6 valuations de f )

Modification du pas dun facteur q

permet de contrler la prcision obtenue par un Runge Kutta dordre 4

qn ?
i (hq) q i (h)
(u
ui+1 )
h i+1
n

utilisant les valuations de f aux mmes points que celle dordre 5

(12)

32

EDO

(13)

do le facteur appliquer au pas

Estimation de lerreur de troncature locale laide de lcart entre deux estimations

MNCS

3.2 Mthodes adaptatives

(les poids ne sont pas ceux de la mthode dordre 4 classique).


2014-2015

3 Mthodes plusieurs pas

3.3 Mthodes dextrapolation de Gragg

MNCS

33

EDO

2014-2015

3 Mthodes plusieurs pas

3.3 Mthodes dextrapolation de Gragg

Exemple de la mthode dEuler : lerreur de troncature globale sur un pas

3.3 Mthodes dextrapolation de Gragg

grossier h est du premier ordre en fonction du pas fin h/pk .


3.3.1

Principe de lextrapolation

t0

Par exemple, pour les subdivisions p1 et p2 :


 2
h
h
+ a2
+
p1
p1
 
 2
h
h
y(t + h) = v2 + a1
+ a2
+
p2
p2

t0 + L

y(t + h) = v1 + a1

Subdivisions successives
k=1
h/p2

Dcoupage de lintervalle de pas


grossier h en sous-intervalles

k=2

de pas fin hk

h/p3

pkm pas

MNCS

nouvel estimateur w2,2 dordre 2 tel que :

Dveloppement polynomial de
lerreur de troncature en fonction

pas fin : h/pkm

y(t + h) = w2,2 + b2

du pas pour extrapoler au pas nul


k = km

(hk

34

(15)
(16)

Combinaison linaire de ces deux estimateurs v1 et v2


liminer le terme dordre 1 de lerreur (a1 inconnu)

= h/pk de plus

en plus petits.
k=3

0).

w2,2 =

2014-2015

MNCS

h
p2

2

(p2 /p1 ) w2,1 w1,1


w2,1 w1,1
= w2,1 +
p2 /p1 1
p2 /p1 1
35

(17)

2014-2015

EDO

3 Mthodes plusieurs pas

3.3 Mthodes dextrapolation de Gragg

EDO

3 Mthodes plusieurs pas

3.3.2

Autre exemple avec la mthode du point milieu :

Comparaison mthodes un pas et extrapolation de Gragg


Erreur absolue y= y(1y/2) sur [0,20] y(0)=0.1 simple prcision

lerreur de troncature globale sur h est dordre 2 en fonction du pas h/pk ;

100

pas de termes dordre impair dans le dveloppement de lerreur.


Combinaison linaire de deux estimateurs avec des pas fins diffrents :

101

limination du terme dordre 2 de lerreur de troncature


erreur de troncature dordre 4

10

euler sp
milieu sp
rk3 sp
rk4 sp
milmod sp
gragg24sp
gragg28sp

erreur maximale

Itrer le processus avec une suite de subdivisions et de combinaisons linaires


destimateurs pour augmenter lordre de lerreur de troncature.
Mais amlioration limite par lerreur darrondi...
Lcart wk+1,k+1

3.3 Mthodes dextrapolation de Gragg

103

104

wk,k donne une estimation de lerreur de troncature si on

105

km de subdivisions pour respecter une erreur absolue impose, on obtient une

106

retient la solution wk,k . En ajustant, pour chaque intervalle de largeur h, le nombre


version adaptative de la mthode de Gragg.
107
104
MNCS

EDO

36

2014-2015

4 Les EDO du premier ordre en pratique

103

MNCS

37

EDO

101

4 Les EDO du premier ordre en pratique

4.2

4 Les EDO du premier ordre en pratique

102
pas

100
2014-2015

4.2 Validation des rsultats

Validation des rsultats

Validation via une solution analytique dun problme simplifi

4.1 chelles de temps et problmes raides

Lorsquune solution analytique est disponible (par exemple pour certaines valeurs

Ne pas oublier que chaque problme diffrentiel possde une ou plusieurs chelles

numrique permet de tester la mthode. Le calcul de lerreur dans le domaine o la

de temps propres (priodes ou pseudo-priodes, constantes de temps).

troncature domine permet dextrapoler leffet dun changement de pas connaissant

La solution ne peut tre reprsente correctement quavec un pas assez infrieur

lordre de la mthode.

de paramtres qui permettent de simplifier lEDO), sa comparaison avec la solution

au plus petit de ces temps propres.

Validation sans solution analytique

Cette analyse impose donc une valeur maximale pour le pas.

Dans le cas o aucune solution analytique de rfrence nest disponible, la

Certains problmes diffrentiels qualifis des raides comportent des chelles de

validation sappuie sur les mmes outils que les mthodes adaptatives :

temps trs diffrentes : leur intgration numrique savre dlicate et coteuse (pas
faible pour respecter le temps court, mais nombreux pour accder au temps long).

diminution du pas (division par 2)

Il existe des mthodes spcifiques des EDO raides qui ne sont pas prsentes ici.

augmentation de lordre de la mthode


extrapolation de Gragg
calcul dinvariants (nergie par exemple)

MNCS

38

2014-2015

MNCS

39

2014-2015

EDO

4 Les EDO du premier ordre 4.3


en pratique
Structure des programmes de rsolution dEDO du 1er ordre

4.3

EDO

5 Systmes dEDO du 1er ordre

Structure des programmes de rsolution dEDO du 1er ordre

1. un algorithme de base (appliquant une mthode dordre 1, 2, 3 ou 4 la


fonction second membre f passe en argument) permettant davancer dun

Systmes dquations diffrentielles du 1er ordre

5.1

pas dans lintgration de lquation diffrentielle

Extension des mthodes scalaires explicites aux vecteurs

Systme de n quations diffrentielles couples du

2. ventuellement une procdure qui choisit le pas le plus grand possible

considrer les

premier ordre associes n conditions initiales

compatible avec la prcision attendue et contrle la progression de lintgration

vecteurs

# et #
y
f.

(elle pourrait comporter un algorithme adaptatif)


3. un programme dinterface avec lutilisateur qui choisit la mthode, le second

dy1
dt
dy2
dt
...
dyn
dt

membre, lit les paramtres (conditions initiales par ex.), dclenche et arrte
lintgration et stocke les rsultats.
4. un module comportant les fonctions seconds membres de lquation
diffrentielle et les ventuelles solutions analytiques exactes ou approches
5. un module dutilitaires notamment pour crire les rsultats dans un fichier pour

= f1 (t, y1 , y2 , . . . , yn )

y1

f1



y
f
2
2
et


. . .
. . .


yn
fn

= f2 (t, y1 , y2 , . . . , yn )
= ...
= fn (t, y1 , y2 , . . . , yn )

visualisation ultrieure.
MNCS

40

EDO

5 Systmes dEDO du 1er ordre

2014-2015

5.1 Mthodes scalaires explicites

MNCS

41

EDO

5 Systmes dEDO du 1er ordre

2014-2015

5.1 Mthodes scalaires explicites

avant de calculer...

Les mthodes explicites de rsolution des quations diffrentielles scalaires du


premier ordre sappliquent aux systmes.

#
dy
#
#)
= f (t, y
dt

tape 2 : vecteur des pentes au point milieu prdit

# #
#
k2 = f (t1 + h/2, y# 1 + k1 h/2)

chaque tape, effectuer les calculs sur chaque composante


avant de passer ltape suivante : exemple avec point milieu
tape 1 : vecteur des pentes au bord gauche de lintervalle

# #
k1 = f (t1 , y# 1 )

MNCS

k1,1

f1 (t1 , y1,1 , y1,2 , . . . , y1,n )

k1,2

f2 (t1 , y1,1 , y1,2 , . . . , y1,n )

...

...

k1,n

fn (t1 , y1,1 , y1,2 , . . . , y1,n )


42

k2,1

f1 (t1 + h/2, y1,1 + k1,1 h/2, y1,2 + k1,2 h/2, . . . , y1,n + k1,n h/2)

k2,2

f2 (t1 + h/2, y1,1 + k1,1 h/2, y1,2 + k1,2 h/2, . . . , y1,n + k1,n h/2)

...

...

k2,n

fn (t1 + h/2, y1,1 + k1,1 h/2, y1,2 + k1,2 h/2, . . . , y1,n + k1,n h/2)

tape 3 : vecteur rsultat au bord droit de lintervalle

#
#
#
u
i+1 = ui + h k2
2014-2015

MNCS

43

2014-2015

EDO

5 Systmes dEDO du 1er ordre

5.2

5.2 quations de Lotka-Volterra

EDO

5 Systmes dEDO du 1er ordre

Exemple de systme non linaire coupl du premier ordre :

Rsolution numrique de Lotka-Volterra : k1

quations de Lotka-Volterra

Lotka Volterra

a1 = 1/1 = taux de croissance de y1 (proies) en labsence de y2 (prdateurs)


a2 = 1/2 = taux de dcroissance de y2 (prdateurs) en labsence de y1 (proies)
a1
y2 = taux de destruction des proies par les prdateurs
k2
a2
y1 = taux de croissance des prdateurs au dtriment des proies
k1

dy1
= +a1 y1 1
dt

dy2
= a2 y2 1
dt


y2
k2

y1
k1

proies
prdateurs

10

0
0

20

(18b)

5.2 quations de Lotka-Volterra

102

Populations

Populations

102
104
106

40

60

80

temps

Cycle stable

2014-2015

5 Systmes dEDO du 1er ordre

dy2
a2 y2 1 y1 /k1
=
dy1
a1 y1 1 y2 /k2

proies
prdateurs

5.2 quations de Lotka-Volterra

y1a2 y2a1 ea1 y2 /k2 a2 y1 /k1 = Cte

Tangentes horizontales pour y1


Tangentes verticales pour y2

= k1 (ou y2 = 0) : quilibre des prdateurs


= k2 (ou y1 = 0) : quilibre des proies

Plan de phase de Lotka Volterra


valeurs initiales : proies(0) = 10 prdateurs(0) = 1
pas = 0,1 ordre de la mthode : 1

106

20

40

60

80

100

Mthode de Runge Kutta dordre 4 : stable

46

100

En liminant le temps,

d ln y2
Pente avec peu de proies :
1/2 do facteur e4 1/54 sur une dure de 20 = 42 .
dt
d ln y1
Pente avec peu de prdateurs :
1/1 do facteur 100 sur dure de 4, 6 = 4, 61
dt
MNCS

80

Lotka-Volterra : cycle dans le plan de phase

temps

Mthode dEuler progressive : divergente

60

104

1010

100

40

Mthode de Runge Kutta dordre 4 :

2014-2015

Plan de phase de Lotka Volterra


valeurs initiales : proies(0) = 10 prdateurs(0) = 1
pas = 0,1 ordre de la mthode : 4
8.0

prdateurs= f(proies)

7.0

7.0

6.0

6.0

5.0

5.0

prdateurs

20

20

Les solutions divergent

EDO

108

45

prdateurs

1010

100

temps

8.0

108

80

Mthode dEuler progressive :

valeurs initiales : proies(0) = 10 prdateurs(0) = 1


pas = 0,1 ordre de la mthode : 4

102
100

60

MNCS

= k2 = 1, a1 = 1 et a2 = 0, 2.

100

40
temps

Lotka Volterra

proies
prdateurs

10

chelle log en ordonne

102

proies
prdateurs

15
Populations

Populations

15

2014-2015

valeurs initiales : proies(0) = 10 prdateurs(0) = 1


pas = 0,1 ordre de la mthode : 1

valeurs initiales : proies(0) = 10 prdateurs(0) = 1


pas = 0,1 ordre de la mthode : 4

(18a)

5 Systmes dEDO du 1er ordre

Lotka Volterra

Lotka Volterra
20

44

Rsolution numrique de Lotka-Volterra : k1

valeurs initiales : proies(0) = 10 prdateurs(0) = 1


pas = 0,1 ordre de la mthode : 1

20

Solutions priodiques

EDO

= k2 = 1, a1 = 1, a2 = 0, 2, h = 0, 1

chelles linaires

Deux populations en conflit : modle proies (y1 ) prdateurs (y2 )

MNCS

5.2 quations de Lotka-Volterra

4.0
3.0

3.0
2.0

1.0

1.0
0.0
0

10
proies

15

Mthode dEuler : non priodique


MNCS

4.0

2.0

0.0

prdateurs= f(proies)

20

10
proies

15

20

Runge Kutta dordre 4 : cycle correct


47

2014-2015

EDO

6 quations diffrentielles dordre suprieur

EDO

6 quations diffrentielles dordre suprieur

6.1

6 quations diffrentielles dordre suprieur

d2 y
dy
+ by + h(t)
=a
2
dt
dt
Poser

du premier ordre couples en posant :

y1

y y0
2

. . . . . .

(n1)
yn
y


y0
2
=
. . .

yn0

MNCS

EDO

y10

y2


y
y
1 =
y0
y2

...

f (t, y1 , y2 , . . . , yn )
y3

Systme diffrentiel dordre p de dimension n


systme diffrentiel coupl du premier ordre np dimensions.
2014-2015

6.2 Exemple dEDO dordre 2 : le pendule

MNCS

49

EDO

6.2 Exemple dEDO dordre 2 : le pendule

6 quations diffrentielles dordre suprieur

k 2 = g/l

d2 y
= k 2 y
dt2

(19)

sin(y) y

nergie mcanique conserve (aprs division par ml2 ) :

mg

1
2

(20)
Cas o y(0)

lquation linarise admet une solution analytique en A sin(kt + ).


Exprimer cette EDO du second ordre sous la forme dun systme diffrentiel coupl
de dimension 2 mais du premier ordre.


y
y
1 =
y2
y0

MNCS

y10
y2
=

y20
k 2 sin(y1 )
50

6.2 Exemple dEDO dordre 2 : le pendule

y(0)
y1 (0)
position angulaire

= dy
=

y2 (0)
vitesse angulaire
(0) = a
dt

Pendule linaris (cas des petites amplitudes) :

2014-2015

Rsolution numrique du systme non-linaris, avec les valeurs initiales :

Pendule non linaire (y = position angulaire)

d2 y
= k 2 sin(y)
dt2


y2
y10

=
ay2 + by1 + h(t)
y20

Remarque

48

6 quations diffrentielles dordre suprieur

Exemple

Systme linaire du second ordre avec excitation h(t)



dn1 y
dn y
dy
, ...,
= f t, y,
dtn
dt
dtn1
Une EDO scalaire dordre n se ramne un systme de n quations diffrentielles

6.1 Exemple

dy
dt

2

+ k 2 (1 cos y) = constante

= 0 (dpart en position dquilibre stable)


 2

2
1 dy
1 dy
2
+ k (1 cos y) =
(0)
2 dt
2 dt

Vitesse angulaire minimale pour y

= (position dquilibre instable si atteinte).


dy
Si a =
(0) > 2k (seuil) la vitesse angulaire ne sannule pas (apriodique).
dt
tude de la transition priodiqueapriodique selon a dans le cas o k = 1
2014-2015

MNCS

51

2014-2015

6 quations diffrentielles dordre suprieur

6.2 Exemple dEDO dordre 2 : le pendule

EDO

0.25

pendule + sol. linarise: mth. ordre 4 vitesse ang. init=1


mthode dordre 4
de 0.000000 50.000000 avec un pas de 0.01
valeurs initiales 0.0000000e+00 1.0000000e+00

1.5

1.0

0.10

0.5
dtheta/dt

theta

theta

0.05
0.00

0.0

0.05
0.05
0.5
0.5

0.10
0.10
0.15
0.15

1.0
1.0

0.20
0.20
0.25
0.25
0

plan de phase pendule: mth. ordre 4 vitesse ang. init.=0.2


mthode dordre 4
de 0.000000 50.000000 avec un pas de 0.01
valeurs initiales 0.0000000e+00 2.0000000e01

0.25

0.20
0.15

10

15

20

estim
linaire

25

30

35

40

45

1.5
1.5
0

50

10

15

20

estim
linaire

temps

a = 0.2  1 linarisable

25

30

35

40

45

0.20

0.8

0.15

0.6

0.10

0.4

0.05

0.2

0.00

temps

0.2

0.10

0.4

0.15

0.6

0.8
0.05

0.10

0.15

0.20

1.0
1.5

0.25

a = 0.2  1 linarisable

pendule + sol. linarise: mth. ordre 4 vitesse ang. init=2.02


mthode dordre 4
de 0.000000 50.000000 avec un pas de 0.01
valeurs initiales 0.0000000e+00 2.0200000e+00

50

0.0

0.05

0.25
0.25 0.20 0.15 0.10 0.05 0.00
estim
theta
linaris

50

a = 1 priodique non sinusodal

pendule + sol. linarise: mth. ordre 4 vitesse ang. init=1.98


mthode dordre 4
de 0.000000 50.000000 avec un pas de 0.01
valeurs initiales 0.0000000e+00 1.9800000e+00

1.0
estim
linaris

0.5

0.0

0.5

1.0

1.5

theta

a = 1 priodique non sinusodal

plan de phase pendule: mth. ordre 4 vitesse ang. init.=1.98


mthode dordre 4
de 0.000000 50.000000 avec un pas de 0.01
valeurs initiales 0.0000000e+00 1.9800000e+00

2.0

plan de phase pendule: mth. ordre 4 vitesse ang. init.=2.02


mthode dordre 4
de 0.000000 50.000000 avec un pas de 0.01
valeurs initiales 0.0000000e+00 2.0200000e+00

2.5
2.0

1.5

40

plan de phase pendule: mth. ordre 4 vitesse ang. init.=1


mthode dordre 4
de 0.000000 50.000000 avec un pas de 0.01
valeurs initiales 0.0000000e+00 1.0000000e+00

1.0

0.20
5

6.2 Exemple dEDO dordre 2 : le pendule

Comparaisons non-linaire (RK 4)analytique linaris : plan de phase y 0 (y)

Comparaisons non-linaire (Runge-Kutta 4)analytique linaris : y(t)


pendule + sol. linarise: mth. ordre 4 vitesse ang. init=0.2
mthode dordre 4
de 0.000000 50.000000 avec un pas de 0.01
valeurs initiales 0.0000000e+00 2.0000000e01

6 quations diffrentielles dordre suprieur

dtheta/dt

EDO

1.5
1.0
1.0

30

20

1
1

10

2
2

0.5
dtheta/dt

0.5
dtheta/dt

theta

theta

0.0

0.0
0.5

0.5

1.0
1.0

3
3
0

10

15

20

estim
linaire

30

35

40

45

10
10
0

50

10

15

20

estim
linaire

temps

a = 1.98 priodique non sinusodal

EDO

52

25

30

35

40

45

2.0
3

50

temps

a = 2.02 apriodique

6 quations diffrentielles dordre suprieur

2014-2015

6.2 Exemple dEDO dordre 2 : le pendule

MNCS

2.5
10

theta

53

plan de phase pendule: mth. ordre 1 vitesse ang. init.=0.2


mthode dordre 1
de 0.000000 50.000000 avec un pas de 0.01
valeurs initiales 0.0000000e+00 2.0000000e01

0.3

0.5

0.0

dtheta/dt

0.1
dtheta/dt

0.5

0.0

0.5
0.5

0.1

0.5

0.2
0.2

1.0
1.0

0.2

1.0

0.3
0.3
0

1.5
1.5
0

0.3
0.3

20

25

30

35

40

45

50

10

15

20

25

30

35

40

45

50

temps

a=1
pendule + sol. linarise: mth. ordre 1 vitesse ang. init=1.98
mthode dordre 1
de 0.000000 50.000000 avec un pas de 0.01
valeurs initiales 0.0000000e+00 1.9800000e+00

5
estim
linaire

temps

2.0

0.1

0.0

0.1

0.2

1.5
1.5

0.3

theta

dtheta/dt

theta

20

0.5

1.5
0

20

25

30

35

40

45

10
10
0

50

a = 1.98 apriodique selon Euler !

10

estim
linaire

temps

54

0.0

1.5

2.0

40
40

15

plan de phase pendule: mth. ordre 1 vitesse ang. init.=2.02


mthode dordre 1
de 0.000000 50.000000 avec un pas de 0.01
valeurs initiales 0.0000000e+00 2.0200000e+00

1.0

10

10

1.5

0.5

35
35

estim
linaire

1.0

1.0

0.0

1.0

0.5

0.5

30

30
30

0.0
theta

1.5

0.5

25
25

0.5

2.0

1.0

20
20

2014-2015

6.2 Exemple dEDO dordre 2 : le pendule

1.0
estim
linaris

2.5

40

15
15

50

a=1
plan de phase pendule: mth. ordre 1 vitesse ang. init.=1.98
mthode dordre 1
de 0.000000 50.000000 avec un pas de 0.01
valeurs initiales 0.0000000e+00 1.9800000e+00

1.5

50
5
5
10
10

45
45
0

0.2
estim
linaris

a = 0.2
pendule + sol. linarise: mth. ordre 1 vitesse ang. init=2.02
mthode dordre 1
de 0.000000 50.000000 avec un pas de 0.01
valeurs initiales 0.0000000e+00 2.0200000e+00

60

40

0.0

0.1
0.1

15

30

plan de phase pendule: mth. ordre 1 vitesse ang. init.=1


mthode dordre 1
de 0.000000 50.000000 avec un pas de 0.01
valeurs initiales 0.0000000e+00 1.0000000e+00

1.5

0.1

10

20
theta

Comparaisons non-linaire (Euler)analytique linaris : plan de phase y 0 (y)

1.0

10

6 quations diffrentielles dordre suprieur

0.2

0.0

0
estim
linaris

a = 2.02 apriodique

1.0

a = 0.2

theta

0.2

estim
linaire

MNCS

a = 1.98 priodique non sinusodal

pendule + sol. linarise: mth. ordre 1 vitesse ang. init=1


mthode dordre 1
de 0.000000 50.000000 avec un pas de 0.01
valeurs initiales 0.0000000e+00 1.0000000e+00

1.5

theta

theta

0.3

EDO

Comparaisons non-linaire (Euler)analytique linaris y(t)


pendule + sol. linarise: mth. ordre 1 vitesse ang. init=0.2
mthode dordre 1
de 0.000000 50.000000 avec un pas de 0.01
valeurs initiales 0.0000000e+00 2.0000000e01

2.0
2
estim
linaris

dtheta/dt

MNCS

25

1.5
1.5

a = 2.02

15

20

25

30

35

40

45

2.5
45

50

temps

2014-2015

MNCS

2.0
40
35
estim
linaris

30

25

20

15

10

2.5
10

theta

a = 1.98 apriodique selon Euler !

55

0
estim
linaris

a = 2.02

10

20

30

40

50

60

theta

2014-2015

EDO

7 Implmentation vectorielle

EDO

7 Implmentation vectorielle

7.2

7 Mise en uvre vectorielle des mthodes un pas

7.2 En fortran (norme 2003)

En fortran (norme 2003)

Utiliser des fonctions argument tableau de rang 1

#
y

dtendue p dtermine lexcution (nombre p dEDO scalaires dordre 1)

7.1 Introduction

et rsultat tableau de mme tendue que

1. le second membre de lquation diffrentielle :

Les mthodes dintgration doivent fonctionner quelle que soit la taille p des

MODULE abstrait
ABSTRACT INTERFACE ! de la fct gnrique IInd mb de lEDO
function fty(t, y) ! dy/dt
real, dimension(:),intent(in) :: y ! variable vecteur
real, intent(in) :: t
real, dimension(size(y)) :: fty
! vecteur rsultat
end function fty
END INTERFACE
END MODULE abstrait
#
Ltendue p du vecteur rsultat f effectif sera donc fixe par le programme
#
principal via y et non par la fonction second membre.

#
#
vecteurs qui reprsentent la solution y et le second membre f de lEDO.

Il en est de mme pour linterface formelle de la fonction second membre en


fortran ou le pointeur de fonction second membre en C.
Cest le programme principal qui fixera cette taille.
Il devra donc choisir un second membre de la mme dimension.
Les tailles des tableaux des seconds membres effectifs seront hrites du
programme principal et non dclares explicitement.

#
f (2 pour le pendule : drive et
#
drive seconde) seront calcules partir des p composantes de y .

Mais seules les p composantes effectives de

MNCS

56

EDO

7 Implmentation vectorielle

# pour :
y

2014-2015

7.2 En fortran (norme 2003)

MNCS

EDO

57

7 Implmentation vectorielle

2014-2015

7.2 En fortran (norme 2003)

2. chacune des mthodes un pas (Euler, point milieu et Runge Kutta) :

les pentes locales ki seront des tableaux automatiques locaux.

FUNCTION u2_rk4(u1, t1, h, f)


USE abstrait ! o est dfinie linterface abstraite fty
REAL, DIMENSION(:), INTENT(IN) :: u1 ! valeur initiale
REAL, INTENT(IN) :: t1 ! instant initial
REAL, INTENT(IN) :: h ! pas
PROCEDURE(fty) :: f ! dclaration de linterface de f
REAL, DIMENSION(SIZE(u1)) :: u2_rk4 ! valeur estime t1+h
! variables locales de mme tendue que u1
REAL, DIMENSION(SIZE(u1)) :: k1, k2, k3, k4 ! pentes locales
...
u2_rk4 = u1 + ...
END FUNCTION u2_rk4

MNCS

58

2014-2015

3. Dans le programme principal (et dans la procdure dcriture sur fichier), les
solutions vectorielles (analytique et par intgration) sont reprsentes par des
tableaux 2D allous dynamiquement (n instants, p composantes).
Les tendues n et p sont donc choisies lexcution, sachant que p doit tre
correspondre au nombre effectif de composantes du second membre tudi.
Mais la dimension temporelle nest pas vue par les mthodes : elles
travaillent sur des vecteurs (dtendue p) dans un intervalle [ti , ti+1 ], i fix.

MNCS

59

2014-2015

EDO

7 Implmentation vectorielle

7.3 En C89 avec des tableaux dynamiques

EDO

7 Implmentation vectorielle

7.3 En C89 avec des tableaux dynamiques sur le tas

2. pour chacune des mthodes un pas (Euler, point milieu et Runge Kutta) les

#
Utiliser des fonctions argument tableau 1D y de taille dtermine lexcution
#
et rendant un pointeur vers un tableau allou sur le tas de mme taille que y .

pentes locales ki seront des tableaux allous et librs localement, car leur
nombre dpend de la mthode ; en revanche, le rsultat

dlments), son allocation et libration prises en charge par lappelant.

# #
f ( y , t) qui rend le pointeur vers ce tableau, dont le programme appelant

void u2_milieu(int p, float *u1, float t1, float h,


float* (* ptr_f) (float, float*, int), float * u2){
/* permettant davancer dun pas en temps*/
float *k1 = NULL;
/* vecteur pente */
float *k2 = NULL;
/* vecteur pente */
float *u12 = NULL;
/* vecteur intermdiaire */
k1 = (*ptr_f)(t1, u1, p); /* allocation par la fct second membre */
u12 = float1d (p);
/* allocation locale */

devra prendre en charge la libration ;

float * pendule(float t, float *u, int p){


float *second_membre= NULL; /* tableau 1D */
second_membre = float1d(p); /* allocation sur le tas */
second_membre[0] = u[1];
second_membre[1] = -sin(u[0]);
return second_membre;
/* valeur de retour = pointeur */
}

EDO

60

7 Implmentation vectorielle

#
u
i+1 qui est aussi

vectoriel sera pass en argument (sous forme pointeur plus nombre

1. le second membre de lquation diffrentielle sera allou par la fonction

MNCS

7.3 En C89 avec des tableaux dynamiques

2014-2015

7.3 En C89 avec des tableaux dynamiques

MNCS

61

EDO

7 Implmentation vectorielle

2014-2015

7.4 En C99 avec des tableaux automatiques

7.4

En C99 avec des tableaux automatiques


#
Fonctions argument tableau 1D y de taille p dtermine lexcution

3. Dans le programme principal (et dans la procdure dcriture sur fichier), les

Dclaration tardive des tableaux automatiques viter les tableaux dynamiques

solutions vectorielles (analytique et par intgration) sont reprsentes par des


tableaux 2D. Mais la dimension temporelle nest pas vue par les mthodes :

Mais une fonction ne peut pas rendre un tableau fonctions rsultat void

elles travaillent sur des vecteurs de taille p dans un intervalle [ti , ti+1 ]. Cela

et remplissage par la fonction appele

dclaration du tableau argument par lappelant

impose que les composantes des vecteurs soient contiges en mmoire, donc

1. la fonction second membre de lquation diffrentielle remplit le tableau

le deuxime indice est celui des composantes, le premier celui du temps.

# #
second_mb de taille p reprsentant f ( y
, t)
qui a t dclar par lappelant (la mthode) avec la taille fixe par le main

/* allocation dans le main des tableaux 2D */


u = float2d(n, p); /* n instants et p equations */
/* appel de la mthode du point milieu par exemple */
u2_milieu(p, u[i], t[i], h, &pendule, u[i+1]);
/* donc u[i] est un tableau 1D = vecteur des composantes de u_i */

MNCS

62

2014-2015

// version C99 avec tableaux automatiques


void pendule(float t, int p, float u[p], float second_mb[p]){
// p = 2 ici = dimension des vecteurs u et second_membre
second_mb[0] = u[1];
second_mb[1] = -sin(u[0]);
return;
}
MNCS

63

2014-2015

EDO

7 Implmentation vectorielle

7.4 En C99 avec des tableaux automatiques

EDO

2. pour chacune des mthodes un pas (Euler, point milieu et Runge Kutta) les

solutions vectorielles (analytique et par intgration) sont reprsentes par des

#
u
i+1 qui est aussi vectoriel

tableaux 2D. Mais la dimension temporelle nest pas vue par les mthodes :

sera pass en argument, sa dclaration tant prise en charge par lappelant.

elles travaillent sur des vecteurs de taille p dans un intervalle [ti , ti+1 ]. Cela

// C99 avec tableaux automatiques


void u2_milieu(int p, float u1[p], float t1, float h,
void (* ptr_f) (float, int, float[], float[]),
float u2[p]) {
// methode permettant davancer dun pas en temps
float k1[p] ;
// vecteur pente gauche
float k2[p] ;
// vecteur pente au milieu
float u12[p];
// vecteur intermdiaire
(*ptr_f)(t1, p, u1, k1); // valuation du second membre en u1
// rsultat dans le vecteur local k1
...
// tableau u2[p] dclar dans lappelant et rempli ici (boucle)
MNCS

64

EDO

RFRENCES

2014-2015

RFRENCES

impose que les composantes des vecteurs soient contiges en mmoire, donc
le deuxime indice est celui des composantes, le premier celui du temps.

// tableaux automatiques 2D C99 dclars dans le main


// p choisi selon la dimension du second membre
float u[n][p]; // n instants et p equations
// dans la boucle sur les instants i :
// appel de la mthode du point milieu par ex.
u2_milieu(p, u[i], t[i], h, &pendule, u[i+1]);
// u[i] et u[i+1] : vecteurs p composantes
// t[i] : scalaire

MNCS

65

EDO

TABLE DES MATIRES

Rfrences

Table des matires

A KAI , T ERRENCE J., Applied Numerical Methods for Engineers, 410 pages (Wiley,

1 Introduction

1994), ISBN 0-471-57523-2.


B URDEN , R ICHARD L. et J. D OUGLAS FAIRES, Numerical Analysis, 847 pages
(Thompson, Brooks/Cole, 2005), huitime dition, ISBN 0-534-40499-5.
D EMAILLY, J.-P., Analyse numrique et quations diffrentielles, 350 pages (EDP
Sciences, 2006), troisime dition, ISBN 978-2-86883-891-9.
G UILPIN , C H ., Manuel de calcul numrique appliqu, 577 pages (EDP Sciences,

2014-2015

TABLE DES MATIRES

1.1 Problme diffrentiel . . . . . . . . . . . . . . . . . . . . . . . . .

1.2 Deux types de problmes diffrentiels rsoudre . . . . . . . . . . .

1.3 quations diffrentielles scalaires du 1er ordre

. . . . . . . . . . . .

1.4 Conditions suffisantes . . . . . . . . . . . . . . . . . . . . . . . .

1.5 Mthodes de rsolution numrique et notations . . . . . . . . . . . .

2 Mthodes un pas

1999), ISBN 2-86883-406-X.


R APPAZ , J ACQUES et M ARCO P ICASSO, Introduction lanalyse numrique, 268
pages (Presses polytechniques et universitaires romandes, 2010), ISBN

2.1 Mthodes du premier ordre . . . . . . . . . . . . . . . . . . . . . .

2.1.1 Mthode dEuler progressive (explicite) . . . . . . . . . . . .

2.1.2 Mthode dEuler rtrograde (implicite) . . . . . . . . . . . . . 10

978-2-88074-851-7.
MNCS

7.4 En C99 avec des tableaux automatiques

3. Dans le programme principal (et dans la procdure dcriture sur fichier), les

pentes locales ki seront des tableaux locaux automatiques, car leur nombre
dpend de la mthode ; en revanche, le rsultat

7 Implmentation vectorielle

66

2014-2015

MNCS

67

2014-2015

EDO

TABLE DES MATIRES

TABLE DES MATIRES

EDO

2.2 Mthodes du deuxime ordre . . . . . . . . . . . . . . . . . . . . . 11

TABLE DES MATIRES

TABLE DES MATIRES

3 Mthodes plusieurs pas

26

2.2.1 Mthode du point milieu . . . . . . . . . . . . . . . . . . . . 11

3.1 Mthodes dAdams . . . . . . . . . . . . . . . . . . . . . . . . . . 26

2.2.2 Mthode dEuler modifie . . . . . . . . . . . . . . . . . . . 13

3.1.1 Adams Bashforth (explicite : pas de terme en f (ti+1 , ui+1 )) . 27

2.2.3 Mthode de Heun . . . . . . . . . . . . . . . . . . . . . . . 16

3.1.2 Adams Moulton (implicite : terme en f (ti+1 , ui+1 ))

3.1.3 Comparaison mthodes un pas et Adams explicite . . . . . . 30

2.3 Mthodes de Runge Kutta . . . . . . . . . . . . . . . . . . . . . . 17


2.3.1 Mthode de Runge Kutta dordre 3

. . . . . . . . . . . . . . 17

2.3.2 Mthode de Runge Kutta dordre 4

. . . . . . . . . . . . . . 19

3.1.4 Mthodes de prdicteur correcteur

3.2.1 Exemple : mthode de Runge Kutta Fehlberg . . . . . . . . . 33


3.3 Mthodes dextrapolation de Gragg . . . . . . . . . . . . . . . . . . 34

2.5 Exemple de lquation logistique . . . . . . . . . . . . . . . . . . . 21

3.3.1 Principe de lextrapolation . . . . . . . . . . . . . . . . . . . 34

2.5.1 Exemple derreur totale maximale en simple prcision . . . . . 23

3.3.2 Comparaison mthodes un pas et extrapolation de Gragg . . 37

2.5.2 Exemple derreur totale maximale en double prcision . . . . . 24


2.5.3 Comparaison des erreurs maximales simple/double prcision . 25
68

EDO

4 Les EDO du premier ordre en pratique


2014-2015

TABLE DES MATIRES

. . . . . . . . . . . . . . 31

3.2 Mthodes adaptatives . . . . . . . . . . . . . . . . . . . . . . . . 32

2.4 Erreur absolue en fonction du pas et de lordre . . . . . . . . . . . . 20

MNCS

. . . . . 28

TABLE DES MATIRES

MNCS

38

69

EDO

TABLE DES MATIRES

2014-2015

TABLE DES MATIRES

4.1 chelles de temps et problmes raides . . . . . . . . . . . . . . . . 38


4.2 Validation des rsultats . . . . . . . . . . . . . . . . . . . . . . . . 39
4.3 Structure des programmes de rsolution dEDO du 1er ordre
Structure des programmes dEDO du 1er ordre
5 Systmes dEDO du 1er ordre

. . . . . 40
7.1 Introduction

40

7.2 En fortran (norme 2003) . . . . . . . . . . . . . . . . . . . . . . . 57

41

7.3 En C89 avec des tableaux dynamiques . . . . . . . . . . . . . . . . 60

5.1 Mthodes scalaires explicites . . . . . . . . . . . . . . . . . . . . . 41


5.2 quations de Lotka-Volterra

7.4 En C99 avec des tableaux automatiques . . . . . . . . . . . . . . . 63

. . . . . . . . . . . . . . . . . . . . . 44

6 quations diffrentielles dordre suprieur

. . . . . . . . . . . . . . . . . . . . . . . . . . . . . 56

Bibliographie

48

66

6.1 Exemple . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 49
6.2 Exemple dEDO dordre 2 : le pendule
7 Implmentation vectorielle
MNCS

. . . . . . . . . . . . . . . . 50
56

70

2014-2015

MNCS

71

2014-2015

You might also like