#!/usr/bin/env python # -*- coding: utf-8 -*- """ Modèle Proies/Prédacteurs de Lotka-Volterra avec retard Tracé des courbes de dynamique des populations proies/prédateurs """ __author__ = "Dominique Lefebvre" __copyright__ = "Copyright 2020 - TangenteX.com" __version__ = "1.0" __date__ = "8 octobre 2020" __email__ = "dominique.lefebvre@tangentex.com" from scipy import array, linspace from ddeint import ddeint from matplotlib.pylab import figure,plot,grid,legend,xlabel,ylabel,title # définition des paramètres du modèle a = 0.5 # taux de croissance intrinsèque proies b = 0.5 # taux de prédation c = 0.5 # taux de décroissance prédateurs sans proies d = 0.5 # taux de variation population prédateurs tau = 0.2 x0 = 1 # population initiale des proies y0 = 2 # population initiale des prédateurs # définition du système différentiel avec retard def LotkaVolterraRetard(Y,t,tau,a,b,c,d): x,y = Y(t) xd,yd = Y(t - tau) return array([x*(a - b*yd), -y*(c - d*xd)]) # définition de la fontion de retard (pour t < 0) Passe = g = lambda t : array([x0,y0]) # définition des variables t0 = 0 tmax= 50 nbpoints = 10000 t = linspace(t0, tmax,nbpoints) # calcul de la dynamique de la population Y = ddeint(LotkaVolterraRetard,Passe,t,fargs=(tau,a,b,c,d)) proies, predateurs = Y.T # tracé de la dynamique de la population fig1 = figure(1,figsize =[10,6]) plot(t, proies,'b-',label= u'Proies') plot(t, predateurs,'g-',label= u'Prédateurs') grid() legend() xlabel('Temps') ylabel('Population') title(u'Modèle de Lotka-Volterra') # tracé du portait de phase fig2 = figure(2,figsize =[10,6]) plot(proies, predateurs,'r-') grid() legend() xlabel('Proies') ylabel(u'Prédateur') title('Lotka-Volterra - Portait de phase')