MPO n° 97 Spécial 10e Anniversaire : Précision arithmétique

Ici, on fait dans le petit, le LCD qui déchire sa race, on y cause même calculatrices quand on est en manque !

Modérateur : Politburo

Répondre
Avatar de l’utilisateur
Marge
Fonctionne à 14400 bauds
Fonctionne à 14400 bauds
Messages : 5426
Inscription : 01 oct. 2008 14:39
Localisation : En bas, tout au fond à gauche.

Re: MPO n° 97 Spécial 10e Anniversaire : Précision arithmétique

Message par Marge » 30 oct. 2020 10:10

Tiens sur la Sinclair Scientific (ou plus simplement la réplique fidèle créée par Chris Chung), on obtient 3,14404.
Eh bien...
Pour les vingt ans, on testera les fonctions transcendantes, c'est prévu chez Meeus. :)
3 hommes, 3 demis, un 3a... Magnéto, Serge !

« Boris », c'est juste Maurice enrhumé.

Tipoucet
Fonctionne à 9600 bauds
Fonctionne à 9600 bauds
Messages : 3724
Inscription : 10 janv. 2009 14:47

Re: MPO n° 97 Spécial 10e Anniversaire : Précision arithmétique

Message par Tipoucet » 31 oct. 2020 09:46

Marge a écrit :
29 oct. 2020 20:13
Difficile d'omettre dans ce florilège la calculette programmable la moins chère du marché (je m'exprime sous le contrôle de Tipoucet), j'ai nommé la SINCLAIR Scientific Programmable
Merci pour cette marque de confiance 8) je ne connais point cette machine mais je valide bien volontiers ton affirmation :wink:
Dominique

Avatar de l’utilisateur
Marge
Fonctionne à 14400 bauds
Fonctionne à 14400 bauds
Messages : 5426
Inscription : 01 oct. 2008 14:39
Localisation : En bas, tout au fond à gauche.

Re: MPO n° 97 Spécial 10e Anniversaire : Précision arithmétique

Message par Marge » 01 nov. 2020 23:21

Sur la Casio fx-5400P fraîchement redémarrée grâce à bernouilli92, J=39 et J*LOG2=11,7401...

Le programme de 48 octets (taille à vérifier) :

Code : Tout sélectionner

10 X=1:J=0
20 X=2*X
30 IF X#X+1 THEN J=J+1:GOTO 20
40 PRINT J:PRINT J*LOG2
3 hommes, 3 demis, un 3a... Magnéto, Serge !

« Boris », c'est juste Maurice enrhumé.

Avatar de l’utilisateur
Marge
Fonctionne à 14400 bauds
Fonctionne à 14400 bauds
Messages : 5426
Inscription : 01 oct. 2008 14:39
Localisation : En bas, tout au fond à gauche.

Re: MPO n° 97 Spécial 10e Anniversaire : Précision arithmétique

Message par Marge » 02 nov. 2020 15:27

Je viens de reprendre presque in extenso l'excellent programme de C.Ret pour le SHARP et de l'entrer dans la Casio fx-5400P. Le résultat est trouvé en moins de 3 s. 10/100e : 39 et 11,7402.

Code : Tout sélectionner

10 CLEAR : X=1
20 X=2*X: IF X#X+1 THEN J=J+1: GOTO 20
30 PRINT J:PRINT J*LOG2
C'est la première fois de ma vie que je boucle sur la même ligne ! On apprend à tout âge...

J'obtiens 44 octets, sans doute la différence avec le SHARP est-elle liée aux LET/THEN... ou autre chose.
3 hommes, 3 demis, un 3a... Magnéto, Serge !

« Boris », c'est juste Maurice enrhumé.

Avatar de l’utilisateur
dprtl
Fonctionne à 1200 bauds
Fonctionne à 1200 bauds
Messages : 399
Inscription : 27 janv. 2013 01:26
Localisation : Strasbourg
Contact :

Re: MPO n° 97 Spécial 10e Anniversaire : Précision arithmétique

Message par dprtl » 02 nov. 2020 22:56

Comme on s'autorise à sortir les HP Prime et Casio Classpad sur un forum rétro (un petit peu quand même ? :) ), j'ai sorti ma calculette de 160 g programmable en Python, avec 103 octets de programme :

Code : Tout sélectionner

import math
x=1
j=0
while j<100000:
  x=2*x
  if (x == x+1):
	break
  j+=1
print(j,j*math.log10(2))
Et comme, en Python, les entiers ne sont limités que par la RAM de ma calculette (énorme), j'obtiens facilement :

100000 30102.99956639812

Si j'arrête de tricher, en ajoutant deux octets pour faire 105, le même programme (ci-dessous) donne le résultat (calcul en virgule flottante IEEE 754) :

52 15.653559774527022

Image

Avatar de l’utilisateur
gege
Fonctionne à 14400 bauds
Fonctionne à 14400 bauds
Messages : 7105
Inscription : 31 janv. 2008 15:24
Localisation : Banlieue Paârisienne
Contact :

Re: MPO n° 97 Spécial 10e Anniversaire : Précision arithmétique

Message par gege » 03 nov. 2020 00:14

Bonjour,
Ah ok, Môssieur veut se la jouer course aux armements, "j'ai la plus grosse", "laissez passer !"... :twisted:
Je reviens avec ce qu'il faut (mais toujours de poche, on a de l'éthique dans la famille, nous) ! :mrgreen:

...

A suivre :D
G.E.

Avatar de l’utilisateur
dprtl
Fonctionne à 1200 bauds
Fonctionne à 1200 bauds
Messages : 399
Inscription : 27 janv. 2013 01:26
Localisation : Strasbourg
Contact :

Re: MPO n° 97 Spécial 10e Anniversaire : Précision arithmétique

Message par dprtl » 03 nov. 2020 00:52

Pour stopper cette surenchère technologique, qui risque d'entraîner l'humanité vers le néant, voici ci-dessous ma version pour TI-57 de 1977. Elle donnera peut-être des résultats différents des autres ? Ici, rien à initialiser, tout est dans le programme. On peut le relancer autant de fois que l'on veut par R/S. La danse des chiffres rouges pendant le calcul est hypnotique :

Code : Tout sélectionner

00  1
01  STO 7
02  0
03  STO 0
04  LBL 1
05  2
06  PRD 7
07  RCL 7
08  +
09  1
10  =
11  x=t
12  GTO 2
13  1
14  SUM 0
15  GTO 1
16  LBL 2
17  RCL 0
18  R/S
19  x
20  2
21  LOG
22  =
23  R/S
24  RST
Elle affiche finalement 36 [R/S] et 10.83708.

Image

Avatar de l’utilisateur
Marge
Fonctionne à 14400 bauds
Fonctionne à 14400 bauds
Messages : 5426
Inscription : 01 oct. 2008 14:39
Localisation : En bas, tout au fond à gauche.

Re: MPO n° 97 Spécial 10e Anniversaire : Précision arithmétique

Message par Marge » 03 nov. 2020 01:19

Bien, la TI-57 qui dépasse en précision jusqu'à la HP-41...
Mais je suis surpris par l'affichage du résultat à 7 chiffres... il va falloir que je ranime la mienne.
3 hommes, 3 demis, un 3a... Magnéto, Serge !

« Boris », c'est juste Maurice enrhumé.

Avatar de l’utilisateur
gege
Fonctionne à 14400 bauds
Fonctionne à 14400 bauds
Messages : 7105
Inscription : 31 janv. 2008 15:24
Localisation : Banlieue Paârisienne
Contact :

Re: MPO n° 97 Spécial 10e Anniversaire : Précision arithmétique

Message par gege » 03 nov. 2020 10:27

Bonjour;
Bravo messieurs, en effet on privilégie le vieilot ici mais bon juste pour rigoler j'ai fini par tester mon truc prétendûment à précision infinie sur Prime, bon c'est pas mal mais pas concluant.

Voici le programme qui permet de calculer 2^(2^17) + 1 - 2^(2^17), en effet plutôt que de partir de 1 et multiplier par 2 pour obtenir tous les 2^N, je pars de 2 et j'élève au carré ce qui donne les 2^(2^N), forcément il y a énormément moins d'étapes :

Code : Tout sélectionner

EXPORT precision(n)
BEGIN
LOCAL f,j,s;
xinit(1);xtof("2")▶f;
FOR j FROM 1 TO n DO xmul(f,f)▶f;END;
xsign(xsub(xadd(f,xtof("1")),f))▶f;
IF 0==f THEN "="▶f ELSE "≠"▶f END;
"2^(2^"+STRING(n)+")"▶s;
RETURN s+f+s+"+1";
END; 
On tape precision(17) et la machine confirme que 2^(2^17) ≠ 2^(2^17) + 1.
Or ce nombre comporte 39457 chiffres et il commence d'ailleurs par
4014132182 0360630391 6606348382 0294290261 6005734408 9446062580 0322260229 ...

Malheureusement la représentation de 2^(2^18) avec ce truc nécessiterait une liste de plus de 10000 éléments, qui est une limite de la HP Prime.
On a la RAM, mais quelqu'un a bridé la bécane, dommage...
Ceci dit vu les temps de calcul (que je tais pudiquement comme dprtl), on aurait probablement renoncé avant d'arriver à l'infini...

Allez retour aux vieux coucous bien plus marrants
G.E.

tyann
Fonctionne à 1200 bauds
Fonctionne à 1200 bauds
Messages : 746
Inscription : 06 oct. 2012 14:37

Re: MPO n° 97 Spécial 10e Anniversaire : Précision arithmétique

Message par tyann » 03 nov. 2020 13:42

Salut Gégé

j'ai moi aussi travaillé sur un projet où le nombre d'éléments à mémoriser
dans une liste était supérieur à 10 000.
En fait c'est possible, en utilisant une liste de listes, en effet une liste est limitée à 10 000 éléments
mais chaque élément peut être lui même une liste pouvant contenir 10 000 éléments.
Ainsi pour mémoriser 30 000 éléments dans une liste il faut que cette liste contienne 3 listes
qui contiennent chacune 10 000 éléments.
Comme ceci :
{{élm1,.....élm 10000},{élm1,.....élm 10000},{élm1,....élm10000}}
et ça se gére assez souplement.
Ti(s) 60, 62 Galaxy, 66, 67 Galaxy, 68, 74 Basical 80, 81, 82, 83+, 83 CE, 84+SE, 85, 86, 89, 89 titanium, 92, 95 Procalc, v200, nSpire cx
Hp(s) 41CX, 28S, 48g, 50g, 39gII, Prime G1 et G2,
Casio(s) fx 602P, 702P, 4000P, 4500P, 6000G, 6900G, 7700G, 8500g, PB-700, CG-20, Graph 95 sd
Psion(s)II LZ64, siena, s3a, s3mx, s5mx.
Sharp(s) pc-1350, 1403, 1500A, El 5120, 9200, 9600

Canon X-07

Avatar de l’utilisateur
dprtl
Fonctionne à 1200 bauds
Fonctionne à 1200 bauds
Messages : 399
Inscription : 27 janv. 2013 01:26
Localisation : Strasbourg
Contact :

Re: MPO n° 97 Spécial 10e Anniversaire : Précision arithmétique

Message par dprtl » 03 nov. 2020 20:48

Comme je l'écrivais dans un autre topic, la calculette que j'utilise le plus souvent c'est 'bc' en ligne de commande : puissante, pratique, pas chère, libre. On peut même la recompiler pour Atari ST avec les excellents "m68k-atari-mint cross-tools" de Vincent Rivière. Pour vérifier l'affirmation de gege, je l'ai utilisée de la façon suivante :

Code : Tout sélectionner

$ BC_LINE_LENGTH=0 bc <<< '2^(2^17)' | echo "`wc -c`-1" | bc 
39457
$ BC_LINE_LENGTH=0 bc <<< '2^(2^18)' | echo "`wc -c`-1" | bc 
78914
$ BC_LINE_LENGTH=0 bc <<< '2^(2^19)' | echo "`wc -c`-1" | bc 
157827
$ BC_LINE_LENGTH=0 bc <<< '2^(2^20)' | echo "`wc -c`-1" | bc 
315653
Par contre, je n'ai pas mesuré le temps de calcul sur un vrai 68000 :wink:

Avatar de l’utilisateur
C.Ret
Fonctionne à 9600 bauds
Fonctionne à 9600 bauds
Messages : 2411
Inscription : 31 mai 2008 23:43
Localisation : N 49°22 E 6°10

Re: MPO n° 97 Spécial 10e Anniversaire : Précision arithmétique

Message par C.Ret » 03 nov. 2020 21:00

dprtl a écrit :
03 nov. 2020 00:52
Pour stopper cette surenchère technologique, qui risque d'entraîner l'humanité vers le néant, voici ci-dessous ma version pour TI-57 de 1977. Elle donnera peut-être des résultats différents des autres ? Ici, rien à initialiser, tout est dans le programme. On peut le relancer autant de fois que l'on veut par R/S. La danse des chiffres rouges pendant le calcul est hypnotique : Elle affiche finalement 36 [R/S] et 10.83708.
Ah! Merci dprtl, je désespérais de pouvoir comparer les performances de ma pauvre TI-57 LCD avec sa sœur ainée.
A priori, si la Ti-57 LCD n'a pas autant de ressource mémoire que son ainée, elle fait ses calculs avec la même précision. Maigre consolation.

Je vois que dans ton code, tu utilises le fait que le registre de test t est aussi le registre n°7. Je ne peux faire de même avec ma TI-57 LCD :( Et apparemment, le test x=t? se fait avec toute la précision de la machine.

Je n'ai toujours pas trouvé d'explication concernant le test x≠t? qui semble se faire avec une précision limitée (à l'affichage ?) sur ma Ti-57. La documentation de la TI-57 étant plus complète que celle fournie avec une TI-57 LCD, y trouve-t-on une indication ?
SHARP PC-1211 + CE-121 + CE-122. | VIC 20 Commodore 128D + Printer P-803 + SD2iec. | TI-57 LCD | HP-28S + HP82240A | TI-74 BasiCalc | HP-41C + (2 memory + stat + IR) | HP-15C | HP Prime Color Touchscreen Graphing Calculator| TI-92 II | CASIO fx-602p + FA-1 | HP-71B 64K+JPC-ROM+HPIL+card reader . Sommaire des M.P.O..

Gilles59
Fonctionne à 2400 bauds
Fonctionne à 2400 bauds
Messages : 1396
Inscription : 27 oct. 2010 20:46

Re: MPO n° 97 Spécial 10e Anniversaire : Précision arithmétique

Message par Gilles59 » 03 nov. 2020 22:25

dprtl a écrit :
03 nov. 2020 00:52
Pour stopper cette surenchère technologique, qui risque d'entraîner l'humanité vers le néant, voici ci-dessous ma version pour TI-57 de 1977. Elle donnera peut-être des résultats différents des autres ? Ici, rien à initialiser, tout est dans le programme. On peut le relancer autant de fois que l'on veut par R/S. La danse des chiffres rouges pendant le calcul est hypnotique...
Mon premier contact avec une programmable a été une TI57 qu'un copain m'avait prêté... Le fait que cette calculatrice soit "programmable" m'avait bluffé... Et les nombres rouges qui clignotaient dans la pénombre, je m'en souviens encore ;D Plus impressionnant que l'inscription lumineuse de l'Anneau Unique sorti du feu ;D
Casio FX-502P /602P / 603P / FX180P+ / FX4000P / TI57 / TI66 / TI74 Basicalc / TI95 Procalc / HP12C / HP15C LE / DM41L / HP 30B / HP39GII / HP 48SX USA / 49G / 49G+ / 50G / 50G NewRPL / HP Prime / Oric 1 / Amstrad CPC 6128+

Avatar de l’utilisateur
dprtl
Fonctionne à 1200 bauds
Fonctionne à 1200 bauds
Messages : 399
Inscription : 27 janv. 2013 01:26
Localisation : Strasbourg
Contact :

Re: MPO n° 97 Spécial 10e Anniversaire : Précision arithmétique

Message par dprtl » 03 nov. 2020 22:41

C.Ret a écrit :
03 nov. 2020 21:00
Je n'ai toujours pas trouvé d'explication concernant le test x≠t? qui semble se faire avec une précision limitée (à l'affichage ?) sur ma Ti-57. La documentation de la TI-57 étant plus complète que celle fournie avec une TI-57 LCD, y trouve-t-on une indication ?
Le manuel en français de la TI-57 originale, aussi "cheap" que la machine elle-même, est dispo ici :

http://collection.sasfepu.free.fr/downl ... &tconfig=0

Il est bien scanné, car j'avoue que j'ai besoin de mes lunettes pour lire la version papier, avec son petit format A6 et sa police microbienne... Sans doute pour protéger la forêt amazonienne ?

Donc, aucune différence de précision n'est mentionnée entre les séquences [2nd] [x=t] et [INV] [2nd] [x=t].

Gilles59
Fonctionne à 2400 bauds
Fonctionne à 2400 bauds
Messages : 1396
Inscription : 27 oct. 2010 20:46

Re: MPO n° 97 Spécial 10e Anniversaire : Précision arithmétique

Message par Gilles59 » 03 nov. 2020 23:16

Au passage la 'police microbienne' me rappelle qu'il y a excellent émulateur TI57 pour HP48. Il utilise le micro-code de la TI-57 et toutes les bidouilles y compris pour afficher des lettres fonctionnent ;D Dans l'aide, j'ai lu que la rom de la TI57 avait été déchiffrée... au microscope :O
Casio FX-502P /602P / 603P / FX180P+ / FX4000P / TI57 / TI66 / TI74 Basicalc / TI95 Procalc / HP12C / HP15C LE / DM41L / HP 30B / HP39GII / HP 48SX USA / 49G / 49G+ / 50G / 50G NewRPL / HP Prime / Oric 1 / Amstrad CPC 6128+

Répondre

Revenir vers « Tous les Pockets »