Modélisation par une fonction exponentielle
Le maire d'une ville française a effectué un recensement de la population de sa municipalité pendant 7 ans.
Les données recueillies sont présentées dans le tableau ci-dessous :
Année | 2013 | 2014 | 2015 | 2016 | 2017 | 2018 | 2019 |
Rang | 0 | 1 | 2 | 3 | 4 | 5 | 6 |
Habitants | 2 502 | 2 475 | 2 452 | 2 430 | 2 398 | 2 378 | 2 351 |
Dans la première partie de l'exercice, on modélisera le nombre d'habitants à l'aide d'une suite géométrique et dans la seconde partie, on utilisera une fonction exponentielle.
Partie 1 : Modélisation à l'aide d'une suite
Calculer le pourcentage d'évolution de la population de la ville entre 2013 et 2014, entre 2014 et 2015, entre 2015 et 2016 et entre 2018 et 2019.
Par la suite on estimera que la population diminue de 1% par an.
On note le nombre d'habitants l'année 2013+.
Montrer que la suite est une suite géométrique dont on donnera le premier terme et la raison.
À l'aide de la suite estimer la population de la ville en 2030 en supposant que la diminution de la population s'effectue au même rythme pendant les années à venir.
Partie 2 : Modélisation à l'aide d'une fonction exponentielle
On cherche à modéliser le nombre d'habitants à l'aide de la fonction définie sur par :
où désigne la durée écoulée, en année, depuis 2013.
Montrer que la fonction est strictement décroissante sur l'intervalle .
Compléter la fonction Python ci-dessous afin qu'elle retourne les images de la variable par la fonction :
À l'aide d'une boucle, écrire un script Python qui retourne les images par des entiers compris entre 0 et 6.def f(t) : return ...
Comparer aux données de l'énoncé.
Cette modélisation vous semble-t-elle valable ?Le maire souhaite prévoir en quelle année le nombre d'habitants de sa ville passera sous la barre des 2 200 d'après ce modèle.
En utilisant la fonction précédente, écrire un programme Python qui répond à cette question.
Corrigé
Partie 1
Le pourcentage d'évolution de la population entre 2013 et 2014 est (voir formule de calcul d'une évolution) :
De même, le pourcentage d'évolution entre 2014 et 2015 est :
entre 2015 et 2016 :
enfin, entre 2018 et 2019 :
On remarque que, dans tous les cas, la diminution est proche de 1%.
Le coefficient multiplicateur qui fait passer de à correspondant à une baisse de 1% est (voir coefficient multiplicateur) :
On a donc, pour tout entier naturel :
La suite est donc une suite géométrique de raison Son premier terme est
La population de la ville à l'année de rang est :
L'année 2030 correspond au rang 17. La population en 2030 peut donc, d'après ce modèle, être estimée à :
Partie 2
est dérivable sur . Pour déterminer le sens de variation de , on calcule sa dérivée .
Sachant que la dérivée de la fonction est la fonction on obtient :est strictement négatif tandis que est strictement positif (car la fonction exponentielle ne prend que des valeurs strictement positives) donc sur .
Par conséquent, la fonction est strictement décroissante sur l'intervalle .
La fonction Python se définit simplement comme suit :
def f(t) : return 2500 * exp(-0.01 * t)
On doit toutefois importer le module math qui contient la fonction exp ; par exemple :
from math import exp def f(t) : return 2500 * exp(0.01 * t)
Comme on connait le nombre d'itérations, on peut employer une boucle for pour afficher les images des 7 premières valeurs entières de :
from math import exp def f(t) : return 2500 * exp(-0.01 * t) for t in range(7) : print(f(t))
On obtient le résultat suivant :2500.0 2475.1245843729203 2450.4966832668883 2426.1138338712703 2401.973597880808 2378.073561251785 2354.411333960622
Ces valeurs sont suffisamment proches de celles du tableau donné dans l'énoncé pour considérer que cette modélisation est satisfaisante.
On utilise une boucle while pour répondre à la question.
On reste dans la boucle tant que le nombre d'habitants est supérieur ou égal à 2 200 et on sort de la boucle dès que ce nombre devient strictement inférieur à 2 200.Il faut penser à initialiser la variable t avant la boucle et à l’incrémenter à l'intérieur de la boucle (voir : boucles while). On peut ensuite afficher la valeur de t à la sortie de la boucle :
from math import exp def f(t) : return 2500 * exp(-0.01 * t) t=0 while f(t) >= 2200: t=t+1 print(t)
Ce programme affiche la valeur 13.
D'après ce modèle, la population passera sous la barre des 2 200 l'année de rang 13 c'est à dire en 2013+13 = 2026.