PROGRAMMATION SCIENTIFIQUE EN C PRO-1027. Les erreurs sur les calculs par ordinateur u...

27
PROGRAMMATION SCIENTIFIQUE EN C PRO-1027

Transcript of PROGRAMMATION SCIENTIFIQUE EN C PRO-1027. Les erreurs sur les calculs par ordinateur u...

Page 1: PROGRAMMATION SCIENTIFIQUE EN C PRO-1027. Les erreurs sur les calculs par ordinateur u Représentation des nombres réels u Types derreurs u Epsilon de.

PROGRAMMATION SCIENTIFIQUE EN C

PRO-1027

Page 2: PROGRAMMATION SCIENTIFIQUE EN C PRO-1027. Les erreurs sur les calculs par ordinateur u Représentation des nombres réels u Types derreurs u Epsilon de.

Les erreurs sur les calculs par ordinateur

Représentation des nombres réels Types d’erreurs Epsilon de la machine et nombre de chiffres

significatifs d’une représentation Propagation des erreurs Approximation de fonctions par série de

Taylor Travail pratique no. 1

Page 3: PROGRAMMATION SCIENTIFIQUE EN C PRO-1027. Les erreurs sur les calculs par ordinateur u Représentation des nombres réels u Types derreurs u Epsilon de.

Représentation des nombres réels

Représentation des réels courts (32 bits) selon la norme de l’IEEE

S Caractéristique Mantisse

31 30 23 22 0

Page 4: PROGRAMMATION SCIENTIFIQUE EN C PRO-1027. Les erreurs sur les calculs par ordinateur u Représentation des nombres réels u Types derreurs u Epsilon de.

Représentation des nombres réels

Représentation des réels longs (64 bits) selon la norme de l’IEEE

S Caractéristique Mantisse

63 62 52 51 0

Page 5: PROGRAMMATION SCIENTIFIQUE EN C PRO-1027. Les erreurs sur les calculs par ordinateur u Représentation des nombres réels u Types derreurs u Epsilon de.

Représentation des nombres réels

Un réel court en virgule flottante (S,C,M) a sa valeur décimale N donnée par

MN CS ,12)1( 127

• S: bit de signe• C: caractéristique • M: mantisse

Page 6: PROGRAMMATION SCIENTIFIQUE EN C PRO-1027. Les erreurs sur les calculs par ordinateur u Représentation des nombres réels u Types derreurs u Epsilon de.

Représentation des nombres réels

Représentation sous forme d’un réel court du nombre 87,125

210

210

210

001,1010111125,87

001,0125,0

101011187

Après normalisation

62 2010111001,1001,1010111

Page 7: PROGRAMMATION SCIENTIFIQUE EN C PRO-1027. Les erreurs sur les calculs par ordinateur u Représentation des nombres réels u Types derreurs u Epsilon de.

Représentation des nombres réels

Représentation sous forme d’un réel court du nombre 87,125

)6127133(:10000101

010111001

110

010111001,1

Mantisse avec le 1 implicite

Exposant

Mantisse entreposée

Caractéristique

Page 8: PROGRAMMATION SCIENTIFIQUE EN C PRO-1027. Les erreurs sur les calculs par ordinateur u Représentation des nombres réels u Types derreurs u Epsilon de.

Représentation des nombres réels

Représentation sous forme d’un réel court du nombre 87,125

0 100000101 01011100100000000000000

Page 9: PROGRAMMATION SCIENTIFIQUE EN C PRO-1027. Les erreurs sur les calculs par ordinateur u Représentation des nombres réels u Types derreurs u Epsilon de.

Types d’erreurs

Erreur absolue et erreur relative– Supposons que nous approximons un nombre x par

x’

– Les erreurs absolue et relative sont données par

xxx

xxe

xxe

r

a

/'1'

'

Page 10: PROGRAMMATION SCIENTIFIQUE EN C PRO-1027. Les erreurs sur les calculs par ordinateur u Représentation des nombres réels u Types derreurs u Epsilon de.

Types d’erreurs

Erreur absolue et erreur relative– Supposons que nous approximons par ’=3.1416

– Si la valeur de =3.14159265, les erreurs absolue et relative sont données par

6

6

1034.2'

1035.7'

r

a

e

e• L’approximation est précise à 4 décimales près• Avec 5 chiffres significatifs

Page 11: PROGRAMMATION SCIENTIFIQUE EN C PRO-1027. Les erreurs sur les calculs par ordinateur u Représentation des nombres réels u Types derreurs u Epsilon de.

Types d’erreurs

Erreur d’arrondi– Ce type d’erreur survient lorsque nous emmagasi-

nons des nombres dans un espace physique (mé-moire) de dimension finie

– Ce type d’erreur fait donc référence à la représenta-tion des nombres dans l’ordinateur

Page 12: PROGRAMMATION SCIENTIFIQUE EN C PRO-1027. Les erreurs sur les calculs par ordinateur u Représentation des nombres réels u Types derreurs u Epsilon de.

Types d’erreurs

Erreur d’arrondi– Considérons l’addition de 2 réels chacun avec 15

bits significatifs

1

7

2000101001111000,0

2100111111011011,0

2345.1

45,123

b

a

b

a

Page 13: PROGRAMMATION SCIENTIFIQUE EN C PRO-1027. Les erreurs sur les calculs par ordinateur u Représentation des nombres réels u Types derreurs u Epsilon de.

Types d’erreurs

Erreur d’arrondi– Alignement de b

001111000011111100101,0

011100000010000001001,0

100111111011011,0

2011100000010000001001,0 7

ba

b

Page 14: PROGRAMMATION SCIENTIFIQUE EN C PRO-1027. Les erreurs sur les calculs par ordinateur u Représentation des nombres réels u Types derreurs u Epsilon de.

Types d’erreurs

Erreur d’arrondi– Arrondissement du résultat

68,1242011111111100101,0

011111111100101,0

001111000011111100101,0

7

Page 15: PROGRAMMATION SCIENTIFIQUE EN C PRO-1027. Les erreurs sur les calculs par ordinateur u Représentation des nombres réels u Types derreurs u Epsilon de.

Types d’erreurs

Erreur de troncature– Ce type d’erreur survient quand par exemple nous

utilisons un nombre de termes finis pour faire l’approximation d’une série infinie (ex: série de Taylor)

– L’utilisation d ’un algorithme avec un nombre d’itérations discrets peut aussi causer ce type d’erreur

Page 16: PROGRAMMATION SCIENTIFIQUE EN C PRO-1027. Les erreurs sur les calculs par ordinateur u Représentation des nombres réels u Types derreurs u Epsilon de.

Epsilon de la machine et nombre de chiffres significatifs d’une représentation

Lorsque nous effectuons l’addition de 2 nombres réels le plus petit des 2 est décalé ce qui occasionne une perte de précision

Dans des cas extrêmes il peut arriver que le plus petit nombre n’ai aucune signifiance dans le calcul, ayant été décalé complètement vers la droite

Le nombre de décalages maximum que peut subir un nombre avant qu’il n’ai plus de signifiance corres-pond au nombre de chiffres significatifs de la repré-sentation

Page 17: PROGRAMMATION SCIENTIFIQUE EN C PRO-1027. Les erreurs sur les calculs par ordinateur u Représentation des nombres réels u Types derreurs u Epsilon de.

Epsilon de la machine et nombre de chiffres significatifs d’une représentation

Le plus petit nombre signifiant d’une représenta-tion est appelé epsilon de la machine

Ce nombre représente la plus petite valeur de x pour laquelle 1+x>1

Page 18: PROGRAMMATION SCIENTIFIQUE EN C PRO-1027. Les erreurs sur les calculs par ordinateur u Représentation des nombres réels u Types derreurs u Epsilon de.

Epsilon de la machine et nombre de chiffres significatifs d’une représentation

Algorithme qui trouve le epsilon de la machine et le nombre de chiffres significatifs (cas binaire)eps=1

n=0

TTQ 1+eps>1 FAIRE

eps = eps/2

n++

FIN TTQ

eps = eps * 2

n = n-1

imprimer eps et n

Page 19: PROGRAMMATION SCIENTIFIQUE EN C PRO-1027. Les erreurs sur les calculs par ordinateur u Représentation des nombres réels u Types derreurs u Epsilon de.

Propagation des erreurs

Lorsque une opération telle que l’addition est répétée il peut survenir un phénomène de propaga-tion des erreurs d’arrondis

Alors la sommation suivante peut dans certain cas ne pas donner 1

N

N1

/11

Page 20: PROGRAMMATION SCIENTIFIQUE EN C PRO-1027. Les erreurs sur les calculs par ordinateur u Représentation des nombres réels u Types derreurs u Epsilon de.

Propagation des erreurs

De plus, l’ordre des sommations a aussi une influence sur la propagation des erreurs

Par conséquent les 2 sommations suivantes devraient donner la même valeur mais ce n’est pas le cas quand N est le moindrement grand

1

1

/1/1Ni

nN

i

n ii

Page 21: PROGRAMMATION SCIENTIFIQUE EN C PRO-1027. Les erreurs sur les calculs par ordinateur u Représentation des nombres réels u Types derreurs u Epsilon de.

Propagation des erreurs

Algorithme de sommation successivesaut = 1/N

somme = 0

POUR i = 1 à N FAIRE

somme = somme + saut

FIN POUR

imprimer somme et erreur (1-somme)

Page 22: PROGRAMMATION SCIENTIFIQUE EN C PRO-1027. Les erreurs sur les calculs par ordinateur u Représentation des nombres réels u Types derreurs u Epsilon de.

Propagation des erreurs

Algorithme de sommation ascendantsomme = 0

POUR i = 1 à N par saut de 1 FAIRE

somme = somme + 1/in

FIN POUR

imprimer somme

Page 23: PROGRAMMATION SCIENTIFIQUE EN C PRO-1027. Les erreurs sur les calculs par ordinateur u Représentation des nombres réels u Types derreurs u Epsilon de.

Propagation des erreurs

Algorithme de sommation descendantsomme = 0

POUR i = N à 1 par saut de -1 FAIRE

somme = somme + 1/in

FIN POUR

imprimer somme

Page 24: PROGRAMMATION SCIENTIFIQUE EN C PRO-1027. Les erreurs sur les calculs par ordinateur u Représentation des nombres réels u Types derreurs u Epsilon de.

Approximation de fonction par série de Taylor

Le développement en série de Taylor premet de faire l’approximation de fonctions suffisamment différentiables

Nous pouvons évaluer la valeur d’une fonction dans le voisinage d’un point de référence par

!

)(......

!2

)('')(')()(

)(2

n

hafhafhafafhaf

nn

Page 25: PROGRAMMATION SCIENTIFIQUE EN C PRO-1027. Les erreurs sur les calculs par ordinateur u Représentation des nombres réels u Types derreurs u Epsilon de.

Approximation de fonction par série de Taylor

L’erreur de troncature découlant du développe-ment en série de Taylor avec n termes dérivés est donnée avec sa borne supérieure par

)!1(

)(max

)!1(

)(1)1(1)1(

n

htf

n

hcfnn

hata

nn

Page 26: PROGRAMMATION SCIENTIFIQUE EN C PRO-1027. Les erreurs sur les calculs par ordinateur u Représentation des nombres réels u Types derreurs u Epsilon de.

Approximation de fonction par série de Taylor

Pour la fonction cosinus avec a = 0 et un intervalle des valeurs de h [0,/2] et n=4

0

242

432

)!2(

)1(....

!4!21)cos(

...!4

)0cos(

!3

)0sin(

!2

)0cos()0sin()0cos()cos(

0

)cos()(

n

nn

n

xxxx

xxxxx

xh

a

aaf

Page 27: PROGRAMMATION SCIENTIFIQUE EN C PRO-1027. Les erreurs sur les calculs par ordinateur u Représentation des nombres réels u Types derreurs u Epsilon de.

Approximation de fonction par série de Taylor

Pour la fonction cosinus, l’erreur de troncature est bornée par le premier terme de la série omis, cette erreur de troncature est bornée par (n=4)

720120

)sin(max

65

0

hhtht