ziade.net

Main webpage addresses:
http://mustapha.ziade.net
http://mustapha.ziadeh.net

ziadeh.net


ziade.net

ziadeh.net

Informatique : Pascal (Chap.II) et tous les langages !

LIMITATIONS DES CALCULS NUMERIQUES

(c) Dr Mustapha ZIADE'

z
i
a
d
e
.
n
e
t

=

z
i
a
d
e
h
.
n
e
t

=

w
w
w
.
z
i
a
d
e
.
n
e
t

=

w
w
w
.
z
i
a
d
e
h
.
n
e
t


  • II.1. Un calcul numérique ou informatique n'est pas un calcul mathématique

Considérons une calculette (ou un ordinateur), affichons le nombre 2, effectuons N fois la racine carrée (de l'affichage), effectuons ensuite N fois le carré (de l'affichage), nous obtenons alors un nombre différent de 2 !!!
Par exemple pour N=10, j'obtiens à la fin 1.9996324 au lieu de 2.

Considérons les maths, prenons le nombre a=2, effectuons N fois la racine carrée, effectuons ensuite N fois le carré, nous obtenons alors évidemment le même nombre a=2 qu'au départ.

- Conclusion:
ne pas confondre calcul numérique (ou informatique) et calcul mathématique.

© Dr Mustapha Ziade'


  • II.2. La précision dépend du nombre de chiffres significatifs

Considérons une calculette (ou un ordinateur), affichons le nombre 103 (=1000 ou 10^3 ou 1E3), ajoutons lui le nombre 10-3 (=0.001 ou 10^-3 ou 1E-3), le résultat de l'addition est égal à 1000.001 (=1000+0.001).

Considérons la même calculette (ou ordinateur), affichons le nombre 1070 (=10^70 ou 1E70), ajoutons lui le nombre 1, le résultat numérique de l'addition est égal à 1070, c.-à-d. 1070+1=1070 !!!

Donc la précision ne dépend pas directement du plus petit nombre positif affichable. Si ce nombre est par exemple 10-99 alors ceci ne signifie pas que la précision est 10-99.

Considérons les maths, prenons le nombre a=1070, ajoutons lui le nombre b=1, nous obtenons c=a+b avec évidemment c=/=a. Donc mathématiquement: 1070+1 =/= 1070.

- Conclusion: la précision dépend directement du nombre de chiffres significatifs
(le nombre de chiffres significatifs correspond au nombre de chiffres affichables).

Seule la précision relative a vraiment une signification pratique (comme en physique).

© Dr Mustapha Ziade'


  • II.3. Erreur UNDERFLOW

Considérons une calculette (ou un ordinateur), affichons le nombre 10-99 (=10^-99 ou 1E-99), divisons le par 10, le résultat obtenu est égal à 0 (au lieu de 10-100). Cette erreur s'appelle erreur d'underflow, elle est rarement (presque jamais!) signalée par la machine.
(Rappel: la précision n'est pas 10
-99, elle dépend du calcul.)

- Conclusion:
(seule) l'erreur "underflow" dépend du plus petit nombre calculable (positif affichable).

© Dr Mustapha Ziade'


  • II.4. Erreur OVERFLOW

Considérons une calculette (ou un ordinateur), affichons le nombre 1099 (=10^99 ou 1E99), multiplions le par 10, nous obtenons une erreur (au lieu de 10100). Cette erreur s'appelle erreur d'overflow (ou erreur de "dépassement de capacité"), elle est toujours signalée par la machine.

- Conclusion: l'erreur "overflow" dépend du plus grand nombre calculable ou affichable.

© Dr Mustapha Ziade'


  • II.5. Erreur de division par zéro

Considérons une calculette (ou un ordinateur), affichons le nombre 1, divisons le par 0, nous obtenons une erreur (au lieu de +infini ). Cette erreur s'appelle "division par zéro", elle est toujours signalée par la machine.

© Dr Mustapha Ziade'


  • II.6. Erreur d'arrondi

Nous avons déjà vu ce type d'erreur dans les paragraphes 1 et 2 ci-dessus. Cette erreur est due au fait que la calculatrice ou l'ordinateur utilisent un nombre fini de chiffres significatifs. Tandis que mathématiquement un réel peut avoir un nombre infini de chiffres après la virgule (comme c'est le cas pour le nombre transcendant pi=3,1415926...etc...).

Considérons une calculette (fictive) ayant 7 chiffres significatifs alors pour cette calculette:
1.234567 = 1.2345673 = 1.2345674 = 1.234567259 = …
et aussi:
12345.67 = 12345.673 = 12345.674 = 12345.67259 = …

© Dr Mustapha Ziade'


  • II.7. Erreurs dues à l'ordre de grandeur

Considérons une calculette ou un ordinateur, effectuons le calcul
( 2 + 10
70 - 1070 ), nous obtenons 0 au lieu de 2.
Pour obtenir le bon résultat il suffit de faire ( 2 + (10
70 - 1070) ).
Cet exemple (volontairement simple) permet de comprendre les erreurs possibles.

- Conclusion: il faut essayer de prevoir les ordres de grandeur des variables.

© Dr Mustapha Ziade'


  • II.8. Erreurs dues à un pas trop petit

Souvent en informatique, la différentielle dx est remplacée par dx = pas (ou step en anglais). Mathématiquement: plus ce pas est petit, plus la précision est bonne (théoriquement dx=10-70 est meilleur que 10-3). Mais numériquement: ce pas (dx) est limité par le calcul et par le nombre de chiffres significatifs (pratiquement si nous calculons par exemple [x+dx] avec x=2 et dx=10-70, nous obtiendrons 2 au lieu de 2+10-70).

- Attention: le choix du pas dépend à la fois du nombre de chiffres significatifs et du calcul effectué.

Dans les exemples suivants nous supposons que nous avons 7 chiffres significatifs.
-Ex.1: si nous calculons [x³+dx] avec x=2 alors dx=0.001 est possible (numériquement).
-Ex.2: si nous calculons [x³+dx] avec x=2000 alors dx=0.001 est impossible (numériquement).
-Ex.3: si nous calculons [x+dx] avec x=2 alors dx=10
-30 est impossible (numériquement).
-Ex.4: si nous calculons [x+dx] avec x=10
-25 alors dx=10-30 est possible (numériquement).

- Conclusion:
il faut adapter le "pas" au calcul effectué et au nombre de chiffres significatifs.

© Dr Mustapha Ziade'


  • II.9. Erreurs dues aux "cas particuliers"

Considérons, par exemple, un programme de résolution d'équations du second degré (ax²+bx+c=0) qui utilise directement le discriminant D sans considérer le cas particulier où a=0.
Si ce cas particulier arrive, alors il y aura une erreur pendant l'exécution (
runtime error).

Cet exemple (volontairement simple) ne fait qu'évoquer les erreurs dues aux cas particuliers. Pour cette raison, le programmeur doit toujours prévoir tout les cas possibles.

© Dr Mustapha Ziade'


  • II.10. Annexe: Binaire, Hexadécimal, Octet, kilo, Méga, Giga, Tera

Nous sommes habitués au système décimal (base 10). Mais, quelle que soit la base, le principe est le même.

(a) Base décimale ou base 10 :
Le nombre 1997 signifie 7 + 9*10 + 9*10² + 1*10³ ,
et 10 s'écrit 10.

(b) Base binaire ou base 2 :
Le nombre 1011 signifie 1 + 1*2 + 0* + 1* ,
alors 2 en décimal s'écrit 10 en binaire.

(c) Base octale ou base 8 :
Le nombre 7052 signifie 2 + 5*8 + 0* + 7* ,
alors 8 en décimal s'écrit 10 en octal.

(d) Base hexadécimale ou base 16 :
Le chiffre A signifie 10, le B signifie 11, …, le F signifie 15.
Le nombre CB52 signifie 2 + 5*
16 + 11*16² + 12*16³ ,
alors 16 en décimal s'écrit 10 en hexadécimal .

(e) Un bit :
Le mot "bit" est l'abréviation de "binary digit" c'est-à-dire chiffre binaire (0 ou 1).

(f) Un octet ou byte :
Un octet ou byte est une suite de 8 bits, ce qui permet de compter de 0 à 255 (cf. binaire).

(g) Un kilo-octet ou kilo :
D'habitude 1 kilo = 1000 (1k=10³, exemple: 1km=1000m),
mais en informatique on dit souvent que: 1 kilo = 2
10 = 1024.

(h) Un méga-octet ou Méga :
D'habitude 1 Méga = 1 million (1M=106, exemple: 1MHz = 1'000'000 Hz),
mais en informatique on dit souvent que: 1 Méga = 1024² = 1'048'576.

(i) Un giga-octet ou Giga :
D'habitude 1 Giga = 1 milliard = mille millions (1G=109, exemple: 1GHz = 1'000'000'000 Hz),
mais en informatique on dit souvent que: 1 Giga = 1024³ = 1'073'741'824.

(j) Un tera-octet ou Tera :
D'habitude 1 Tera = mille milliard (1T=1012, exemple: 1THz = 1'000'000'000'000 Hz).

ziade.net
©
ziadeh.net

Main webpage addresses:
http://mustapha.ziade.net
http://mustapha.ziadeh.net


ZIADE + ZIADEH
(noms de famille)

> > >

www.ziade.net

< < <

Internet & informatique, conseils, sites et pages web,
adresses e-mails, redirections, sms, traductions, ...

=

.

+

.

=

ZIADE + ZIADEH
(family names)

> > >

www.ziadeh.net

< < <

Internet & computer, advices, site hosting, webpages,
e-mails addresses, redirections, sms, translations, ...

* Merci de votre visite. Le site Ziadeh.net est mis à jour chaque mois.
Thank you for your visit. The site
Ziade.net is updated every month.

ÒíÇÏÉ © ÒíÇÏå / Ziadé & Ziadeh

1995-2010 (c) www.ziade.net / E-mail:_webmaster©ziade.net

Update'10a / Home / Next Page >


SPECIAL ... click here ! (Ad/publicity)