Home

 Bancs d'Essais

 

La précision

Il est facile de vérifier la précision numérique des machines, selon les limites des fonctions dont elles disposent.

Les principaux paramètres influant sur la précision sont :

  1. Le principe des algorithmes, il en existe de fait deux : CORDIC ou des approximations polynômiales
  2. Le nombre de chiffres (mantisse, exposant)
  3. La représentation des nombres : BCD ou binaire, cette dernière nécessitant un bon algorithme d'arrondi
  4. Le mode opératoire. Par exemple, certaines machines calculent les expressions avec un nombre augmenté de chiffres mais les résultats sont renvoyés et stockés avec la précision normale de la machine. On a alors intérêt à utiliser de longues expressions sans stockage de résultats intermédiaires. Ce phénomène n'existe que sur les machines calculant des "expressions" : Basic ou langages de ce genre.

Ces paramètres peuvent être déterminés à l'aide d'un programme tel celui-ci pour TI86.

On peut réaliser un certain nombre de tests standard sur toutes les machines, utilisant les fonctions de calcul dans des formules donnant un résultat connu à priori. Voici une suite de tels tests avec l'explication du but poursuivi dans chaque cas (en notation AOS ou algébrique) :

 Type

 Explication

 Arithmétique élémentaire

 
1  3 1/x * 3 - 1 = Vérification simple de l'arrondi ou troncature.
2   (29 * pi) / 29 - pi Autre vérification sur un nombre présentant toutes les décimales, donc dont l'arrondi ne se propage pas.
3  3E4 STO + 1/x - RCL = 1/x - RCL = Teste le nombre de décimales stockées, un résultat plus petit signale une meilleure précision.
4  12 * 12 = sqrt - 12 = Test d'une racine carrée donnant un nombre entier.
5  sqrt(5) * sqrt(5) - 5 = Test d'une racine carrée donnant un nombre à développement décimal complet.
 Logarithmes  
6  10^9-1000000000 Test de précision de l'élévation à la puissance de 10.
7  10^89-1E89 Identique sur un nombre à deux chiffres.
8  3 * 49 log - 6 * 7 log = précision des logarithmes et test d'arrondi par un nombre impair (3) et par un nombre pair (6).
9  7 / 2 = log * 4 = exp sqrt sqrt * 2 - 7 Test d'accumulation d'erreurs.
 Trigonométrie  
10  sin(1E60) Calcul normalement impossible sur une machine dépourvue de calcul formel !
11  atan(1) - pi / 4 Précision d'arc tangente loin de zéro.
12  355 / 113 + sin = sin Perte de l'ordre 3 de sinus près de PI, le résultat n'est normalement pas zéro.
13  2 1/x atan + 3 1/x atan = * 4 - pi Précision d'arc tangente.
14  7 1/x tan / ( x^2 - 1) * 2 = atan 1/x * 2 - 7 = Formule de l'angle moitié - propagation d'erreurs.
 Fonction spéciales  
15  atanh(tanh(14)) - 14 Test du nombre de décimales.
16  Gamma(.5)^2 - pi Précision de Gamma.
17  69 ! / 68 ! - 69 Test des décimales de garde.
18  196 nCr 88 Qualité de l'algorithme de Cnp.
19  212 nPr 11  Qualité de l'algorithme de Pnp.

Les tests donnent les résultats suivants :

 Type

 HP20S

 TI82 HP10BII  CC40  EL992S  TI Galaxy 40  F802P  TI 40 College II

 Arithmétique élémentaire

               
1  3 1/x * 3 - 1 =  -10^-12  -10^-14  -10^-12  -10^-14  0 -10^-12 0 0
2   (29 * pi) / 29 - pi  0  0  0 (1)  0  0 0 0 0 (3)
3  3E4 STO + 1/x - RCL = 1/x - RCL =  30,03003  0,300003  30,03003  3,0003  0,300003 30,03003 30.03003 3,00030003
4  12 * 12 = sqrt - 12 = 0 0 0 0 0 0 0
5  sqrt(5) * sqrt(5) - 5 = 0  -10^-12  0 0 0 0
 Logarithmes                
6  10^9-1000000000 0 0  0  0 0 0 0
7  10^89-1E89 0 0 0 3*10^78 0 0 (2) 0
8  3 * 49 log - 6 * 7 log =  -10^-10  0  -10^-10  0 0 -10^-10 0 0
9  7 / 2 = log * 4 = exp sqrt sqrt * 2 - 7  2*10^-11  -1,2*10^-10  -4*10^-12 0 2*10^-11 0 0
 Trigonométrie                
10  sin(1E60)  -0,3164  ERR  na  ERR ERR ERR ERR ERR
11  atan(1) - pi / 4  -10^-12  0  na  -5*10^-14 0 -10^-12 0 0
12  355 / 113 + sin = sin  -2*10^-13  0  na  0 0 -1.7*10^-13  0 -10^-12
13  2 1/x atan + 3 1/x atan = * 4 - pi  0  na  0 -10^-13 0 0 0
14  7 1/x tan / ( x^2 - 1) * 2 = atan 1/x * 2 - 7 =  0 -10^-13   na  -10^-12 10^-11 0 0
 Fonction spéciales                
15  atanh(tanh(14)) - 14     na na 
16  Gamma(.5)^2 - pi  na   na  na na na na na
17  69 ! / 68 ! - 69  -10^-10  8*10^-12  -10^-10 na 0  -1.3*10^-9 0 0
18  196 nCr 88  OK  OK  na na ERR  na ERR  OK
19  212 nPr 11  OK  OK  na na  OK  na ERR OK

(Tous les résultats théoriques des tests sont zéro sauf ceux marqués en jaune. Les logarithmes sont népériens) 

na = opération non disponible sur cette machine

(1) La HP 10 BII ne dispose pas de la constante PI (c'est une machine financière)

(2) Le calcul est correct, cependant 10^89 apparaît à l'affichage comme 9,999999999*10^88 !

(3) La machine manipule PI comme valeur symbolique affichée "PI"