Master Électronique, Automatique, Informatique Université de Perpignan Via Domitia Semestre 9 (M2) - Mention Informatique Année universitaire 2012/2013 Qualité Numérique du Logiciel Erreur d arrondi, cancellation et absorption Guillaume Revy guillaume.revy@univ-perp.fr Université de Perpignan Via Domitia Guillaume Revy (Univ. de Perpignan Via Domitia) Erreur d arrondi, cancellation et absorption 1/16
Plan du cours 1. Définition : epsilon-machine et ulp 2. Erreur absolue et erreur relative 3. Phénomène d absorption et de cancellation Guillaume Revy (Univ. de Perpignan Via Domitia) Erreur d arrondi, cancellation et absorption 2/16
Définition : epsilon-machine et ulp Plan du cours 1. Définition : epsilon-machine et ulp 2. Erreur absolue et erreur relative 3. Phénomène d absorption et de cancellation Guillaume Revy (Univ. de Perpignan Via Domitia) Erreur d arrondi, cancellation et absorption 3/16
Définition : epsilon-machine et ulp Epsilon-machine et ulp (1) On note x une valeur flottante en précision p x = ± 1.m 1 m 2 m p 1 2 e. Le premier nombre flottant x supérieure à 1 est 1.00 001 = 1 + 2 (p 1). Guillaume Revy (Univ. de Perpignan Via Domitia) Erreur d arrondi, cancellation et absorption 4/16
Définition : epsilon-machine et ulp Epsilon-machine et ulp (1) On note x une valeur flottante en précision p x = ± 1.m 1 m 2 m p 1 2 e. Le premier nombre flottant x supérieure à 1 est 1.00 001 = 1 + 2 (p 1). On appelle epsilon-machine la distance entre ce nombre et le nombre 1 : ε = 0.00 001 = 2 (p 1). Guillaume Revy (Univ. de Perpignan Via Domitia) Erreur d arrondi, cancellation et absorption 4/16
Définition : epsilon-machine et ulp Epsilon-machine et ulp (1) On note x une valeur flottante en précision p x = ± 1.m 1 m 2 m p 1 2 e. Le premier nombre flottant x supérieure à 1 est 1.00 001 = 1 + 2 (p 1). On appelle epsilon-machine la distance entre ce nombre et le nombre 1 : ε = 0.00 001 = 2 (p 1). On note ulp(x) : ulp(x) = 0.00 001 2 e = 2 (p 1) 2 e = ε 2 e. Guillaume Revy (Univ. de Perpignan Via Domitia) Erreur d arrondi, cancellation et absorption 4/16
Définition : epsilon-machine et ulp Epsilon-machine et ulp (2) On note Unit in the Last Place (ulp) le poids du plus petit bit de la mantisse d un nombre flottant x { ulp(x) = x + x si x > 0, ulp(x) = x x si x < 0. Guillaume Revy (Univ. de Perpignan Via Domitia) Erreur d arrondi, cancellation et absorption 5/16
Définition : epsilon-machine et ulp Epsilon-machine et ulp (2) On note Unit in the Last Place (ulp) le poids du plus petit bit de la mantisse d un nombre flottant x { ulp(x) = x + x si x > 0, ulp(x) = x x si x < 0. Au voisinage des puissances de la base β, il peut y avoir ambiguité il y a 3 définitions de ulp(x) légèrement diférentes : Kahan ulp(x) est la longueur de l intervalle I dont les bornes sont les nombres flottants les plus proches de x (même si x / I, même si x est une de ces bornes) Harrison ulp(x) est la distance entre les deux nombres flottants les plus proches a et b et tels que a x b et a b Goldberg ulp(x) si x [β e,β e+1 ) alors ulp(x) = β e p+1 Guillaume Revy (Univ. de Perpignan Via Domitia) Erreur d arrondi, cancellation et absorption 5/16
Définition : epsilon-machine et ulp Différence des trois définitions de ulp *** FAIRE UN JOLI DESSIN (JM Muller) *** Guillaume Revy (Univ. de Perpignan Via Domitia) Erreur d arrondi, cancellation et absorption 6/16
Erreur absolue et erreur relative Plan du cours 1. Définition : epsilon-machine et ulp 2. Erreur absolue et erreur relative 3. Phénomène d absorption et de cancellation Guillaume Revy (Univ. de Perpignan Via Domitia) Erreur d arrondi, cancellation et absorption 7/16
Erreur absolue et erreur relative Erreur absolue On note x une valeur réelle x = ± 1.m 1 m 2 m p 1 m p m p+1 2 e. et ˆx = round(x) l arrondi de x dans un format en précision p. Guillaume Revy (Univ. de Perpignan Via Domitia) Erreur d arrondi, cancellation et absorption 8/16
Erreur absolue et erreur relative Erreur absolue On note x une valeur réelle x = ± 1.m 1 m 2 m p 1 m p m p+1 2 e. et ˆx = round(x) l arrondi de x dans un format en précision p. On appelle erreur absolue la valeur définie de la manière suivante : abserr(x) = ˆx x. sa valeur dépend de la précision du format et du mode d arrondi utilisé pour calculé ˆx Guillaume Revy (Univ. de Perpignan Via Domitia) Erreur d arrondi, cancellation et absorption 8/16
Erreur absolue et erreur relative Erreur absolue On note x une valeur réelle x = ± 1.m 1 m 2 m p 1 m p m p+1 2 e. et ˆx = round(x) l arrondi de x dans un format en précision p. On appelle erreur absolue la valeur définie de la manière suivante : abserr(x) = ˆx x. sa valeur dépend de la précision du format et du mode d arrondi utilisé pour calculé ˆx Si x est dans l intervalle des nombres normalisés, on a, quelque soit le mode d arrondi : abserr(x) < 2 (p 1) 2 e ulp(x). on dit que l erreur est inférieure à un ulp Guillaume Revy (Univ. de Perpignan Via Domitia) Erreur d arrondi, cancellation et absorption 8/16
Erreur absolue et erreur relative Erreur absolue On note x une valeur réelle x = ± 1.m 1 m 2 m p 1 m p m p+1 2 e. et ˆx = round(x) l arrondi de x dans un format en précision p. On appelle erreur absolue la valeur définie de la manière suivante : abserr(x) = ˆx x. sa valeur dépend de la précision du format et du mode d arrondi utilisé pour calculé ˆx En arrondi au plus près, si x est dans l intervalle des nombres normalisés, on a alors : abserr(x) < 2 (p) 2 e ulp(x). 2 on dit que l erreur est inférieure à un demi ulp Guillaume Revy (Univ. de Perpignan Via Domitia) Erreur d arrondi, cancellation et absorption 8/16
Erreur absolue et erreur relative Erreur relative On note x une valeur réelle ( 0) x = ± 1.m 1 m 2 m p 1 m p m p+1 2 e. et ˆx = round(x) l arrondi de x dans un format en précision p. Guillaume Revy (Univ. de Perpignan Via Domitia) Erreur d arrondi, cancellation et absorption 9/16
Erreur absolue et erreur relative Erreur relative On note x une valeur réelle ( 0) x = ± 1.m 1 m 2 m p 1 m p m p+1 2 e. et ˆx = round(x) l arrondi de x dans un format en précision p. On appelle erreur relative la valeur définie de la manière suivante : relerr(x) = ˆx x. x sa valeur dépend de la précision du format et du mode d arrondi utilisé pour calculé ˆx Guillaume Revy (Univ. de Perpignan Via Domitia) Erreur d arrondi, cancellation et absorption 9/16
Erreur absolue et erreur relative Erreur relative On note x une valeur réelle ( 0) x = ± 1.m 1 m 2 m p 1 m p m p+1 2 e. et ˆx = round(x) l arrondi de x dans un format en précision p. On appelle erreur relative la valeur définie de la manière suivante : relerr(x) = ˆx x. x sa valeur dépend de la précision du format et du mode d arrondi utilisé pour calculé ˆx Si x est dans l intervalle des nombres normalisés, on a, quelque soit le mode d arrondi : x > 2 e et relerr(x) < 2 (p 1) 2 e 2 e ε. Guillaume Revy (Univ. de Perpignan Via Domitia) Erreur d arrondi, cancellation et absorption 9/16
Erreur absolue et erreur relative Erreur relative On note x une valeur réelle ( 0) x = ± 1.m 1 m 2 m p 1 m p m p+1 2 e. et ˆx = round(x) l arrondi de x dans un format en précision p. On appelle erreur relative la valeur définie de la manière suivante : relerr(x) = ˆx x. x sa valeur dépend de la précision du format et du mode d arrondi utilisé pour calculé ˆx En arrondi au plus près, si x est dans l intervalle des nombres normalisés, on a alors : x > 2 e et relerr(x) < 2 (p 1) 2 e 2 e ε 2. Guillaume Revy (Univ. de Perpignan Via Domitia) Erreur d arrondi, cancellation et absorption 9/16
Erreur absolue et erreur relative Nombre de chiffres significatifs Le nombre de bits significatifs du résultat ˆx par rapport à x peut être défini de la manière suivante : n bits = log 2 ( relerr(x) ) avec log2 ( relerr(x) ) > p 1, et en arrondi au plus près : n bits = log 2 ( relerr(x) ) avec log2 ( relerr(x) ) > p. Pour déterminer le nombre de chiffres décimaux significatifs : n chiffres = log 10 ( relerr(x) ). Guillaume Revy (Univ. de Perpignan Via Domitia) Erreur d arrondi, cancellation et absorption 10/16
Erreur absolue et erreur relative Relation entre erreur relative et arrondi correct De la définition de l erreur relative, on peut déduire : ˆx = x (1 + δ) avec δ = ˆx x x et δ < ε. Soit deux nombres flottants a et b, et une opération arithmétique. Donc, quelque soit le mode d arrondi utilisé, on a : round(a b) = (a b)(1 + δ) avec δ < ε. Remarque : en arrondi au plus près, on a : round(a b) = (a b)(1 + δ) avec δ < ε 2. Guillaume Revy (Univ. de Perpignan Via Domitia) Erreur d arrondi, cancellation et absorption 11/16
Phénomène d absorption et de cancellation Plan du cours 1. Définition : epsilon-machine et ulp 2. Erreur absolue et erreur relative 3. Phénomène d absorption et de cancellation Guillaume Revy (Univ. de Perpignan Via Domitia) Erreur d arrondi, cancellation et absorption 12/16
Phénomène d absorption et de cancellation Introduction L arithmétique flottante est une arithmétique finie une erreur se produit à chaque opération Guillaume Revy (Univ. de Perpignan Via Domitia) Erreur d arrondi, cancellation et absorption 13/16
Phénomène d absorption et de cancellation Introduction L arithmétique flottante est une arithmétique finie une erreur se produit à chaque opération Une opération isolée le meilleur résultat = l arrondi correct du résultat exact, suivant le mode d arrondi Mais une suite de calculs peut entraîner d importantes erreurs de calcul, dues à l accumulation des erreurs d arrondi Guillaume Revy (Univ. de Perpignan Via Domitia) Erreur d arrondi, cancellation et absorption 13/16
Phénomène d absorption et de cancellation Introduction L arithmétique flottante est une arithmétique finie une erreur se produit à chaque opération Une opération isolée le meilleur résultat = l arrondi correct du résultat exact, suivant le mode d arrondi Mais une suite de calculs peut entraîner d importantes erreurs de calcul, dues à l accumulation des erreurs d arrondi En plus des erreurs dues à l arithmetique, les deux sources principales d erreurs d arrondi sont : l absorption et la cancellation. Guillaume Revy (Univ. de Perpignan Via Domitia) Erreur d arrondi, cancellation et absorption 13/16
Phénomène d absorption et de cancellation Cancellation (ou élimination) Soient les deux nombres binaires suivant : x = (1.10010010000111111011011) 2 et y = (1.10010010000110000000000) 2. Leur différence est : z = x y = (0.00000000000001111011011) 2. et après renormalisation : z = x y = (1.11101101100000000000000) 2 2 14. Guillaume Revy (Univ. de Perpignan Via Domitia) Erreur d arrondi, cancellation et absorption 14/16
Phénomène d absorption et de cancellation Cancellation (ou élimination) Soient les deux nombres binaires suivant : x = (1.10010010000111111011011) 2 et y = (1.10010010000110000000000) 2. Leur différence est : z = x y = (0.00000000000001111011011) 2. et après renormalisation : z = x y = (1.11101101100000000000000) 2 2 14. On parle de cancellation lorsqu il n y a presque plus de bit significatifs : cancellation catastrophique Guillaume Revy (Univ. de Perpignan Via Domitia) Erreur d arrondi, cancellation et absorption 14/16
Phénomène d absorption et de cancellation Cancellation (ou élimination) Soient les deux nombres binaires suivant : x = (1.10010010000111111011011) 2 et y = (1.10010010000110000000000) 2. Leur différence est : z = x y = (0.00000000000001111011011) 2. et après renormalisation : z = x y = (1.11101101100000000000000) 2 2 14. On parle de cancellation lorsqu il n y a presque plus de bit significatifs : cancellation catastrophique Le phénomène survient lors de la soustraction de deux nombres relativement proches résultat petit relativement aux opérandes Guillaume Revy (Univ. de Perpignan Via Domitia) Erreur d arrondi, cancellation et absorption 14/16
Phénomène d absorption et de cancellation Absorption Soient les deux nombres binaires suivant : x = (1100100100001111110110.11) 2 et y = (1.10010010000110000000000) 2. Leur somme est : z = x + y = (1100100100001111111000.01) 2. et l erreur : erreur = (0.00010010000110000000000) 2. Guillaume Revy (Univ. de Perpignan Via Domitia) Erreur d arrondi, cancellation et absorption 15/16
Phénomène d absorption et de cancellation Absorption Soient les deux nombres binaires suivant : x = (1100100100001111110110.11) 2 et y = (1.10010010000110000000000) 2. Leur somme est : z = x + y = (1100100100001111111000.01) 2. et l erreur : erreur = (0.00010010000110000000000) 2. On parle d absorption combiné avec la cancellation catastrophique a = 1 et ;b = 2 30 (a b) a = 0. Guillaume Revy (Univ. de Perpignan Via Domitia) Erreur d arrondi, cancellation et absorption 15/16
Phénomène d absorption et de cancellation Absorption Soient les deux nombres binaires suivant : x = (1100100100001111110110.11) 2 et y = (1.10010010000110000000000) 2. Leur somme est : z = x + y = (1100100100001111111000.01) 2. et l erreur : erreur = (0.00010010000110000000000) 2. On parle d absorption combiné avec la cancellation catastrophique a = 1 et ;b = 2 30 (a b) a = 0. Le phénomène survient lors de l addition de deux nombres ayant des ordres de grandeur tr`s différents perte de l information sur le petit Guillaume Revy (Univ. de Perpignan Via Domitia) Erreur d arrondi, cancellation et absorption 15/16
Questions? Guillaume Revy (Univ. de Perpignan Via Domitia) Erreur d arrondi, cancellation et absorption 16/16