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 :
On cherche le plus petit entier \(n\) tel que \(u_n>100\).
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.
La boucle sâarrĂȘte sur la premiĂšre valeur situĂ©e au-delĂ du seuil.
Atteindre une valeur cible#
Le mĂȘme mĂ©canisme peut compter le nombre dâĂ©tapes dâune Ă©volution plus simple.
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 :
On cherche le plus petit rang tel que \(u_n\geqslant50\).
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
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.
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.
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\).
Ă 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.
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.
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#
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.
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.
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\).
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.
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.
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 âŹ.
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.
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Ă©.
Dans le parcours