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
terme ← signe / (2k + 1)
s ← s + terme
signe ← -signe
k ← k + 1
FinTantQue
Écrire(4s)
Fin
```
TDOL pour Leibniz : `s`, `terme`, `signe` réels ; `k` entier. Type/Nature : accumulateur et terme courant. On retourne comme approximation de .
Équivalent Python (extrait).
```python
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))
```