Introduction
Dans ce cinquième chapitre, on utilise les algorithmes pour approcher la limite d’une suite ou une constante célèbre. Le principe : faire une recherche de seuil sur l’écart |un − ℓ|, en répétant tant que cet écart est supérieur à la précision 10−p.
Quatre packs : une suite dont la limite est connue, la méthode de Héron (ou de Babylone) pour approcher √2, une limite inconnue encadrée par deux suites, et la comparaison de deux vitesses de convergence vers le nombre e.
Chaque fois, l’algorithme, le programme Python et sa version TI-82 sont donnés, avec le raisonnement qui justifie l’arrêt de la boucle et des exercices pour prolonger (Héron pour √3, approximation de e).
Chapitre précédent : chapitre 4 – rechercher un seuil · chapitre suivant : chapitre 6 – la méthode de dichotomie. Retrouvez tous les chapitres dans la rubrique Algorithmique et Python.
Cours proposé par Pr. Elakili sur Mission Maths 360.
Méthode
Si
converge vers
, on dit que
est une valeur approchée de
à
près lorsque
. Pour trouver le premier rang où c’est le cas, on fait une recherche de seuil (chapitre 4) sur l’écart : on répète tant que l’écart est
. On prend en général
(«
décimales »).
Pourquoi la boucle s’arrête : comme
, l’écart
finit par être plus petit que tout nombre
.
1. Limite connue, limite inconnue
Pack 1 – limite connue
,
; on a montré que
, donc
croît vers
.
Algorithme
Saisir p
n ← 0 ; u ← 2
Tant que 6 − u ⩾ 10−p
u ← 0,5 u + 3
n ← n + 1
Fin Tant que
Afficher n
Python
def rang(p):
n = 0
u = 2
while 6 - u >= 10**(-p):
u = 0.5*u + 3
n = n + 1
return n
TI-82
:Prompt P
:0→N
:2→U
:TantQue 6-U⩾10^(-P)
:0.5U+3→U
:N+1→N
:Fin
:Disp N
| p | 1 | 2 | 3 | 6 |
|---|---|---|---|---|
rang(p) | 6 | 9 | 12 | 22 |
Contrôle pour
:
, mais
. Ici la suite est croissante, donc
: pas besoin de valeur absolue.
Pack 2 – la racine carrée de 2 par la méthode de Héron (ou de Babylone)
On pose
et
. On admet que pour tout
:
et que
converge vers
. Ainsi
est encadré par
et
: dès que l’amplitude
est inférieure à
, on a une valeur approchée de
à
près, sans connaître
!
Algorithme
Saisir ε
u ← 2
Tant que u − 2/u ⩾ ε
u ← (u + 2/u)/2
Fin Tant que
Afficher 2/u et u
Python
def heron(eps):
u = 2
while u - 2/u >= eps:
u = (u + 2/u) / 2
return 2/u, u
TI-82
:Prompt E
:2→U
:TantQue U-2/U⩾E
:(U+2/U)/2→U
:Fin
:Disp 2/U,U
| n | ||
|---|---|---|
| 0 | 1 | 2 |
| 1 | 1,333 333 | 1,5 |
| 2 | 1,411 764 7 | 1,416 666 7 |
| 3 | 1,414 211 4 | 1,414 215 7 |
| 4 | 1,414 213 562 37 | 1,414 213 562 37 |
heron(10**-6) s’arrête après 4 tours seulement et renvoie 1,414 213 56… Le nombre de décimales exactes double à peu près à chaque étape : c’est une méthode extrêmement rapide (comparer avec la dichotomie, chapitre 6).
Pack 3 – limite inconnue : deux suites qui l’encadrent
On reprend les suites du chapitre 2 (pack 4) :
,
,
,
. On admet que
pour tout
, où
est la limite commune. On s’arrête dès que l’amplitude
est inférieure à
.
Algorithme
Saisir p
u ← 1 ; v ← 12 ; n ← 0
Tant que v − u ⩾ 10−p
w ← u
u ← (u + 2v)/3
v ← (w + 3v)/4
n ← n + 1
Fin Tant que
Afficher n, u, v
Python
def encadre(p):
u, v, n = 1, 12, 0
while v - u >= 10**(-p):
u, v = ((u + 2*v)/3,
(u + 3*v)/4)
n = n + 1
return n, u, v
TI-82
:Prompt P
:1→U
:12→V
:0→N
:TantQue V-U⩾10^(-P)
:U→W
:(U+2V)/3→U
:(W+3V)/4→V
:N+1→N
:Fin
:Disp N,U,V
Résultats : pour
, le programme renvoie
et
; pour
,
. On conjecture
(ce que l’on démontre en étudiant la suite
, constante égale à
).
2. Vitesse de convergence
Pack 4 – comparer deux vitesses de convergence vers 
On considère
(on admet que
et
).
Algorithme
Saisir ε
n ← 1
Tant que e − (1 + 1/n)n ⩾ ε
n ← n + 1
Fin Tant que
Afficher n
Python
from math import e
def rang_e(eps):
n = 1
while e-(1+1/n)**n >= eps:
n = n + 1
return n
TI-82
:Prompt E
:1→N
:TantQue e-(1+1/N)^N⩾E
:N+1→N
:Fin
:Disp N
(E est une variable ;
la constante e : 2nde ÷)
Ici la suite est explicite : on ne garde pas de terme en mémoire, on recalcule
à chaque tour.
Résultats : rang_e(0.01) renvoie 135 et rang_e(0.001) renvoie 1 359 : pour gagner une décimale, il faut environ 10 fois plus de termes. Avec la somme
du chapitre 3,
suffit déjà pour
: toutes les suites ne convergent pas à la même vitesse.
3. À vous de jouer
Exercice 1 · À vous de jouer ★★★
Algorithme + Python + TI-82.
- Adapter la méthode de Héron pour
:
,
. Combien d’étapes pour
? - Avec la fonction
approx_e(n)du chapitre 3, écrire un programme qui renvoie le plus petit
tel que
(en Python, from math import e; sur la TI, e est obtenu par 2nde ln puis 1). - Dans le pack 1, déterminer par le calcul le plus petit
tel que
(à la calculatrice), puis comparer avec la valeur renvoyée par rang(20)en Python. Expliquer.
Corrigé
1.
.
⇝ 3 étapes
2.
⇝ ![]()
3. Le calcul exact donne
, mais Python renvoie
: au rang
, l’écart
est trop petit pour la machine (environ 16 chiffres significatifs),
est arrondi à exactement
et l’écart calculé vaut
. On ne demande jamais une précision supérieure à celle de la machine.
Télécharger le chapitre en PDF
Pour réviser sur papier, téléchargez le chapitre complet au format PDF (avec les réponses des exercices).
