Algorithme de seuil : trouver le rang N

Définition, méthode rigoureuse, exemples corrigés et exercice type BAC.

📚 Terminale Spécialité Maths ⏱ Lecture : 5 min ✅ Programme officiel BO 2019

L'algorithme de seuil est une méthode itérative permettant de déterminer le plus petit rang $N$ (ou le plus grand) à partir duquel une suite $(u_n)$ vérifie une certaine condition (un seuil). Cette condition peut être $u_n > S$, $u_n < S$, $u_n \geq S$, ou $u_n \leq S$, où $S$ est une valeur donnée. Il s'agit généralement de trouver le premier terme de la suite qui dépasse ou atteint un certain seuil.

💡 Bon réflexe : Vérifie toujours la condition de la boucle 'TANT QUE' : elle doit être l'inverse strict de la condition du seuil recherché pour que la boucle s'arrête au bon moment.
seuil SPremier n tel que uₙ > S
1

Initialisation des variables

Définir les variables nécessaires : le terme courant de la suite (souvent noté $U$) et le rang courant (souvent noté $N$). Initialiser $U$ avec la valeur du premier terme de la suite ($u_0$ ou $u_1$) et $N$ avec le rang correspondant (0 ou 1).

2

Définition de la condition de boucle

Établir la condition qui doit être vérifiée tant que le seuil n'est pas atteint. Si l'on cherche le premier $N$ tel que $u_N > S$, la boucle 'TANT QUE' (ou 'WHILE') doit continuer tant que $U \leq S$. Si l'on cherche $u_N < S$, la boucle continue tant que $U \geq S$.

3

Mise à jour des variables dans la boucle

À l'intérieur de la boucle, mettre à jour le terme de la suite $U$ en utilisant la relation de récurrence $u_{n+1} = f(u_n)$ et incrémenter le rang $N$ de 1. C'est l'étape où l'on calcule le terme suivant et son rang.

4

Affichage du résultat

Une fois la boucle terminée (c'est-à-dire lorsque la condition de seuil est satisfaite), afficher la valeur du rang $N$ qui est le plus petit rang pour lequel la condition est vérifiée.

On considère la suite $(u_n)$ définie par $u_0 = 100$ et pour tout entier naturel $n$, $u_{n+1} = 0,9 u_n + 12$. On souhaite déterminer le plus petit entier naturel $N$ tel que $u_N \geq 115$.

1
Initialisation des variables
On initialise $U = 100$ (valeur de $u_0$) et $N = 0$ (rang initial).
2
Définition de la boucle
On cherche le premier $N$ tel que $u_N \geq 115$. La boucle doit donc continuer tant que $U < 115$. On utilise une boucle 'TANT QUE $U < 115$'.
3
Exécution de la boucle et mise à jour
  • Initialisation: $U=100$, $N=0$. Condition $100 < 115$ est vraie.
  • Tour 1: $U = 0,9 \times 100 + 12 = 90 + 12 = 102$. $N = 0 + 1 = 1$. Condition $102 < 115$ est vraie.
  • Tour 2: $U = 0,9 \times 102 + 12 = 91,8 + 12 = 103,8$. $N = 1 + 1 = 2$. Condition $103,8 < 115$ est vraie.
  • Tour 3: $U = 0,9 \times 103,8 + 12 = 93,42 + 12 = 105,42$. $N = 2 + 1 = 3$. Condition $105,42 < 115$ est vraie.
  • Tour 4: $U = 0,9 \times 105,42 + 12 = 94,878 + 12 = 106,878$. $N = 3 + 1 = 4$. Condition $106,878 < 115$ est vraie.
  • Tour 5: $U = 0,9 \times 106,878 + 12 = 96,1902 + 12 = 108,1902$. $N = 4 + 1 = 5$. Condition $108,1902 < 115$ est vraie.
  • Tour 6: $U = 0,9 \times 108,1902 + 12 = 97,37118 + 12 = 109,37118$. $N = 5 + 1 = 6$. Condition $109,37118 < 115$ est vraie.
  • Tour 7: $U = 0,9 \times 109,37118 + 12 = 98,434062 + 12 = 110,434062$. $N = 6 + 1 = 7$. Condition $110,434062 < 115$ est vraie.
  • Tour 8: $U = 0,9 \times 110,434062 + 12 = 99,3906558 + 12 = 111,3906558$. $N = 7 + 1 = 8$. Condition $111,3906558 < 115$ est vraie.
  • Tour 9: $U = 0,9 \times 111,3906558 + 12 = 100,25159022 + 12 = 112,25159022$. $N = 8 + 1 = 9$. Condition $112,25159022 < 115$ est vraie.
  • Tour 10: $U = 0,9 \times 112,25159022 + 12 = 101,0264312 + 12 = 113,0264312$. $N = 9 + 1 = 10$. Condition $113,0264312 < 115$ est vraie.
  • Tour 11: $U = 0,9 \times 113,0264312 + 12 = 101,72378808 + 12 = 113,72378808$. $N = 10 + 1 = 11$. Condition $113,72378808 < 115$ est vraie.
  • Tour 12: $U = 0,9 \times 113,72378808 + 12 = 102,351409272 + 12 = 114,351409272$. $N = 11 + 1 = 12$. Condition $114,351409272 < 115$ est vraie.
  • Tour 13: $U = 0,9 \times 114,351409272 + 12 = 102,9162683448 + 12 = 114,9162683448$. $N = 12 + 1 = 13$. Condition $114,9162683448 < 115$ est vraie.
  • Tour 14: $U = 0,9 \times 114,9162683448 + 12 = 103,42464151032 + 12 = 115,42464151032$. $N = 13 + 1 = 14$. Condition $115,42464151032 < 115$ est fausse. La boucle s'arrête.
4
Affichage du résultat
La boucle s'arrête lorsque $N=14$. La valeur de $U$ est alors $115,42...$, qui est bien supérieure ou égale à $115$. Le rang $N$ est donc $14$.

Le plus petit entier naturel $N$ tel que $u_N \geq 115$ est $N = 14$.

  1. Confondre la condition de la boucle 'TANT QUE' avec la condition du seuil. Si on cherche $u_N > S$, la boucle doit continuer TANT QUE $u_N \leq S$.
  2. Oublier d'initialiser correctement le rang $N$ (0 ou 1 selon l'énoncé) et le terme $U$ avec $u_0$ ou $u_1$.
  3. Inverser l'ordre des opérations dans la boucle : il faut d'abord mettre à jour $U$ puis $N$, ou l'inverse, en fonction de la manière dont la condition est testée et du rang que l'on souhaite obtenir (le rang du terme qui dépasse le seuil, ou le rang du terme *après* le seuil).
  4. Utiliser une boucle 'POUR' (FOR) au lieu de 'TANT QUE' (WHILE) : l'algorithme de seuil est par nature itératif et le nombre d'itérations est inconnu à l'avance, d'où l'usage de 'TANT QUE'.

Une entreprise fabrique des composants électroniques. Le coût de production d'un composant dépend du nombre de composants déjà produits. On modélise le coût unitaire $C_n$ (en euros) du $n$-ième composant produit par la suite $(C_n)$ définie par $C_0 = 100$ (coût du premier composant) et pour tout entier naturel $n$, $C_{n+1} = 0,95 C_n + 2$.

  1. Calculer $C_1$ et $C_2$.
  2. On souhaite déterminer à partir de quel rang $N$ le coût unitaire $C_N$ devient inférieur à $50$ euros. Compléter l'algorithme suivant pour qu'il affiche ce rang $N$.
    U = ...
    N = ...
    TANT QUE U ... 50 :
        U = ...
        N = ...
    AFFICHER N
  3. Exécuter l'algorithme complété pour déterminer la valeur de $N$.
  1. Calcul de $C_1$ et $C_2$ :

    • $C_1 = 0,95 C_0 + 2 = 0,95 \times 100 + 2 = 95 + 2 = 97$.
    • $C_2 = 0,95 C_1 + 2 = 0,95 \times 97 + 2 = 92,15 + 2 = 94,15$.
  2. Complétion de l'algorithme :

    On cherche le plus petit $N$ tel que $C_N < 50$. La boucle doit donc continuer tant que $C_N \geq 50$.

    U = 100
    N = 0
    TANT QUE U >= 50 :
        U = 0.95 * U + 2
        N = N + 1
    AFFICHER N
  3. Exécution de l'algorithme :

    • Initialisation : $U=100$, $N=0$. Condition $100 \geq 50$ est vraie.
    • Tour 1 : $U = 0,95 \times 100 + 2 = 97$. $N = 1$. Condition $97 \geq 50$ est vraie.
    • Tour 2 : $U = 0,95 \times 97 + 2 = 94,15$. $N = 2$. Condition $94,15 \geq 50$ est vraie.
    • Tour 3 : $U = 0,95 \times 94,15 + 2 = 89,4425 + 2 = 91,4425$. $N = 3$. Condition $91,4425 \geq 50$ est vraie.
    • ... (on continue les calculs) ...
    • Tour 20 : $U \approx 50,01$. $N = 20$. Condition $50,01 \geq 50$ est vraie.
    • Tour 21 : $U = 0,95 \times 50,01 + 2 \approx 47,5095 + 2 = 49,5095$. $N = 21$. Condition $49,5095 \geq 50$ est fausse. La boucle s'arrête.

    L'algorithme affiche $N = 21$. C'est donc à partir du 21ème composant que le coût unitaire devient inférieur à 50 euros.

Questions fréquentes

Pourquoi utilise-t-on une boucle 'TANT QUE' pour un algorithme de seuil ?
On utilise une boucle 'TANT QUE' (WHILE) car le nombre d'itérations nécessaires pour atteindre le seuil n'est pas connu à l'avance. La boucle continue tant que la condition du seuil n'est pas satisfaite, ce qui est précisément le rôle d'une boucle 'TANT QUE'.
Comment choisir l'initialisation de $N$ (0 ou 1) ?
L'initialisation de $N$ dépend de l'indice du premier terme de la suite. Si la suite est définie à partir de $u_0$, alors $N$ est initialisé à 0. Si elle est définie à partir de $u_1$, alors $N$ est initialisé à 1. Il faut être attentif à l'énoncé.
Que se passe-t-il si la suite n'atteint jamais le seuil ?
Si la suite ne converge pas vers le seuil ou ne le dépasse jamais, l'algorithme peut entrer dans une boucle infinie. Dans les exercices de BAC, les suites sont généralement conçues pour atteindre le seuil. Il est important de vérifier la convergence de la suite si elle est monotone.
Comment adapter l'algorithme si on cherche le plus grand $N$ tel que $u_N < S$ ?
Si la suite est croissante et on cherche le plus grand $N$ tel que $u_N < S$, cela signifie que la suite va dépasser $S$ à un moment donné. L'algorithme de seuil tel que présenté trouve le premier $N$ qui satisfait la condition. Pour trouver le plus grand $N$ tel que $u_N < S$, il faudrait que la suite soit décroissante et que le seuil soit atteint par le bas. L'algorithme reste le même, mais la condition de la boucle et le sens du seuil sont inversés. Par exemple, pour une suite décroissante $(u_n)$ et un seuil $S$, si on cherche le plus grand $N$ tel que $u_N > S$, la boucle serait 'TANT QUE $U > S$', et $N$ serait incrémenté. L'algorithme affichera le premier $N$ tel que $u_N \leq S$, donc $N-1$ serait le plus grand $N$ tel que $u_N > S$.

Vous bloquez sur ce chapitre ?

Adil accompagne les lycéens en Terminale Spécialité, en ligne ou à domicile dans le Val d'Oise. Résultats en 1 séance.

📞 Appeler Cours Terminale →