Bassin de micro-algues : seuil et convergence
Une station d'épuration pilote un bassin de culture de micro-algues. La masse d'algues, exprimée en milligrammes, est notée u_n au début du jour n. Le jour 0, le bassin contient u_0 = 500 mg. Chaque jour, l'exploitant retire 20 % de la masse présente, puis injecte 60 mg de nutriments qui se transforment intégralement en algues dans la journée. Le modèle retenu est donc u_{n+1} = 0,8 u_n + 60. Un technicien affirme que, comme le coefficient 0,8 est inférieur à 1, la masse va forcément diminuer et passera sous les 250 mg avant le trentième jour. Il propose aussi d'automatiser la surveillance avec une boucle Python qui s'arrête dès que la masse s'écarte de moins de 1 mg de sa limite. La direction veut savoir si le modèle est cohérent, si le seuil de 250 mg sera franchi, et combien de jours sont nécessaires pour que l'écart à la limite devienne inférieur à 1 mg.
1. Démontrer par récurrence que u_n > 300 pour tout n, puis étudier le sens de variation de (u_n) et justifier que la suite converge. Déterminer sa limite.
Read the worked answer
On pose P(n) : u_n > 300.
Initialisation : u_0 = 500 > 300, donc P(0) est vraie.
Hérédité : supposons u_n > 300. Alors 0,8u_n > 240, donc u_{n+1} = 0,8u_n + 60 > 300. P(n+1) est vraie.
Ainsi u_n > 300 pour tout n.
Ensuite, u_{n+1} - u_n = -0,2u_n + 60 = 0,2(300 - u_n). Comme u_n > 300, on a 300 - u_n < 0, donc u_{n+1} - u_n < 0 : la suite est strictement décroissante.
Décroissante et minorée par 300, elle converge. Soit ℓ sa limite. Par continuité de f(x) = 0,8x + 60, on obtient ℓ = 0,8ℓ + 60, donc 0,2ℓ = 60 et ℓ = 300.
2. Examiner l'affirmation du technicien sur le passage sous 250 mg. Exprimer u_n en fonction de n et conclure.
Read the worked answer
L'affirmation est fausse : la suite décroît vers 300 sans jamais passer en dessous de 300, donc a fortiori sans passer sous 250.
On explicite la suite. La solution de u_{n+1} = 0,8u_n + 60 est u_n = 300 + (500 - 300) × 0,8^n, soit u_n = 300 + 200 × 0,8^n.
Comme 0,8^n > 0, on a u_n > 300 pour tout n. Le technicien confond « tendre vers 300 » et « franchir 250 ». Aucun jour ne donne u_n < 250 ; la masse se stabilise au-dessus de 300 mg.
3. Écrire une fonction Python seuil() qui renvoie le plus petit entier n tel que u_n - 300 < 1. Donner le résultat et justifier le nombre trouvé.
Read the worked answer
def seuil():
u = 500
n = 0
while u - 300 >= 1:
u = 0.8 * u + 60
n = n + 1
return n
La condition teste l'écart avant d'incrémenter, ce qui évite un décalage d'indice. On trouve n = 24.
Vérification : u_n - 300 = 200 × 0,8^n. Pour n = 23, 200 × 0,8^23 ≈ 1,18 > 1 ; pour n = 24, 200 × 0,8^24 ≈ 0,94 < 1. Le plus petit entier cherché est donc bien 24.