Nous nous intéressons ici à un modèle d'interaction proies-prédateurs, proposé par Volterra
après la première guerre mondiale. Il s'agissait alors d'expliciter
la dynamique des populations de sardines et de requins en mer
Adriatique ; expliquer notamment pourquoi
les quantités de sardines pêchées après l'interruption due à la guerre
n'étaient
plus aussi importantes que précédemment et pourquoi à la reprise de
la pêche la proportion observée de requins avait augmenté.
Texte d'après un article de Vincent Calvez et Xavier Lafon (ENS), version ps ou pdf.
Notre modèle prend en compte deux types d'espèces, les poissons pêchés à valeur commerciale, les sardines (N) et leurs prédateurs, les requins (P). On considère que les sardines suivent intrinsèquement une dynamique de croissance malthusienne (nombre de naissances proportionnel à la population, ce qui donnerait en l'absence d'autres contraintes une croissance exponentielle de la population), alors que les requins, du fait de la concurrence entre les individus, ont eux tendance à suivre une dynamique de décroissance exponentielle (taux de mortalité supérieur au taux de natalité).
Quant aux interactions entre les deux espèces, on les considère néfastes pour les sardines, et profitables aux requins... Ceci nous mène à modéliser l'évolution de nos deux populations par le système différentiel :
Où a, b, c et d sont des constantes, que l'on détermine par l'observation biologique. En réalité, on peut supposer b = d = 1, quitte à renormaliser notre système.
En effet, par le changement de fonctions inconnues u = d N et v = b P, on
obtient le système :
C'est l'évolution temporelle de ce système qui est illustrée ci-dessous. Les
valeurs initiales sont ici
u0 = v0 = 2. On pourra observer l'effet de la
pêche en mer Adriatique (on diminue le paramètre a et on augmente c).
Applet et programmes
Code source de l'applet.
Disponible également, le programme lotkaRK, version matlab ou scilab, qui implémente la même méthode.
Description du schéma numérique
La méthode de résolution numérique utilisée ici est celle de Runge Kutta explicite d'ordre 4 (RK4). Pour calculer des valeurs approchées
des fonctions
u et v au temps t + dt à partir de valeurs approchées
au
temps t, on procède de la façon suivante :
On pose x1 = un et y1 = vn.
D'abord, on calcule des valeurs approchées au temps t + dt/2 par la méthode
d'Euler explicite :
Puis, on utilise ces premières valeurs pour mieux approcher les dérivées au
temps t+ dt / 2, et obtenir des valeurs approchées en t + dt/2 plus
précises :
Ces valeurs servent alors à calculer des valeurs approchées des dérivées en
t + dt / 2, et d'obtenir de premières estimations de un+1 et vn+1 :
Enfin, ces différentes valeurs approchées permettent d'obtenir la valeur
approchée recherchée en t + dt :
N.B.
Dans ce cas précis (modèle de Lotka-Volterra), la méthode d'Euler est beaucoup moins précise à pas de temps égal. Notamment, les erreurs sont telles que la trajectoire obtenue dans le plan de phase n'est pas fermée. Voir l'applet correspondante.
Bibliographie
On peut trouver une étude assez complète de tous ces modèles, et de bien d'autres dans :
J.D Murray, Mathematical biology (Springer 1993).