Suite et fonction logarithme au bac
Vous êtes en classe de terminale générale et vous êtes devenu spécialiste des logarithmes. Il est donc temps de revenir à de vieilles connaissances : les suites.
L’exercice qui suit est extrait de l’épreuve du bac S de mai 2019, Amérique du nord. Sans être très difficile, il présente beaucoup de questions à tiroirs : il faut avoir répondu à une question pour pouvoir répondre à la suivante. C’est un peu le principe de la récurrence mais appliqué à l’énoncé (appréciez la mise en abîme !).
La plupart des questions peuvent être traitées en maths complémentaires mais quelques points ne sont abordés qu’en maths de spécialité.
Énoncé
Partie A : établir une inégalité
Sur l’intervalle \([0\, ;+∞[,\) on définit la fonction \(f\) par \(f(x) = x - \ln (x+1).\)
- Étudier le sens de variation de la fonction \(f\) sur l’intervalle \([0\, ;+∞[.\)
- En déduire que pour tout \(x ∈ [0\, ; + ∞[,\) \(\ln (x+1) \leqslant x.\)
Partie B : application à l’étude d’une suite
On pose \(u_0 = 1\) et pour tout entier naturel \(n,\) \(u_{n+1} = u_n - \ln(1 + u_n).\) On admet que la suite de terme général \(u_n\) est bien définie.
- Calculer une valeur approchée à \(10^{-3}\) près de \(u_2.\)
- a. Démontrer par récurrence que pour tout entier naturel \(n,\) \(u_n \geqslant 0.\)
b. Démontrer que la suite \((u_n)\) est décroissante, et en déduire que pour tout entier naturel \(n,\) \(u_n \leqslant 1.\)
c. Montrer que la suite \((u_n)\) est convergente. - On note \(ℓ\) la limite de la suite \((u_n)\) et on admet que \(ℓ = f(ℓ),\) où \(f\) est la fonction définie dans la partie A. En déduire la valeur de \(ℓ.\)
- a. Écrire un algorithme qui, pour un entier naturel \(p\) donné, permet de déterminer le plus petit rang \(N\) à partir duquel tous les termes de la suite \((u_n)\) sont inférieurs à \(10^{-p}.\)
b. Déterminer le plus petit entier naturel \(n\) à partir duquel tous les termes de la suite \((u_n)\) sont inférieurs à \(10^{-15}.\)
Corrigé détaillé
Partie A
1- La question 1 est une application du célébrissime lien entre signe de la dérivée et sens de la fonction.
Dérivons \(f\) sur \([0\, ;+∞[.\)
\(f(x)\) est de la forme \(u(x) - \ln(v(x))\) avec \(u(x) = x,\) \(u’(x) = 1,\) \(v(x) = 1 + x\) et \(v’(x) = 1.\)
\(f’(x) = 1 - \frac{1}{x + 1}\)
Étudions le signe.
\(1 - \frac{1}{x+1
} \geqslant 0\)
\(⇔ 1 \geqslant \frac{1}{x+1}\)
\(⇔ x+ 1 \geqslant 1\)
\(⇔ x \geqslant 0\)
La dérivée \(f’\) est positive sur l’ensemble de définition de \(f\) et nous en concluons que \(f\) est croissante.
Notez que la dérivée peut aussi s’écrire \(f’(x) = \frac{x}{x + 1}\)
2- \(f\) est croissante sur \([0\, ; +∞[\) et \(f(0) = 0.\)
Donc \(x - \ln(x+1) \geqslant 0\)
\(\Leftrightarrow \ln(1 + x) \leqslant x\)
Partie B
1- Nous ne connaissons qu’une relation de récurrence. Il faut donc d'abord déterminer \(u_1\) pour calculer \(u_2.\)
\(u_1 = u_0 - \ln (1 + u_0) = 1 - \ln2\)
\(u_2 = 1 - \ln2 - \ln(2 - \ln2) ≈ 0,039\)
2- a. Posons \(P(n) = u_n \geqslant 0\)
Initialisation : \(u_0 = 1\) donc \(P(0)\) est vraie.
Hérédité : pour tout entier naturel \(n,\) nous avons \(u_{n+1} = f(u_n) \geqslant 0\) d’après ce que la partie A nous a enseigné. Donc \(P(n)\) est vérifiée puisque \(u_n \geqslant 0\) à partir du rang du rang 0.
b. Question facile : \(u_{n+1} - u_n\) \(=\) \(u_n - \ln(1 + u_n) - u_n\) \(=\) \(- \ln(1 + u_n)\)
Nous venons de montrer que \(u_n \geqslant 0.\) Donc \(\ln (1 + u_n) \geqslant 0\) et évidemment, \(- \ln(1 + u_n) \leqslant 0.\)
La suite \((u_n)\) est décroissante.
c. \((u_n)\) étant décroissante et minorée par 0, elle est convergente.
3- \(ℓ = f(ℓ)\)
\(⇔ ℓ = ℓ - \ln(1 + ℓ)\)
\(⇔\ln(1 + ℓ) = 0\)
\(⇔ ℓ = 0\)
4- a. Calcul de seuil.
L’algorithme tel qu’il était attendu peut ressembler à ceci :
N ← 0 U ← 1 tant que U \(\geqslant\) 10-p U ← U - ln(1 + U) N ← N + 1 fin tant que afficher N |
En langage Python, nous pourrions avoir le programme suivant. Il faut penser à charger la bibliothèque math pour utiliser la fonction logarithme.
from math import log
p = int(input('seuil (puissance négative de 10) : '))
n = 0
u = 1
while u >= 10**(-p):
u = u - log(1 + u)
n = n + 1
print("N = ",n)
b. Cette dernière question a dû être supprimée car terrifiante pour de simples calculatrices. Si vous utilisez le programme Python ci-dessus avec un ordinateur, vous obtenez 6.