You are on page 1of 55

Cours Calcul

et Mthodes
Numriques
M. Berrada
Calcul
numrique et
calcul formel
Information et
ordinateur
Reprsentation
des nombres
rels
Calculs sur les
nombres
flottants

Cours Calcul et Mthodes Numriques


Introduction
Mohamed Berrada
Ecole Nationale Suprieure des Arts et Mtiers de Mekns
Universit Moulay Ismail

Langages

Octobre 2014

Sommaire
Cours Calcul
et Mthodes
Numriques
M. Berrada
Calcul
numrique et
calcul formel

Calcul numrique et calcul formel

Information et ordinateur

Reprsentation des nombres rels

Calculs sur les nombres flottants

Information et
ordinateur
Reprsentation
des nombres
rels
Calculs sur les
nombres
flottants
Langages

Langages de programmation

Sommaire
Cours Calcul
et Mthodes
Numriques
M. Berrada
Calcul
numrique et
calcul formel

Calcul numrique et calcul formel

Information et ordinateur

Reprsentation des nombres rels

Calculs sur les nombres flottants

Information et
ordinateur
Reprsentation
des nombres
rels
Calculs sur les
nombres
flottants
Langages

Langages de programmation

Introduction : pendule simple


Cours Calcul
et Mthodes
Numriques
M. Berrada
Calcul
numrique et
calcul formel
Information et
ordinateur
Reprsentation
des nombres
rels
Calculs sur les
nombres
flottants
Langages

L
(t)

Le problme est : Dterminer (t) pour t [0, T ]


Equation(du pendule :
00 (t) + w 2 sin((t)) = 0
(0) = 0 et 0 (0) = v
M
Solution analytique (calcul formel)
Solution numrique (calcul numrique)

Introduction : pendule simple


Cours Calcul
et Mthodes
Numriques
M. Berrada
Calcul
numrique et
calcul formel
Information et
ordinateur
Reprsentation
des nombres
rels
Calculs sur les
nombres
flottants
Langages

L
(t)

Le problme est : Dterminer (t) pour t [0, T ]


Equation(du pendule :
00 (t) + w 2 sin((t)) = 0
(0) = 0 et 0 (0) = v
M
Solution analytique (calcul formel)
Solution numrique (calcul numrique)

Introduction : pendule simple


Cours Calcul
et Mthodes
Numriques
M. Berrada
Calcul
numrique et
calcul formel
Information et
ordinateur
Reprsentation
des nombres
rels
Calculs sur les
nombres
flottants
Langages

L
(t)

Le problme est : Dterminer (t) pour t [0, T ]


Equation(du pendule :
00 (t) + w 2 sin((t)) = 0
(0) = 0 et 0 (0) = v
M
Solution analytique (calcul formel)
Solution numrique (calcul numrique)

Calcul formel
Cours Calcul
et Mthodes
Numriques
M. Berrada
Calcul
numrique et
calcul formel
Information et
ordinateur

Dfinition
Le calcul formel (ou calcul symbolique) est une discipline qui
sintresse la manipulation symbolique dexpressions
mathmatiques. Il traite des calculs avec paramtres, des
polynmes, des fractions...
Exemples :

Reprsentation
des nombres
rels

2+1
21

Calculs sur les


nombres
flottants

primitives
drives
simplification
Avantage : chapper aux erreurs et la propagation derreurs
Inconvenient :  algorithmes plus longues excuts,
 lventail des poblmes rsolus est trs rduit

Langages

R
sin(x ) exp(5x )dx
=3+2 2

x 2 y + x cos(y ) + xy

Logiciels de calcul formel :


 Mathematica ou Maple (propritaires),
 Mupad, Maxima, Axiom, et Yacas (libres).

Calcul formel
Cours Calcul
et Mthodes
Numriques
M. Berrada
Calcul
numrique et
calcul formel
Information et
ordinateur

Dfinition
Le calcul formel (ou calcul symbolique) est une discipline qui
sintresse la manipulation symbolique dexpressions
mathmatiques. Il traite des calculs avec paramtres, des
polynmes, des fractions...
Exemples :

Reprsentation
des nombres
rels

2+1
21

Calculs sur les


nombres
flottants

primitives
drives
simplification
Avantage : chapper aux erreurs et la propagation derreurs
Inconvenient :  algorithmes plus longues excuts,
 lventail des poblmes rsolus est trs rduit

Langages

R
sin(x ) exp(5x )dx
=3+2 2

x 2 y + x cos(y ) + xy

Logiciels de calcul formel :


 Mathematica ou Maple (propritaires),
 Mupad, Maxima, Axiom, et Yacas (libres).

Calcul formel
Cours Calcul
et Mthodes
Numriques
M. Berrada
Calcul
numrique et
calcul formel
Information et
ordinateur

Dfinition
Le calcul formel (ou calcul symbolique) est une discipline qui
sintresse la manipulation symbolique dexpressions
mathmatiques. Il traite des calculs avec paramtres, des
polynmes, des fractions...
Exemples :

Reprsentation
des nombres
rels

2+1
21

Calculs sur les


nombres
flottants

primitives
drives
simplification
Avantage : chapper aux erreurs et la propagation derreurs
Inconvenient :  algorithmes plus longues excuts,
 lventail des poblmes rsolus est trs rduit

Langages

R
sin(x ) exp(5x )dx
=3+2 2

x 2 y + x cos(y ) + xy

Logiciels de calcul formel :


 Mathematica ou Maple (propritaires),
 Mupad, Maxima, Axiom, et Yacas (libres).

Calcul formel
Cours Calcul
et Mthodes
Numriques
M. Berrada
Calcul
numrique et
calcul formel
Information et
ordinateur

Dfinition
Le calcul formel (ou calcul symbolique) est une discipline qui
sintresse la manipulation symbolique dexpressions
mathmatiques. Il traite des calculs avec paramtres, des
polynmes, des fractions...
Exemples :

Reprsentation
des nombres
rels

2+1
21

Calculs sur les


nombres
flottants

primitives
drives
simplification
Avantage : chapper aux erreurs et la propagation derreurs
Inconvenient :  algorithmes plus longues excuts,
 lventail des poblmes rsolus est trs rduit

Langages

R
sin(x ) exp(5x )dx
=3+2 2

x 2 y + x cos(y ) + xy

Logiciels de calcul formel :


 Mathematica ou Maple (propritaires),
 Mupad, Maxima, Axiom, et Yacas (libres).

Calcul numrique
Cours Calcul
et Mthodes
Numriques
M. Berrada
Calcul
numrique et
calcul formel
Information et
ordinateur
Reprsentation
des nombres
rels
Calculs sur les
nombres
flottants
Langages

Dfinition
Le calcul numrique est un ensemble de calculs qui sont raliss
sur ordinateur traves un langage interprtable par ce dernier.
Domaines daplication :
la conception de structures (CAO, dynamique des
fluide,...),
les prvisions numriques du temps,
la conception dobjets chimiques,
les statistiques appliques,
lanalyse financire ou boursire,
etc. ; ... autant de domaines pour lesquels le calcul la
main peut tre difficille et trs couteux.

Pourquoi le calcul numrique ?


Cours Calcul
et Mthodes
Numriques
M. Berrada
Calcul
numrique et
calcul formel

Le problme

00 (t) + w 2 sin((t)) = 0, admet une solution unique


daprs Cauchy-Lipschitz
(0) = 0 et 0 (0) = v ,

La solution analytique existe mais on ne sait pas la calculer

Information et
ordinateur
Reprsentation
des nombres
rels
Calculs sur les
nombres
flottants
Langages

Pour (t) petit, on peut


( poser sin((t)) (t)
00 (t) + w 2 (t) = 0
Le problme devient
(0) = 0 et 0 (0) = v ,
admet comme solution analytique (t) = 0 cos(wt) +

v
w

sin(wt)

Pour (t) grand, il ny a pas de mthodes analytiques.


Il faut donc rsoudre le problme par la voie numrique

Pourquoi le calcul numrique ?


Cours Calcul
et Mthodes
Numriques
M. Berrada
Calcul
numrique et
calcul formel

Le problme

00 (t) + w 2 sin((t)) = 0, admet une solution unique


daprs Cauchy-Lipschitz
(0) = 0 et 0 (0) = v ,

La solution analytique existe mais on ne sait pas la calculer

Information et
ordinateur
Reprsentation
des nombres
rels
Calculs sur les
nombres
flottants
Langages

Pour (t) petit, on peut


( poser sin((t)) (t)
00 (t) + w 2 (t) = 0
Le problme devient
(0) = 0 et 0 (0) = v ,
admet comme solution analytique (t) = 0 cos(wt) +

v
w

sin(wt)

Pour (t) grand, il ny a pas de mthodes analytiques.


Il faut donc rsoudre le problme par la voie numrique

Calcul numrique
Cours Calcul
et Mthodes
Numriques
M. Berrada
Calcul
numrique et
calcul formel

Le calcul numrique sintresse la conception, lanalyse


et limplmentation dalgorithmes pour la rsolution
numrique des problmes mathmatiques continus qui
proviennent de la modlisation des phnomnes rels.

Information et
ordinateur
Reprsentation
des nombres
rels
Calculs sur les
nombres
flottants
Langages

Aventages :
Lventail des problmes rsolus est trs large
Les algorithmes sont en gnrale plus efficaces
Inconvennients :
La solution est approche.
Propagation de lerreur (sin(1010 ), 2

2)

Calcul numrique
Cours Calcul
et Mthodes
Numriques
M. Berrada
Calcul
numrique et
calcul formel

Le calcul numrique sintresse la conception, lanalyse


et limplmentation dalgorithmes pour la rsolution
numrique des problmes mathmatiques continus qui
proviennent de la modlisation des phnomnes rels.

Information et
ordinateur
Reprsentation
des nombres
rels
Calculs sur les
nombres
flottants
Langages

Aventages :
Lventail des problmes rsolus est trs large
Les algorithmes sont en gnrale plus efficaces
Inconvennients :
La solution est approche.
Propagation de lerreur (sin(1010 ), 2

2)

Calcul numrique
Cours Calcul
et Mthodes
Numriques
M. Berrada
Calcul
numrique et
calcul formel

Le calcul numrique sintresse la conception, lanalyse


et limplmentation dalgorithmes pour la rsolution
numrique des problmes mathmatiques continus qui
proviennent de la modlisation des phnomnes rels.

Information et
ordinateur
Reprsentation
des nombres
rels
Calculs sur les
nombres
flottants
Langages

Aventages :
Lventail des problmes rsolus est trs large
Les algorithmes sont en gnrale plus efficaces
Inconvennients :
La solution est approche.
Propagation de lerreur (sin(1010 ), 2

2)

tapes dun projet de calcul


Cours Calcul
et Mthodes
Numriques

Modlisation physique : Modle physique ou continu : trs


souvent consiste en un jeu dquations aux drives
partielles (EDP) physicien ou ingnieur

tude mathmatique : identifier le cadre mathmatique


dans lequel on a existence et unicit, au moins pour un
modle simplifi mathmaticien
Modle discret numricien

M. Berrada
Calcul
numrique et
calcul formel
Information et
ordinateur
Reprsentation
des nombres
rels

Solution exacte du modle continu appartient souvent un


espace de dimension infinie,
Pour rsoudre le problme sur ordinateur, on doit se
ramener un problme de dimension finie,
"modle numrique" ou "modle discret" qui approche
lEDP (et les CL/CI) dans un certain sens

Calculs sur les


nombres
flottants
Langages

Aspect logiciel et adaptation aux architctures

informaticien

Sommaire
Cours Calcul
et Mthodes
Numriques
M. Berrada
Calcul
numrique et
calcul formel

Calcul numrique et calcul formel

Information et ordinateur

Reprsentation des nombres rels

Calculs sur les nombres flottants

Information et
ordinateur
Reprsentation
des nombres
rels
Calculs sur les
nombres
flottants
Langages

Langages de programmation

Architecture des ordinateurs


Cours Calcul
et Mthodes
Numriques

carte mre

CPU (microprocesseur)

@
@

M. Berrada
Calcul
numrique et
calcul formel

cran

Information et
ordinateur

RAM (mmoire vive)


 cartes de priphriques


@
@

Reprsentation
des nombres
rels

alimentation

Calculs sur les


nombres
flottants
Langages

clavier
@
@

souris

XXX
XXX
X lecteurs de disque
PP
P

PP
P disque dure

Architecture des ordinateurs


Cours Calcul
et Mthodes
Numriques

carte mre

CPU (microprocesseur)

@
@

M. Berrada
Calcul
numrique et
calcul formel

cran

Information et
ordinateur

RAM (mmoire vive)


 cartes de priphriques


@
@

Reprsentation
des nombres
rels

alimentation

Calculs sur les


nombres
flottants
Langages

clavier
@
@

souris

XXX
XXX
X lecteurs de disque
PP
P

PP
P disque dure

Reprsentation des entiers


La base dcimale
Cours Calcul
et Mthodes
Numriques
M. Berrada
Calcul
numrique et
calcul formel
Information et
ordinateur
Reprsentation
des nombres
rels
Calculs sur les
nombres
flottants
Langages

Pour reprsenter un nombre, aussi grand soit-il, nous


disposons dune srie de 10 signes qui sappellent les
chiffres 0, 1, 2, 3, 4, 5, 6, 7, 8 et 9.
Lorsque nous crivons un nombre en mettant certains de
ces chiffres les uns derrire les autres, lordre dans lequel
nous mettons les chiffres est capital.
 2034 est diffrent de 4302.
Cest la position des chiffres dans le nombre qui donne sa
valeur.
 2034 = 2 1000 + 0 100 + 3 10 + 4 1.
= 2 103 + 0 102 + 3 101 + 4 100 .

Reprsentation des entiers


La base binaire
Cours Calcul
et Mthodes
Numriques
M. Berrada
Calcul
numrique et
calcul formel
Information et
ordinateur
Reprsentation
des nombres
rels
Calculs sur les
nombres
flottants
Langages

Les ordinateurs utilisent un systme de reprsentation


deux chiffres : 0 et 1
Les informations sont manipules par paquets de 0 et de 1.
La taille de ces paquets a t fixe 8 informations
binaires. Ce sont les octets.
Une information binaire sappelle un bit (en anglais bit,
pour binary digit)
Un groupe de huit bits sappelle un octet (en anglais,
byte).

Reprsentation des entiers


Dcodage binaire
Cours Calcul
et Mthodes
Numriques
M. Berrada

Exemple de codage binaire


 Le nombre 39 :

Calcul
numrique et
calcul formel
Information et
ordinateur
Reprsentation
des nombres
rels
Calculs sur les
nombres
flottants
Langages

 Le nombre 186 :

1| 0 1 1{z1 0 1 0}
enbase2

1 2 + 0 2 + 1 2 + 1 24 + 1 23 + 0 22 + 1 21 + 0 20
{z
}
|
base10

Reprsentation des entiers


Le codage hexadcimal
Cours Calcul
et Mthodes
Numriques
M. Berrada
Calcul
numrique et
calcul formel

Le codage hexadcimal est un codage de position en base


16 : {0, 1, 2, 3, 4, 5, 6, 7, 8, 9, A, B, C , D, E , F }.

Information et
ordinateur
Reprsentation
des nombres
rels
Calculs sur les
nombres
flottants
Langages

Un octet (8bits) est reprsent par deux valeurs


hexadcimales (4bits+4bits)
Le codage hexadcimal constitue une alternative pratique
au codage binaire car il est plus conomique et plus lisible

Reprsentation des entiers


Le codage hexadcimal
Cours Calcul
et Mthodes
Numriques
M. Berrada
Calcul
numrique et
calcul formel
Information et
ordinateur
Reprsentation
des nombres
rels
Calculs sur les
nombres
flottants
Langages

Codage de 10011110 en hexadcimal


 dcompos en deux paquets de 4 bits : 1001 1110
 1001 = 23 + 20 = 9
 1110 = 23 + 22 + 21 = 8 + 4 + 2 = 14 E en base 16
 Le nombre scrit donc en hexadcimal : 9E
Dcodage de 4A
 4A = 4 161 + A 160 avec A vaut 10 en base 10
= 64 + 10
= 74
Pour le codage hexadcimal, on utilise une notation
prfixe par 0x
 0x 41 6= 41

Sommaire
Cours Calcul
et Mthodes
Numriques
M. Berrada
Calcul
numrique et
calcul formel

Calcul numrique et calcul formel

Information et ordinateur

Reprsentation des nombres rels

Calculs sur les nombres flottants

Information et
ordinateur
Reprsentation
des nombres
rels
Calculs sur les
nombres
flottants
Langages

Langages de programmation

Reprsentation des nombres rels


Reprsentation en base b
Cours Calcul
et Mthodes
Numriques
M. Berrada
Calcul
numrique et
calcul formel
Information et
ordinateur
Reprsentation
des nombres
rels
Calculs sur les
nombres
flottants
Langages

Codage dun nombre entier positif N en base b :


(N)b = an an1 a1 a0
Pour coder un nombre rel positif X : on rajoute une
partie fractionnaire aprs une virgule
(X )b = an an1 a1 a0 , b1 b2 bm1 bm
La valeur dcimale est alors donne par le calcul de
 an b n + an1 b n1 + + a1 b + a0 +
b1 b 1 + b2 b 2 + + bm1 b m+1 + bm b m

Exemples :
123.45 = 1 102 + 2 101 + 3 100 + 4 101 + 5 102
(101.101)2 = 1 22 + 0 21 + 1 20
+1 21 + 0 22 + 1 23
= 5.625
(AB.4E )16 = 10 161 + 11 160 + 4 161 + 14 162
= 171.3046875

Les reprsentations sont quivalentes

Reprsentation des nombres rels


Reprsentation en base b
Cours Calcul
et Mthodes
Numriques
M. Berrada
Calcul
numrique et
calcul formel
Information et
ordinateur
Reprsentation
des nombres
rels
Calculs sur les
nombres
flottants
Langages

Codage dun nombre entier positif N en base b :


(N)b = an an1 a1 a0
Pour coder un nombre rel positif X : on rajoute une
partie fractionnaire aprs une virgule
(X )b = an an1 a1 a0 , b1 b2 bm1 bm
La valeur dcimale est alors donne par le calcul de
 an b n + an1 b n1 + + a1 b + a0 +
b1 b 1 + b2 b 2 + + bm1 b m+1 + bm b m

Exemples :
123.45 = 1 102 + 2 101 + 3 100 + 4 101 + 5 102
(101.101)2 = 1 22 + 0 21 + 1 20
+1 21 + 0 22 + 1 23
= 5.625
(AB.4E )16 = 10 161 + 11 160 + 4 161 + 14 162
= 171.3046875

Les reprsentations sont quivalentes

Reprsentation des nombres rels


Conversion de dcimal en binaire
Cours Calcul
et Mthodes
Numriques
M. Berrada
Calcul
numrique et
calcul formel
Information et
ordinateur
Reprsentation
des nombres
rels
Calculs sur les
nombres
flottants
Langages

Exemple : convertissons 1234.347 en base 2


 La partie entire se transforme comme vu prcdemment
 On transforme la partie dcimale comme suit :
0.347 2 = 0.694
0.694 2 = 1.388
0.388 2 = 0.766
010110001
0.766 2 = 1.552 On continue jusqu la prcision dsire...
0.552 2 = 1.104
0.104 2 = 0.208
0.208 2 = 0.416
0.416 2 = 0.832
0.832 2 = 1.664 ...
Attention !Un nombre dveloppement dcimal fini en base 10
ne lest pas forcment en base 2

Reprsentation des nombres rels


Conversion de dcimal en binaire
Cours Calcul
et Mthodes
Numriques
M. Berrada
Calcul
numrique et
calcul formel
Information et
ordinateur
Reprsentation
des nombres
rels
Calculs sur les
nombres
flottants
Langages

Exemple : convertissons 1234.347 en base 2


 La partie entire se transforme comme vu prcdemment
 On transforme la partie dcimale comme suit :
0.347 2 = 0.694
0.694 2 = 1.388
0.388 2 = 0.766
010110001
0.766 2 = 1.552 On continue jusqu la prcision dsire...
0.552 2 = 1.104
0.104 2 = 0.208
0.208 2 = 0.416
0.416 2 = 0.832
0.832 2 = 1.664 ...
Attention !Un nombre dveloppement dcimal fini en base 10
ne lest pas forcment en base 2

Reprsentation des nombres rels


virgule flottante
Cours Calcul
et Mthodes
Numriques
M. Berrada
Calcul
numrique et
calcul formel
Information et
ordinateur
Reprsentation
des nombres
rels
Calculs sur les
nombres
flottants
Langages

Un nombre rel x scrit x = m b e


m : mantisse : nombre compos de chiffres de la base b
e : exposant : nombre compos de chiffres de la base b
codage du signe : positif ou ngatif

Un nombre peut tre reprsent de plusieurs faons


Exemple :
1234.5678 = 12.345678 102 = 1234567800 106
Selon le dcalage et lexposant que lon aura choisi, le
couple mantisse-exposant va changer mais le nombre
reprsent est le mme.
Principe gnral : stocker la position de la virgule en plus
des chiffres du nombre

Reprsentation des nombres rels


virgule flottante normalise
Cours Calcul
et Mthodes
Numriques
M. Berrada
Calcul
numrique et
calcul formel
Information et
ordinateur
Reprsentation
des nombres
rels
Calculs sur les
nombres
flottants
Langages

Sur ordinateur, il y a des limites pour la reprsentation de


la mantisse m et de lexposant e
La mantisse scrit avec un nombre t fix de chiffres (bits
en base 2), donc m [0, b t [
Si m [0, b t1 [, il vaut mieux remplacer m par
m0 = mb [0, b t [ pour augmenter le nombre de chiffres
significatifs.
Le nombre est prsent sous forme normalise pour
dterminer la mantisse et lexposant.
Pas de chiffre non nulle avant la virgule : 0.XXXXX b e
Le premier chiffre aprs la virgule est non nulle
En base 2, la reprsentation normalise est 1.mantisse
2e . Le 1 avant la virgule ne sera pas cod

Reprsentation des nombres rels


virgule flottante normalise : Exemples
Cours Calcul
et Mthodes
Numriques
M. Berrada
Calcul
numrique et
calcul formel
Information et
ordinateur
Reprsentation
des nombres
rels
Calculs sur les
nombres
flottants
Langages

En base 10 : Le nombre 3.14159


On normalise pour navoir que des chiffres aprs la virgule
0.314159 101
Mantisse code = 314159, exposant = 1, signe = +

En base 2 : 1011.101101
On normalise

= (1011.101101)2 20
= (101.1101101)2 21
= (10.11101101)2 22
= (1.011101101)2 23
Mantise code = 011101101, exposant = 3, signe = +
(1011.101101)2

Reprsentation des nombres rels


virgule flottante normalise
Cours Calcul
et Mthodes
Numriques

Soient b N une base fixe avec b 2 et X R

M. Berrada
Calcul
numrique et
calcul formel
Information et
ordinateur
Reprsentation
des nombres
rels
Calculs sur les
nombres
flottants
Langages

Le nombre X = 1/3 R possde une infinit de dcimales


et ne peut pas avoir de reprsentation exacte en machine
R est remplac par un ensemble discret de nombres
machine not F. (X Xb )
Xb = (1)s 0.a1 a2 at b e avec ak [0, b[ et a1 6= 0
Xb = (1)s

Pt

k=1

ak b tk b et = (1)s mb et

s le signe
 0 et 1 sinon
Pt : s = 0 si x
m = k=1 ak b tk la mantisse : m [0, b t [
t le nombre de chiffres significatifs
e lexposant : e ]L, U[, avec L < 0 et U > 0

Reprsentation des nombres rels


virgule flottante normalise
Cours Calcul
et Mthodes
Numriques
M. Berrada
Calcul
numrique et
calcul formel
Information et
ordinateur
Reprsentation
des nombres
rels
Calculs sur les
nombres
flottants
Langages

Lensemble F(b, t, L, U) est donc caractris par quatre


entiers :
la base b (b = 2),
le nombre de chiffres t dans la mantisse (en base b),
lexposant minimal L et maximal U.

F(b, t, L, U)
P
= {0} {x R\x = (1)s b e tk=1 ak b k , avec a1 6= 0}
On a donc :
xmin = b Lt |x | xmax = b U (1 b t ), x F
card(F(b, t, L, U)) = 2(b 1)b t1 (U L + 1) + 1
La prcision machine est le plus petit nombre mach tel que
1 + mach > 1. (mach = b 1t )

Reprsentation des nombres rels


Norme IEEE
Cours Calcul
et Mthodes
Numriques

Pour la simple prcision : F(2, 24, 127, 128)

M. Berrada

sign
Calcul
numrique et
calcul formel
Information et
ordinateur

Langages

fraction
(23bit)

1 10000010 00110000000000000000000 = -9.5

31

23

La valeur dun nombre est donne par lexpression

Reprsentation
des nombres
rels
Calculs sur les
nombres
flottants

exposant
(8bit)

(1)s (1 +

23
X

bk 2k ) 2e127

k=1

Exemple
A = 1 10000010 00110000000000000000000
s = 1 (ngatif)
e = (27 + 21 ) 127 = 130 127 = 3
m = 23 + 24 = 0.125 + 0.0625 = 0.1875
A = 1.1875 23 = 9.5

Reprsentation des nombres rels


Norme IEEE
Cours Calcul
et Mthodes
Numriques

Pour la simple prcision : F(2, 24, 127, 128)

M. Berrada

sign
Calcul
numrique et
calcul formel
Information et
ordinateur

Langages

fraction
(23bit)

1 10000010 00110000000000000000000 = -9.5

31

23

La valeur dun nombre est donne par lexpression

Reprsentation
des nombres
rels
Calculs sur les
nombres
flottants

exposant
(8bit)

(1)s (1 +

23
X

bk 2k ) 2e127

k=1

Exemple
A = 1 10000010 00110000000000000000000
s = 1 (ngatif)
e = (27 + 21 ) 127 = 130 127 = 3
m = 23 + 24 = 0.125 + 0.0625 = 0.1875
A = 1.1875 23 = 9.5

Reprsentation des nombres rels


Norme IEEE
Cours Calcul
et Mthodes
Numriques
M. Berrada

Pour la double prcision : F(2, 53, 1023, 1024)

Calcul
numrique et
calcul formel
Information et
ordinateur
Reprsentation
des nombres
rels
Calculs sur les
nombres
flottants
Langages

La valeur dun nombre est donne par lexpression


s

(1) (1 +

52
X

bk 2k ) 2e1023

k=1

Valeurs spciales dans les deux prcisions :


+0. et -0. : deux valeurs pour 0
+INF : par exemple 1./(+0.)
-INF : par exemple 1./(0.)
NaN (not a number) : par exemple (1./(+0.)) (1./(+0.))

Reprsentation des nombres rels


Norme IEEE
Cours Calcul
et Mthodes
Numriques
M. Berrada

Pour la double prcision : F(2, 53, 1023, 1024)

Calcul
numrique et
calcul formel
Information et
ordinateur
Reprsentation
des nombres
rels
Calculs sur les
nombres
flottants
Langages

La valeur dun nombre est donne par lexpression


s

(1) (1 +

52
X

bk 2k ) 2e1023

k=1

Valeurs spciales dans les deux prcisions :


+0. et -0. : deux valeurs pour 0
+INF : par exemple 1./(+0.)
-INF : par exemple 1./(0.)
NaN (not a number) : par exemple (1./(+0.)) (1./(+0.))

Reprsentation des nombres rels


vigule flottante : exemple simple prcision
Cours Calcul
et Mthodes
Numriques
M. Berrada

Rprsentation en simple prcision du nombre 6.75


Convertir le nombre en binaire
6, 75 = (1 22 ) + (1 21 ) + (0 20 ) + (1 21 ) + (1 22 )
Le nombre scrit 110.11
Convertir 110.11 en virgule flottante
110.11 = 1.1011 22
Dcaler lexposant de 127 : 2 + 127 = 129
129 = 1000 0001 en binaire
On aura

Calcul
numrique et
calcul formel
Information et
ordinateur
Reprsentation
des nombres
rels
Calculs sur les
nombres
flottants
Langages

Signe

Exposant

pMantisse

1000 0001 1011000 00000000 00000000

Reprsentation des nombres rels


virgule flottante
Cours Calcul
et Mthodes
Numriques
M. Berrada
Calcul
numrique et
calcul formel
Information et
ordinateur

Le rang couvert en prcision simple est


2150 |x | < 2128 et la prcision machine est
mach = 223
negative
underflow
overflow
-(2-2-23 )x2128

-2-150

2-150

positive
overflow
(2-2-23 )x2128

Reprsentation
des nombres
rels
Calculs sur les
nombres
flottants
Langages

Le rang couvert en prcision double est


21075 |x | < 21024 et la prcision machine est
mach = 252
Limitations :
lorsque le rsultat dune opration est plus grand que la
plus grande valeur reprsentable "overflows" (INF)
lorsquun rsultat est plus petit, en valeur absolue, que le
plus petit flottant normalis positif "underflows"

Sommaire
Cours Calcul
et Mthodes
Numriques
M. Berrada
Calcul
numrique et
calcul formel

Calcul numrique et calcul formel

Information et ordinateur

Reprsentation des nombres rels

Calculs sur les nombres flottants

Information et
ordinateur
Reprsentation
des nombres
rels
Calculs sur les
nombres
flottants
Langages

Langages de programmation

Calculs sur les nombres flottants


Erreurs darrondi
Cours Calcul
et Mthodes
Numriques
M. Berrada
Calcul
numrique et
calcul formel
Information et
ordinateur
Reprsentation
des nombres
rels
Calculs sur les
nombres
flottants
Langages

Soit x un nombre rel (x ]xmin , xmax [). On note par Fl(x )


sa projection dans F (larrondi)
Fl(x ) = (1)s 0.a1 a2 at1 at .
La troncature consiste couper la mantisse de x aprs
son t-ime chiffre : at = at
Larrondi consiste tenir compte du (t + 1)-ime chiffre :
at = at si at+1 < b/2 et = at + 1 si at+1 b/2
Si x 6]xmin , xmax [ alors Fl(x ) ne sera pas dfini.

Calculs sur les nombres flottants


Erreurs darrondi
Cours Calcul
et Mthodes
Numriques
M. Berrada
Calcul
numrique et
calcul formel
Information et
ordinateur
Reprsentation
des nombres
rels
Calculs sur les
nombres
flottants
Langages

Erreur absolue
ra = |x Fl(x )|
Erreur relative (si x 6= 0)
r=

|x Fl(x )|
|x |

Erreur darrondi (si x 6= 0)


x =

Fl(x ) x
x

alors Fl(x ) = x (1 + x ).
En base 10, on a
K
|x |mach
10
avec K = 5 si on travaille par arrondi, et K = 10 si on
travaille par troncature.
|x Fl(x )| < K |x |10t =

Calculs sur les nombres flottants


Oprations machine (flop)
Cours Calcul
et Mthodes
Numriques
M. Berrada

son
On note par une opration {+, , , /} et par
quivalente sur ordinateur

Calcul
numrique et
calcul formel

RR R
(x , y ) 7 x y

Information et
ordinateur
Reprsentation
des nombres
rels
Calculs sur les
nombres
flottants
Langages

et
RR F

= Fl(Fl(x ) Fl(y ))
(x , y ) 7 x y
Lerreur sur une operation arithmtique satisfait
|(x y ) Fl(x y )| < k|x y | 10t
avec k = 5 si lordinateur travaille par arrondi et 10 sil
travaille par troncature.

Calculs sur les nombres flottants


Oprations machine (flop)
Cours Calcul
et Mthodes
Numriques
M. Berrada
Calcul
numrique et
calcul formel
Information et
ordinateur
Reprsentation
des nombres
rels
Calculs sur les
nombres
flottants
Langages

Exemple
Calcul exact :
0.123456789 + 0.987698765 = 1.111155554
Calcul machine avec 7 chiffres significatifs :
0.123456789 + 0.987698765 =0.1234568 + 0.9876988
=1.1111556
(erreur commise est ra =0.46 10-7 )

Calculs sur les nombres flottants


Associativit
Cours Calcul
et Mthodes
Numriques
M. Berrada
Calcul
numrique et
calcul formel
Information et
ordinateur
Reprsentation
des nombres
rels
Calculs sur les
nombres
flottants
Langages

Lassociativit comme par exemple (x + y ) + z = x + (y + z)


nest plus valide en arithmtique finie (i.e. sur ordinateur)
Exemple avec 6 chiffres de prcision, si on prend les trois
nombres
x = 1.23456 103 , y = 1.00000 100 , z = y
alors
(x + y ) + z = (0.00123 100 + 1.00000 100 ) 1.00000 100 =
1.23000 103 et x + (y + z) = x = 1.23456 103
Il est donc essentiel de considrer lordre des oprations et faire
attention o lon met les parenthses

Calculs sur les nombres flottants


Autres erreurs
Cours Calcul
et Mthodes
Numriques
M. Berrada
Calcul
numrique et
calcul formel
Information et
ordinateur
Reprsentation
des nombres
rels
Calculs sur les
nombres
flottants
Langages

Cancellation : survient lorsque le rsultat dune soustraction est


petit relativement aux oprandes
1
, il vaut mieux utiliser
Exemple : pour f (x ) = x1 x +1
1
f (x ) = x (x +1)
Absorption : survient lors de laddition de deux quantits ayants
des ordres de grandeur trs diffrents
(1 + 1060 ) 1060 = 0 et 1 + (1060 1060 ) = 1

Annulation : Exemple f (x ) = 1
, pour|x | < mach ,
1

f(x)=INF
Il vaut mieux utiliser f (x ) =

1+

1x 2

1x 2
x2

Calculs sur les nombres flottants


Conditionnement et stabilit numrique
Cours Calcul
et Mthodes
Numriques
M. Berrada
Calcul
numrique et
calcul formel
Information et
ordinateur
Reprsentation
des nombres
rels
Calculs sur les
nombres
flottants
Langages

Dfinition
On dit quun problme est "bien conditionn" si une "petite"
perturbation des donnes nentrane quune "petite"
perturbation des rsultats.
F (x + x ) = y + y
Dfinition
La notion de stabilit numrique indique le faite que les erreurs
dues larithmtique de lordinateur peuvent se propager plus
au moins dans lalgorithme.
Suite rcurrente :

un = un1 + un2 /4, u0 = 1, u1 = (1 2)/2

Calculs sur les nombres flottants


Propagation derreurs
Cours Calcul
et Mthodes
Numriques
M. Berrada
Calcul
numrique et
calcul formel

On considre le problme f (x ) = y avec x reprsente les


donnes du problme. Supposons f drivable au voisinage de x .
Supposons le systme F(b, t, L, U). Les donnes x sont
reprsentes dans ce systme :
x = Fl(x ) = x (1 + x )

Information et
ordinateur
Reprsentation
des nombres
rels
Calculs sur les
nombres
flottants
Langages

o x R et x F.
En appliquant la fonction f aux donnes x :
f (
x ) = f (x (1 + x )) = f (x + x x ) 
0

)x
f (x ) + f 0 (x )x x = y 1 + f f (x
(x ) x = y (1 + x )
o est le conditionnement du problme.

Si f (
x ) 6 F alors y = Fl(f (
x )) = y (1 + x )(1 + f (x ) )
Si > 1, on aura agrandissement de lerreur initiale x .
(Problme est mal conditionn)

Calculs sur les nombres flottants


Propagation derreurs
Cours Calcul
et Mthodes
Numriques
M. Berrada
Calcul
numrique et
calcul formel

On considre la suite rcurrente :

un = un1 + un2 /4, u0 = 1, u1 = (1 2)/2

Information et
ordinateur

Cette suite converge


vers 0 : Le terme gnrale est
n
un = 12 2

Reprsentation
des nombres
rels

Sur ordinateur, cette suite sous sa forme rcurrente, convrge


vers 0 jusqu un rang pour n puis sa valeur explose

Calculs sur les


nombres
flottants

Ceci est due lerreur darrondi du terme u1 qui va influencer la


solution finale

Langages

Cet exemple montre les problmes dinstabilit numrique quon


peut rencontrer lors dun processus de calcul itratif

Sommaire
Cours Calcul
et Mthodes
Numriques
M. Berrada
Calcul
numrique et
calcul formel

Calcul numrique et calcul formel

Information et ordinateur

Reprsentation des nombres rels

Calculs sur les nombres flottants

Information et
ordinateur
Reprsentation
des nombres
rels
Calculs sur les
nombres
flottants
Langages

Langages de programmation

Langages de programmation
Cours Calcul
et Mthodes
Numriques
M. Berrada
Calcul
numrique et
calcul formel
Information et
ordinateur
Reprsentation
des nombres
rels
Calculs sur les
nombres
flottants
Langages

Le langage machine : cest la suite de bits interprte par


le processeur de lordinateur.
Langages compils :
Le langage "assembleur" : Langage proche du langage
machine en restant lisible par un humain.
Le langage Fortran : utilis principalement en calcul
scientifique.
Le langage C : Langage dassemblage de haut niveau qui
offre une syntaxe plus lisible que lassembleur. Conu pour
la programmation systme (ex : Linux). Des langages
comme C++, Java et PHP reprennent des aspects de C.
Le Basic etc ;...

Langages scripts :
MATLAB (propritaire) ou Scilab et Octave (libres) :
utiliss pour le calcul numrique.
R (libre) statistique
Python (libre)

Langages de programmation
Cours Calcul
et Mthodes
Numriques
M. Berrada
Calcul
numrique et
calcul formel
Information et
ordinateur
Reprsentation
des nombres
rels
Calculs sur les
nombres
flottants
Langages

Le langage machine : cest la suite de bits interprte par


le processeur de lordinateur.
Langages compils :
Le langage "assembleur" : Langage proche du langage
machine en restant lisible par un humain.
Le langage Fortran : utilis principalement en calcul
scientifique.
Le langage C : Langage dassemblage de haut niveau qui
offre une syntaxe plus lisible que lassembleur. Conu pour
la programmation systme (ex : Linux). Des langages
comme C++, Java et PHP reprennent des aspects de C.
Le Basic etc ;...

Langages scripts :
MATLAB (propritaire) ou Scilab et Octave (libres) :
utiliss pour le calcul numrique.
R (libre) statistique
Python (libre)

Cours Calcul
et Mthodes
Numriques
M. Berrada
Calcul
numrique et
calcul formel
Information et
ordinateur
Reprsentation
des nombres
rels
Calculs sur les
nombres
flottants
Langages

Fin Introduction

You might also like