Exercice — dans l'esprit des sujets du bac
Partie A — Méthode de Héron pour .
- On pose et . Vérifier que si la suite converge vers , alors .
- Écrire un algorithme qui calcule à près par la méthode de Héron.
- Préciser les données et le résultat.
- Quelle précaution faut-il prendre sur la valeur de ?
- Donner la trace pour , , (3 premières itérations).
Partie B — Approximation de par la série de Leibniz.
- On admet que . Écrire un algorithme qui calcule à près en s'arrêtant quand le terme courant .
- Comparer la vitesse de convergence de la série de Leibniz et de la méthode de Héron. Laquelle préférer en pratique ?
Voir la correction commentéeAprès avoir posé votre démarche
A.1. Limite de Héron. Si et , alors , soit , d'où et car .
A.2. Algorithme. TDOL : x, xnew réels (itérés). Type/Nature : a, eps réels avec a > 0.
DEF PROC Heron(a, eps : réel)
Variables x, xnew : réel
Début
Si a <= 0 alors
Écrire("Erreur : a doit être strictement positif")
Sinon
x ← a
xnew ← (x + a/x) / 2
TantQue ABS(xnew - x) > eps faire
x ← xnew
xnew ← (x + a/x) / 2
FinTantQue
Écrire(xnew)
FinSi
Fin
A.3. Trace pour , , :
- it.1 : xnew = (5+1)/2 = 3
- it.2 : xnew = (3+5/3)/2 ≈ 2,3333
- it.3 : xnew ≈ (2,3333+5/2,3333)/2 ≈ 2,2381
On retourne une approximation de . Contrainte : a dans ]0..+∞[ ; ne pas utiliser comme critère (racine inconnue).
B. Approximation de par Leibniz. .
DEF PROC Leibniz(eps : réel)
Variables s, terme, signe : réel ; k : entier
Début
s ← 0 ; signe ← 1 ; k ← 0
terme ← 1
TantQue ABS(terme) > eps/4 faire
s ← s + terme
signe ← -signe
k ← k + 1
terme ← signe / (2*k + 1)
FinTantQue
Écrire(4*s)
Fin
TDOL pour Leibniz : s, terme, signe réels ; k entier. Type/Nature : accumulateur et terme courant. On retourne comme approximation de . Le terme est recalculé après avoir été ajouté, de sorte que le test porte sur le prochain terme : on s'arrête dès que celui-ci passe sous et il n'est pas sommé.
B.2. Comparaison. Pour Leibniz, le terme courant majore l'erreur : atteindre sur demande termes, en demanderait deux millions — convergence très lente (linéaire). Héron double le nombre de décimales exactes à chaque itération : à en quatre itérations. En pratique on préfère les méthodes de type Newton/Héron ; la série de Leibniz n'a qu'un intérêt pédagogique.
Équivalent Python (extrait).def heron(a, eps):
x = a
xnew = (x + a/x) / 2
while abs(xnew - x) > eps:
x = xnew
xnew = (x + a/x) / 2
return xnew
print(heron(5.0, 1e-3))