“Résolution des équations différentielles couplées utilisant MATLAB”

Transcription

“Résolution des équations différentielles couplées utilisant MATLAB”
Document de travail 2013-14
Juin 2013
“Résolution des équations
différentielles couplées
utilisant MATLAB”
Sleiman TABIKH
Maître de Conférences
Université des Antilles et de la Guyane. Faculté de Droit et d’Economie de la Martinique. Campus de Schoelcher - Martinique FWI
B.P. 7209 - 97275 Schoelcher Cedex - Tél. : 0596. 72.74.00 - Fax. : 0596. 72.74.03
www.ceregmia.eu
Centre d’Etude et de Recherche en Economie,
Gestion, Modélisation et Informatique Appliquée
Résolution des Equations Différentielles Couplées
Utilisant MATLAB
Sleiman TABIKH
Ceregmia, Université des Antilles et de la Guyane
Résumé :
Nous traitons dans ce document la résolution des équations différentielles
couplées à l’aide du logiciel MATLAB à travers deux exemples, le premier est
le modèle Proie-Prédateur (2 Equations différentielles), le second étudie la
Modélisation des Epidémies (3 Equations différentielles).
Abstract :
We deal in this paper the solution of differential equations coupled with
the software MATLAB through two examples, the first is the prey-predator
model (two differential equations), and the second studies the modeling
epidemics (3 Differential Equations).
Mots-Clés :
MATLAB, Equation Différentielle, Modélisation, Proie-Prédateur,
Modélisation des Epidémies, ode45.
Introduction :
L’objet de cette étude est la résolution des équations différentielles
couplées à l’aide du logiciel MATLAB. Après modélisation et mise au point des
équations, intervient la programmation sous MATLAB. Ceci est effectué à
travers deux exemples, le premier est le Modèle Proie-Prédateur et le second
concerne la Modélisation des Epidémies. Les courbes obtenues sont en parfait
accord avec les résultats connus jusqu’à présent.
1
I-Modèle Proie-Prédateur
Nous montrerons dans ce paragraphe l’évolution au cours du temps de
deux espèces : Proie et Prédateur. Après simplification et modélisation le
problème est ramené à la résolution des deux équations différentielles couplées,
donc elles doivent être solutionnées simultanément.
On note X(t) et Y(t) les populations respectives des proies et prédateurs à
l’instant t. Soient X0 et Y0 deux populations de références respectivement pour
X(t) et Y(t). Afin de rendre le calcul agréable on va introduire deux nouvelles
variables x(t)= X(t)/ X0 et y(t)= Y(t)/ Y0 [1].
Mise en équation :
En l’absence des prédateurs, les proies ont un taux de croissance
constant a, traduit en équation il devient : x’/x=a, a est bien évidemment positif
[1].
De même pour les prédateurs, en l’absence des proies, ils ont un taux
d’extinction constant c, on peut écrire donc : y’/y=-c, comme pour le
paramètre a, c est aussi positif [1].
Mais lorsque les deux espèces occupent le même territoire, il faut prendre
en compte leurs rencontres, c’est alors que la population des proies (x) diminue
tandis que la population des prédateurs (y) va augmenter.
Le taux de décroissance des proies, dû aux prédateurs, est proportionnel
au nombre des prédateurs, ce qui donne : x’/x=a –by, b est aussi positif.
Le taux d’augmentation du nombre des prédateurs, dû aux proies, est
proportionnel au nombre des proies, on a alors : y’/y=-c+dx, comme pour les
autres paramètres d est aussi positif.
Pour récapituler, nous avons un système de deux équations différentielles. Ces
sont : x’/x=a –by et y’/y=-c+dx
Résolution avec MATLAB :
Il faut résoudre le système de deux équations différentielles couplées
suivantes:
x’=x(a-by)
(1)
y’=y(-c+dx)
}
2
Le système (1) sera solutionné à l’aide du solveur ode45 (Runge-KuttaMerson imbriqué d’ordres 4 et 5) du MATLAB [2].
Résultats :
Les constantes a, b, c et d sont strictement positifs. Le temps est exprimé
en année. Les courbes tracées sur les figures ci-dessous ont été obtenues pour les
valeurs numériques suivantes : a=0.2, b=0.005, c=0.5 et d=0.001 [3].
Nous exposons plusieurs résultats obtenus avec des conditions initiales
différentes.
Les figures 1 et 2 correspondent aux valeurs initiales x0 = 100 et y0 = 30.
Sur les figures 3 et 4, nous avons tracé les courbes correspondantes à x0 =
400 et y0 = 30.
Finalement, les figures 5 et 6 ont été obtenues avec x0 = 2000 et y0 = 200.
Ces figures montrent bien que les résultats obtenus, en utilisant le solveur
ode45 de MATLAB, sont cohérents malgré les conditions initiales différentes,
ils sont aussi conformes à ceux existants dans la littérature [1]. On peut
remarquer notamment la périodicité de la solution.
3
Figure 1
1500
X:Proie
Y:Predateur
1000
500
0
0
10
20
30
t
40
50
60
Figure 2
200
180
160
140
y
120
100
80
60
40
20
0
0
500
1000
x
1500
Figure 3
700
X:Proie
Y:Predateur
600
500
400
300
200
100
0
0
10
20
30
t
40
50
60
Figure 4
60
55
50
y
45
40
35
30
25
350
400
450
500
550
x
600
650
700
Figure 5
3000
X:Proie
Y:Predateur
2500
2000
1500
1000
500
0
0
10
20
30
t
40
50
60
Figure 6
400
350
300
y
250
200
150
100
50
0
0
500
1000
1500
x
2000
2500
3000
II-Modélisation des épidémies
Nous traitons dans cette partie la progression d’épidémie. D’abord la
modélisation puis la mise en équation et enfin la résolution à l’aide du logiciel
MATLAB.
Un groupe d’individus (Peu nombreux) infecté est introduit dans la
population (Nombre constant), on va s’intéresser à la progression du virus [4].
Pour cela, la population est séparé en 3 catégories : Saine (Effectif : S),
Contaminée (Effectif : C) et Guéri ou Décédée (Effectif : F).
Mise en équation :
On peut écrire : S’=-rSC (La diminution de l’effectif sain est
proportionnel au nombre d’individus sains et d’individus contaminés, r est une
constante positif).
Aussi : F’=aC (La progression de F est proportionnel à C, a est une
constante positif).
Par ailleurs, les individus sortant de S (S’) vont à C donc il correspond à
une augmentation de C, de plus les individus allant vers F (F’) font diminuer C
de la même quantité. Alors, on peut écrire:
C’ =|S’|-F’ ce qui donne C’=rSC-aC.
Résolution avec MATLAB :
En regroupant les équations S’, F’ et C’ nous obtenons un système de 3
équations différentielles couplées (Model de Kermack-McKendrick):
}
S’=-rSC
F’=aC
C’=rSC-aC
(2)
Comme pour le système (1), le système (2) sera résolu à l’aide du solveur
ode45 du MATLAB [2].
Les conditions initiales S0 = S(t=0), F0 = F(t=0) et C0 = C(t=0). Les
données numériques sont tirées d’un exemple vécu [4] :
N = 763: Effectif global
S0 =762: Effectif sain initiale
Or C0 =N- S0: Effectif contaminée initial. Bien évidemment F0 = 0.
10
r = 2,18.10-3 /(individu . jour), a = 0,404 /jour.
Résultats :
Nous avons tracé sur la figure 7 les courbes représentants les évolutions
des effectifs S, C et F en fonction du temps, ces résultats sont cohérents et en
parfait accord avec la littérature existante [5].
11
Figure 7
800
S
C
F
700
600
500
400
300
200
100
0
0
5
10
15
t
20
25
30
Conclusion
Nous avons présenté dans ce bref document des applications (Deux
exemples classiques) du solveur ode45 du MATLAB. Nous avons constaté la
cohérence des résultats obtenus ici et leur accord avec ceux existants. Il faut
souligner la facilité de programmation de ce solveur et la rapidité de calcul, c’est
presque instantané.
Références bibliographiques
[1] http://w3.bretagne.ens-cachan.fr/math/people/gregory.vial/files/cplts/volterra.pdf
[2] http://nte.mines-albi.fr/MATLAB/co/uc_EquaDiff.html
[3] http://dlst.ujf-grenoble.fr/data/cours/documents/MAT127-20100507175304.pdf
[4] http://www.ann.jussieu.fr/~postel/CoursMatlab/RappelsEDO.pdf
[5] http://www.math.uqam.ca/ism/cegeps/Arino.pdf
13