En partenariat avec
▶
Annale

Agro-Véto 2022 Maths MMIBCPST

Connectez-vous pour consulter le corrigé.

Accès complet à tous les corrigés avec un abonnement.
Essai gratuit 48h — accès immédiat, sans CB.

ÉcoleAgro-Véto
Année2022
ÉpreuveMaths MMI
OptionBCPST
Thème principalAnalyse, Algèbre, Informatique
ChapitresFonctions réelles usuelles, Équations différentielles linéaires simples, Fonctions réelles de deux variables, Bases de programmation Python, Équations différentielles scalaires autonomes d’ordre 1, Valeurs propres, vecteurs propres et diagonalisation, Méthodes numériques et statistiques
Commentaire

Lièvres et lynx : modèle logistique, système de Lotka-Volterra, équilibres et méthodes d'Euler et de Heun en Python.

MODÉLISATION MATHÉMATIQUE ET INFORMATIQUE

Durée : 3 heures 30 minutes

Sujet du concours Agro-Véto 2022 (concours A BCPST).

L’usage d’une calculatrice est autorisé pour cette épreuve.

Si, au cours de l’épreuve, un candidat repère ce qui lui semble être une erreur d’énoncé, il le signale sur sa copie et poursuit sa composition en expliquant les raisons des initiatives qu’il a été amené à prendre.

Problème

Le sujet se compose de 5 parties largement indépendantes et de 2 annexes. La partie 5 est consacrée à l’informatique. Les candidats pourront admettre le résultat d’une question pour répondre à une question postérieure à condition de le mentionner explicitement.

Dans le cadre de l’étude d’une espèce de lièvres, on souhaite modéliser la dynamique d’évolution temporelle de cette population. L’objectif du sujet est de comparer différentes modélisations ainsi que leur simulation.

1. Modélisation de la dynamique d’une population isolée

On note \(t\) le temps et \(x(t)\) l’effectif des lièvres en fonction du temps. On suppose, pour commencer, que la population est isolée dans un environnement aux ressources abondantes. On propose de modéliser la dynamique de population de lièvres par l’équation différentielle suivante : \[\frac{\mathrm{d}x}{\mathrm{d}t}=rx \tag{1}\] où \(r\) est une constante strictement positive représentant le taux de reproduction intrinsèque des lièvres.

    1. Résoudre l’équation différentielle (1) de condition initiale \(x(0)=x_0>0\).

    2. Dessiner à la main l’allure de la solution de (1).

    3. Que peut-on dire de l’évolution de la population de lièvres avec ce modèle ? L’équation différentielle (1) est-elle une modélisation raisonnable ?

On suppose à présent que les ressources du milieu sont limitées et on modélise la dynamique de population de lièvres par l’équation différentielle suivante : \[\frac{\mathrm{d}x}{\mathrm{d}t}=rx\left(1-\frac{x}{K}\right) \tag{2}\] où \(K\) est une constante strictement positive.

    1. Intuitivement, quelle allure a une solution \(x(\cdot)\) de (2) tant que l’effectif de lièvres \(x(t)\) reste petit ?

    2. En considérant (2), établir le tableau de signes de \(\frac{\mathrm{d}x}{\mathrm{d}t}\) en fonction de \(x\) pour \(x\geqslant0\).

    3. Soit \(x(\cdot)\) une solution de (2) avec \(x(0)=x_0>0\). Est-ce possible qu’il existe un \(t>0\) tel que \(x(t)=0\) ? La réponse sera justifiée en s’appuyant sur le tableau de signes obtenu à la question précédente.

    4. Soit \(x(\cdot)\) une solution de (2) avec \(x(0)=x_0>0\). On admettra que pour tout \(t\geqslant0\), \(x(t)>0\). On pose \(z(t)=\frac{1}{x(t)}\). Montrer que \(\frac{\mathrm{d}z}{\mathrm{d}t}=\frac{r}{K}-rz\).

    5. Résoudre l’équation différentielle \(\frac{\mathrm{d}z}{\mathrm{d}t}=\frac{r}{K}-rz\). On exprimera la solution en fonction de \(t\), \(r\), \(K\) et \(z_0=z(0)\).

    6. En déduire une expression de \(x(t)\) en fonction de \(t\), \(r\), \(K\) et \(x_0\).

    7. Quelle est la limite de \(x(t)\) quand \(t\) tend vers l’infini ?

    8. Dessiner à la main l’allure des solutions obtenues pour une condition initiale petite \(x_0>0\) d’une part et pour une condition initiale \(x_0>K\) d’autre part.

    9. En s’appuyant sur les réponses aux questions précédentes, décrire les différences entre les modèles (1) et (2) et donner une interprétation biologique de la constante \(K\).

2. Modèle proie-prédateur

Dans cette partie, on souhaite modéliser l’évolution conjointe de deux populations : la population de lièvres, qui constituent des proies et une population de lynx, qui sont des prédateurs des lièvres. On modélise l’évolution des effectifs \(x(t)\) des proies et \(y(t)\) des prédateurs par le système différentiel suivant : \[\left\{\begin{array}{rcl} \dfrac{\mathrm{d}x}{\mathrm{d}t} & = & rx-pxy\\[2ex] \dfrac{\mathrm{d}y}{\mathrm{d}t} & = & -my+qxy \end{array}\right. \tag{3}\] où \(r\), \(p\), \(m\) et \(q\) sont des constantes positives représentant respectivement le taux de reproduction intrinsèque des proies, le taux de mortalité des proies due aux prédateurs rencontrés, le taux de mortalité intrinsèque des prédateurs et le taux de reproduction des prédateurs en fonction des proies rencontrées et mangées.

    1. Que devient le système (3) s’il n’y a pas de lynx, c’est-à-dire \(y(t)=0\) pour tout \(t\geqslant0\) ? Comment évolue alors la population de lièvres ?

    2. Que devient le système (3) s’il n’y a pas de lièvres, c’est-à-dire si \(x(t)=0\) pour tout \(t\geqslant0\) ? Comment évolue alors la population de lynx ?

  1. On pose \(s=rt\), \(\bar{x}(s)=\frac{q}{r}x(t)\) et \(\bar{y}(s)=\frac{p}{r}y(t)\). Montrer que le système d’équations différentielles (3) peut se réécrire : \[\left\{\begin{array}{rcl} \dfrac{\mathrm{d}\bar{x}}{\mathrm{d}s} & = & \bar{x}-\bar{x}\bar{y}\\[2ex] \dfrac{\mathrm{d}\bar{y}}{\mathrm{d}s} & = & -a\bar{y}+\bar{x}\bar{y} \end{array}\right. \tag{4}\] où \(a\) est une constante à déterminer.

Dans toute la suite, pour simplifier les notations, on omettra les barres et on notera donc \(x\) pour et \(y\) pour . Ainsi le système (4) sera noté : \[\left\{\begin{array}{rcl} \dfrac{\mathrm{d}x}{\mathrm{d}s} & = & x-xy\\[2ex] \dfrac{\mathrm{d}y}{\mathrm{d}s} & = & -ay+xy \end{array}\right. \tag{5}\]

On appelle point d’équilibre d’un système d’équations de la forme \[\left\{\begin{array}{rcl} \dfrac{\mathrm{d}x}{\mathrm{d}s} & = & g_1(x,y)\\[2ex] \dfrac{\mathrm{d}y}{\mathrm{d}s} & = & g_2(x,y) \end{array}\right.\] un couple \((x,y)\in\mathbb{R}^2\) tel que les membres de droite des équations différentielles s’annulent simultanément pour ces valeurs. Ainsi, un point d’équilibre de (5) est une solution de \[\left\{\begin{array}{rcl} x-xy & = & 0\\ -ay+xy & = & 0 \end{array}\right.\]

    1. Déterminer les points d’équilibre du système (5).

    2. En terme de dynamique des populations, que représentent ces points d’équilibre ?

    3. Donner une interprétation biologique des points d’équilibre obtenus.

Pour \(c>0\) fixé, on définit \(f_c(u)=u-c\ln u\) pour \(u>0\).

    1. Montrer que pour tout \(u>0\), on a : \(f_c(u)\geqslant c(1-\ln c)\).

    2. Montrer que \(f_c(u)=c(1-\ln c)\) si et seulement si \(u=c\).

    3. Soit \(M\geqslant c(1-\ln c)\). Montrer qu’il existe \(b\) et \(B\) avec \(0<b\leqslant B\), tels que \(f_c(u)\leqslant M\) si et seulement si \(b\leqslant u\leqslant B\).

On définit maintenant, pour \(x>0\) et \(y>0\), \[V(x,y)=x-a\ln x+y-\ln y \tag{6}\]

  1. Dans toute cette question, on considère \((x(\cdot),y(\cdot))\) une solution de (5) avec des conditions initiales \(x(0)=x_0>0\) et \(y(0)=y_0>0\).

      1. Montrer que, pour tout \(s\geqslant0\), on a : \(f_a(x(s))\leqslant V(x(s),y(s))-1\) et \(f_1(y(s))\leqslant V(x(s),y(s))-a(1-\ln a)\).

      2. Montrer que \(V(x(s),y(s))\) reste constante pour tout \(s\geqslant0\).

      3. En déduire qu’il existe \(b_x\), \(B_x\), \(b_y\) et \(B_y\) avec \(0<b_x\leqslant B_x\) et \(0<b_y\leqslant B_y\) tels que, pour tout \(s\geqslant0\), on a : \(b_x\leqslant x(s)\leqslant B_x\) et \(b_y\leqslant y(s)\leqslant B_y\).

    1. Montrer que \(V(x,y)\geqslant1+a(1-\ln a)\), pour tous \(x\) et \(y\) dans \(\mathbb{R}_+^\ast\) et que, de plus, l’équation \(V(x,y)=1+a(1-\ln a)\) admet une unique solution \((x^\ast,y^\ast)\) que l’on explicitera.

    2. En s’appuyant sur les questions précédentes, répondre en justifiant aux questions suivantes :

      1. Les populations de proies et de prédateurs peuvent-elles s’éteindre ? Et peuvent-elles devenir arbitrairement grandes ?

      2. Les populations de proies et de prédateurs peuvent-elles s’arrêter d’évoluer ?

      3. Quels comportements peut-on envisager pour les populations de proies et de prédateurs ?

3. Modèle proie-prédateur avec environnement limité

Dans cette partie, on souhaite associer les modèles (2) et (4) en supposant à la fois que l’évolution des lièvres est limitée par leur environnement et que cette population est en interaction avec une population de lynx : \[\left\{\begin{array}{rcl} \dfrac{\mathrm{d}x}{\mathrm{d}s} & = & x\left(1-\dfrac{x}{K}\right)-xy\\[2ex] \dfrac{\mathrm{d}y}{\mathrm{d}s} & = & -ay+xy \end{array}\right. \tag{7}\] où \(a\) et \(K\) sont des constantes strictement positives et différentes.

  1. Que se passe-t-il lorsque \(K\) est très grand ? Et quand \(y=0\) ?

  2. Déterminer les points d’équilibre du système (7). Donner une interprétation physique de chaque point d’équilibre trouvé.

Pour un système d’équations différentielles de la forme \[\left\{\begin{array}{rcl} \dfrac{\mathrm{d}x}{\mathrm{d}s} & = & g_1(x,y)\\[2ex] \dfrac{\mathrm{d}y}{\mathrm{d}s} & = & g_2(x,y) \end{array}\right.\] on construit une matrice \(\mathcal{J}(x,y)\), appelée matrice jacobienne, définie par \[\mathcal{J}(x,y)=\begin{pmatrix} \dfrac{\partial g_1}{\partial x}(x,y) & \dfrac{\partial g_1}{\partial y}(x,y)\\[2ex] \dfrac{\partial g_2}{\partial x}(x,y) & \dfrac{\partial g_2}{\partial y}(x,y) \end{pmatrix}\]

    1. Calculer la matrice jacobienne associée au système (7).

    2. Évaluer la matrice jacobienne aux points d’équilibre de la question 9.

    3. On considère les matrices suivantes : \[\mathcal{J}_1=\begin{pmatrix}1 & 0\\ 0 & -a\end{pmatrix},\qquad \mathcal{J}_2=\begin{pmatrix}-1 & -K\\ 0 & K-a\end{pmatrix}\qquad\text{et}\qquad \mathcal{J}_3=\begin{pmatrix}-\dfrac{a}{K} & -a\\[2ex] 1-\dfrac{a}{K} & 0\end{pmatrix}\] Calculer les valeurs propres de chaque matrice en fonction de \(K\) et \(a\). On pourra éventuellement disjoindre des cas si c’est nécessaire.

    4. On dispose à l’annexe 1 page 8 de l’allure des solutions d’un système de deux équations différentielles autour d’un point d’équilibre en fonction des valeurs propres de la matrice jacobienne correspondante. Pour chaque point d’équilibre du système (7), identifier la situation correspondante.

    5. Interpréter ces résultats en terme de dynamique des populations. En particulier, on donnera un critère pour que la population de prédateurs se maintienne.

4. Résolution numérique du système différentiel

Dans cette partie, on met en place une résolution numérique du système (4) appelée la méthode d’Euler. On se fixe un petit intervalle de temps \(h>0\). À partir d’une condition initiale \((x_0,y_0)\in\mathbb{R}_+^\ast\times\mathbb{R}_+^\ast\), on construit une suite de points de \(\mathbb{R}^2\), notée \((x_k,y_k)_{k\in\mathbb{N}}\), définie par : \[\left\{\begin{array}{rcl} x_{k+1} & = & x_k+h(x_k-x_ky_k)\\ y_{k+1} & = & y_k+h(-ay_k+x_ky_k) \end{array}\right. \tag{8}\] telle que \((x_k,y_k)\) est une approximation d’une solution de (4) au temps \(t_k=hk\).

On pose \(v_k=V(x_k,y_k)\), où la fonction \(V\) est définie par (6).

  1. Exprimer \(v_{k+1}-v_k\) en fonction de \(h\), \(a\), \(K\), \(x_k\) et \(y_k\).

    1. Montrer que \(v_{k+1}-v_k\geqslant0\).

    2. Montrer que : \(v_{k+1}-v_k=0\) si et seulement si la suite \((x_k,y_k)\) est constante.

  2. Interpréter au vu de la partie 2. La méthode d’Euler est-elle ici satisfaisante ?

5. Étude informatique

Cette partie consiste à mettre en place des programmes informatiques pour simuler les différents modèles considérés dans le sujet. Bien que cette partie soit largement indépendante des parties précédentes, il est vivement conseillé de les avoir lues. Les programmes sont à rédiger en langage Python. L’annexe 2 page 9 comporte des rappels sur les commandes utiles. Avant chaque algorithme, on écrira brièvement le raisonnement suivi et la formule qu’il est censé calculer.

  1. On considère le code :

    r = 2
    
    def sol(t):
        return m.exp(r*t)
    
    def liste(T, h):
        t = 0
        L = [0]
        while t+h <= T:
            t = t+h
            L.append(t)
        return L
    
    def mystere():
        Lt = liste(20, 10**-2)
        n = len(Lt)
        Ls = []
        for k in range(0, n):
            Ls.append(sol(Lt[k]))
        plt.plot(Lt, Ls)
        plt.show()
    1. La fonction exp est présente dans le module math. Indiquer comment charger ce module pour que l’utilisation de exp soit correcte dans sol.

    2. Que renvoient liste(1, 0.2) et liste(1, 0.3) ? Indiquer, de façon générale, ce que renvoie liste(T, h).

    3. Que contient Ls dans la fonction mystere ? Que fait cette fonction ?

    1. On considère L = [[3, 1], [7], [1, 9, 8, 0]] :

      1. Que vaut L[1] ?

      2. Que vaut L[0][1] ?

      3. Que vaut len(L) ?

      4. Que vaut L après avoir exécuté L.append(9.75) ?

    2. Écrire une fonction d’entête lapin(x, y) qui renvoie \(x-xy\) et une fonction d’entête lynx(x, y) qui renvoie \(-ay+xy\). La constante \(a\) est supposée être préalablement définie dans une variable globale.

    3. On ajoute au code précédent la fonction suivante (où les arguments x0, y0, T et h définissent respectivement \(x_0\), \(y_0\), l’intervalle d’étude \([0,T]\) et le pas \(h>0\) de la méthode d’Euler définie à la partie 4) :

      def resol_1(x0, y0, T, h):
          x = x0; y = y0
          t = 0
          Lx = [x]
          Ly = [y]
          Lt = [t]
          while t+h <= T:
          _____ ligne(s) à compléter _____
          return [Lt, Lx, Ly]

      Compléter les lignes manquantes dans la boucle, afin que les listes Lx et Ly contiennent respectivement les \(x_k\) et \(y_k\) définis par l’équation (8) et que la liste Lt contienne les \(t_k\).

    4. On ajoute au code précédent :

      x0 = 1; y0 = 0.5; T = 20; h = 10**-2
      
      def trace_pop_1():
          L = resol_1(x0, y0, T, h)
          plt.plot(L[0], L[1])
          plt.plot(L[0], L[2])
          plt.show()

      Expliquer à quoi correspond chaque ligne de la fonction trace_pop_1, en fonction des \(x_k\) et \(y_k\) de la méthode d’Euler.

    5. L’exécution de trace_pop_1 donne les courbes présentées figure 1. Identifier (avec explications), en lien avec la modélisation effectuée, chacune des deux courbes.

    6. On ajoute au code précédent :

      def fonctionV(x, y):
          return x-a*m.log(x)+y-m.log(y)

      Écrire une fonction d’entête trace_V_1() qui effectue la représentation graphique des valeurs \(v_k\) en ordonnées, en fonction des valeurs \(t_k\) en abscisses.

  2. On cherche dorénavant à effectuer une résolution numérique avec une autre méthode, appelée méthode de Heun, où la relation de récurrence définissant les \(x_k\) et \(y_k\) est : \[\left\{\begin{array}{rcl} u_k & = & x_k+h(x_k-x_ky_k)\\ w_k & = & y_k+h(-ay_k-x_ky_k)\\ x_{k+1} & = & x_k+\frac{h}{2}(x_k-x_ky_k+u_k-u_kw_k)\\[1ex] y_{k+1} & = & y_k+\frac{h}{2}(-ay_k+x_ky_k-aw_k+u_kw_k) \end{array}\right. \tag{9}\]

    1. Écrire une fonction d’entête resol_2(x0, y0, T, h), analogue de resol_1 utilisant la méthode de Heun.

    2. Que suffit-il de modifier dans la fonction trace_V_1 pour lui faire utiliser la méthode de Heun ? On appelle trace_V_2 la fonction ainsi modifiée.

    3. L’exécution de trace_V_1 et trace_V_2 donne les courbes présentées en figure 2 : justifier quelle méthode semble la plus satisfaisante.

  3. On définit, de manière analogue à la fonction trace_pop_1, la fonction trace_pop_2 associée à la méthode de Heun. L’exécution de trace_pop_2 donne les courbes présentées figure 3. Comparer les figures 1 et 3. Quel problème numérique est soulevé par la méthode d’Euler ? Que permet d’améliorer la méthode de Heun ?

  4. Interpréter l’évolution des dynamiques de population des lièvres et des lynx obtenues.

Figure 1 – Tracé donné par trace_pop_1

Figure 2 – Tracés donnés par trace_V_1 (à gauche) et par trace_V_2 (à droite)

Figure 3 – Tracé donné par trace_pop_2

Annexe 1 : Allures des solutions d’un système

On considère un système différentiel du type \(\frac{\mathrm{d}z}{\mathrm{d}t}=Az\) où \(z:\mathbb{R}\to\mathbb{R}^2\) et \(A\) est une matrice inversible constante \(2\times2\) à coefficients réels. L’allure des solutions du système, qui dépend de la nature des valeurs propres de la matrice \(A\), est donnée ci-dessous autour d’un point d’équilibre, dans différents cas. On notera \(\Re(\lambda)\) la partie réelle d’un nombre complexe \(\lambda\) et \(E_\lambda\) le sous-espace propre de \(A\) associé à la valeur propre \(\lambda\).

(a) \(\lambda_1<\lambda_2<0\) (noeud stable)

(b) \(\lambda_1>\lambda_2>0\) (nœud instable)

(c) \(\lambda_1<0<\lambda_2\) (point selle)

Cas 1 : deux valeurs propres réelles distinctes \(\lambda_1\) et \(\lambda_2\).

(a) \(\Re(\lambda_1)=\Re(\lambda_2)<0\) (foyer stable)

(b) \(\Re(\lambda_1)=\Re(\lambda_2)>0\) (foyer instable)

Cas 2 : Deux valeurs propres complexes non réelles \(\lambda_1\) et \(\lambda_2\).

(a) \(\lambda<0\) et \(\dim E_\lambda=2\) (puits)

(b) \(\lambda>0\) et \(\dim E_\lambda=2\) (source)

(c) \(\lambda<0\) et \(\dim E_\lambda=1\)
(nœud dégénéré stable)

(d) \(\lambda>0\) et \(\dim E_\lambda=1\)
(nœud dégénéré instable)

Cas 3 : Une valeur propre réelle double \(\lambda\).

Annexe 2 : Rappels de syntaxes Python pour la partie 5

On suppose que le module matplotlib.pyplot, qui permet de tracer des graphiques, est importé avec l’alias plt ; que le module math, qui permet d’utiliser des fonctions mathématiques, est importé avec l’alias m. Les variables Lx et Ly sont deux listes de réels, de même longueur ; la variable x est un réel.

  • plt.plot(Lx, Ly) place les points dont les abscisses sont contenues dans Lx et les ordonnées dans Ly, et les relie entre eux par des segments. Si cette fonction n’est pas suivie de plt.show(), le graphique n’est pas affiché.

  • plt.show() affiche le(s) tracé(s) précédemment créé(s) par plt.plot.

  • m.exp(x) renvoie \(\exp(x)\).

  • m.log(x) renvoie \(\ln(x)\).

FIN DU SUJET

Tu veux le corrigé détaillé ?

Le corrigé pas à pas, les aides et les explications sont disponibles dans la plateforme.

error: Ce contenu est protégé !