# Commençons par importer les outils dont nous aurons besoin.
from functools import partial
import numpy as np
import matplotlib.pyplot as plt
import scipy.integrate
%matplotlib inline
plt.rc('text', usetex=True)
Il existe toute une classe de modèles permettant de rendre compte de l'évolution d'un certain nombre de grandeurs dans le temps et qui sont assez simple à écrire et à simuler : les systèmes d'équations différentielles du premier ordre (ODE).
Dans le cas d'un modèle ODE du premier ordre autonome, on dispose de plusieurs outils pour représenter le comportement du modèle. Ils sont de plus en plus synthétiques (mais aussi de plus en plus couteux à établir). Dans l'ordre :
1) Résoudre analytiquement le système.
2) Simuler les trajectoire du système (S1) en utilisant sa solution analytique pour les paramètres et conditions initiales suivants :
a) $N_0 = 100$, $r = 0.5$
b) $N_0 = 100$, $r = -0.5$
(Indice : utiliser np.linspace
et plt.plot
).
1) Écrire une fonction euler_explicite(y0, r, dt, T)
qui simule la trajectoire du système (S1) en utilisant l'aire du rectangle rouge.
2) Tracer la trajectoire pour les paramètres suivants :
a) $N_0 = 100$, $r = 0.5$, $T = 10$, $dt = 1$
b) $N_0 = 100$, $r = -0.5$, $T = 10$, $dt = 1$
c) $N_0 = 100$, $r = -0.5$, $T = 50$, $dt = 5$
Comparer avec la solution analytique.
3) Comparer l'écart entre les trajectoires estimées et la solution analytique pour $dt\in [0.001, 0.01,0.1,1,2]$.
1) Ecrire une fonction euler_implicite(y0, r, dt, T)
qui simule la trajectoire du système (S1)
en utilisant l'aire du rectangle vert.
2) Tracez la trajectoire pour les paramètres suivants :
a) y0 = 100, r = 0.5, T = 10, dt = 1
b) y0 = 100, r = -0.5, T = 10, dt = 1
c) y0 = 100, r = -0.5, T = 50, dt = 5
3) Comparer les résultats avec la méthode précédente.
1) Écrire la nouvelle forme du modèle, où $r$ représente le taux de naissance per capita et $K$ la capacité biologique du système (i.e. le nombre maximum d'individu que le système supporte à l'équilibre). Calculer analytiquement ses équilibres et déduire leur stabilité.
2) Simuler une trajectoire de ce modèle et représenter là sous forme de graphe pour $r=1$ et $K=10$. (Indice : utiliser partial
et scipy.integrate.odeint
).
3) Tester pour plusieurs conditions initiales.
On ajoute une seconde espèce (sous forme d'une seconde dimension).
Étudier et représenter la stabilité des systèmes dynamiques linéaires suivants :
\begin{equation} A = \left [ \begin{array}{cc} 1 & 0 \\ 0 & 1 \\ \end{array} \right ] ,\ \ B = \left [ \begin{array}{cc} -1 & 1 \\ 1 & -1 \\ \end{array} \right ] ,\ \ C = \left [ \begin{array}{cc} -1 & 0 \\ 0 & 1 \\ \end{array} \right ], \ \ D = \left [ \begin{array}{cc} 0 & -1 \\ 1 & 0 \\ \end{array} \right ] ,\ \ E = \left [ \begin{array}{cc} -1 & -1 \\ 1 & 0 \\ \end{array} \right ] ,\ \ F = \left [ \begin{array}{cc} 1 & -1 \\ 1 & 0 \\ \end{array} \right ] \end{equation}1) Quelle est la nouvelle forme du système notée (S3) ?
2) Tracer les trajectoires comme des séries temporelles du modèle de LV pour les trois jeux de paramètes et les deux conditions initiales:
Jeux de paramètes :
$r_1=1$, $r_2=3$, $a_{1\to1}=1$, $a_{2\to1}=1.2$, $a_{1\to2}=1.2$ et $a_{2\to2}=1.5$
$r_1=1$, $r_2=3$, $a_{1\to1}=1$, $a_{2\to1}=1.2$, $a_{1\to2}=1.5$ et $a_{2\to2}=1$
$r_1=1$, $r_2=3$, $a_{1\to1}=1.2$, $a_{2\to1}=1$, $a_{1\to2}=1$ et $a_{2\to2}=1.5$
Conditions initiales : $(N_1(0)=0.3,N_2(0)=0.5)$ et $(N_1(0)=0.7,N_2(0)=0.2)$.
3) Tracer ces même trajectoires comme des courbes paramétrées dans l'espace des phases du modèle de LV. Décrire l'évolution dans chacun des cas.
1) Trouver les isoclines zéro et les équilibres du modèle de Lotka-Volterra competitif (S3).
2) Tracer le diagramme de phase pour les trois jeux de paramètres utilisés exercice 7. (Indice: utiliser les fonctions plt.plot
, plt.scatter
et plt.streamplot
).
3) Etudier numériquement la stabilité des équilibres. En déduire les conditions de coexistance de deux espèces.
Soit le modèle proie (N) - prédateur (P) suivant : $$(S4) = \begin{cases} \displaystyle{\frac{dN}{dt} }= bN - aNP \\ \\ \displaystyle{\frac{dP}{dt} }= cNP - dP \\ \end{cases}$$
1) Déterminer analytiquement les équilibres et leur stabilité.
2) Simuler ce modèle, tracer ses trajectoires comme des séries temporelles, puis comme des courbes paramétrées dans l'espace d'état, pour les paramètres et conditions initiales suivantes : $(a=0.01, b=0.02, c=0.01, d=0.02)$ et $(a=0.01, b=0.01, c=0.01, d=0.06)$ et $(N_0=3.6,P_0=2.1)$, $(N_0=1.8,P_0=4)$.
3) Ajouter les équilibres, les isoclines et le flot à l'espace d'état pour former le diagramme de phase.
Soit le modèle suivant :
\begin{equation} (S5) = \begin{cases} \frac{dN}{dt} = bN(1-\frac{N}{K}) - aNP \\ \frac{dP}{dt} = cNP - dP \\ \end{cases} \end{equation}1) Simuler quelques trajectoires. Quelles sont les différences avec le modèle (S4)?
2) Dessiner le diagramme de phase. Où sont les isoclines-zéro ? Où sont les équilibres ? Quelle est leur nature ?
3) Faire varier $c$. Faire un diagramme de bifurcation.