Projet Scilab n.2 : Système proies-prédateurs

Transcription

Projet Scilab n.2 : Système proies-prédateurs
Université Pierre et Marie Curie
LM 383 - Équations différentielles, méthodes de résolution.
Année universitaire 2007-2008
T. C APRICELLI , D. YAKOUBI
Projet Scilab n.2 : Système proies-prédateurs
Cadre de travail :
Chaque binôme doit envoyer son code ainsi que son rapport à son chargé de TP (à vérifier auprès de
Mme PAUTRAT en cas de doute) avant le vendredi 16 mai à midi. Mettez comme objet du mail “Projet
Scilab lm383”, et dans le corps du mail vos noms, prénoms et l’intitulé du projet. Les soutenances
seront faites le vendredi 16 mai après midi.
• TP2 (vendredi à l’Atrium) :
[email protected]
• TP1 et TP3 (vendredi au bâtiment pédagogie) :
[email protected]
Le projet doit se présenter sous le format suivant :
Dans le fichier NOM1_NOM2.zip (en utilisant vos noms), vous mettrez le rapport au format Word
(.doc) ou Acrobat (.pdf), et un dossier code contenant les fonctions et un script projet.sci.
L’exécution du script projet.sci doit lancer la totalité des algorithmes que vous avez codés. Aucun
autre script ne sera lancé, et nous ne chercherons pas à corriger d’éventuelles erreurs de programmation, soyez très vigilants sur vos tests.
Dans le rapport, on trouvera les figures commentées, remarques et explications associées à chaque exercice.
Le contenu de ce rapport est volontairement assez libre : à vous de juger de la pertinence de vos
remarques, commentaires et explications....
La qualité du rapport (figures, commentaires) ainsi que celle du code (utilisation de fonctions scilab,
gestion efficace des variables) seront au cœur de l’évaluation : mieux vaut faire peu mais bien et il est
possible d’avoir une bonne note sans tout faire.
Organisation de l’énoncé :
L’énoncé est long car vous y trouverez tous les détails nécessaires pour appréhender les question qui
se trouvent à la fin du document. Certaines questions sont très faciles si on a bien travaillé pendant les
séances de TP, c’est bien entendu le but recherché !
Conseils :
On pourra écrire une première version des algorithmes permettant de répondre aux question et de rédiger le rapport, puis, dans un second temps, optimiser la programmation.
Il semble judicieux d’arriver au prochain TP avec un premier essai des algorithmes, et en ayant compris
les questions pendant les vacances...
1
1. Introduction.
Considérons un système biologique composé de deux espèces. La première sera considérée comme
les proies de la seconde. Historiquement, Volterra modélisait le système requins-sardines autour de
Triestre.
Notons x(t) et y(t) les tailles respectives des populations de proies et de prédateurs au cours du temps
t ≥ 0. Ces variables seront supposées continues (il est aussi possible d’assimiler ces quantités à des
proportions d’individus relativement à des populations de références).
Dans ce qui suit, nous supposerons que les populations respectives des deux espèces sont suffisamment
grandes pour que l’on puisse assimiler la variation δx(t) à x0 (t) (de même pour y).
En l’absence de prédateurs, les proies ont un taux de croissance constant de a (en supposant une nourriture suffisamment abondante et l’absence de compétition)
x0 (t)
= a, avec a > 0
x(t)
(1)
De même, en l’absence de proies, la population de prédateurs décroît régulièrement
y 0 (t)
= −c, avec c > 0
y(t)
(2)
Dès que les deux espèces sont mises en interaction, les prédateurs prélèvent une proportion relative à
leur population dans l’espèce des proies
x0 (t)
= a − by(t), avec a > 0, b > 0
x(t)
(3)
et la quantité de proies favorise la croissance de la population des prédateurs
y 0 (t)
= −c + dx(t), avec c > 0, d > 0
y(t)
Le système différentiel associé à cette modélisation devient
½ 0
x = x · (a − by)
avec (x(0), y(0)) = (x0 , y0 ), x0 , y0 > 0
y 0 = y · (−c + dx)
(4)
(5)
et se nomme système de Volterra-Lokta.
2. Rappel.
Soit le problème de Cauchy
½
u0 (t) = f (u(t)), t > 0
u(0) = u0
(6)
où l’on suppose f est lipschitzienne.
Afin de construire une solution numérique sur l’intervalle [0, T ], on construit la subdivision
0 = t0 < t1 < . . . < TN = T
de pas hn = tn+1 − tn .
2
(7)
Notre but est de construire une suite (un )0≤n≤N telle que un soit une approximation numérique de
u(tn).
L’ensemble des méthodes utilisées ici partent de la formule suivante :
Z tn+1
Z tn+1
0
u(tn+1 ) = u(tn ) +
u (t) dt = u(tn ) +
f (u(t)) dt
(8)
Il suffit alors de définir une méthode d’intégration numérique
Z tn+1
f (u(t)) ∼
= I(f ◦ u, tn , tn+1 )
(9)
tn
tn
tn
– Par la méthode des rectangles à gauche : I(f ◦ u, tn , tn+1 ) = hn f (u(tn )), nous obtenons la méthode
de Euler explicite :
un+1 = un + hn f (un )
– Par la méthode des rectangles à droite : I(f ◦u, tn , tn+1 ) = hn f (u(tn+1 )), nous obtenons la méthode
de Euler implicite :
un+1 = un + hn f (un+1 )
¡
¡
¢
¢
– Par la méthode de Simpson : I(f ◦ u, tn , tn+1 ) = h6n f (u(tn )) + 4f (u tn + h2n ) + f (u(tn+1 )) ,
nous obtenons la méthode de Runge-Kutta d’ordre 4 :
un+1 = un +
avec u1 = un , u2 = un +
hn
2 f (u1 ),
hn
(f (u1 ) + 2f (u2 ) + 2f (u3 ) + f (u4 ))
6
u3 = un +
hn
2 f (u2 ),
u4 = un + hn f (u3 ).
2. Étude numérique du système de Volterra. Considérons les paramètres
a = 3, b = 1, c = 2, d = 1,
et la condition initiale
x0 = 1, y0 = 2.
– Calculer sur l’intervalle [0 : T ] la solution numérique associée aux méthodes de Euler explicite, Euler
implicite (requiert un solveur de type Newton-Raphson), Runge-Kutta pour un pas de discrétisation
constant h = 0.05.
– Représenter distinctement les trois courbes (x(t), y(t)) pour t ∈ [0, T ] associées aux trois précédentes solutions. Qu’observez vous ?
– Reprendre les deux précédentes questions en utilisant la fonction ode de scilab.
3