En partenariat avec
▶
Annale

Agro-Véto 2024 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ée2024
ÉpreuveMaths MMI
OptionBCPST
Thème principalAnalyse, Probabilités, Informatique
ChapitresSuites réelles usuelles, Fonctions réelles usuelles, Équations différentielles linéaires simples, Suites réelles : convergence et comparaison, Variable aléatoire sur un univers fini, Équations différentielles scalaires autonomes d’ordre 1, Concepts de base des probabilités et des variables aléatoires, Variables aléatoires réelles discrètes, Couples de variables aléatoires discrètes, Méthodes numériques et statistiques
Commentaire

Dynamique de populations : suites récurrentes et effet Allee, puis processus de Galton-Watson et simulation en Python.

MODÉLISATION MATHÉMATIQUE ET INFORMATIQUE

Durée : 3 heures

Sujet du concours Agro-Véto 2024 (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.

Dans ce sujet, on propose d’étudier différents modèles d’évolution de population, et d’étudier les conditions de son extinction. Il est composé de deux problèmes indépendants.

Le Problème A propose d’étudier des modèles déterministes qui mettent en valeur une condition d’extinction.

Le Problème B propose d’étudier le modèle probabiliste de Galton-Watson. Il est composé de deux parties ; la deuxième est dédiée à l’étude algorithmique du modèle.

Les candidats peuvent admettre le résultat d’une question ou d’une sous-question pour passer aux questions suivantes, à condition de le mentionner explicitement.

Une annexe dans laquelle certaines commandes Python sont rappelées est jointe à la fin du sujet. Pour les questions d’informatique, on considérera que les importations de modules nécessaires ont été préalablement faites.

Problème A. Des modèles déterministes

Dans ce problème, les questions sont largement indépendantes ; les sous-questions sont liées.

On s’intéresse d’abord à des modèles déterministes discrets d’évolution d’une population. Dans chacun des modèles, une suite \((v_n)\) modélise le nombre d’individus dans la population à la génération \(n\). On dit qu’il y a extinction si \(\displaystyle\lim_{n\to+\infty}v_n=0\).

  1. Pour commencer, on propose le modèle suivant : chaque individu a un nombre de descendants \(q>0\), de telle sorte que \[\forall n\in\mathbb{N},\ v_{n+1}=qv_n\] Résoudre le modèle et donner une condition d’extinction.

  2. On propose un nouveau modèle. On définit une suite \((v_n)\) par : \[v_0\in\mathbb{R}_+ \text{ et } \forall n\in\mathbb{N},\ v_{n+1}=v_n+\frac{1}{2}v_n\left(\frac{S-v_n}{S}\right)\] où \(S\in\left]0,+\infty\right[\) est une constante du problème.

    1. Déterminer une fonction \(f\) sur \(\mathbb{R}_+\) telle que \[\forall n\in\mathbb{N},\ v_{n+1}=f(v_n)\] Dresser le tableau de variations de \(f\) sur \(\mathbb{R}_+\).

    2. Compléter le code suivant pour qu’il trace les \(20\) premiers termes de la suite.

      S = 30
      v0 = 5
      L=[v0]
      v=v0
      for k in ## LIGNE A COMPLETER ##
          ## LIGNE A COMPLETER ##
          ## LIGNE A COMPLETER ##
      
      plt.plot(L)
      plt.xlabel("n")
      plt.ylabel("v_n")
      plt.show()
    3. Pour le tracé, on a utilisé le module matplotlib.pyplot sous l’alias plt. Comment importer le module ?

    4. On trace sur la même figure l’évolution de \(v_n\) pour différentes valeurs de \(v_0\). Cela donne les courbes suivantes (pour \(S=30\)).

      Conjecturer sur le comportement de la suite.

    5. On suppose maintenant que \(v_0\in\left]0,S\right]\). Montrer que \((v_n)\) est croissante et majorée par \(S\). En déduire qu’elle converge et donner sa limite.

  3. On souhaite affiner le modèle en modifiant la fonction \(f\). Désormais, \[v_{n+1}=v_n+\frac{1}{2}v_n\left(\frac{S-v_n}{S}\right)\left(\frac{v_n-A}{S}\right)\] où \(A\in\left]0,S\right[\) est fixé.

    1. Identifier \(f\). Étudier le signe de \(f(x)-x\) sur \([0,S]\). En déduire l’allure de la courbe représentative de \(f\) sur \([0,S]\). On fera attention à la position relative par rapport à la droite d’équation \(y=x\) et on utilisera sans démonstration que \(f\) est une bijection strictement croissante de \([0,S]\) sur lui-même.

    Un code analogue au précédent donne le tracé suivant pour les premiers termes de la suite \((v_n)\) pour \(S=30\) et \(A=9\). On se restreint à \(v_0\in[0,S]\).

    1. Dans cette question \(v_0\in\left]0,A\right[\). Montrer que pour tout entier \(n\in\mathbb{N}\), \(v_n\in\left]0,A\right[\), puis que \((v_n)\) est décroissante. En déduire que \((v_n)\) converge et déterminer sa limite.

    2. Réaliser une étude analogue lorsque \(v_0\in\left]A,S\right[\). Que se passe-t-il si \(v_0=A\) ?

    3. Donner une interprétation (en terme de dynamique des populations) des quantités \(A\) et \(S\).

  4. La version continue du modèle précédent est l’équation différentielle : \[y'(t)=F(y(t))\] avec \[F(y)=\frac{y}{2}\left(\frac{S-y}{S}\right)\left(\frac{y-A}{S}\right) \text{ et une condition initiale } y(0)\geqslant0\]

    1. On appelle point d’équilibre de l’équation différentielle toute valeur \(x_0\) telle que si \(y(t)=x_0\) alors \(y'(t)=0\). Déterminer ces points d’équilibre.

    2. On dit qu’un point d’équilibre \(x_0\) est instable si \(F'(x_0)>0\) et stable si \(F'(x_0)<0\). Déterminer les points stables et instables parmi les points d’équilibre.

    3. Si \(y(0)\) est assez proche de \(x_0\), \(y\) se comporte localement comme la solution de l’équation différentielle linéaire \[y'(t)=F'(x_0)(y(t)-x_0)\] Résoudre l’équation différentielle.

    4. Justifier les dénominations d’équilibre stable et instable. Faire le lien avec les interprétations faites dans la question Q 3.

Problème B. Le modèle probabiliste de Galton-Watson

Partie I. Le modèle de Galton-Watson, exemples.

Un modèle de croissance probabiliste pour une espèce est le modèle de Galton-Watson. On considère une population dont on va décrire l’évolution génération par génération. On appelle \(Z_n\) la variable aléatoire qui compte le nombre d’individus à la génération \(n\) et on considère que :

  • Les générations ne se superposent pas,

  • Chaque individu a un nombre aléatoire de descendants : le nombre de descendants d’un individu est une variable aléatoire. Les variables aléatoires pour chacun sont indépendantes et de même loi.

On s’intéresse aux conditions sous lesquelles on a extinction ou survie de l’espèce. On dit que la lignée est éteinte à la génération \(n\) si \(Z_n=0\) et on souhaite étudier la suite de terme général \(\mathbb{P}(Z_n=0)\).

Formellement, le modèle est donné par : \[Z_0=1 \text{ et } \forall n\in\mathbb{N},\ Z_{n+1}=\sum_{i=1}^{Z_n}X_{n,i}\] où les variables aléatoires \((X_{n,i})_{(n,i)\in\mathbb{N}\times\mathbb{N}^\ast}\) sont à valeurs dans \(\mathbb{N}\) et sont indépendantes et de même loi. \(X_{n,i}\) est le nombre de descendants de l’individu numéro \(i\) de la génération \(n\). On notera \(Y\) une autre variable aléatoire qui suit la même loi que les variables \(X_{n,i}\).

Par exemple, si \(Z_n=12\) alors \(Z_{n+1}=X_{n,1}+\cdots+X_{n,12}\). \(Z_{n+1}\) est la somme du nombre de descendants de chacun des \(12\) individus de la génération \(n\).

On remarquera que comme \(Z_0=1\), \(Z_1=X_{0,1}\) qui est le nombre de descendants de l’unique individu de la génération \(0\). Ainsi \(Z_1\) et \(Y\) suivent la même loi.

  1. Que se passe-t-il si toutes les variables \(X_{n,i}\) sont constantes égales à \(q\in\mathbb{N}\) ?

  2. Dans cette question, on suppose que le nombre de descendants de chaque individu suit une loi de Bernoulli de paramètre \(p\in\left]0,1\right[\).

    Montrer que pour tout \(n\in\mathbb{N}^\ast\), \(Z_n=0\) ou \(Z_n=1\) et que : \[\mathbb{P}(Z_n=1)=p^n\] En déduire la valeur de \(\displaystyle\lim_{n\to+\infty}\mathbb{P}(Z_n=0)\).

  3. On définit la suite \((u_n)\) par \(u_n=\mathbb{P}(Z_n=0)\). Justifier que \((u_n)\) est croissante puis qu’elle converge.

Dans la suite du sujet, on appelle la limite de \((u_n)\) la probabilité d’extinction de la lignée.

  1. Étude complète dans un cas simple. Dans cette question uniquement, la loi de reproduction est la suivante : chaque individu a une probabilité \(p\in\left]0,1\right]\) de donner deux descendants, par exemple en se divisant, et \(1-p\) de disparaître sans descendant.

    1. Donner l’ensemble des valeurs prises par \(Z_1\) ainsi que sa loi de probabilité. Calculer l’espérance \(\mathbb{E}(Z_1)\) et la variance \(\mathbb{V}(Z_1)\).

    2. Montrer que pour tout \(n\in\mathbb{N}\), \[\mathbb{P}(Z_{n+1}=0)=(1-p)\mathbb{P}_{[Z_1=0]}(Z_{n+1}=0)+p\mathbb{P}_{[Z_1=2]}(Z_{n+1}=0)\]

    3. Justifier, avec une phrase, que \(\mathbb{P}_{[Z_1=2]}(Z_{n+1}=0)=u_n^2\) puis montrer que pour tout \(n\in\mathbb{N}\), \[u_{n+1}=(1-p)+pu_n^2\]

    4. En déduire que les deux limites possibles de \((u_n)\) sont \(1\) et \(\frac{1-p}{p}\).

    5. Montrer que si \(p\leqslant\frac{1}{2}\), la probabilité d’extinction vaut \(1\).

    6. Si \(p>\frac{1}{2}\), montrer que pour tout \(n\in\mathbb{N}\), \[u_n\leqslant\frac{1-p}{p}<1\] En déduire la valeur de la probabilité d’extinction.

    7. Tracer la probabilité d’extinction en fonction de \(\mathbb{E}(Z_1)\). Commenter le tracé obtenu.

  2. Dans cette question uniquement, on suppose que la loi de reproduction est donnée par : \[\forall k\in\mathbb{N},\ \mathbb{P}(Y=k)=p^k(1-p)\] pour une certaine valeur \(p\in\left]0,1\right[\) fixée.

    1. On admet que pour tout \(k\in\mathbb{N}\), \(\mathbb{P}_{[Z_1=k]}(Z_{n+1}=0)=u_n^k\). En utilisant un système complet d’événements associé à \(Z_1\), montrer que : \[\forall n\in\mathbb{N},\ u_{n+1}=\frac{1-p}{1-pu_n}\]

    2. On admet que \((u_n)\) converge vers la plus petite des solutions de l’équation dont l’inconnue est \(\ell\) : \[\ell=\frac{1-p}{1-p\ell}\] Déterminer la probabilité d’extinction en fonction de \(p\).

    3. Reconnaître la loi de \(Y+1\). En déduire que les propositions suivantes sont équivalentes :

      • 1. la probabilité d’extinction vaut \(1\).

      • 2. \(\mathbb{E}(Y)\leqslant1\).

      Commenter.

Partie II. Modélisation informatique.

Dans cette partie, on s’intéresse à l’implémentation informatique du processus de Galton-Watson. Notre objectif est de faire des conjectures sur le comportement de la population dans le cas où la loi de reproduction est plus complexe : on considèrera dans cette partie que les variables aléatoires suivent la loi de Poisson de paramètre \(\lambda>0\).

On rappelle que la commande rd.poisson(x) simule une variable aléatoire qui suit une loi de Poisson de paramètre x.

La fonction suivante simule l’évolution d’une population et stocke le nombre d’individus à chaque génération dans une liste.

def galton_watson(lambda_,n):
    population = np.zeros(n+1)
    population[0] = 1
    Z = 1
    for i in range(1,n+1):
        descendants = 0
        for j in range(Z):
            descendants += rd.poisson(lambda_)
        population[i] = descendants
        Z = descendants
        if descendants == 0:
            return population
    return population
    1. À quoi correspondent les deux arguments de la fonction galton_watson ?

    2. À quoi servent les lignes suivantes ?

              if descendants == 0:
                  return population
          population = np.zeros(n+1)
          descendants = 0
          for j in range(Z):
              descendants += rd.poisson(lambda_)
    3. Pourquoi peut-on remplacer les lignes \(6\) à \(8\) par :

          descendants = rd.poisson(Z*lambda_)
  1. On souhaite réaliser :

    • des simulations pour différentes valeurs de \(\lambda\),

    • pour chacun des choix, plusieurs simulations.

    1. Compléter le programme suivant pour qu’il réalise \(10\) simulations pour \(\lambda=0{,}7\) et \(20\) générations et les trace sur un même graphique.

      lambda_ = 0.7
      for k in ## LIGNE A COMPLETER ##
          plt.plot(## LIGNE A COMPLETER ##  )
      plt.show()
    2. Les simulations donnent les résultats suivants pour \(\lambda\) variant entre \(0{,}7\) et \(1{,}7\) avec un pas de \(0{,}2\). Quelles conjectures peut-on faire quant à la probabilité d’extinction de l’espèce ?

      Les valeurs de la population sont déterminées pour des nombres entiers de générations. Des lignes ont cependant été tracées entre les valeurs de la population pour les générations successives, afin de faciliter la visualisation de l’évolution d’une population au cours des générations.

  2. Dans cette question, on s’intéresse à la probabilité d’extinction.

    1. Comment modifier la fonction galton_watson pour qu’elle renvoie 1 si la lignée est éteinte et 0 si la lignée n’est pas éteinte ?

      Pour la suite on appelle la fonction ainsi modifiée : galton_watson_2.

    2. Écrire une fonction extinction, qui prend entrée un paramètre lambda_ et qui, à partir de \(5000\) simulations de Galton-Watson, renvoie une approximation de la probabilité d’extinction. (On s’arrêtera à \(60\) générations).

La simulation pour différentes valeurs de \(\lambda\) donne le graphique suivant. (On a pris \(\lambda\) entre \(0{,}8\) et \(1{,}2\) avec un pas de \(0{,}05\).)

  1. On note \(p_\lambda\) la probabilité d’extinction.

    1. Quelles conjectures peut-on faire sur \(p_\lambda\) ?

    2. Après \(n\) simulations, on note \(S_n\) le nombre d’entre elles qui ont mené à une extinction. Après avoir justifié que \(S_n\) suit une loi binomiale \(\mathscr{B}(n,p_\lambda)\), montrer à l’aide de l’inégalité de Bienaymé-Tchebychev que, pour tout \(\varepsilon>0\), \[\mathbb{P}\!\left(\left|\frac{S_n}{n}-p_\lambda\right|\geqslant\varepsilon\right)\leqslant\frac{p_\lambda(1-p_\lambda)}{n\varepsilon^2}\] Montrer ensuite que : \[\mathbb{P}\!\left(\left|\frac{S_n}{n}-p_\lambda\right|\geqslant\varepsilon\right)\leqslant\frac{1}{4n\varepsilon^2}\]

    3. Soit \(n\in\mathbb{N}^\ast\). Trouver \(\varepsilon>0\) (dépendant de \(n\)) tel que \[\mathbb{P}\!\left(\frac{S_n}{n}-\varepsilon\leqslant p_\lambda\leqslant\frac{S_n}{n}+\varepsilon\right)\geqslant0{,}95\]

    4. Pour \(n=5000\), déterminer graphiquement l’encadrement de \(p_\lambda\) obtenu lorsque \(\lambda=1{,}05\) ; \(\lambda=1{,}1\) ; \(\lambda=1{,}15\).

Annexe Python

Dans le module matplotlib.pyplot importé sous l’alias plt :

plt.plot(X,Y) prend en entrée deux vecteurs ou deux listes de même taille, et réalise le tracé des points d’abscisses prises dans X et d’ordonnées prises dans Y. Si on donne un seul argument à plt.plot, cela trace juste la suite des termes de X.

On utilise plt.show() pour afficher le tracé.

Dans le module numpy importé sous l’alias np :

np.zeros(n) crée une matrice unidimensionnelle de \(n\) coefficients tous nuls.

Dans le module numpy.random importé sous l’alias rd :

rd.poisson(x) simule une variable aléatoire suivant une loi de Poisson de paramètre 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é !