View
219
Download
0
Category
Preview:
Citation preview
7/23/2019 Equa Diff x4bv
1/18
UPMC Master P&A/SDUEE
UE MP025 = 4P056
Mthodes Numriques et Calcul Scientifique
Rsolution numrique desquations diffrentielles ordinaires (EDO)
20142015 Jacques.Lefrere@upmc.fr
EDO 1 Introduction
1 Introduction
1.1 Problme diffrentiel
quation diffrentielle scalaire dordre n
dnydtn
=f
t, y, dydt
, . . . , dn1y
dtn1
famille de solutions n paramtres
ensemble de n conditions imposes
choix dune solution dans la famille
MNCS 1 2014-2015
EDO 1 Introduction 1.2 Deux types de problmes diffrentiels rsoudre
1.2 Deux types de problmes diffrentiels rsoudre
Conditions initiales donnes pour une seule valeurt0det, par exemple
y(t0) = y0, y(t0) = y
0, . . . , y(n1)(t0) = y
(n1)0
Problme deconditions initialesou deCauchy
Conditions donnes pour des valeurs distinctes de la variable indpendante t,
par exemple :
y(t0) = y0, y(t1) = y1, . .. , y(tn1) = yn1
Problme deconditions aux limites(non trait, sauf problme de tir).
MNCS 2 2014-2015
EDO 1 Introduction 1.3 quations diffrentielles scalaires du 1er ordre
1.3 quations diffrentielles scalaires du 1er ordre
tudier dabord les quations diffrentielles scalairesdu premier ordre.
famille de solutions unparamtre (y0)
dydt =f(t, y(t)) avec y(t0) = y0
Les EDO dordre suprieur se ramnent des systmes diffrentiels coupls du
premier ordre (EDO vectorielles du premier ordre).
MNCS 3 2014-2015
7/23/2019 Equa Diff x4bv
2/18
EDO 1 Introduction 1.4 Conditions suffisantes
1.4 Conditions suffisantes
Lacondition de Lipschitz
|f(t, y2) f(t, y1)| K|y2 y1|
assure lunicit de la solution.
fy (t, y) Kdans un domaine convexe condition de Lipschitz vrifie.
Les erreurs darrondi amnent toujours rsoudre un problme perturb.
Problme bien possi : le problme faiblement perturb (second membre ou
condition initiale) possde une solution proche de celle du problme original.
La condition de Lipschitz assure que le problme est bien pos.
MNCS 4 2014-2015
EDO 1 Introduction 1.5 Mthodes de rsolution numrique et notations
1.5 Mthodes de rsolution numrique et notations
Discrtisationpar dcoupage de lintervalle de longueur Lselon un pas constanth
chantillonnage de la solution aux instants ti = t0+ih pour1 i n.
Solution numrique :ui= approximation dey(ti)
partir de la condition initialeu0 = y(t0)impose,
faire une boucle sur les abscissestipour calculer lapproximationui+1ti+1
approximer ainsi de proche en proche la solution sur lintervalleL.
accumulation des erreurs dans la boucle
chaque pas de la boucle, pour calculer ui+1, on peut sappuyer :
surla dernire valeur calculeui: mthodes un pas
surplusieurs valeursuik(k 0)antrieurement calcules :
mthodes plusieurs pas (initialisation ncessaire par mthode un pas)
MNCS 5 2014-2015
EDO 1 Introduction 1.5 Mthodes de rsolution numrique et notations
famille de solutions exactesdpendant dey0
passant par(ti, ui)la solution
ti+1 ttit0
exacte
approx.
erreurcumule
y
y0
ui
ui+1
yi+1
h
Mthode pas
constant
Dcoupage de
lintervalle de
longueurLselon
un pas fixeh= L/n.
ui= approximat.
dey(ti)
Un pas :
ui ui+1
MNCS 6 2014-2015
EDO 2 Mthodes un pas
2 Mthodes un pasConstituent lalgorithme de base qui permet destimer la valeur de la solution
linstantti+1 = ti+h, connaissant seulementui, celle ti.
La valeur estimer peut tre approche par un dveloppement limit de Taylor :
y(ti+h) = y(ti) +hdy
dt(ti) +
h2
2
d2y
dt2(ti) + (1)
Ordrende la mthode=plus grande puissance dehprise en compte dans
lapproximation. Somme des termes ngligs =erreur de troncature locale hn+1
augmente si le pashaugmente 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 pashdiminue.
Indpendamment du cot (en temps de calcul) des oprations, et des cas o la
fonction est tabule,ne pas croire que diminuer le pas amliore toujours la
qualit du rsultat : uncompromisdoit tre trouv entre ces deux types derreurs.
MNCS 7 2014-2015
7/23/2019 Equa Diff x4bv
3/18
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).
ui+1= ui+hf(ti, ui) (2)
Exemple :
dy
dt = y solution analytique y = y0e
t yn = y0(e
h)n
ui+1= ui hui solution approche un = y0(1 h)n
Si > 0, la solution exacte vrifiey() = 0,
Mais pour lapproximation,un 0 |1 h| 1/, alors(1 h)< 0: alternance de signe de la solutionun.
MNCS 8 2014-2015
EDO 2 Mthodes un pas 2.1 Mthodes du premier ordre
ti ti+1
ui
ui+1
y
t
k1
k1h
h
Mthode dEuler
Mthodeexplicitequi ne
ncessite quune
seule valuationde la fonction second
membrefpar pas :
k1= f(ti, ui)
facilement instable
MNCS 9 2014-2015
EDO 2 Mthodes un pas 2.1 Mthodes du premier ordre
2.1.2 Mthode dEuler rtrograde (implicite)
ui+1= ui+hf(ti+1,ui+1) (3)
Exemple :
dy
dt = y solution analytique y= y0e
t
ui+1 = ui hui+1 solution approche ui+1=
ui
1 +h
un = y0
(1 +h)n
Si > 0, y() = 0, et aussiun 0 > 0,h > 0solution stable
Mthodeimpliciteplus difficile mettre en uvre, sauf lorsque la forme de f(t, u)
permet le calcul analytique deui+1 partir de lquation (3).
Avantage : meilleurestabilitque la mthode progressive explicite.
MNCS 10 2014-2015
EDO 2 Mthodes un pas 2.2 Mthodes du deuxime ordre
2.2 Mthodes du deuxime ordre
Premire ide : augmenter le nombre de termes du dveloppement de Taylor :
rarement utilis, car ncessite lvaluation des drives partielles def.
dy
dt =f(t, y(t))
d2y
dt2 =
f
t +
f
y
dy
dt =
f
t +f
f
y (4)
Prfrer utiliserplusieurs valuations du second membrefen des points adapts.
Centrer lvaluation de la drive au point milieu tm = (ti+ti+1)/2.
y(ti+h) = y(tm) +h
2
dy
dt(tm)+
1
2
h2
4
d2y
dt2(tm) +O(h
3) (5a)
y(ti) = y(tm)h
2
dy
dt(tm)+
1
2
h2
4
d2y
dt2(tm) +O(h
3) (5b)
Par diffrence, (approximation locale parabolique, voir aussi drive centre 2 termes)
y(ti+h) y(ti) = hdy
dt(tm)+O(h
3)
MNCS 11 2014-2015
7/23/2019 Equa Diff x4bv
4/18
EDO 2 Mthodes un pas 2.2 Mthodes du deuxime ordre
2.2.1 Mthode du point milieu
Ncessite lvaluation du second membre fen 2 points :
entiet au milieutm = ti+h/2dun pas (hors grille).
ui+1 = ui+hf
ti+
h
2, ui+
h
2f(ti, ui)
k1 = f(ti, ui) (6a)
k2 = f(ti+h
2, ui+k1
h
2) (6b)
ui+1 = ui+hk2 (6c)
MNCS 12 2014-2015
EDO 2 Mthodes un pas 2.2 Mthodes du deuxime ordre
ti ti+1
y
k1
k2
ti+h/2
k2h
k1h/2
t
k2
ui+1
ui
Mthode du
point milieu
Mthode explicite
qui ncessite deuxvaluations du second
membre par pas dont
une hors grille.
MNCS 13 2014-2015
EDO 2 Mthodes un pas 2.2 Mthodes du deuxime ordre
2.2.2 Mthode dEuler modifie
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 :
dy
dt(ti) +
dy
dt(ti+1) = 2
dy
dt(tm) +O(h
2)
Do une approximation nutilisant pas la valeur de fau point milieutm:
ui+1= ui+ h2
[f(ti, ui) +f(ti+1,ui+1)]
De nouveau, mthode a prioriimplicite, plus stable, mais plus lourde.
Contournement du problme en utilisant lapproximation dEuler explicite (voir 2)
pour valuerui+1intervenant dansf.
ui+1 = ui+h
2[f(ti, ui) +f(ti+1, ui+hf(ti, ui))]
MNCS 14 2014-2015
EDO 2 Mthodes un pas 2.2 Mthodes du deuxime ordre
Bilan : mthode de type prdicteur-correcteurquivalent
un demi-pas avec la pente initialek1
et un demi-pas avec la pentek2du point prdit par Euler progressif.
k1 = f(ti, ui) (7a)
k2 = f(ti+1, ui+k1h) (7b)
ui+1 = ui+h
2[k1+k2] (7c)
NB : mthode parfois appele mthode de Heun
(toutes deux sont des Runge Kutta du deuxime ordre)
MNCS 15 2014-2015
7/23/2019 Equa Diff x4bv
5/18
EDO 2 Mthodes un pas 2.2 Mthodes du deuxime ordre
ti ti+1
ui
y
k1
ti+h/2
ui+1
k1h/2
k2h/2
t
corrig
prdit
k2 k2
Mthode dEuler
modifie
Mthode explicite qui
ncessite deux va-luations de la fonction
par pas en des points
de la grille.
MNCS 16 2014-2015
EDO 2 Mthodes un pas 2.3 Mthodes de Runge Kutta
2.2.3 Mthode de Heun
k1= f(ti, ui) (8a)
k2= f(ti+2
3h, ui+
2
3k1h) (8b)
ui+1= ui+h
4[k1+ 3k2] (8c)
2.3 Mthodes de Runge Kutta
Plus gnralement, avecrvaluations def, on peut atteindre une mthode dordre
rsir 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 17 2014-2015
EDO 2 Mthodes un pas 2.3 Mthodes de Runge Kutta
2.3.1 Mthode de Runge Kutta dordre 3
k1 = f(ti, ui) (9a)
k2 = f(ti+h
2 , ui+k1
h
2 ) (9b)
k3 = f(ti+h, ui+ (2k2 k1)h) (9c)
ui+1 = ui+ (k1+ 4k2+k3)h
6 (9d)
MNCS 18 2014-2015
EDO 2 Mthodes un pas 2.3 Mthodes de Runge Kutta
2.3.2 Mthode de Runge Kutta dordre 4
k1 = f(ti, ui) (10a)
k2 = f(ti+h
2
, ui+k1h
2
) (10b)
k3 = f(ti+h
2, ui+k2
h
2) (10c)
k4 = f(ti+h, ui+k3h) (10d)
ui+1 = ui+ (k1+ 2k2+ 2k3+k4)h
6 (10e)
MNCS 19 2014-2015
7/23/2019 Equa Diff x4bv
6/18
EDO 2 Mthodes un pas 2.4 Erreur absolue en fonction du pas et de lordre
2.4 Erreur absolue en fonction du pas et de lordre
nombre de pas=L/h = erreur globale erreur locale/h
TABLE1 Erreur de troncature seule
Mthode ordre erreur locale erreur globale
Euler explicite 1 h2 h
Point milieu Euler modifie 2 h3 h2
Runge-Kutta 3 3 h4 h3
Runge-Kutta 4 4 h5 h4
Erreur darrondilocale indpendante deh erreur darrondi globale 1/h
MNCS 20 2014-2015
EDO 2 Mthodes un pas 2.5 Exemple de lquation logistique
2.5 Exemple de lquation logistiquedy
dt=y(1 y/2)
exact estim0 2 4 6 8 10 12 14 16 18 20
0.020
0.015
0.010
0.005
0.000
0.005
fichier euler.dat ordre 1 erreur max 0.183E01 position de lerr max 0.286E+01
temps
Erreur=ExactEstim
FIGURE1 Erreur dans lintgration de lquation logistique avec la mthode dEuler
pourh= 0, 02. Lallure rgulire montre que lerreur de troncaturedomine.
MNCS 21 2014-2015
EDO 2 Mthodes un pas 2.5 Exemple de lquation logistique
exact estim0 2 4 6 8 10 12 14 16 18 20
1e06
8e07
6e07
4e07
2e07
0e+00
2e07
4e07
6e07
8e07
1e06
fichier rk4.dat ordre 4 erreur max 0.954E06 position de lerr max 0.190E+01
temps
E
rreur=ExactEstim
FIGURE 2 Erreur dans lintgration de lquation logistique avec Runge Kutta
dordre 4 pourh= 0, 02. Lallure bruite est caractristique de lerreur darrondi.
MNCS 22 2014-2015
EDO 2 Mthodes un pas 2.5 Exemple de lquation logistique
2.5.1 Exemple derreur totale maximale en simple prcision
107
106
105
104
103
102
101
100
104
103
102
101
100
erreurmaxim
ale
pas
Valeur absolue de lerreur absolue pour y= y(1y/2) sur [0,20] y(0)=0.1 simple prcision
pente 1
pente +1
pente +2
pente +3
pente +4
euler spmilieu sp
rk3 sprk4 sp
MNCS 23 2014-2015
7/23/2019 Equa Diff x4bv
7/18
EDO 2 Mthodes un pas 2.5 Exemple de lquation logistique
2.5.2 Exemple derreur totale maximale en double prcision
1016
1014
1012
1010
108
106
104
102
100
104
103
102
101
100
erreurmaxima
le
pas
Erreur absolue y= y(1y/2) sur [0,20] y(0)=0.1 double prcision
pente +1
pente +2
pente +3
pente +4
euler dpmilieu dp
rk3 dprk4 dp
MNCS 24 2014-2015
EDO 2 Mthodes un pas 2.5 Exemple de lquation logistique
2.5.3 Comparaison des erreurs maximales simple/double prcision
1016
1014
1012
1010
108
106
104
102
100
104
103
102
101
100
erreurmaxima
le
pas
Erreur absolue y= y(1y/2) sur [0,20] y(0)=0.1 simple/double prcision
euler spmilieu sp
rk3 sprk4 sp
euler dpmilieu dp
rk3 dprk4 dp
MNCS 25 2014-2015
EDO 3 Mthodes plusieurs pas
3 Mthodes plusieurs pas
3.1 Mthodes dAdams
Principe :les erreurs augmentent avec lintgration, les points les plus proches de
la valeur initiale ont tendance tre plus fiables. Pour calculer ui+1, on peut
sappuyer non seulement sur la dernire valeur estimeui, mais sur lesmprcdentes.
si le calcul invoque la pente au point recherchf(ti+1, ui+1), la mthode estimplicite (voir 2.1.2) : ADAMS-M OULTON
sinon elle est explicite : ADAMS-BASHFORTH .
Dans les deux cas, il fautinitialiserle calcul par une mthode un pas sur les m
premiers points.
Le calculrutilise les valuations antrieures du second membre .
= stocker ces valeurs pour conomiser les calculs
MNCS 26 2014-2015
EDO 3 Mthodes plusieurs pas 3.1 Mthodes dAdams
3.1.1 Adams Bashforth (explicite : pas de terme enf(ti+1, ui+1))
ui+1 = ui+hmj=1
jf(tij+1, uij+1) avec mj=1
j = 1
mthode dordrem(nombre dvaluations du second membre)
m 1 2 3 4
1 1 1
2 1/2 3 1
3 1/12 23 16 5
4 1/24 55 59 37 9
MNCS 27 2014-2015
7/23/2019 Equa Diff x4bv
8/18
EDO 3 Mthodes plusieurs pas 3.1 Mthodes dAdams
Exemple : Adams-Bashforth deux pas
ui+1 = ui+h
2[3f(ti, ui) f(ti1, ui1)]
ti1 ti+1
k1
tti
k0
k1h/2
y
ui1
ui
h/23k0h/2
3h/2
ui+1
Adams-Bashforth
deux pas
Mthode explicite
dordre deux mais
seulement une va-
luation nouvelle du
second membre
chaque pas
mmoriser les
seconds membres.
MNCS 28 2014-2015
EDO 3 Mthodes plusieurs pas 3.1 Mthodes dAdams
3.1.2 Adams Moulton (implicite : terme enf(ti+1, ui+1))
ui+1 = ui+hmj=0
jf(tij+1, uij+1) avec mj=0
j = 1
mthode dordrem+ 1(nombre dvaluations du second membre)
m 0 1 2 3
0 1 1
1 1/2 1 1
2 1/12 5 8 1
3 1/24 9 19 5 1
viter les difficults de limplicite en utilisant un prdicteur explicite deui+1,
inject ensuite dans lexpression dAdams-Moulton vue comme correcteur .
MNCS 29 2014-2015
EDO 3 Mthodes plusieurs pas 3.1 Mthodes dAdams
3.1.3 Comparaison mthodes un pas et Adams explicite
107
106
105
104
103
102
101
100
104
103
102
101
100
erreurmaxim
ale
pas
Erreur absolue y= y(1y/2) sur [0,20] y(0)=0.1 simple prcision
euler spmilieu sp
rk3 sprk4 sp
adamsbashforth2 spadamsbashforth3 spadamsbashforth4 sp
MNCS 30 2014-2015
EDO 3 Mthodes plusieurs pas 3.1 Mthodes dAdams
3.1.4 Mthodes de prdicteur correcteur
Principe :bnficier des qualits dune mthode implicite mais lappliquer une
estimation obtenue par une mthode explicite du mme ordre (voir Euler modifie).
prdictiondeui+1par une mthodeexplicite
correctiondeui+1par une formuleimpliciteof(ti+1, y(ti+1))a t
approxim par la prdictionf(ti+1, ui+1).
Exemple : mthode dEuler modifie
Une itration de la partie correction est possible.
Lordre est celui du correcteur, mais la stabilit dpend plus du prdicteur.
Ces mthodes permettent destimer lerreur de troncature partir de la diffrence
entre prdicteur et correcteur= adaptation du pas
MNCS 31 2014-2015
7/23/2019 Equa Diff x4bv
9/18
EDO 3 Mthodes plusieurs pas 3.2 Mthodes adaptatives
3.2 Mthodes adaptatives
Principe :ajuster le pas localementpour obtenir une prcision impose.
Estimation de lerreur de troncature locale laide de lcart entre deux estimations
luneui, dordren, lautreui , dordren+ 1.
i= y(ti+1) ui+1
h hn (11a)
i = y(ti+1) ui+1
h hn+1 (11b)
i ui+1 ui+1
h hn (11c)
Modification du pas dun facteurq
i(hq) qni(h)
qn
h(ui+1 ui+1) (12)
MNCS 32 2014-2015
EDO 3 Mthodes plusieurs pas 3.2 Mthodes adaptatives
Contrainte deprcision relative
i(hq) (13)
do le facteur appliquer au pas
q
h
ui+1 ui+1
1/n(14)
NB. :cette mthode suppose que le pas permet de ngliger lerreur darrondi.
3.2.1 Exemple : mthode de Runge Kutta Fehlberg
Une mthode de Runge Kutta dordre 5(6 valuations def)
permet de contrler la prcision obtenue par un Runge Kutta dordre 4
utilisant les valuations defaux mmes pointsque celle dordre 5
(les poids ne sont pas ceux de la mthode dordre 4 classique).
MNCS 33 2014-2015
EDO 3 Mthodes plusieurs pas 3.3 Mthodes dextrapolation de Gragg
3.3 Mthodes dextrapolation de Gragg
3.3.1 Principe de lextrapolation
h/p2
k= 2h/p3
k= 3
pas fin :h/pkm
pkm
pas k= km
t0 t0+Lh
k= 1
Subdivisions successives
Dcoupage de lintervalle depas
grossierhen sous-intervalles
depas finhk = h/pkde plus
en plus petits.
Dveloppement polynomial de
lerreur de troncature en fonction
du pas pour extrapoler au pas nul
(hk 0).
MNCS 34 2014-2015
EDO 3 Mthodes plusieurs pas 3.3 Mthodes dextrapolation de Gragg
Exemple de la mthode dEuler : lerreur de troncatureglobale sur un pas
grossierhest du premier ordre en fonction du pas finh/pk .
Par exemple, pour les subdivisionsp1etp2:
y(t+h) = v1+a1
h
p1
+a2
h
p1
2+ (15)
y(t+h) = v2+a1
h
p2
+a2
h
p2
2+ (16)
Combinaison linairede ces deux estimateursv1etv2 liminer le terme dordre 1de lerreur (a1 inconnu)
nouvel estimateurw2,2dordre 2tel que :
y(t+h) = w2,2+b2
h
p2
2+
w2,2= (p2/p1) w2,1 w1,1
p2/p1 1 =w2,1+
w2,1 w1,1p2/p1 1
(17)
MNCS 35 2014-2015
7/23/2019 Equa Diff x4bv
10/18
EDO 3 Mthodes plusieurs pas 3.3 Mthodes dextrapolation de Gragg
Autre exemple avec la mthode du point milieu :
lerreur de troncature globale surhest dordre 2 en fonction du pas h/pk;
pas de termes dordre impair da ns le dveloppement de lerreur.
Combinaison linairede deux estimateurs avec des pas fins diffrents :
limination du terme dordre 2 de lerreur de troncature
erreur de troncature dordre 4
Itrerle processus avec une suite de subdivisions et de combinaisons linairesdestimateurs pour augmenter lordre de lerreur de troncature.
Maisamlioration limite par lerreur darrondi...
Lcartwk+1,k+1 wk,k donne une estimation de lerreur de troncature si on
retient la solutionwk,k . En ajustant, pour chaque intervalle de largeurh, le nombre
kmde subdivisions pour respecter une erreur absolue impose, on obtient une
version adaptative de la mthode de Gragg.
MNCS 36 2014-2015
EDO 3 Mthodes plusieurs pas 3.3 Mthodes dextrapolation de Gragg
3.3.2 Comparaison mthodes un pas et extrapolation de Gragg
107
106
105
104
103
102
101
100
104
103
102
101
100
erreurmaximale
pas
Erreur absolue y= y(1y/2) sur [0,20] y(0)=0.1 simple prcision
euler spmilieu sp
rk3 sprk4 sp
milmod spgragg24spgragg28sp
MNCS 37 2014-2015
EDO 4 Les EDO du premier ordre en pratique
4 Les EDO du premier ordre en pratique
4.1 chelles de temps et problmes raides
Ne pas oublier que chaque problme diffrentiel possde une ou plusieurschelles
de temps propres(priodes ou pseudo-priodes, constantes de temps).
La solution ne peut tre reprsente correctement quavec un pas assez infrieur
au plus petit de ces temps propres.
Cette analyse impose donc une valeur maximale pour le pas.
Certains problmes diffrentiels qualifis desraidescomportent des chelles de
temps trs diffrentes : leur intgration numrique savre dlicate et coteuse (pas
faible pour respecter le temps court, mais nombreux pour accder au temps long).
Il existe des mthodes spcifiques des EDO raides qui ne sont pas prsentes ici.
MNCS 38 2014-2015
EDO 4 Les EDO du premier ordre en pratique 4.2 Validation des rsultats
4.2 Validation des rsultats
Validation via une solution analytique dun problme simplifi
Lorsquune solution analytique est disponible (par exemple pour certaines valeurs
de paramtres qui permettent de simplifier lEDO), sa comparaison avec la solution
numrique permet de tester la mthode. Le calcul de lerreur dans le domaine o la
troncature domine permet dextrapoler leffet dun changement de pas connaissant
lordre de la mthode.
Validation sans solution analytique
Dans le cas o aucune solution analytique de rfrence nest disponible, la
validation sappuie sur les mmes outils que les mthodes adaptatives :
diminution du pas (division par 2)
augmentation de lordre de la mthode
extrapolation de Gragg
calcul dinvariants (nergie p ar exemple)
MNCS 39 2014-2015
7/23/2019 Equa Diff x4bv
11/18
EDO 4 Les EDO du premier ordre en pratique4.3 Structure des programmes de rsolution dEDO du 1er ordre
4.3 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 membrefpasse en argument) permettant davancer dun
pasdans lintgration de lquation diffrentielle
2. ventuellement une procdure qui choisit le pas le plus grand possible
compatible avec la prcision attendue et contrle la progression de lintgration
(elle pourrait comporter un algorithme adaptatif)
3. un programme dinterface avec lutilisateurqui choisit la mthode, le second
membre, lit les paramtres (conditions initiales par ex.), dclenche et arrte
lintgration et stocke les rsultats.
4. un module comportantles fonctions seconds membres de lquation
diffrentielle et les ventuelles solutions analytiques exactes ou approches
5. un module dutilitairesnotamment pour crire les rsultats dans un fichier pour
visualisation ultrieure.
MNCS 40 2014-2015
EDO 5 Systmes dEDO du 1er ordre
5 Systmes dquations diffrentielles du 1er ordre
5.1 Extension des mthodes scalaires explicites aux vecteurs
Systme denquations diffrentielles couples du
premier ordre associes nconditions initiales
dy1dt
= f1(t, y1, y2, . . . , yn)
dy2dt
= f2(t, y1, y2, . . . , yn)
. . . = . . .dyndt
= fn(t, y1, y2, . . . , yn)
considrer les
vecteurs #y et#
f.
y1
y2
. . .
yn
et
f1
f2
. . .
fn
MNCS 41 2014-2015
EDO 5 Systmes dEDO du 1er o rd re 5 .1 M t ho de s s ca la ir es e xp li ci te s
Lesmthodesexplicitesde rsolution des quations diffrentielles scalaires du
premier ordresappliquent aux systmes.
d #y
dt =
#
f(t, #y )
chaque tape, effectuer les calculssur chaque composante
avant de passer ltape suivante : exemple avec point milieu
tape 1 : vecteur des pentes au bord gauche de lintervalle
#
k1=#
f(t1,#y1)
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)
MNCS 42 2014-2015
EDO 5 Systmes dEDO du 1er o rd re 5. 1 M tho des s cal ai res ex pl ic it es
avant de calculer...
tape 2 : vecteur des pentes au point milieu prdit
#
k2=#
f(t1+h/2,#y1+
#
k1h/2)
k2,1 = f1(t1+h/2, y1,1+k1,1h/2, y1,2+k1,2h/2, . . . , y1,n+k1,nh/2)
k2,2 = f2(t1+h/2, y1,1+k1,1h/2, y1,2+k1,2h/2, . . . , y1,n+k1,nh/2)
. . . = . . .
k2,n = fn(t1+h/2, y1,1+k1,1h/2, y1,2+k1,2h/2, . . . , y1,n+k1,nh/2)
tape 3 : vecteur rsultat au bord droit de lintervalle
#ui+1 =#ui+h
#
k2
MNCS 43 2014-2015
7/23/2019 Equa Diff x4bv
12/18
EDO 5 Systmes dEDO du 1er o rd re 5. 2 qua ti ons d e L ot ka -Vo lt er ra
5.2 Exemple de systme non linaire coupl du premier ordre :
quations de Lotka-Volterra
Deux populations en conflit : modle proies (y1)prdateurs (y2)
a1 = 1/1= taux de croissance de y1(proies)en labsence dey2(prdateurs)
a2 = 1/2= taux de dcroissance de y2(prdateurs)en labsence dey1(proies)a1k2
y2= taux de destruction des proiespar lesprdateurs
a2k1
y1= taux de croissance desprdateursau dtriment desproies
dy1dt
= +a1y1
1
y2k2
(18a)
dy2dt
= a2y2
1
y1k1
(18b)
Solutionspriodiques
MNCS 44 2014-2015
EDO 5 Systmes dEDO du 1er o rd re 5 .2 qua ti ons d e L ot ka -Vo lt er ra
Rsolution numrique de Lotka-Volterra :k1= k2 = 1,a1 = 1,a2= 0, 2,h= 0, 1
chelleslinaires
0
5
10
15
20
0 20 40 60 80 100
Populations
temps
Lotka Volterra valeurs initiales : proies(0) = 10 prdateurs(0) = 1pas = 0,1 ordre de la mthode : 1
proiesprdateurs
Mthode dEuler progressive :
Les solutions divergent
0
5
10
15
20
0 20 40 60 80 100
Populations
temps
Lotka Volterra valeurs initiales : proies(0) = 10 prdateurs(0) = 1pas = 0,1 ordre de la mthode : 4
proiesprdateurs
Mthode de Runge Kutta dordre 4 :
Cycle stable
MNCS 45 2014-2015
EDO 5 Systmes dEDO du 1er o rd re 5. 2 qua ti ons d e L ot ka -Vo lt er ra
Rsolution numrique de Lotka-Volterra :k1= k2 = 1,a1 = 1eta2 = 0, 2.
chellelogen ordonne
1010
108
106
104
102
100
102
0 20 40 60 80 100
Populations
temps
Lotka Volterra valeurs initiales : proies(0) = 10 prdateurs(0) = 1pas = 0,1 ordre de la mthode : 1
proiesprdateurs
Mthode dEuler progressive :divergente
1010
108
106
104
102
100
102
0 20 40 60 80 100
Populations
temps
Lotka Volterra valeurs initiales : proies(0) = 10 prdateurs(0) = 1pas = 0,1 ordre de la mthode : 4
proiesprdateurs
Mthode de Runge Kutta dordre 4 : stable
Pente avec peu de proies :d ln y2
dt 1/2do facteur e
4 1/54 sur une dure de 20 = 42.
Pente avec peu de prdateurs :d ln y1
dt 1/1do facteur 100 sur dure de 4, 6 = 4, 61
MNCS 46 2014-2015
EDO 5 Systmes dEDO du 1er o rd re 5 .2 qua ti ons d e L ot ka -Vo lt er ra
Lotka-Volterra : cycle dans le plan de phase
En liminant le temps,
dy2dy1
= a2y2a1y1
1 y1/k11 y2/k2
ya21 ya12 e
a1y2/k2a2y1/k1 =Cte
Tangentes horizontales poury1= k1(ouy2= 0) : quilibre desprdateurs
Tangentes verticales poury2 = k2(ou y1= 0) : quilibre desproies
0.0
1.0
2.0
3.0
4.0
5.0
6.0
7.0
8.0
0 5 10 15 20
prdateurs
proies
Plan de phase de Lotka Volterravaleurs initiales : proies(0) = 10 prdateurs(0) = 1
pas = 0,1 ordre de la mthode : 1
prdateurs= f(proies)
Mthode dEuler : non priodique
0.0
1.0
2.0
3.0
4.0
5.0
6.0
7.0
8.0
0 5 10 15 20
prdateurs
proies
Plan de phase de Lotka Volterravaleurs initiales : proies(0) = 10 prdateurs(0) = 1
pas = 0,1 ordre de la mthode : 4
prdateurs= f(proies)
Runge Kutta dordre 4 : cycle correctMNCS 47 2014-2015
7/23/2019 Equa Diff x4bv
13/18
EDO 6 quations diffrentielles dordre suprieur
6 quations diffrentielles dordre suprieur
dny
dtn =f
t, y,
dy
dt, . . . ,
dn1y
dtn1
Une EDO scalaire dordrense ramne un systme de nquations diffrentielles
du premier ordre couplesen posant :
y1
y2
. . .
yn
=
y
y
. . .
y(n1)
=
y1
y2
. . .
yn
=
y2
y3
. . .
f(t, y1, y2, . . . , yn)
MNCS 48 2014-2015
EDO 6 quations diffrentielles dordre suprieur 6.1 Exemple
6.1 Exemple
Systme linaire du second ordre avec excitationh(t)
d2y
dt2 =a
dy
dt +by+h(t)
Poser
y1
y2
=
y
y
y1
y2
=
y2
ay2+by1+h(t)
Remarque
Systme diffrentiel dordrepde dimensionn
systme diffrentiel coupl du premier ordre npdimensions.
MNCS 49 2014-2015
E DO 6 qua ti ons d if f ren ti el les d or dre s up r ieu r 6 .2 E xem pl e d E DO d o rd re 2 : l e pe ndu le
6.2 Exemple dEDO dordre 2 : le pendule
Pendulenon linaire(y= position angulaire)
d2y
dt2 = k2sin(y) o k2 =g/l (19)
Pendulelinaris(cas des petites amplitudes) : sin(y) y
d2y
dt2 = k
2
y (20)
l
y
mg
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.y1
y2
=
y
y
=
y1
y2
=
y2k2 sin(y1)
MNCS 50 2014-2015
E DO 6 qua ti ons d if f ren ti el les d or dre s up r ieu r 6. 2 E xem pl e d E DO d o rd re 2 : l e pe ndu le
Rsolution numrique du systme non-linaris, avec les valeurs initiales :y1(0)
y2(0)
=
y(0)dy
dt(0) =a
=
position angulaire
vitesse angulaire
nergie mcaniqueconserve (aprs division parml2) :
1
2
dy
dt2
+k2(1 cos y) = constante
Cas oy(0) = 0(dpart en position dquilibre stable)
1
2
dy
dt
2+k2(1 cos y) =
1
2
dy
dt(0)
2
Vitesse angulaire minimale poury = (position dquilibre instable si atteinte).
Sia = dy
dt(0)> 2k(seuil) la vitesse angulaire ne sannule pas (apriodique).
tude de latransition priodiqueapriodiqueselonadans le cas ok = 1
MNCS 51 2014-2015
7/23/2019 Equa Diff x4bv
14/18
E DO 6 qua ti ons d if f ren ti el les d or dre s up r ieu r 6 .2 E xem pl e d E DO d o rd re 2 : l e pe ndu le
Comparaisons non-linaire (Runge-Kutta 4)analytique linaris :y(t)
.
.
.
.
.
estimlinaireestimlinaire
0 5 10 15 20 25 30 35 40 45 500.25
0.20
0.15
0.10
0.05
0.00
0.05
0.10
0.15
0.20
0.25
pendule + sol. linarise: mth. ordre 4 vitesse ang. init=0.2mthode dordre 4de 0.000000 50.000000 avec un pas de 0.01valeurs initiales 0.0000000e+00 2.0000000e01
temps
theta
a= 0.2 1linarisable
.
.
.
estimlinaireestimlinaire
0 5 10 15 20 25 30 35 40 45 501.5
1.0
0.5
0.0
0.5
1.0
1.5
pendule + sol. linarise: mth. ordre 4 vitesse ang. init=1mthode dordre 4de 0.000000 50.000000 avec un pas de 0.01valeurs initiales 0.0000000e+00 1.0000000e+00
temps
theta
a= 1priodique non sinusodal
estimlinaireestimlinaire
0 5 10 15 20 25 30 35 40 45 503
2
1
0
1
2
3
pendule + sol. linarise: mth. ordre 4 vitesse ang. init=1.98mthode dordre 4de 0.000000 50.000000 avec un pasde 0.01valeurs initiales 0.0000000e+00 1.9800000e+00
temps
theta
a= 1.98priodique non sinusodal
estimlinaireestimlinaire
0 5 10 15 20 25 30 35 40 45 5010
0
10
20
30
40
50
pendule + sol. linarise: mth. ordre 4 vitesse ang. init=2.02mthode dordre 4de 0.000000 50.000000 avec un pas de 0.01valeurs initiales 0.0000000e+00 2.0200000e+00
temps
theta
a= 2.02apriodiqueMNCS 52 2014-2015
E DO 6 qua ti ons d if f ren ti el les d or dre s up r ieu r 6. 2 E xem pl e d E DO d o rd re 2 : l e pe ndu le
Comparaisons non-linaire (RK 4)analytique linaris : plan de phase y(y)
.
.
.
.
.
estimlinarisestimlinaris
0. 25 0. 20 0. 15 0. 10 0. 05 0 .0 0 0 .0 5 0 .1 0 0 .1 5 0 .2 0 0 .2 50.25
0.20
0.15
0.10
0.05
0.00
0.05
0.10
0.15
0.20
0.25
plan de phase pendule: mth. ordre 4 vitesse ang. init.=0.2mthode dordre 4de 0.000000 50.000000 avec un pas de 0.01valeurs initiales 0.0000000e+00 2.0000000e01
theta
dtheta/dt
a= 0.2 1linarisable
.
.
.
.
.
estimlinarisestimlinaris
1.5 1.0 0.5 0.0 0.5 1.0 1.51.0
0.8
0.6
0.4
0.2
0.0
0.2
0.4
0.6
0.8
1.0
plan de phase pendule: mth. ordre 4 vitesse ang. init.=1mthode dordre 4de 0.000000 50.000000 avec un pas de 0.01valeurs initiales 0.0000000e+00 1.0000000e+00
theta
dtheta/dt
a= 1priodique non sinusodal
.
.
.
.
estimlinarisestimlinaris
3 2 1 0 1 2 32.0
1.5
1.0
0.5
0.0
0.5
1.0
1.5
2.0
plan de phase pendule: mth. ordre 4 vitesse ang. init.=1.98mthode dordre 4de 0.000000 50.000000 avec un pas de 0.01valeurs initiales 0.0000000e+00 1.9800000e+00
theta
dtheta/dt
a= 1.98priodique non sinusodal
.
.
.
.
.
estimlinarisestimlinaris
10 0 10 20 30 40 502.5
2.0
1.5
1.0
0.5
0.0
0.5
1.0
1.5
2.0
2.5
plan de phase pendule: mth. ordre 4 vitesse ang. init.=2.02mthode dordre 4de 0.000000 50.000000 avec un pas de 0.01valeurs initiales 0.0000000e+00 2.0200000e+00
theta
dtheta/dt
a= 2.02apriodiqueMNCS 53 2014-2015
E DO 6 qua ti ons d if f ren ti el les d or dre s up r ieu r 6 .2 E xem pl e d E DO d o rd re 2 : l e pe ndu le
Comparaisons non-linaire (Euler)analytique linarisy(t)
.
.
.
estimlinaireestimlinaire
0 5 10 15 20 25 30 35 40 45 500.3
0.2
0.1
0.0
0.1
0.2
0.3
pendule + sol. linarise: mth. ordre 1 vitesse ang. init=0.2mthode dordre 1de 0.000000 50.000000 avec un pasde 0.01valeurs initiales 0.0000000e+00 2.0000000e01
temps
theta
a= 0.2
.
.
.
estimlinaireestimlinaire
0 5 10 15 20 25 30 35 40 45 501.5
1.0
0.5
0.0
0.5
1.0
1.5
pendule + sol. linarise: mth. ordre 1 vitesse ang. init=1mthode dordre 1de 0.000000 50.000000 avec un pas de 0.01valeurs initiales 0.0000000e+00 1.0000000e+00
temps
theta
a= 1
estimlinaireestimlinaire
0 5 10 15 20 25 30 35 40 45 5045
40
35
30
25
20
15
10
5
0
5
pendule + sol. linarise: mth. ordre 1 vitesse ang. init=1.98mthode dordre 1de 0.000000 50.000000 avec un pasde 0.01valeurs initiales 0.0000000e+00 1.9800000e+00
temps
theta
a= 1.98apriodique selon Euler!
estimlinaireestimlinaire
0 5 10 15 20 25 30 35 40 45 5010
0
10
20
30
40
50
60
pendule + sol. linarise: mth. ordre 1 vitesse ang. init=2.02mthode dordre 1de 0.000000 50.000000 avec un pas de 0.01valeurs initiales 0.0000000e+00 2.0200000e+00
temps
theta
a= 2.02MNCS 54 2014-2015
E DO 6 qua ti ons d if f ren ti el les d or dre s up r ieu r 6. 2 E xem pl e d E DO d o rd re 2 : l e pe ndu le
Comparaisons non-linaire (Euler)analytique linaris : plan de phase y(y)
.
.
.
estimlinarisestimlinaris
0.3 0.2 0.1 0.0 0.1 0.2 0.30.3
0.2
0.1
0.0
0.1
0.2
0.3
plan de phase pendule: mth. ordre 1 vitesse ang. init.=0.2mthode dordre 1de 0.000000 50.000000 avec un pas de 0.01valeurs initiales 0.0000000e+00 2.0000000e01
theta
dtheta/dt
a= 0.2
.
.
.
estimlinarisestimlinaris
1.5 1.0 0.5 0.0 0.5 1.0 1.51.5
1.0
0.5
0.0
0.5
1.0
1.5
plan de phase pendule: mth. ordre 1 vitesse ang. init.=1mthode dordre 1de 0.000000 50.000000 avec un pas de 0.01valeurs initiales 0.0000000e+00 1.0000000e+00
theta
dtheta/dt
a= 1
.
.
.
.
.
estimlinarisestimlinaris
45 40 35 30 25 20 15 10 5 0 52.5
2.0
1.5
1.0
0.5
0.0
0.5
1.0
1.5
2.0
plan de phase pendule: mth. ordre 1 vitesse ang. init.=1.98mthode dordre 1de 0.000000 50.000000 avec un pas de 0.01valeurs initiales 0.0000000e+00 1.9800000e+00
theta
dtheta/dt
a= 1.98apriodique selon Euler!
.
.
.
.
.
estimlinarisestimlinaris
10 0 10 20 30 40 50 602.5
2.0
1.5
1.0
0.5
0.0
0.5
1.0
1.5
2.0
2.5
plan de phase pendule: mth. ordre 1 vitesse ang. init.=2.02mthode dordre 1de 0.000000 50.000000 avec un pas de 0.01valeurs initiales 0.0000000e+00 2.0200000e+00
theta
dtheta/dt
a= 2.02MNCS 55 2014-2015
7/23/2019 Equa Diff x4bv
15/18
EDO 7 Implmentation vectorielle
7 Mise en uvre vectorielle des mthodes un pas
7.1 Introduction
Les mthodes dintgration d oivent fonctionnerquelle que soit la taillepdes
vecteursqui reprsentent la solution #y et le second membre#
fde 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. Cestle programme principal qui fixera cette taille.
Il devra donc choisir un second membre de la mme dimension.
Les tailles des tableaux des seconds membres e ffectifs seront hrites du
programme principal etnon dclares explicitement.
Mais seules lespcomposantes effectives de#
f(2 pour le pendule : drive et
drive seconde) seront calcules partir despcomposantes de #y .
MNCS 56 2014-2015
EDO 7 Implmentation vectorielle 7.2 En fortran (norme 2003)
7.2 En fortran (norme 2003)
Utiliser desfonctions argument tableau de rang 1 #y
dtenduepdtermine lexcution (nombrepdEDO scalaires dordre 1)
et rsultat tableau de mme tendue que #y pour :
1. le second membre de lquation diffrentielle :
MODULE abstrait
ABSTRACT INTERFACE ! de la fct gnrique IInd mb de lEDO
function fty(t, y) ! dy/dtreal, 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
Ltenduepdu vecteur rsultat#
f effectif sera donc fixe par le programme
principal via #y et non par la fonction second membre.
MNCS 57 2014-2015
EDO 7 Implmentation vectorielle 7.2 En fortran (norme 2003)
2. chacune des mthodes un pas(Euler, point milieu et Runge Kutta) :
les pentes locales#
kiseront destableaux 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 fREAL, 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
EDO 7 Implmentation vectorielle 7.2 En fortran (norme 2003)
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(ninstants,pcomposantes).
Les tenduesnetpsont donc choisies lexcution, sachant que pdoit 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], ifix.
MNCS 59 2014-2015
7/23/2019 Equa Diff x4bv
16/18
EDO 7 Implmentation vectorielle 7.3 En C89 avec des tableaux dynamiques
7.3 En C89 avec des tableaux dynamiques sur le tas
Utiliser des fonctions argument tableau 1D #y de taille dtermine lexcution
etrendant un pointeur vers un tableau allou sur le tas de mme taille que #y .
1. le second membre de lquation diffrentielle sera allou par la fonction#
f( #y , t)qui rend le pointeur vers ce tableau, dont le programme appelant
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 */
}
MNCS 60 2014-2015
EDO 7 Implmentation vectorielle 7.3 En C89 avec des tableaux dynamiques
2. pour chacune des mthodes un pas (Euler, point milieu et Runge Kutta) les
pentes locales#
kiseront des tableaux allous et librs localement, car leur
nombre dpend de la mthode ; en revanche, le rsultat #u i+1qui est aussi
vectoriel sera pass en argument (sous forme pointeur plus nombre
dlments), son allocation et libration prises en charge par lappelant.
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 */
k 1 = (*ptr_f)(t1, u1, p); /* allocation par la fct second membre *
u12 = float1d (p); /* allocation locale */
MNCS 61 2014-2015
EDO 7 Implmentation vectorielle 7.3 En C89 avec des tableaux dynamiques
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. Mais la dimension temporelle nest pas vue par les mthodes :
elles travaillent sur des vecteurs de taillepdans un intervalle[ti, ti+1]. Cela
impose que les composantes des vecteurs soient contiges en mmoire, donc
le deuxime indice est celui des composantes, le premier celui du temps.
/* 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
EDO 7 Implmentation vectorielle 7.4 En C99 avec des tableaux automatiques
7.4 En C99 avec des tableaux automatiques
Fonctions argument tableau 1D #y de taillepdtermine lexcution
Dclaration tardive des tableaux automatiques viter les tableaux dynamiques
Mais une fonction ne peut pas rendre un tableau fonctions rsultat void
dclaration du tableau argument par lappelant
et remplissage par la fonction appele
1. la fonction second membre de lquation diffrentielleremplit le tableau
second_mbde taillepreprsentant#
f( #y , t)
qui a t dclar par lappelant (la mthode) avec la taille fixe par le main
// 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
7/23/2019 Equa Diff x4bv
17/18
EDO 7 Implmentation vectorielle 7.4 En C99 avec des tableaux automatiques
2. pour chacune des mthodes un pas (Euler, point milieu et Runge Kutta) les
pentes locales#
kiseront destableaux locaux automatiques, car leur nombre
dpend de la mthode ; en revanche, le rsultat #u i+1 qui est aussi vectoriel
sera pass en argument, sa dclaration tant prise en charge par lappelant.
// 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 2014-2015
EDO 7 Implmentation vectorielle 7.4 En C99 avec des tableaux automatiques
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. Mais la dimension temporelle nest pas vue par les mthodes :
elles travaillent sur des vecteurs de taillepdans un intervalle[ti, ti+1]. Cela
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 2014-2015
EDO RFRENCES RFRENCES
Rfrences
AKAI , T ERRENCE J., Applied Numerical Methods for Engineers, 410 pages (Wiley,
1994), ISBN 0-471-57523-2.
BURDEN, R ICHARDL. et J. D OUGLAS FAIRES,Numerical Analysis, 847 pages
(Thompson, Brooks/Cole, 2005), huitime dition, ISBN 0-534-40499-5.
DEMAILLY, J.-P.,Analyse numrique et quations diffrentielles, 350 pages (EDP
Sciences, 2006), troisime dition, ISBN 978-2-86883-891-9.
GUILPIN, C H., Manuel de calcul numrique appliqu, 577 pages (EDP Sciences,
1999), ISBN 2-86883-406-X.
RAPPAZ, J ACQUESet M ARCOP ICASSO, Introduction lanalyse numrique, 268
pages (Presses polytechniques et universitaires romandes, 2010), ISBN
978-2-88074-851-7.
MNCS 66 2014-2015
EDO TABLE DES MATIRES TABLE DES MATIRES
Table des matires
1 Introduction 1
1.1 Problme dif frent ie l . . . . . . . . . . . . . . . . . . . . . . . . . 1
1.2 Deux types de problmes diffrentiels rsoudre . . . . . . . . . . . 2
1.3 quations diffrentielles scalaires du 1er ordre . . . . . . . . . . . . 3
1.4 Condit ions suffisant es . . . . . . . . . . . . . . . . . . . . . . . . 4
1.5 Mthodes de rsolution numrique et notations . . . . . . . . . . . . 5
2 Mthodes un pas 7
2.1 Mthodes du premier ordre . . . . . . . . . . . . . . . . . . . . . . 8
2.1.1 Mthode dEuler progressive (explicite) . . . . . . . . . . . . 8
2.1.2 Mthode dEuler rtrograde (implicite) . . . . . . . . . . . . . 10
MNCS 67 2014-2015
7/23/2019 Equa Diff x4bv
18/18
EDO TABLE DES MATIRES TABLE DES MATIRES
2.2 Mthodes du deuxime ordre . . . . . . . . . . . . . . . . . . . . . 11
2.2.1 Mthode du point mil ieu . . . . . . . . . . . . . . . . . . . . 11
2.2.2 Mthode dEuler modifie . . . . . . . . . . . . . . . . . . . 13
2.2.3 Mt hode de Heun . . . . . . . . . . . . . . . . . . . . . . . 16
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
2.4 Erreur absolue en fonction du pas et de lordre . . . . . . . . . . . . 20
2.5 Exemple de l quat ion logistique . . . . . . . . . . . . . . . . . . . 21
2.5.1 Exemple derreur totale maximale en simple prcision . . . . . 23
2.5.2 Exemple derreur totale maximale en double prcision . . . . . 24
2.5.3 Comparaison des erreurs maximales simple/double prcision . 25
MNCS 68 2014-2015
EDO TABLE DES MATIRES TABLE DES MATIRES
3 Mthodes plusieurs pas 26
3.1 Mthodes dAdams . . . . . . . . . . . . . . . . . . . . . . . . . . 26
3.1.1 Adams Bashforth (explicite : pas de terme enf(ti+1, ui+1)) . 2 7
3.1.2 Adams Moulton (implicite : terme enf(ti+1, ui+1)) . . . . . 28
3.1.3 Comparaison mthodes un pas et Adams explicite . . . . . . 30
3.1.4 Mthodes de prdicteur correcteur . . . . . . . . . . . . . . 31
3.2 Mthodes adaptatives . . . . . . . . . . . . . . . . . . . . . . . . 32
3.2.1 Exemple : mthode de Runge Kutta Fehlberg . . . . . . . . . 33
3.3 Mthodes dextrapolation de Gragg . . . . . . . . . . . . . . . . . . 34
3.3.1 Principe de l extrapolation . . . . . . . . . . . . . . . . . . . 34
3.3.2 Comparaison mthodes un pas et extrapolation de Gragg . . 37
4 Les EDO du premier ordre en pratique 38
MNCS 69 2014-2015
EDO TABLE DES MATIRES 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 ord re . . . . . 40
Structure des programmes dEDO du 1er ordre 40
5 Systmes dEDO du 1er ordre 41
5.1 Mthodes scalaires explicites . . . . . . . . . . . . . . . . . . . . . 41
5.2 quations de Lotka-Volterra . . . . . . . . . . . . . . . . . . . . . 44
6 quations diffrentielles dordre suprieur 48
6.1 Exemple . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 49
6.2 Exemple dEDO dordre 2 : le pendule . . . . . . . . . . . . . . . . 50
7 Implmentation vectorielle 56
MNCS 70 2014-2015
EDO TABLE DES MATIRES TABLE DES MATIRES
7 .1 In tro ductio n . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 5 6
7.2 En fort ran (norme 2003) . . . . . . . . . . . . . . . . . . . . . . . 57
7.3 En C89 avec des tableaux dynamiques . . . . . . . . . . . . . . . . 60
7.4 En C99 avec des tableaux automatiques . . . . . . . . . . . . . . . 63
Bibliographie 66
MNCS 71 2014-2015
Recommended