![](//s1.studylibfr.com/store/data-gzf/928987b39e6fd4646473f3c979d33968/1/003280283.htmlex.zip/bg1.jpg)
TP D’INFORMATIQUE PTSI : INGENIERIE NUMERIQUE ET SIMULATION :
TP 3 : RESOLUTION NUMERIQUE D’EQUATIONS DIFFERENTIELLES
I) Système d’équations différentielles d’ordre 1 : Système proies – prédateurs
Nous souhaitons étudier l’évolution dans le temps de deux populations x(t) et y(t), où :
x représente le nombre de proies, par exemple des lapins
y représente le nombre de prédateurs, par exemple des renards.
Un modèle simple permet de décrire les relations entre proies et prédateurs.
En l’absence de prédateurs, l’évolution propre des proies est régie par l’équation : x’(t) = r . x(t), r
étant le taux d’accroissement intrinsèque des proies, sans prédation.
En présence de prédateurs, la population subit un prélèvement proportionnel au produit des deux
populations :
x’(t) = r . x(t) – p . x(t) . y(t)
En l’absence de proies, la population des prédateurs a tendance à disparaitre : y’(t) = - d . y(t).
En présence de proies, on ajoute un terme d’accroissement proportionnel au produit des deux
populations :
y’(t) = - d . y(t) + q . x(t) . y(t)
Lorsque les deux populations sont présentes sur un même territoire, leur évolution conjointe est régie
par le système :
00
00 y )y(t
x )x(t
y(t) . x(t). q y(t) . d - (t)y'
y(t) . x(t). p - x(t).r (t)x'
On pourra tester avec r = 1.1 ; p = 0.01 ; d = 1.2 ; q = 0.005 ; x0 = 50 ; y0 = 50.
Le principe de la méthode d’Euler vue en cours pour résoudre une équation différentielle d’ordre 1 reste
tout à fait valable pour résoudre un système d’équations différentielles d’ordre 1. La seule différence sera
la nécessité de décrire le système d’équations par deux fonctions à trois variables F(t, x, y) et G(t, x, y)
telles que :
x’(t) = F(t, x(t), y(t))
y’(t) = G(t, x(t), y(t)).
Dans notre exemple, on aura ainsi : F(t, x, y) = x (1.1 – 0.01 y)
G(t, x, y) = y (0.005 x – 1.2)
Question 1 : Ecrire une fonction « Euler2_liste(F, G, t0, tf, x0, y0, n) » qui traduit en Python le problème
précédent (t0 et tf sont les bornes définissant l’intervalle d’étude, et n est le nombre d’intervalles
découpant [t0,tf]). Cette fonction retournera une liste contenant les différentes valeurs pour le temps, une
liste contenant les différentes valeurs du nombre de proies, et une liste contenant les différentes valeurs
du nombre de prédateurs.
Appeler cette fonction avec les valeurs numériques fournies, et avec t0 = 0, tf = 20, et n = 1000.
Tracer l’évolution des populations de proies et de prédateurs au cours du temps.
Question 2 : Ecrire de même une fonction « Euler2_tableau(F, G, t0, tf, x0, y0, n) » qui utilise des
tableaux Numpy. Appeler cette fonction avec les valeurs numériques fournies, et avec t0 = 0, tf = 20, et n
= 1000. Tracer l’évolution des populations de proies et de prédateurs au cours du temps.