Académique Documents
Professionnel Documents
Culture Documents
Stphane Canu
stephane.canu@litislab.eu
ASI 3 - Calcul numrique pour lingnieur
January 9, 2011
Plan
Calcul
La nature des problmes
Sources derreur
prcision
Calculs
January 9, 2011
2 / 15
Exemple : Ax = b
minx kC x dk2
si A nest pas carre soit il ny a pas de solution, soit il en existe une
infinit
si A est carre et singulire, l encore soit il ny a pas de solution, soit
il en existe une infinit
si A est rgulire, la solution dpend continment des donnes : si on
perturbe le second membre du problme (b b + b ) la solution reste
stable, si kb k 0 :
Ax = b
A(x + x ) = b + b
kx k Mkb k
Exemple : Ax = b
C = kAk kA1 k =
k1 k
kn k
Sources derreur
pour un problme bien pos, on tudie maintenant la nature dune solution
propose.
Les diffrentes sources derreur :
1
I
I
de troncature
darrondi (de reprsentation)
Erreurs de calcul
erreur darrondi :
fl (x) = x +
ce processus dapproximation apporte des gains de temps de calcul au
mpris de la prcision.
erreur de troncature : cest lerreur lie au schma numrique utilis :
I
lookup table
approximation par srie entire au voisinage du point considr :
exp(x) = 1 + x +
x3
x2
+
2!
3!
fl (x) =
Notation
1/7
ln 2
Representation
0, 142857
0.693 147 180 559 94...
Approximation
0.142 857
0.693 147
Erreur
0.000 000 142 857
0.000 000 180 559 94. . .
In the 37th second of flight of the Ariane rocket (launched on June 4, 1996),
the inertial reference system attempted to convert a 64-bit floating-point
number to a 16-bit number, but instead triggered an overflow error which
was interpreted by the guidance system as flight data, causing the rocket to
veer off course and be destroyed.
Erreurs de troncature
f (x + ) f (x )
+ et
2
nombres
calcul de fonctions (approximation partir de tables)
calculs dintgrales et de drives
algorithmes itratifs...
Arithmtique flotante
f = d0 .d1 d2 . . . dp1 e
{z
}
|
d0 6= 0
mantisse
: la base (typiquement 2)
p la prcision (typiquement 24 pour une simple prcision IEEE
standard 754)
e lexposant : L e U
fl (0.1) = 1.10011001100110011001101 24
alors que pour = 10 il pourrait tre reprsent sans erreur :
fl (0.1) = 1.00 101
Encodage
32 bits
43 bits
64 bits
80 bits
Signe
1 bit
1 bit
1 bit
1 bit
Exposant
8 bits
8 bits
11 bits
15 bits
Mantisse
23 bits
23 bits
52 bits
64 bits
Par example, en C
le compilateur gcc utilise le format simple prcision pour les variables de type
float, double prcision pour les variables de type double et double prcision
tendue pour les variables de type long double
Arithmtique flotante
F = {f | f = d0 .d1 d2 . . . dp1 e , d0 6= 0}
LeM
f F,
m = L |f | M = U+1 (1 p )
1.5 0 .5 1
fl : IR F
x 7 fl (x)
Exceptions
overflow : M < a op b
underflow : 0 < a op b < m
processeur
cache
mmoire principale
swap disque
disque
chaque niveau ses propres contraintes
il y a un cout (souvent relativement lev) faire transiter une donne
dun niveau un autre