Un exercice sur suite avec logarithme

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).\)

  1. Étudier le sens de variation de la fonction \(f\) sur l’intervalle \([0\, ;+∞[.\)

  2. 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.

  1. Calculer une valeur approchée à \(10^{-3}\) près de \(u_2.\)

  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.

  3. 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 \(ℓ.\)

  4. 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
    UU - ln(1 + U)
    NN + 1
fin tant que

afficher N

En langage Python, nous pourrions avoir le programme suivant. Il faut penser à charger la librairie 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.