Calculs exacts sur une calculatrice non CAS

Pour parler de la programmation en générale, partager des algorithmes...

Calculs exacts sur une calculatrice non CAS

Messagepar critor le 19 Juin 2010, 00:05

J'ai développé et publié aujourd'hui une petite bibliothèque de calculs exacts appellée mCAS pour la TI-Nspire basique.

Image


En effet, la TI-Nspire basique ne dispose que d'un "embryon" de moteur ee calculs exacts, ne gérant que les fractions.
Or les formes exactes des résultats sont enseignées dès la Quatrième, et répondre sous ces forme est une obligation au lycée.


J'avais cette bibliothèque en projet depuis novembre 2009, mais l'avais "pausée"...

En effet, l'équipe Ndless avait à l'époque sorti une vidéo montrant un dual-boot d'un OS CAS sur une calculatrice non-CAS. Mais pour une raison inconnue, il semble que la sortie de cette fonctionnalité comme celle de la prochaine version soit repoussée à l'infini...

Pour installer un OS CAS sur une calculatrice non-CAS sans l'aide de Ndless, il faudrait attendre de pouvoir factoriser la clef publique de la TI-Nspire non-CAS, afin de signer les OS CAS avec la clef privée non-CAS. Comme c'est du RSA 1024 bits, il faudrait attendre 2020...

Or d'ici là, de l'eau coulera sous les ponts, et les élèves utiliseront aux examens le logiciel TI-Nspire qui s'exécutera directement sur leur plate-forme mobile...


Donc, j'ai repris et terminé mon projet ces dernières semaines.

Le moteur mCAS actuel gère plus d'une 20aine de formes exactes, du collège à l'enseignement supérieur: fractions, radians et mesure principale, radicaux, logarithmes, exponentielles, binômes divers, nombres complexes et forme exponentielle...


2 classeurs-tutoriaux sont fournis et montrent comment exploiter à fond les capacités de mCAS:

Image


Un premier classeur simule une calculatrice exacte virtuelle.
2 configurations différentes peuvent être choisies:
  • affichage des formes exactes en ligne dans l'historique des calculs
  • affichage de la dernière forme exacte en écriture naturelle (PrettyPrint ou MathPrint en anglais)

Un deuxième classeur résout de façon exacte les équations du second degré, même dans le cas d'un discriminant négatif ou de coefficients complexes.

mCAS étant une bibliothèque, vous pouvez aussi appeler ses fonctionnalités depuis vos propres classeurs, bibliothèques, programmes ou fonctions!!! :D:


Pour en apprendre plus sur les capacités de mCAS, comment l'installer et l'utiliser, regardez ce petit tutoriel d'une 10aine de minutes.

Image


Pour télécharger:
http://ti.bank.free.fr/index.php?mod=ar ... ir&id=1884


Toutes les remarques sont les bienvenues, notamment sur les bugs et évolutions futures de la bibliothèque.
Visitez le nouveau site calculatrices TI francophone: TI-Planet

Quelques-un de mes programmes Nspire:
* Table interactive des radionucléides (Lua)
* Dérivées pas à pas (Basic)
* Lecteur d'images (Ndless)
* Calcul exact (Basic)
critor
 
Messages: 308
Inscrit le: 18 Nov 2009, 22:28

Re: Calculs exacts sur une calculatrice non CAS

Messagepar Invité le 19 Juin 2010, 07:52

Les possesseurs de TI-Nspire non CAS qui veulent de temps à autres obtenir (et afficher clairement) l'expression exacte d'un résultat ont enfin une solution.

Au passage, cela montre aussi tout ce qu'il est possible de faire en combinant les différentes possibilités de TI-Nspire (utilisation de bibliothèques de programmes, interactivité entre les différentes applications, affichage pretty-print des définitions de fonctions...).

Quand tout ceci est exploité avec autant d'ingéniosité que ce qui vient d'être fait par Xavier Andréani et Levak, on obtient une résultat vraiment superbe !
Invité
 

Re: Calculs exacts sur une calculatrice non CAS

Messagepar Levak92 le 19 Juin 2010, 12:15

. a écrit:Les possesseurs de TI-Nspire non CAS qui veulent de temps à autres obtenir (et afficher clairement) l'expression exacte d'un résultat ont enfin une solution.


Je rajoute qu'il a son utilité aussi pour les TI-nSpire CAS disposant de la forme exacte :D

En effet, mCAS trouve la forme exacte en ayant environ 8 décimales (à peu près), et peu aisément la retrouver alors que si on fait de même avec la fonction exact() on tombe toujours sur une fraction.
Enfin, mCAS est utile en trigonométrie. Il donne le module d'un angle sous forme 2pi/pi. Même si cela pouvait être fait avec un autre programme, c'est assez confortable d'être dans un environnement sûr et certain ;)

Donc, même s'il trouve moins son utilité que pour la TI-nSpire non CAS, mCAS est tout de même intéressant dans certains cas de figure pour la TI-nSpire CAS.

Merci . :)
Levak92
 
Messages: 321
Inscrit le: 02 Juin 2010, 23:03
Localisation: France

Re: Calculs exacts sur une calculatrice non CAS

Messagepar Invité le 20 Juin 2010, 08:37

J'ai joué un peu avec mcas...

Tôt ou tard, on mettra nécessairement en évidence quelques bugs (il y en a toujours !), mais en "utilisation courante" tout se passe plutôt bien ! dans bien des cas, le comportement de mcas est vraiment très impressionnant.

Il faut juste que ses utilisateurs soient bien conscients d'une différence assez fondamentale avec ce que peut offrir une "vraie calculatrice formelle" (comme la voyage 200, la TI-89, la classpad, ou bien évidemment la TI-Nspire CAS).

Ce post ne concerne bien sûr pas les fonctionnalités de calcul formel comme le calcul de dérivées, intégrales, limites, etc... puisque mcas ne gère pas (pas encore ?) ce type de choses.

Je pense plus précisément à un problème qui peut se poser lors du calcul exact de la valeur d'une expression.

Cela tient au mécanisme d'évaluation des arguments lorsque l'on appelle un programme ou une fonction : ceux-ci sont
1. évalués
2. transmis au programme

Sur une machine qui n'effectue pas des calculs formels de manière native, cela va bien sûr avoir une conséquence importante : l'étape 1 va se faire en mode numérique, et l'argument transmis au programme ou à la fonction ne sera pas "exactement le bon"...

Prenons un exemple : quelle est la valeur exacte de l'expression ?
C'est bien évidemment ...
Et il en est de même pour

Pourtant, sur une TI-Nspire non CAS, l'utilisation de la fonction ex de mcas sur cette dernière expression conduira à un résultat égal à .
(On obtient bien sûr le même résultat lorsque l'on utilise la méthode décrite sur la page 1.3 du classeur mcas_calc.)

Cela vient du fait que lorsque l'on travaille sur une calculatrice "numérique", la valeur d'un nombre comme n'est pas connue de manière exacte... on remplace ce nombre par une valeur approchée, et il y a nécessairement un nombre limité de décimales...

Dans bien des cas, l'utilisateur ne se rend pas compte du problème...

Par exemple, si on demande la valeur de , on obtient bien , grâce à l'arrondi effectué sur le résultat final...
Mais il suffit de demander (directement, sans passer par mcas) la valeur de pour voir que tout ne se passe pas aussi bien qu'on pourrait le croire...
Sur une TI-Nspire non CAS, on obtient .

Cela est vrai pour toutes les calculatrices numériques, et cela permet de comprendre pourquoi l'utilisation de mcas sur l'expression conduit à un résultat égal à 1 : cela correspond à la valeur transmise à mcas, suite à l'évaluation numérique de l'expression lors de l'appel de la fonction ex.

On va bien sûr retrouver le même problème si on s'intéresse à l'équation du second degré

pour des valeurs un peu grandes de .
(car mcas ne peut pas "se rendre compte" qu'il s'agit en fait de l'équation )

Naturellement, ceci ne peut pas se produire sur un "vrai système de calcul formel" où toute la chaîne des calculs sera faite sous forme symbolique.

Les exemples cités dans ce post sont "étudiés pour provoquer un problème"...
Cela se passera beaucoup mieux avec des "calculs standards"...
Mais il vaut mieux être en mesure de comprendre un résultat éventuellement surprenant !


P.S. Il me semble avoir détecté un autre problème sur l'exemple de la résolution avec delta de l'équation du second degré : pas de problème avec k=10^2, mais j'ai dû interrompre le calcul avec k=10^7. La calculatrice affiche le message : "Le paramètre doit être un nombre ou une expression numérique", et l'exécution se poursuit de manière prolongée.
Invité
 

Re: Calculs exacts sur une calculatrice non CAS

Messagepar critor le 20 Juin 2010, 11:15

Bonjour,


Merci beaucoup pour votre analyse.

J'ai effectivement déjà constaté des différences de résultats entre les TI-Nspire basiques et les TI-Nspire CAS.
Prenons par exemple cos(Pi/10)

Sur TI-Nspire basique, une forme exacte est trouvée par la bibliothèque.
Sur TI-Nspire CAS, aucune forme exacte n'est trouvée.


Eh oui, curieusement, c'est sur CAS qu'il y a des problèmes avec cet exemple...
Après vérification, lors des calculs, il y a des écarts de l'ordre de 10^-13 qui apparaissent entre les deux modèles en faveur du modèle non-CAS, écarts qui se creusent lors de la mise au carré, provoquant l'échec de l'algorithme sur le modèle CAS.

Je pourrai peut-être contourner le problème par un réglage d'une marge d'erreur plus élevée, même si l'intérêt de la bibliothèque est plus limité sur les modèles CAS.


Mais ce comportement étrange m'interpelle, car au départ, les valeurs numériques de cos(pi/10) sont identiques sur CAS et non-CAS. Ce sont au cours des calculs que des différences apparaissent...
Je ne m'explique hélas pas encore totalement ce comportement, mais je pense que c'est du au passage du mode formel au mode numérique sur CAS.


J'ai réussi avec des calculs simples à reproduire le problème. Regardez:

Image

Donc sur l'image, les valeurs numériques de cos(Pi/10) sont bien identiques au départ.
Quand je fais +0.1-0.1, une erreur apparait sur le modèle CAS, et pas sur le modèle non-CAS.

Avez-vous une interprétation? (car je suis intéressé)
Et une astuce si possible pour que cette erreur ne se produise pas ?
Visitez le nouveau site calculatrices TI francophone: TI-Planet

Quelques-un de mes programmes Nspire:
* Table interactive des radionucléides (Lua)
* Dérivées pas à pas (Basic)
* Lecteur d'images (Ndless)
* Calcul exact (Basic)
critor
 
Messages: 308
Inscrit le: 18 Nov 2009, 22:28

Re: Calculs exacts sur une calculatrice non CAS

Messagepar Invité le 20 Juin 2010, 12:41

Trois choses permettent peut-être de mieux comprendre les points soulignés par Critor dans le post précédent :

1/ Les valeurs approchées affichées par la TI-Nspire CAS et la TI-Npire non CAS pour une même expression peuvent être "en apparence" indentiques, sans que ce soit réellement le cas (différence possible entre le nombre affiché et le nombre connu, du fait des choix d'arrondi effectués).

2/ Quand on ajoute 0.1 (un nombre décimal...) la TI-Nspire CAS évalue l'expression en mode approché.
Le calcul de cos(pi/10)- 0.1 + 0.1
n'est donc pas équivalent à celui de cos(pi/10)- 1/10 + 1/10.
Ceci est illustrée sur la copie d'écran ci-dessous :
20-06-2010 ecran001.jpg
20-06-2010 ecran001.jpg (16.68 Kio) Consulté 7817 fois

3/ La TI-Nspire CAS "connaît" la valeur exacte de cos(pi/10) (voir ci-dessus), et c'est cette valeur exacte qui sera transformée en valeur numérique.
Par contre, la TI-Nspire non CAS utilise une méthode approchée pour calculer la valeur de cos(pi/10) (comme elle le ferait pour tout autre cosinus...).
Le calcul n'est donc pas exactement le même, et en particulier, si on demande la valeur de la différence entre cos(pi/10) et la valeur exacte (affichée ci-dessus par la TI-Nspire CAS, ou obtenue avec mcas sur la TI-Nspire non CAS), on ne trouve pas 0, mais -3E-14.

Pour résumer, on pourrait dire que la TI-Nspire non CAS fait deux erreurs qui se compensent, alors que la TI-Nspire CAS fait un calcul approché plus précis sur une partie de l'expression !
Invité
 

Re: Calculs exacts sur une calculatrice non CAS

Messagepar critor le 10 Oct 2010, 18:14

Vous vous souvenez de mCAS?
http://ti.bank.free.fr/index.php?mod=ar ... ir&id=1884


La prochaine version de la librairie mCAS ajoutera la possibilité de calculer des limites sur le modèle non-CAS.

Plus tout ce qui en découle:
- équation des tangentes, demie-tangentes, ou asymptotes pour une valeur donnée
- tableau d'étude locale (pour une valeur donnée) à droite et à gauche


Le but ultime serait bien sûr de déterminer automatiquement les valeurs intéressantes, et de juxtaposer les tableaux obtenus.
Ce n'est pas pour tout-de-suite...


N'hésitez pas à laisser vos remarques, mais aussi vos demandes pour la prochaine version.
Visitez le nouveau site calculatrices TI francophone: TI-Planet

Quelques-un de mes programmes Nspire:
* Table interactive des radionucléides (Lua)
* Dérivées pas à pas (Basic)
* Lecteur d'images (Ndless)
* Calcul exact (Basic)
critor
 
Messages: 308
Inscrit le: 18 Nov 2009, 22:28

Re: Calculs exacts sur une calculatrice non CAS

Messagepar ouss.j le 21 Août 2011, 12:40

Malheureusement Tibank ne marche plus ... :|
ouss.j
 
Messages: 1
Inscrit le: 21 Août 2011, 11:22

Re: Calculs exacts sur une calculatrice non CAS

Messagepar critor le 21 Août 2011, 13:21

Pour le moment...
Visitez le nouveau site calculatrices TI francophone: TI-Planet

Quelques-un de mes programmes Nspire:
* Table interactive des radionucléides (Lua)
* Dérivées pas à pas (Basic)
* Lecteur d'images (Ndless)
* Calcul exact (Basic)
critor
 
Messages: 308
Inscrit le: 18 Nov 2009, 22:28


Retourner vers Discussions générales sur le développement



Qui est en ligne ?

Utilisateurs parcourant actuellement ce forum : Aucun utilisateur inscrit et 1 invité

cron

© Copyright 2008 - Tous droits réservés.