Aujourd'hui nous sommes le 22 juillet, soit en écriture numérique 22/07, ce qui nous amène à la fraction
Et en effet,
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 :
$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)
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
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...
Un autre calcul très simple souffrant du même problème est
Le problème ne se limite d'ailleurs pas aux calculs de quotients, si tu tapes bêtement 3232,08884797 tu obtiens
$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. 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...
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 topC'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$
2) Processeurs et cœurs de calcul
Go to topDéjà, pourquoi cette différence entre les Casio et les contrefaçons de Casio ? Et bien elles n'utilisent pas le même processeur :
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
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.
- 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
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
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 topEn 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
Cela signifie dans ce cas que
Et pour l'autre exemple de
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{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$
\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$
\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 topLes 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
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 :
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
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
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.
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
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
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 topAprè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 :
Partons donc sur l'hypothèse d'un algorithme QPi alternatif :
En effet, si par exemple
Rappelons que la Casio fx-92 Collège gère 3 unités d'angles :
Avec
Avec
Pour combiner les avantages des deux, on peut proposer
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.
Testons si cette valeur est la bonne, avec la suite des nombres
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 :
Et pour la même raison, on ne peut pas non plus utiliser pour cela un algorithme dans l'application Algorithmique.
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
On obtient bien comme prévu et successivement :
Mais, petite divergence, nous obtenons également l'affichage exact de
Or, 16 n'est pas un diviseur de
C'est donc que
Ici en testant les nombres
Lors de nos faux résultats QPi obtenus, on peut noter que contrairement aux numérateurs, les nombres au dénominateur sont assez remarquables :
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 :
- Degré
- Radian
- Grade
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$
.\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 :
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$
...
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.\phantom{\frac{\frac{\pi}{16}}{\pi}\times 12600}=\frac{1575}{2}$mathjax$
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$
\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. Source : https://www.youtube.com/watch?v=7LKy3lrkTRA via https://twitter.com/standupmaths/status ... 9025727494