Les sources d'erreurs sont nombreuses et multiples.
Nous répertorions ici les principales en suivant la logique d'implémentation pour la résolution d'une équation par un calculateur.
Le phénomène étudié est par nature instable. Ce
sont par exemple les cas d’écoulements d’eau dans des conduits, de prévision
météorologique, de réactions chimiques oscillantes, d’oscillations
auto-entretenues en radio-électricité, de régulation automatique…
Instabilités mathématiques :
Les instabilités mathématiques sont inhérentes au modèle.
Inévitablement, elles vont créer des difficultés et des perturbations dans le
calcul et dans la simulation numérique. Ce sont par exemple les systèmes
non-linéaires de la théorie des systèmes dynamiques…(sensibilité aux conditions
initiales).

Instabilités algorithmiques :
La traduction du modèle mathématique en
algorithmes numériques peut générer des instabilités au moment du choix des
paramètres numériques, notamment lors de phase d’approximations ou de
discrétisation (pas temporel, maillage…).

Instabilités à l'implémentation et à l'exécution du code
:
La traduction de l’algorithme en code (avec le
choix d’un langage de programmation tel que Fortran, C, Ada…) est une autre
étape importante qui influence la qualité du calcul final. Les influences de la
compilation et de l’optimisation sont ici considérées
De plus, l’ordinateur, avec la représentation
en virgule flottante, va générer lui même des instabilités, conséquence de la
perte de précision.
Exemple de calcul faux :
| Soit à
calculer |
r
= 9x4 - y4 + 2y2 |
| Pour les
valeurs : |
x =
10.864
y =
18.817 |
Les résultats sont
:
| sur
CRAY |
r = 3,073 364 496 2
10-8 |
| sur VAX en
SP |
r = 0 |
| Arithmétique DP
I3E |
r = 2,000 000 (arrondi au plus près, vers 0,
vers -¥) |
| Arithmétique
DP I3E |
r = -14,(arrondi vers
+¥) |
|
..Alors que le vrai résultat est
1 |
x
x