π
<-
Chat plein-écran
[^]

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

Online

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

Unread postby critor » 22 Jul 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: Select all
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: Select all
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
User avatar
critorAdmin
Niveau 19: CU (Créateur Universel)
Niveau 19: CU (Créateur Universel)
Level up: 6.9%
 
Posts: 35655
Images: 9559
Joined: 25 Oct 2008, 00:00
Location: Montpellier
Gender: Male
Calculator(s):
Class: Lycée
YouTube: critor3000
Twitter: critor2000
Facebook: critor.ti
GitHub: critor

Online

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

Unread postby critor » 23 Jul 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
User avatar
critorAdmin
Niveau 19: CU (Créateur Universel)
Niveau 19: CU (Créateur Universel)
Level up: 6.9%
 
Posts: 35655
Images: 9559
Joined: 25 Oct 2008, 00:00
Location: Montpellier
Gender: Male
Calculator(s):
Class: Lycée
YouTube: critor3000
Twitter: critor2000
Facebook: critor.ti
GitHub: critor

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

Unread postby user202729 » 25 Jul 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
User avatar
user202729
Niveau 5: MO (Membre Overclocké)
Niveau 5: MO (Membre Overclocké)
Level up: 56.3%
 
Posts: 19
Joined: 29 Oct 2016, 10:42
Gender: Not specified


Return to News Casio

Who is online

Users browsing this forum: No registered users and 12 guests

-
Search
-
Featured topics
L'OS 5.5 de la TI-83 Premium CE / 84 Plus CE supprime l'assembleur - la plupart des jeux et certains programme ne fonctionneront plus
Omega, le fork étendant les capacités de ta NumWorks, même en mode examen !
Découvre les nouvelles fonctionnalités en Python de l'OS 5.5 pour la 83PCE/84+C-T Python Edition
Comparaisons des meilleurs prix pour acheter sa calculatrice !
1234
-
Donations / Premium
For more contests, prizes, reviews, helping us pay the server and domains...

Discover the the advantages of a donor account !
JoinRejoignez the donors and/or premium!les donateurs et/ou premium !


Partner and ad
Notre partenaire Jarrety Calculatrices à acheter chez Calcuso
-
Stats.
488 utilisateurs:
>470 invités
>12 membres
>6 robots
Record simultané (sur 6 mois):
6892 utilisateurs (le 07/06/2017)
-
Other interesting websites
Texas Instruments Education
Global | France
 (English / Français)
Banque de programmes TI
ticalc.org
 (English)
La communauté TI-82
tout82.free.fr
 (Français)