Seuils#

Une boucle while est particuliĂšrement adaptĂ©e aux questions qui commencent par « Ă  partir de quand ? » ou « combien d’étapes faut-il ? ». On ne connaĂźt pas forcĂ©ment Ă  l’avance le nombre de rĂ©pĂ©titions : c’est la condition d’arrĂȘt qui le dĂ©termine.

DĂšs la premiĂšre

Trouver un premier rang#

Dépasser un seuil#

On considĂšre :

\[u_0=1 \qquad\text{et}\qquad u_{n+1}=2u_n.\]

On cherche le plus petit entier \(n\) tel que \(u_n>100\).

Exemple
Premier rang au-dessus de 100
PrĂȘt
Sortie

  

La condition de la boucle dĂ©crit la situation dans laquelle on doit continuer : tant que \(u_n\leqslant100\), le seuil recherchĂ© n’est pas encore franchi.

Atteindre une valeur cible#

Le mĂȘme mĂ©canisme peut compter le nombre d’étapes d’une Ă©volution plus simple.

Exemple
Ajouter 3 jusqu’à 50
PrĂȘt
Sortie

  

En changeant la valeur initiale de x, il faut prĂ©voir si le nombre d’étapes devrait augmenter ou diminuer.

Seuil sur une suite arithmétique#

On considĂšre :

\[u_0=2 \qquad\text{et}\qquad u_{n+1}=u_n+5.\]

On cherche le plus petit rang tel que \(u_n\geqslant50\).

Exemple
Suite et seuil
PrĂȘt
Sortie

  

Le terme prĂ©cĂ©dent doit ĂȘtre strictement infĂ©rieur Ă  50. Cette vĂ©rification confirme que le rang trouvĂ© est bien le premier.

Étudier un comportement#

DĂšs la terminale

Entrer dans un voisinage d’une limite connue#

⏞
⏞

On considÚre la suite définie par \(u_0=0\) et

\[u_{n+1}=\frac12u_n+1.\]

On sait qu’elle converge vers 2. Le programme suivant ne dĂ©couvre donc pas la limite : il cherche le premier rang pour lequel \(u_n\) est Ă  moins de 0,01 de 2.

La fonction abs(x) donne la valeur absolue de x. Ainsi, abs(u - 2) mesure ici la distance entre \(u_n\) et 2.

Exemple
Se rapprocher de 2
PrĂȘt
Sortie

  

0.01 est la prĂ©cision demandĂ©e. Remplace-la par 0.001 : la boucle doit effectuer davantage d’itĂ©rations.

Une suite qui grandit sans limite#

Pour \(u_0=1\) et \(u_{n+1}=1{,}5u_n\), la suite grandit sans limite. Cela ne signifie pas que le programme doit tourner indéfiniment : on choisit un seuil concret, ici 1000.

Exemple
Premier dépassement de 1000
PrĂȘt
Sortie

  

Avec les seuils 100 puis 10 000, le rang augmente, mais le programme conserve une condition d’arrĂȘt prĂ©cise.

Observer une stabilisation numérique#

Lorsque la limite n’est pas utilisĂ©e dans la condition, on peut comparer deux termes consĂ©cutifs. Pour certaines suites convergentes, des termes successifs trĂšs proches donnent une indication numĂ©rique de stabilisation.

Cette observation n’est pas une preuve gĂ©nĂ©rale de convergence : une suite peut Ă©voluer trĂšs lentement ou avoir un comportement plus compliquĂ©. Il faut donc l’utiliser dans un contexte mathĂ©matique identifiĂ©.

Dans l’exemple suivant, u et suivant conservent deux termes consĂ©cutifs de la suite dĂ©finie par \(u_0=1\) et \(u_{n+1}=0{,}5u_n+2\).

Exemple
Comparer deux termes consécutifs
PrĂȘt
Sortie

  

À chaque passage, l’ancien terme suivant devient le terme actuel, puis un nouveau terme est calculĂ©. Diminue 0.01 et vĂ©rifie que l’écart final respecte la prĂ©cision demandĂ©e.

Comparer et modéliser#

Comparer deux évolutions#

Une recherche de seuil peut aussi comparer deux grandeurs. Deux offres proposent, aprĂšs n mois, les tarifs \(A_n=30+2n\) et \(B_n=18+3{,}5n\). On cherche le premier mois Ă  partir duquel la premiĂšre devient strictement moins chĂšre.

Exemple
Comparer deux tarifs
PrĂȘt
Sortie

  

La comparaison des valeurs au rang prĂ©cĂ©dent permet de contrĂŽler qu’il s’agit bien du premier mois convenable.

Une condition décalée#

Le programme suivant doit chercher le premier terme strictement supĂ©rieur Ă  100, mais il s’arrĂȘte trop tĂŽt. Il s’exĂ©cute sans message d’erreur : c’est le rĂ©sultat qu’il faut contrĂŽler.

À corriger
Corriger le cas frontiĂšre
Erreur attendue
Sortie

  
Comment chercher ?

La valeur 100 doit-elle faire continuer ou arrĂȘter la boucle ? Compare les mots « strictement supĂ©rieur » avec l’opĂ©rateur utilisĂ© dans la condition, puis vĂ©rifie aussi le terme prĂ©cĂ©dent.

Modéliser une situation#

Les programmes de seuil interviennent naturellement dans des questions de capital, d’endettement, de population ou de dĂ©croissance. Le modĂšle mathĂ©matique doit ĂȘtre choisi avant d’écrire la boucle : Python calcule les consĂ©quences du modĂšle, mais ne dĂ©cide pas si celui-ci dĂ©crit correctement la situation rĂ©elle.

Choisir la condition d’arrĂȘt#

Quatre recherches fréquentes#

Question

La boucle continue tant que


ContrĂŽle utile

dépasser un seuil

la valeur est encore sous le seuil

vérifier le terme précédent

approcher une limite connue

la distance Ă  la limite est trop grande

afficher l’écart final

observer une stabilisation

deux termes consécutifs sont trop éloignés

ne pas confondre observation et preuve

comparer deux évolutions

l’ordre recherchĂ© n’est pas encore atteint

comparer également le rang précédent

Exercices#

Exercice 1

Partir de u = 1 et doubler la valeur. Déterminer le premier rang pour lequel elle dépasse 1000.

À toi
Doubler jusqu’à 1000
À faire
Sortie

  

Exercice 2

Partir de x = 2 et ajouter 5 tant que x < 100. DĂ©terminer le nombre d’étapes nĂ©cessaires et afficher Ă©galement la valeur finale.

À toi
Ajouter 5 jusqu’à 100
À faire
Sortie

  

Exercice 3

On considÚre \(u_0=10\) et \(u_{n+1}=0{,}8u_n\). Déterminer le plus petit rang tel que \(u_n<1\).

À toi
Premier terme inférieur à 1
À faire
Sortie

  

Exercice 4

On considĂšre \(u_0=4\) et \(u_{n+1}=0{,}5u_n+1\). Calculer les termes jusqu’à ce que la diffĂ©rence entre deux termes consĂ©cutifs soit infĂ©rieure Ă  0.001, puis afficher la valeur obtenue.

Dans cette situation, la suite converge et cette valeur donne une approximation numĂ©rique de sa limite. Pour rĂ©utiliser ce principe avec une autre relation, on peut aussi prĂ©voir un nombre maximal d’itĂ©rations : une erreur dans la condition ne doit pas pouvoir crĂ©er une boucle sans fin.

À toi
Observer la stabilisation
À faire
Sortie

  

Exercice 5

Écrire une fonction premiere_puissance(a, seuil) qui renvoie le plus petit entier naturel n pour lequel \(a^n\) est strictement supĂ©rieur Ă  seuil. La fonction sera testĂ©e avec plusieurs valeurs de a strictement supĂ©rieures Ă  1.

À toi
PremiĂšre puissance suffisante
À faire
Sortie

  

Exercice 6

Un capital de 1 000 € augmente de 2 % chaque annĂ©e. Écrire une fonction capital_seuil(S) qui renvoie le premier nombre d’annĂ©es nĂ©cessaire pour que le capital soit supĂ©rieur ou Ă©gal Ă  S. Tester avec 1 200 € puis 1 500 €.

À toi
Évolution d’un capital
À faire
Sortie

  

Exercice 7

Deux populations sont modélisées par \(u_0=500\), \(u_{n+1}=1{,}08u_n\) et \(v_0=800\), \(v_{n+1}=v_n+20\). Déterminer le premier rang auquel u dépasse strictement v et afficher les deux valeurs à ce rang.

À toi
Comparer deux populations
À faire
Sortie

  

Exercice 8

Un emprunt de 10 000 € est soumis chaque mois Ă  un intĂ©rĂȘt de 0,4 %, puis un remboursement fixe de 300 € est versĂ©. Simuler l’évolution du capital restant dĂ» et dĂ©terminer le nombre de mensualitĂ©s nĂ©cessaires pour le rembourser. La derniĂšre mensualitĂ© ne doit pas rendre le capital nĂ©gatif dans le modĂšle affichĂ©.

À toi
Remboursement d’un emprunt
À faire
Sortie

  

Dans le parcours