Page 1 of 2

Quotients de racines et bugs du CAS 3.2

Unread postPosted: 16 Dec 2012, 00:05
by critor
Texas Instruments fait régulièrement évoluer le moteur de calcul formel CAS de ses calculatrices TI-Nspire, afin de toujours offrir le meilleur à ses utilisateurs.

Par exemple, usuellement quand on a des quotients avec des racines au dénominateur, on transforme cette expression en faisant disparaître ces dernières.

Selon le cas, ce sont des méthodes différentes qui doivent être utilisées (multiplication par la racine, par le conjugué...).

Un cas notamment n'était pas géré par la version 3.1 et l'est désormais par la version 3.2, c'est quand le dénominateur est de la forme √(a±√(b)), avec a et b entiers.
Image


Tout a l'air super n'est-ce pas? Le CAS 3.2 se débrouille beaucoup mieux avec cette expression et nous donne une forme bien plus sympathique! :bj:



Sauf que je viens de découvrir un problème... Creusons un peu la chose:
Image


Non? Rien vu?

Sous la grande racine carrée apparaît un coefficient a²-b qui vaut ici successivement 2, 98, puis 20. Ces deux dernières valeurs auraient du vous choquer... En effet, elles sont simplifiables:
Image


En conséquence, le CAS 3.2 ne termine pas la simplification des expressions dans le cas où a²-b est un multiple de carré parfait.



"Et alors", diront sûrement certains d'entre vous? "Où vais-je trouver des racines de racines?"
Il n'y a justement pas besoin de chercher bien loin - un tout petit peu de trigonométrie et on y arrive très vite:
Image

Et de là aux quotients il n'y a qu'un pas, puisqu'il suffit de sortir une tangente...



Intéressons-nous donc au problème. Que se passe-t-il si on redonne d'une façon ou d'une autre le résultat non simplifié à la calculatrice?
Image Image

Visiblement, la calculatrice termine son travail et achève la simplification.
Ce serait sans doute super pour détailler les calculs étape par étape, bien que ça n'ait probablement jamais été prévu pour ça...



Avec la version 3.2 du CAS, on peut donc désormais avoir le même résultat exprimé à des degrés de simplification divers, et ce serait génial si ça ne causait pas problème...
Comme la simplification bloque sur certaines formes, si ces formes sont utilisées au sein d'un calcul, toutes les simplifications qui en découlent sont également bloquées! :(
Regardez - prenons une forme qui cause problème, et mémorisons la successivement sous deux variables a et b - ce qui nous permet de la stocker à des niveaux de simplification divers.
Vous conviendrez que c'est donc la même valeur qui est stockée sous a et b. Et que donc a-b=0... Et bien regardez:
Image


Le CAS 3.2 nous renvoie une expression monstrueuse, qui effectivement fait bien zéro - mais ce n'est sans doute pas évident au premier coup d'oeil pour tout-le-monde.

Une telle chose recopiée sur une copie vous vaudra sans doute l'incompréhension totale du correcteur et une belle pénalité à la question.


Et vous voulez rire jaune encore un peu plus ?
Image



En conséquence, que faire?...

Et bien si vous choisissez de continuer à utiliser l'OS 3.2, retapez systématiquement tous les résultats compliqués fournis par la calculatrice afin de voir si elle va plus loin dans les simplifications...

Mais vous avez aussi encore la possibilité de retourner à l'OS 3.1...
Texas Instruments regularly updates the CAS engine (symbolic calculation engine) of its TI-Nspire calculators in order to offer the best to its customers.

For instance, usually when you have quotients with roots in the denominator, the expression is transformed in order to remove them.

Depending on the case, these are different methods that should be used (multiplication by the root, the conjugate...)

A particular case was not handled by the version 3.1 and is now in version 3.2, this is when the denominator is of the form √ (a ± √ (b)) , with a and b being integers.
Image


Everything looks great, doesn't it? The 3.2 CAS is doing much better with this far more friendly expression ! :bj:



Except that I just discovered a problem ... Let's dig down a little further :
Image


No ? You didn't notice anything ?

Beneath the large square root is a coefficient a ²-b which is successively equal to 2, 98 and 20. These last two values ​​should have shocked you ... In fact, it can be simplified :
Image


So, the CAS 3.2 does not complete the simplification of such expressions when a²-b is a multiple of a perfect square.



"So what" you'll probably ask ? "Where am I going to find roots of roots anyway ?"
There is no need to look very far : just some trigonometry and you get some very quickly :
Image

And getting quotients now is just a step away, since you just need a tangent for example...



So let's take a look at the problem. What happens if we give the non-simplified expression to the TI-Nspire ?
ImageImage

Apparently, the calculator completes the simplification.
It would probably be great for detailing the calculations step by step, although it has probably never been planned for that ...



With CAS version 3.2, we can now have the same result expressed at various degrees of simplification, and it would be great if it did not cause any further issue...
As simplification blocks on certain forms, if these forms are used in a calculation, all resulting simplifications are also blocked ! :(
Look - take a form that is causing the problem, and successively memorize it into two variables a and b - which allows us to store it at various levels of simplification.
You agree that this is the same value that is stored in a and b. And then a-b = 0 ... Well, look:
Image
`

Want to laugh (sadly...) even more ?
Image


The 3.2 CAS gets us a quite huge expression, which actually equals zero as well - but it's probably not obvious at first glance for everybody.

Such a thing copied on a paper would probably create misunderstanding for the teacher/corrector and you'd probably get some points off...


Therefore, what can you do ... ?

Well, if you choose to continue using the OS 3.2, always retype (select it and enter) all 'complicated' results provided by the calculator to see if it gives further simplifications ...

But you're also still able to go back to OS 3.1 ...

Re: Quotients de racines et bugs du CAS 3.2

Unread postPosted: 16 Dec 2012, 09:39
by Lionel Debroux
Quand TI modifie le CAS, ça se termine toujours mal... Tous les OS 3.x sont buggés, c'est juste que l'ensemble des bugs change selon les versions.

Re: Quotients de racines et bugs du CAS 3.2

Unread postPosted: 16 Dec 2012, 10:15
by Persalteas
Ouais. Pour un bug, c'est un bug que je ne trouve pas bien grave... Il y a eu pire.

Arriver à programmer un CAS est suffisamment compliqué, je leur pardonne une coquille comme celle ci, l'étudiant qui recopierait bêtement (sqrt(2)/20) - (sqrt(2)/20) sans se rendre compte que ça s'annule mérite tout de même bien un petit point en moins.

Mais c'est toujours mieux d'en être avertis, merci ! ;)

Re: Quotients de racines et bugs du CAS 3.2

Unread postPosted: 16 Dec 2012, 10:45
by Excale
C'est pas "un" bug. C'est un des multiples bugs qui existent (et ça va en empirant).

Re: Quotients de racines et bugs du CAS 3.2

Unread postPosted: 16 Dec 2012, 12:15
by Persalteas
eh oui, plus le programme est gros et complexe, plus y'a de coquilles dedans, c'est normal...

Re: Quotients de racines et bugs du CAS 3.2

Unread postPosted: 16 Dec 2012, 12:18
by Levak
persalteas wrote:eh oui, plus le programme est gros et complexe, plus y'a de coquilles dedans, c'est normal...

Ceci peut sembler normal chez un programme communautaire, mais dans le monde professionnel il est impératif de monter des suites de tests exhaustifs et répétitifs pour qu'à chaque version on s'assure qu'on ne tombe pas dans le retro-featuring. Là clairement c'est fait par dessus la jambe. Avec une suite de tests ceci ne serait jamais arrivé.
Pour un projet de l'ampleur de la TI-Nspire, la suite de tests devrait contenir au minimum quelques milliards de tests.

Re: Quotients de racines et bugs du CAS 3.2

Unread postPosted: 16 Dec 2012, 14:28
by Adriweb
(traduction anglaise ajoutée + image: https://i.imgur.com/Ml1bu.png)

Bref, sinon, oui, je trouve que le fait de devoir manuellement avoir à retaper le "résultat" pour obtenir une resimplifcation est mal fait.
Faudrait peut-être que ce soit un comportement que l'on puisse demander (pour avoir les étapes d'un calcul, par exemple), mais bon ce n'est en effet probablement pas ce qui a été voulu, je pense...

Au passage, expr(string(resultat)) simplifie...

Re: Quotients de racines et bugs du CAS 3.2

Unread postPosted: 16 Dec 2012, 14:34
by critor
Adriweb wrote:Au passage, expr(string(resultat)) simplifie...


Parce que quand tu appelles cette fonction, tu as déjà une évaluation/simplification du paramètre résultat avant même l'exécution du string() et du expr().


Mais parfois, 1 simplification ne suffira pas...

Re: Quotients de racines et bugs du CAS 3.2

Unread postPosted: 16 Dec 2012, 14:51
by critor
Voilà par exemple sur OS 3.2:
Image

Dans ce cas-là, ce sont 3 évaluations/simplifications successives qui sont nécessaires.


En conséquence, une fonction boucle avec des expr(string(...)) et des comparaisons à l'expression précédente est parfaitement justifiée comme workaround.

Re: Quotients de racines et bugs du CAS 3.2

Unread postPosted: 16 Dec 2012, 15:27
by critor
J'ai trouvé encore mieux qu'une forme qui se simplifie en 3 étapes...

La forme qui ne veut pas se simplifier du tout!
Image

On voit que la saisie de la dernière réponse redonne la même chose.

Or pour information, ça fait zéro...


Le problème semble provenir ici d'une divergence:
  • le terme de gauche qui a été mal simplifié à la 1ère étape (bug décrit en 1er post) part dans des notations puissance à partir de la 2ème tentative de simplification
  • alors que le terme de droite conserve la notation avec des racines carrées

Passé cette divergence, la Nspire CAS ne peut plus se rendre compte que les deux termes sont identiques, tout simplement parce qu'elle ne peut pas faire marche arrière dans ses simplifications, notamment dans le cas où elle fait un mauvais choix ici suite au bug.