Page 1 of 1

Erreur de calcul en mode Home

Unread postPosted: 12 Dec 2020, 19:09
by downrider
Bonjour,

sur ma HP Prime G2 fraîchement reçue, je constate avec grande déception qu'elle ne calcule pas correctement en mode Home :

- cos(pi/2) et sin(pi) ne donnent pas 0 (déjà signalé sur ce forum)
- (900/121)*(10285/9) donne 8500,00000002 et non 8500 comme attendu :mmm:
- si on fait 900/121 puis enter, puis Ans*10285/121, elle donne bien 8500 comme résultat ! Idem si on fait Enter après 10285 et qu'on divise ensuite par 121. Mais si on met des parenthèses à 10285/9, alors ça ne marche pas...

- Par contre, (900/9)*(10285/121) donne bien 8500, et on pourrait donc penser qu'elle ne sait pas multiplier deux fractions dont les résultats ont un nombre illimité de décimales
Sauf que (900/121)*(18150/9) donne bien 15000 comme attendu. En fait, dès que le résultat est supérieur à 10000, ça marche, comme si la Hp ne pouvait pas afficher plus de 12 chiffres par nombres, décimales incluses. Elle opère alors un arrondi et donne la valeur recherchée (entier).

J'ai essayé sur les versions emulateur pour Ipad de HP prime, et ça donne les mêmes résultats....

Quelqu'un aurait-il une explication à tout cela ?

Je précise que ma Numwork, elle, ne se trompe dans aucun de ces calculs, et que la HP non plus si on passe en mode CAS.
Si on ne peut pas avoir confiance dans le calcul en mode Home, alors à quoi sert-il ?

Merci d'avance pour vos réponses.

Re: Erreur de calcul en mode Home

Unread postPosted: 12 Dec 2020, 20:50
by critor
Le mode Home est un mode de calcul numérique (effectué sur un certain nombre de bits dits significatifs) et donc approché.

Lorsque des résultats exacts sont souhaités, il faut utiliser le mode CAS.

Re: Erreur de calcul en mode Home

Unread postPosted: 12 Dec 2020, 23:09
by downrider
Merci Critor pour ta réponse rapide, mais je trouve ce mode inutilisable et ce manque de "précision" est injustifiable.
En effet, si on prend la calculatrice windows (le truc tout bête, livré avec windows, mais qui tourne avec 31 chiffres significatifs), qui n'est pas censée faire du calcul formel type CAS, et bien 900/121*10285/121 donne bien 8500. Et sin(Pi) donne aussi 0. J'ai pas essayé, mais je suis certain qu'une bête Casio pour collégien donnerait aussi le bon résultat...
Donc, il y a bien je pense une erreur de conception dans la manière dont la HP Prime calcul en mode Home, car pourquoi obtient-on un résultat exact en faisant d'abord 900/121, qui donne un résultat approché, puis en multipliant par 10285 pour diviser le tout par 9. Alors que si l'on multiplie par (10285/9) ça ne marche pas ?
N'y a-t-il pas moyen, comme sur la Numwork, d'augmenter le nombre de chiffre significatifs du mode Home ?

Re: Erreur de calcul en mode Home

Unread postPosted: 12 Dec 2020, 23:27
by critor
Dans son mode de calcul numérique, la HP Prime fait effectivement moins bien que la plupart des modèles de la concurrence.

Un petit test montre qu'elle travaille en interne sur 38 bits significatifs, ce qui en base décimale permet environ 12 chiffres significatifs :
Image

A ma connaissance ce n'est pas configurable sur HP Prime, et ça ne l'est pas davantage sur la NumWorks.
Sur la NumWorks on contrôle le nombre maximum de chiffres significatifs affichés, mais absolument pas le nombre de chiffres significatifs utilisés en interne.

Re: Erreur de calcul en mode Home

Unread postPosted: 12 Dec 2020, 23:43
by downrider
OK, merci pour ces précisions.
De mon coté, j'ai trouvé un article en anglais, qui explique qu'en fait c'est voulu pour le mode Home par HP, question de philosophie.
En gros, le mode Home est fait pour le calcul approché, et donne des résultats dont la précisions se doit d'être interprétée. Le mode CAS, au contraire, utilise des "objets" dont la précision est donc théoriquement infinie.
J'espère que ce qui suit pourra éclairer tous ceux qui comme moi se posaient des questions ;)
L'exemple donné pour cette discussion était : (1/9)*9 = 0.99999999999 sur la HP Prime en mode Home quand le résultat était 1 sur la Ti.

Hello,

You've actually just stepped your foot into one of the oldest and most contentious differences between the HP philosophy and TI. The answer of "1" here is actually incorrect in a limited precision device. What?!?!?!?

The reason is due to one fact that you hinted at. When calculations are done in limited precision machines (12 digits for user usage in the case of Prime) you CANNOT represent certain numbers. 1/9 is going to be .111111111111..... repeating out to infinity. HOWEVER, these machines cannot represent and infinite number of digits. So if you break you input up into multiple steps, you can discover something interesting.

On any calculator but an HP machine, try typing 1/9. Now do Ans*9. You will see 1.

Now try doing 1/9, but this time you will COPY the exact display shown you into your input (.111111111111111*9) or similar and then evaluate. You will see .999999... out to the end of the display. So what is going on?

This is what is known as "guard digits". Most calculators keep a few extra digits around that are not shown to the user. If you chain the calculations together they can help, but they in essence cause the displayed results to be different depending on how you entered the numbers.

The HP philosophy has always been "the number shown in full precision will be the same no matter how you do the problem, and will always be fully accurate to the extent possible within the limited display of the device".

Now as you have discovered, in the CAS the result is always 1. The reason for this is the numbers in CAS *are* EXACT objects that CAN represent infinite precisions. Therefore a result of 1 is the correct answer no matter to which philosophy you adhere.

There is something very powerful in the way we designed Prime - there is a LOT of research into what is known as pedagogy, use of correct mathematical thinking, and using correct mathematical language. When students are using Prime, it is constantly pushing them to think about questions like "am I trying to see numerical representations, graphical representations, or symbolic representations. Am I solving things in an exact way, or in an approximate way?" By pushing you to make these internal questions, you are actually pushing your thinking in a mathematical way and changing the way you think about math and problem solving!

There is a LOT of research into this area and Prime was designed taking that into account. While there are some warts still as Omnimaga alluded to, there are a LOT of educators, professors and similar who are very excited because they can see clearly that it was designed using this research and recognize the power and benefit of such an approach.

The exact reason it returns "Error: X/0" instead of just undefined is again due to this idea that we are pushing the way you think. In approximate HOME, this is a clear answer that indicates what is going on. In the CAS, you actually receive a +/-Inifintiy - not plain infinity! That is actually what is known as a complex inifnity. No other handheld calculator returns this! It actually IS the correct result. However, since the TI CAS calcs return "undefined" (which is correct, simply just not as correct as possible) people are used to seeing that.

Take a look here however: http://www.wolframalpha.com/input/?i=1%2F0

Note what you get as the result? :-)

Complex infinity in a single x/y plane can be thought of as a divergence tending towards infinity in both directions. Is it undefined? Not really - it is actually very *well* defined and using that definition can be very useful in many advanced math concepts. Simply returning "undefined" is a result that avoids the need to start thinking and talking about more "advanced" things.

Since we are trying to push the boundaries of thinking and encourage more exact mathematical thinking however...

Re: Erreur de calcul en mode Home

Unread postPosted: 13 Dec 2020, 08:29
by parisse
Beaucoup de bla-bla (et en anglais).
Je dirais plutot que sur les HP dans Home, on fait du calcul numerique, et donc les rationnels ne sont pas representables exactement (sauf si le denominateur divise une puissance de la base) et sin(pi) n'a aucune raison de donner exactement 0, vu que pi est forcement approche et ensuite on calcule le sinus par une methode approchee, ce serait tres chanceux que les erreurs d'arrondi se compensent exactement. J'ajoute qu'il n'y a pas de triche (avant la generalisation du calcul exact sur pas mal de calculatrices, il est tres probable que certaines calculatrices testaient si on etait tres proche d'un entier et arrondissaient dans ce cas).
Maintenant, je crois que la pression est forte chez une majorite d'enseignants pour cacher les problemes inherents au calcul numerique, ce n'est pas impossible que HP change de philosophie un jour.