Quantité conjuguée et annulation catastrophique
Exercice · informatique (tronc commun des prépas scientifiques), chapitre 11 — La représentation des nombres
É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.
Les autres exercices de ce chapitre Le cours du chapitre
Un blocage sur cet exercice ? Le tuteur d'Adloun guide par questions, sans donner la réponse.