informatique (tronc commun des prépas scientifiques) · Chapitre 11 · Exercice de TD
Quantité conjuguée et annulation catastrophique
La représentation des nombres · niveau 2
Énoncé
Montrer que l'évaluation naïve de la différence de racines pour est imprécise et proposer une formulation stable.
Corrigé
import math
x = 1e12
naive = math.sqrt(x + 1) - math.sqrt(x)
stable = 1 / (math.sqrt(x + 1) + math.sqrt(x))
- Version naïve :
5.00003807246685e-07 - Version stable :
4.99999999999875e-07Les deux racines ont pour valeur approchée . La soustraction directe de ces valeurs très proches élimine les 13 premiers chiffres de la mantisse, ne laissant subsister que le bruit d'arrondi. En multipliant par la quantité conjuguée, on élimine la soustraction au profit d'une somme stable, garantissant 16 chiffres significatifs.
Exercices semblables
- Mesurer l'epsilon machine corrigé
- La somme dans le bon ordre corrigé
- Le trou à corrigé
- Le coût réel des grands entiers corrigé
- L'égalité des flottants, version raisonnée corrigé