π
<-
Chat plein-écran
[^]

fx-92 Collège: faux résultats en π & algo QPiRac de Casio

fx-92 Collège: faux résultats en π & algo QPiRac de Casio

Message non lude critor » 22 Juil 2020, 18:34

Aujourd'hui nous sommes le 22 juillet, soit en écriture numérique 22/07, ce qui nous amène à la fraction
$mathjax$\frac{22}{7}\approx 3,14285714$mathjax$
. Très proche de
$mathjax$π\approx 3,14159265$mathjax$
n'est-ce pas ?
Et en effet,
$mathjax$\frac{22}{7}$mathjax$
est une approximation rationnelle supérieure de π, utilisée sciemment par Archimède dès le IIIè siècle avant J.-C.
Pour fêter l'occasion, nous allons aujourd'hui parler π et calculatrices, attends-toi à quelques surprises. ;)

Ta calculatrice scientifique du collège dispose d'un moteur de calcul exact dit QPiRac, c'est-à-dire qu'il est capable de fournir des réponses exactes même lorsque le résultat n'est pas un nombre décimal. Plus précisément, le moteur QPiRac couvre les familles suivantes de nombres usuellement rencontrés au collège et au lycée :
  • QPi : multiples rationnels de π -
    $mathjax$\pm\frac{a\pi}{b}$mathjax$
    (pour les angles en radians notamment)
  • QRac : binômes de rationnels et/ou radicaux -
    $mathjax$\frac{\pm a\sqrt{b} \pm c\sqrt{d}}{f}$mathjax$
    (ce qui couvre un large ensemble allant des fractions du collège aux racines de polynômes du 2nd degré au lycée en passant par nombre de valeurs remarquables en trigonométrie)


1268712686
Prenons les calculatrices les plus populaires et célèbres au collège, les Casio fx-92 Collège. Et bien grosse surprise, si tu tapes donc sur ta Casio un calcul très simple comme
$mathjax$\frac{11^6}{13}$mathjax$
, la calculatrice te fournit le résultat de
$mathjax$\frac{156158413}{3600}\pi$mathjax$
, et ce aussi bien avec la première calculatrice exacte fx-92 Collège 2D de 2007 que la dernière fx-92+ Spéciale Collège de 2018. :#roll#:

Ta calculatrice te fournit donc une réponse dans la famille QPi alors que tu as clairement saisi quelque chose appartenant à la famille QRac et même Q tout court. C'est-à-dire qu'elle te suggère que π est un nombre rationnel, rien que ça... :p

Un autre calcul très simple souffrant du même problème est
$mathjax$\frac{6^{11}}{1000}$mathjax$
qui répond
$mathjax$\frac{1455071890}{12600}\pi$mathjax$
.

Le problème ne se limite d'ailleurs pas aux calculs de quotients, si tu tapes bêtement 3232,08884797 tu obtiens
$mathjax$\frac{1234567}{1200}\pi$mathjax$
.




1) Confrontation à la concurrence

Go to top

12688C'est d'autant plus surprenant que la concurrence ne commet pas cette erreur :
  • la TI-Collège Plus, une des rares calculatrices scientifiques à ne pas être une contrefaçon de Casio, préfère opter dans ce cas pour un résultat décimal approché
  • les contrefaçons de calculatrices Casio exactes (HP SmartCalc 300s, HP 300s+, Lexibook, Auchan et autres marques distributeurs...) te répondent quant à elles correctement dans Q avec la fraction
    $mathjax$\frac{1771561}{13}$mathjax$
12685


2) Processeurs et cœurs de calcul

Go to top

Déjà, pourquoi cette différence entre les Casio et les contrefaçons de Casio ? Et bien elles n'utilisent pas le même processeur :
  • les Casio exactes utilisent un nX-U8/100 8 bits de chez OKI / Lapis Semiconductor
  • les contrefaçons de Casio utilisent jusqu'à présent toutes un ePS6800 8 bits de chez ELAN Semiconductors
En passant, les TI exactes de la gamme MultiView dont la TI-Collège Plus utilisent un T4x 4 bits de chez Toshiba.

Processeur différent et donc langage machine différent et incompatible, le firmware de Casio a forcément dû être ou adapté ou réécrit pour les contrefaçons, ce qui peut expliquer nombre de différences dont celle-ci.

Mais la différence dans les résulats n'est possiblement même pas la conséquence volontaire d'un meilleur algorithme sur les contrefaçons. Car qui dit processeur différent dit également cœur de calcul différent. L'on peut mettre ça en évidence avec le test du
$mathjax$arcsin\left(arccos\left(arctan\left(tan\left(cos\left(sin\left(9\right)\right)\right)\right)\right)\right)-9$mathjax$
, dont le résultat est zéro mais en pratique non nul sur les calculatrices dépourvues d'un moteur de calcul littéral :
  • 0,00000000733338 sur les Casio exactes
  • 0,000000000771497 sur les contrefaçons de Casio
  • 0,000001077 sur les TI exactes
12692126931269112690

Des résultats différents en bijection avec les types de processeurs énoncés précédemment, il est donc possible que ce soit de simples écarts différents dans les calculs qui font, involontairement, que les contrefaçons optent pour le bon résultat exact alors que les Casio choisissent un mauvais résultat.


3) Approximations et π

Go to top

En fait les affichages sont corrects si l'on considère qu'une calculatrice dépourvue de moteur de calcul littéral n'est jamais fiable. C'est-à-dire si l'on comprend non pas que
$mathjax$\frac{11^6}{13}=\frac{156158413}{3600}\pi$mathjax$
, mais que
$mathjax$\frac{11^6}{13}\approx\frac{156158413}{3600}\pi$mathjax$
.

Cela signifie dans ce cas que
$mathjax$\pi\approx\frac{11^6}{13}\times\frac{3600}{156158413}\\
\phantom{\pi}\approx\frac{6377619600}{203000369}\\
\phantom{\pi}\approx\frac{52707600}{1677689}\\
\phantom{\pi}\approx 3,141592654$mathjax$


Et pour l'autre exemple de
$mathjax$\frac{6^{11}}{1000}\approx \frac{1455071890}{12600}\pi$mathjax$
, on obtient également
$mathjax$\pi\approx\frac{6^{11}}{1000}\times\frac{12600}{1455071890}\\
\phantom{\pi}\approx\frac{4571242905600}{1455071890000}\\
\phantom{\pi}\approx\frac{11428107264}{3637679725}\\
\phantom{\pi}\approx 3,141592479$mathjax$


Ces approximations de π étant valables, les affirmations initiales de la calculatrice qui les utilisent ne sont plus surprenantes.

D'ailleurs on peut aussi obtenir directement et faussement π sur ta fx-92 Collège d'autres façons :
  • $mathjax$\frac{2463199200}{784060657}\approx\pi$mathjax$
  • $mathjax$\frac{4272943}{1360120}\approx\pi$mathjax$


4) Un algorithme QPi trivial

Go to top

Les Casio fx-92 Collège n'utilisent donc pas de moteur de calcul littéral. Elles ne calculent pas sur l'intégralité de l'ensemble des nombres réels loin de là, mais sur un tout petit sous-ensemble que l'on peut caractériser en exécutant à la main le script Python suivant pour les appels precm(2) et precm(10) :
Code: Tout sélectionner
def precm(b):
  k,b=0,float(b)
  while 1+b**-k-1>0:
    k+=1
  return k

Image Image Image Image

Plus précisément, Casio calcule donc sur 40 bits, ce qui en pratique nous permet d'obtenir jusqu'à 13 chiffres significatifs en écriture décimale.

Comment donc peut-on se débrouiller pour obtenir un nombre QPi à partir d'un nombre résultat décimal à 13 chiffres significatifs ?

Dans le contexte de la calculatrice qui est capable de convertir les résultats décimaux en nombres QRac et donc entre autres en fractions (Q), un moyen très simple est de :
  • diviser le résultat par π
  • tester si le résultat alors obtenu peut être réécrit sour forme de quotient
Toutefois, cela ne semble pas être exactement ce que font les Casio fx-92 Collège.

Il semble en effet que la calculatrice ne gère pas l'ensemble des multiples rationnels de π. Par exemple la calculatrice est incapable de trouver un résultat exact très simple comme
$mathjax$\frac{\pi}{11}$mathjax$
, alors qu'elle en est pourtant parfaitement capable pour
$mathjax$\frac{1}{11}$mathjax$
.

On peut supposer par exemple, qu'à des fins de légèreté du traitement, elle ne fasse pas appel dans ce cas-ci pour la mise sous forme de quotient au code s'occupant de la conversion QRac, mais à un code dédié et allégé ne traitant que le cas Q.

Même impossibilité de retourner une valeur exacte de
$mathjax$\frac{\pi}{11}$mathjax$
chez les contrefaçons de Casio.

Par contre, notons bien que les calculatrices graphiques Casio ainsi que la TI-Collège Plus n'ont pas ce problème, et sembleraient donc bien à la différence utiliser l'algorithme complet tel que présenté.

Cela voudrait-il dire qu'elles sont meilleures ? Sur ce cas particulier oui, certainement, mais cela ne veut pas dire qu'elles ne souffrent pas d'autres défauts dans d'autres cas.


5) Algorithme QPi de Casio

Go to top

Après l'algorithme général décrit dans le point précédent, nous allons ici tenter de mieux comprendre et approcher l'algorithme QPi utilisé par les Casio fx-92 Collège, et notamment la détermination du facteur rationnel de π.

Lors de nos faux résultats QPi obtenus, on peut noter que contrairement aux numérateurs, les nombres au dénominateur sont assez remarquables :
Image Image Image


Partons donc sur l'hypothèse d'un algorithme QPi alternatif :
  • diviser le résultat par π
  • multiplier le résultat par un nombre entier N
  • tester si le résultat obtenu semble pouvoir être un entier

En effet, si par exemple
$mathjax$\frac{x}{\pi}*N=3$mathjax$
, c'est que
$mathjax$x=\frac{3}{N}\pi$mathjax$
.

Rappelons que la Casio fx-92 Collège gère 3 unités d'angles :
  1. Degré
  2. Radian
  3. Grade
Avec π radians = 180° = 200 grades.

Avec
$mathjax$N=180$mathjax$
, on aurait l'avantage de pouvoir obtenir un résultat exact de conversion en radians pour n'importe quel nombre entier de degrés.
Avec
$mathjax$N=200$mathjax$
, on aurait l'avantage de pouvoir obtenir un résultat exact de conversion en radians pour n'importe quel nombre entier de grades.
Pour combiner les avantages des deux, on peut proposer
$mathjax$N=ppcm(180,200)\\
\phantom{N}=1800$mathjax$
.

Vu les valeurs 3600 et 12600 obtenues précédemment aux dénominateurs des faux résultats QPi, la véritable valeur de N est supérieure et vaut au moins 12600.
Mais on peut quand même noter que nous sommes sur la bonne voie logique, car 3600 et 12600 sont justement des multiples de 1800.

$mathjax$N=12600$mathjax$
est divisible entre autres par 2, 3, 4, 5, 6, 7, 8, 9, 10, 12, 14, 15, 18, 20, 21, 24, 25, 28, 30, 35, 36, 40, 42, 45, 50, 56, 60, 63, 70, 72, 75, 84, 90, 100, 105 et 120.

Testons si cette valeur est la bonne, avec la suite des nombres
$mathjax$\frac{\pi}{n}$mathjax$
.

Petites difficulté sur fx-92+ Spéciale Collège si l'on veut faire cela en évitant de saisir un par un des 10aines de calculs :
On ne peut pas faire cela avec une fonction dans l'application Tableau, car cette dernière n'affiche que des valeurs décimales :
Image Image Image Image

Et pour la même raison, on ne peut pas non plus utiliser pour cela un algorithme dans l'application Algorithmique.
Code: Tout sélectionner
1→D
Répéter jusqu'à D=120
  Afficher résultat π÷D
  D+1→D


Tant pis, utilisons une autre astuce directement dans l'application Calcul. Partons du résultat π, puis il nous suffira juste de saisir la formule récurrente π÷(π÷Rep+1) puis de la revalider plusieurs fois de suite d'un simple appui sur la touche
EXE
.
On obtient bien comme prévu et successivement :
  • l'affichage exact de
    $mathjax$\frac{\pi}{2}$mathjax$
    ,
    $mathjax$\frac{\pi}{3}$mathjax$
    ,
    $mathjax$\frac{\pi}{4}$mathjax$
    ,
    $mathjax$\frac{\pi}{5}$mathjax$
    ,
    $mathjax$\frac{\pi}{6}$mathjax$
    ,
    $mathjax$\frac{\pi}{7}$mathjax$
    ,
    $mathjax$\frac{\pi}{8}$mathjax$
    ,
    $mathjax$\frac{\pi}{9}$mathjax$
    ,
    $mathjax$\frac{\pi}{10}$mathjax$
  • un affichage décimal approché pour
    $mathjax$\frac{\pi}{11}$mathjax$
  • l'affichage exact de
    $mathjax$\frac{\pi}{12}$mathjax$
  • un affichage décimal approché pour
    $mathjax$\frac{\pi}{13}$mathjax$
  • l'affichage exact de
    $mathjax$\frac{\pi}{14}$mathjax$
    ,
    $mathjax$\frac{\pi}{15}$mathjax$
Image Image ... Image Image Image Image Image Image

Mais, petite divergence, nous obtenons également l'affichage exact de
$mathjax$\frac{\pi}{16}$mathjax$
.
Or, 16 n'est pas un diviseur de
$mathjax$N=12600$mathjax$
. Et en effet,
$mathjax$\frac{\frac{\pi}{16}}{\pi}\times 12600=\frac{12600}{16}\\
\phantom{\frac{\frac{\pi}{16}}{\pi}\times 12600}=\frac{1575}{2}$mathjax$
n'est pas entier.

C'est donc que
$mathjax$N=12600$mathjax$
n'est pas la valeur utilisée par Casio, et il nous manque visiblement un facteur de 2. Prenons donc
$mathjax$N=12600\times 2\\
\phantom{N}=25200$mathjax$


$mathjax$N=25200$mathjax$
est divisible entre autres par 2, 3, 4, 5, 6, 7, 8, 9, 10, 12, 14, 15, 16, 18, 20, 21, 24, 25, 28, 30, 35, 36, 40, 42, 45, 48, 50, 56, 60, 63, 70, 72, 75, 80, 84, 90, 100, 105, 112, 120, 126, 140, 144, 150 et 168.
Ici en testant les nombres
$mathjax$\frac{\pi}{n}$mathjax$
pour
$mathjax$n=1$mathjax$
jusqu'à
$mathjax$n=168$mathjax$
plus aucun écart, nous obtenons bien :
  • des valeurs exactes pour tous les diviseurs de
    $mathjax$N=25200$mathjax$
  • des valeurs décimales approchées pour toutes les autres valeurs

$mathjax$N=25200$mathjax$
semble donc bien être la valeur utilisée en interne par l'algorithme QPiRac de Casio. :D

Source : https://www.youtube.com/watch?v=7LKy3lrkTRA via https://twitter.com/standupmaths/status ... 9025727494
Image
Avatar de l’utilisateur
critorAdmin
Niveau 19: CU (Créateur Universel)
Niveau 19: CU (Créateur Universel)
Prochain niv.: 41.8%
 
Messages: 41465
Images: 14479
Inscription: 25 Oct 2008, 00:00
Localisation: Montpellier
Genre: Homme
Calculatrice(s):
MyCalcs profile
YouTube: critor3000
Twitter/X: critor2000
GitHub: critor

Re: fx-92 Collège: faux résultats en π & algo QPiRac de Casi

Message non lude critor » 23 Juil 2020, 10:12

Autre fil à ce sujet : https://www.hpmuseum.org/forum/thread-15353.html



Sinon, d'autres sont bien prompts à railler Casio en commentaires, "buy a decent calculator", "TI the best", bref tout le contraire de ce que j'ai dit : :p
https://www.youtube.com/watch?v=7LKy3lrkTRA
https://twitter.com/standupmaths/status ... 1474484224

Une calculatrice numérique commet toujours des erreurs, celles qui ne font pas celles-ci en feront forcément d'autres.



Y'a même une marque concurrente qui est venue remettre une couche : :troll:

Mais après, peut-on vraiment comparer une calculatrice graphique munie d'un véritable processeur turbo 32 bits avec des 100aines de MégaHertz et de kilooctets, et une calculatrice scientifique munie d'un simple microcontrôleur tournant à à peine plus d'1 MHz, se débrouillant avec juste quelques 100aines d'octets et alimenté par une pauvre pile AAA, et donc faisant forcément tourner des algorithmes plus légers ? :#roll#:
Image
Avatar de l’utilisateur
critorAdmin
Niveau 19: CU (Créateur Universel)
Niveau 19: CU (Créateur Universel)
Prochain niv.: 41.8%
 
Messages: 41465
Images: 14479
Inscription: 25 Oct 2008, 00:00
Localisation: Montpellier
Genre: Homme
Calculatrice(s):
MyCalcs profile
YouTube: critor3000
Twitter/X: critor2000
GitHub: critor

Re: fx-92 Collège: faux résultats en π & algo QPiRac de Casi

Message non lude user202729 » 25 Juil 2020, 06:36

Actually, CASIO calculators (at least for the ES PLUS and EX models) uses binary coded decimal internally, with 15 decimal digits of precision. (this is written in the instruction manual)

However, when a calculation produces result significantly smaller than the operands, the result is assumed to be 0 (to avoid round-off errors).

1÷3-0.333333333333=3.33x10^-13
1÷3-0.333333333333-3x10^-13=3.3x10^-14
1÷3-(0.333333333333+3x10^-13)=0
1÷3-0.3333333333333=0
Avatar de l’utilisateur
user202729
Niveau 4: MC (Membre Confirmé)
Niveau 4: MC (Membre Confirmé)
Prochain niv.: 12%
 
Messages: 19
Inscription: 29 Oct 2016, 10:42
Genre: Non spécifié
Calculatrice(s):
MyCalcs profile


Retourner vers News Casio

Qui est en ligne

Utilisateurs parcourant ce forum: Aucun utilisateur enregistré et 36 invités

-
Rechercher
-
Social TI-Planet
-
Sujets à la une
Comparaisons des meilleurs prix pour acheter sa calculatrice !
Aidez la communauté à documenter les révisions matérielles en listant vos calculatrices graphiques !
Phi NumWorks jailbreak
123
-
Faire un don / Premium
Pour plus de concours, de lots, de tests, nous aider à payer le serveur et les domaines...
Faire un don
Découvrez les avantages d'un compte donateur !
JoinRejoignez the donors and/or premium!les donateurs et/ou premium !


Partenaires et pub
Notre partenaire Jarrety Calculatrices à acheter chez Calcuso
-
Stats.
1844 utilisateurs:
>1832 invités
>7 membres
>5 robots
Record simultané (sur 6 mois):
6892 utilisateurs (le 07/06/2017)
-
Autres sites intéressants
Texas Instruments Education
Global | France
 (English / Français)
Banque de programmes TI
ticalc.org
 (English)
La communauté TI-82
tout82.free.fr
 (Français)