Page 1 of 5

Dérive les fonctions de façon fiable sur TI-Nspire non-CAS !

Unread postPosted: 12 May 2016, 14:27
by critor
6892As-tu acheté ta calculatrice TI-Nspire CX neuve ou quasi neuve pour moins de 100€ sur Internet en pensant faire une excellente affaire ?
Si oui une fois reçue tu te rends compte que tu t'es bien fait(e) avoir... car il y a deux modèles aux noms similaires et que nous n'avons pas du tout classés de la même façon pour la rentrée 2015 :
  • TI-Nspire CX
  • TI-Nspire CX CAS
La TI-Nspire CX comme son nom l'indique ne dispose pas du moteur de calcul formel dit CAS, permettant entre autres de développer, factoriser, dériver, primitiver/intégrer, calculer des limites...
En gros la TI-Nspire CX a des capacités mathématiques pas plus évoluées que celles d'une TI-82/83/84 Plus, et même inférieures à celles de la TI-83 Premium CE. :mj:
Ce n'est pas pour rien que la TI-Nspire CX n'est pas distribuée en boutique traditionnelle en France et ne se trouve que via Internet, en importation pour les modèles neufs.


Mais bref, le mal est fait. Que faire maintenant ?

Il était auparavant possible d'installer le système TI-Nspire CX CAS sur sa calculatrice TI-Nspire CX avec l'outil nLaunchy, mais il nécessite la version 3.1 du Boot2 qui ne fonctionnera pas correctement avec les calculatrices produites à partir de mars 2013 suite à l'introduction de la révision matérielle J. :'(
Pire, tenter la manipulation jusqu'au bout avec une calculatrice récente reviendra à détruire la machine, la laissant coincée dans un état inutilisable sans possibilité de réparation logicielle. :mj:

Une autre solution était de programmer un moteur de calcul formel, ce qui avait été réalisé avec la bibliothèque Alg.
Hélas, le projet avait été très rapidement abandonné par son auteur, dans un état où bien des résultats fournis étaient faux. :mj:
Nous avions certes pris la peine de le mettre à jour le programme et d'en améliorer significativement la fiabilité, mais il n'empêche qu'il n'était selon nous pas assez fiable pour une utilisation en examen. :#non#:



6891Aujourd'hui dans ce contexte, c'est un nouveau projet compatible TI-Nspire CX non-CAS qui voit le jour, nDerive. :o
Il est certes bien moins ambitieux. Ce n'est pas un moteur de calcul formel complet puisqu'il ne sait faire qu'une seule chose, calculer des dérivées, et qu'il ne sera même pas capable de simplifier le résultat.

Mais à la différence, tirant les leçons de l'échec de la bibliothèque Alg, nous avons fait un gros effort au niveau de la fiabilité de l'outil.
En effet, pour la toute première fois sur TI-Nspire, le programme dispose d'un assistant virtuel intégré qui te dira si le résultat qu'il a trouvé est juste, faux, ou bien si il ne sait pas ! :D

Notons que la capture fausse ci-dessus a été prise avec une ancienne version (il n'y a plus d'erreur connue à ce jour), d'où la sortie de l'outil. :)
Mais si tant est que des erreurs soient encore possibles, contrairement aux outils précédents il te sera donc indiqué clairement de ne pas recopier bêtement ! :bj:




nDerive a été conçu pour couvrir l'ensemble du programme du lycée et des premières années d'études supérieures, jusque dans les exercices les plus complexes et pas seulement en mathématiques !
Il est par exemple capable de te dériver des fonctions à paramètres, un exploit sur calculatrice non-CAS ! :bj:
Attention toutefois à ne pas oublier de préciser les symboles de multiplications implicites entre les variables. Pour la calculatrice, ax ce n'est pas pareil que a∙x. :#non#:

En conséquence, nDerive ne te servira pas seulement à répondre bêtement à des questions de dérivation, mais sera également capable de te rappeler des formules de dérivées usuelles du cours de Mathématiques à des fins de justification ou dans le contexte de questions de Restitution Organisée de Connaissances (ROC), ainsi que des formules de Physique-Chimie ! :D


Mais ce n'est pas tout ! Le programme est même capable de dériver des expressions utilisant d'autres fonctions ! :#tritop#:

En conséquence de façon similaire, le programme sera capable de te rappeler les formules de dérivation d'opérations du cours ! :bj:



Le coeur du programme avec le moteur de dérivation en langage Basic est l'oeuvre de Hamza.S.
Un grand merci à toi de notre part à tous. Non seulement tu es déjà disponible quasiment 24h/24 pour aider et dépanner les utilisateurs sur le chat, mais en prime tu trouves le temps de faire encore plus en créant ce qui est de loin l'outil de dérivation le plus génial jamais sorti pour TI-Nspire CX sans avoir besoin d'installer Ndless ! :bj:
Pour ma part, j'ai codé l'interface Lua permettant la saisie et l'affichage des fonctions et résultats en écriture naturelle, ainsi que l'assistant virtuel d'auto-vérification des résultats.



Fais-en bon usage, et n'hésite pas à nous signaler toute erreur de calcul - ce qui nous permettra d'améliorer et parfaire encore l'outil d'ici les examens du mois de juin. :)

Attention toutefois. Si vous passez un examen qui interdit les fonctionnalité CAS à travers une liste de modèles autorisés ne mentionnant que la TI-Nspire CX et pas la TI-Nspire CX CAS, comme c'est le cas au Portugal et aux Pays-Bas par exemple, il est probable que l'usage de cet outil soit considéré comme de la fraude. :#non#:

Concernant la France, si tu passes ton examen à compter de 2018, pas le choix il va te falloir racheter une calculatrice. Car le mode examen rendra ce programme inutilisable. :mj:




Téléchargement : https://tiplanet.org/forum/archives_voir.php?id=534590

Re: Dérive les fonctions de façon fiable sur TI-Nspire non-C

Unread postPosted: 12 May 2016, 14:52
by GalacticPirate
Wouah :o
Alors chapeau Hamza.S, voilà ce que tu faisais quand tu n'aidais pas des noobs sur le chat :troll:

Re: Dérive les fonctions de façon fiable sur TI-Nspire non-C

Unread postPosted: 12 May 2016, 16:18
by Hamza.S
un grand merci à toutes les personnes qui m'ont aidé depuis mon arrivée :)

La partie, "détermination de l'opérateur" (part(expr,0) pour les version CAS), reste assez fragile car je n'ai pas assez de connaissance pour réaliser cette partie là. (en tout cas ça marche)

comme beaucoup l'ont remarqué, avec l'approche de la machine qui simplifie les calculs, il est difficile de faire des calculs du genre exp(0.1*x) sans avoir des problèmes au niveau de l'affichage du résultat
exemple : Image
les solutions étaient :
  • mettre la calculette en mode exact
  • ou bien, utiliser la fonction exact() par exemple exact(exp(0.1*x))

dans ce cas on se retrouve avec des fractions. (pas très compréhensible pour les nuls en maths)
(ceux/celles qui connaissent mieux la machine, utilisent des lettres à la place des nombres décimaux)

fini les ennuies, le programme l'affiche comme il faut, plus besoin de toucher les réglages du classeur ou d'utiliser la fonction exact() (que le programme ne comprendrais pas) Image

StarTrekVoyager wrote:Wouah :o
Alors chapeau Hamza.S, voilà ce que tu faisais quand tu n'aidais pas des noobs sur le chat :troll:

:troll:

Re: Dérive les fonctions de façon fiable sur TI-Nspire non-C

Unread postPosted: 12 May 2016, 16:52
by parisse
Je ne comprends pas bien ce que veut dire "le programme dispose d'un assistant virtuel intégré qui te dira si le résultat qu'il a trouvé est juste, faux, ou bien si il ne sait pas", c'est une verification par derivation numerique et comparaison? Si oui, ca veut dire qu'il y a la possibilite de substituer x par une valeur.
Deriver est un algorithme mathematique assez simple, par contre c'est l'interfacage avec l'OS qui n'est pas simple. Je suppose que c'est le parser de la calculatrice qui est utilise? Mais ca doit etre difficile d'eviter l'evaluation et donc l'erreur que x est symbolique sur un modele non cas. Et il faut ensuite pouvoir decomposer l'expression pour deriver.
L'etape suivante pourrait etre de calculer des limites indeterminees 0/0 par la regle de l'Hopital.

Re: Dérive les fonctions de façon fiable sur TI-Nspire non-C

Unread postPosted: 12 May 2016, 16:56
by Bisam
Ce n'est justement pas le parser de la calculette qui est utilisé... car il n'est pas possible de l'utiliser sur une calculette non CAS !
La difficulté réside donc en premier lieu dans le fait de parser correctement l'expression (c'est ce que Hamza.S appelle le "choix du signe", voulant dire par là la détermination de la fonction qui est sur le haut de la pile dans l'écriture postfixe).

Re: Dérive les fonctions de façon fiable sur TI-Nspire non-C

Unread postPosted: 12 May 2016, 17:02
by Adriweb
Le truc, justement, c'est qu'en effet, c'est pour l'instant pas programmatiquement très "évolué" car il n'y a pas d'arbre d'expression (on pourrait imaginer une stack RPL et arbre avec op/expr - ça me rappelle quelques trucs avec du Shunting-Yard), uniquement une gestion en string directement (Mais après tout, le TI-Basic ne facilite pas le fait de faire des choses très avancées...).
En tout cas, le travail qu'a fait Hamza.S avec les strings directement semble être suffisamment bon pour ne plus se tromper pour des choses niveau lycée, ce qui est déjà assez remarquable :)

Pour la vérification, en effet, je crois bien que critor passe par plusieurs nSolve (disponibles en non-CAS, eux), et regarde donc si les résultats sont égaux - Donc en théorie pas forcément 100% fiable, mais probablement un bon indicateur.

Re: Dérive les fonctions de façon fiable sur TI-Nspire non-C

Unread postPosted: 12 May 2016, 17:05
by parisse
Dans ce cas, la presentation qui est faite de ce programme masque la difficulte principale (je ne comprends d'ailleurs pas "choix du signe").

Re: Dérive les fonctions de façon fiable sur TI-Nspire non-C

Unread postPosted: 12 May 2016, 17:07
by Adriweb
La news n'entre en effet pas dans les détails techniques de l'implémentation, les difficultés/problèmes et les tentatives de résolutions - et c'est j'imagine tout à fait voulu.
Mais après tout, c'est open-source, donc quiconque d'interessé peut s'y plonger :)

Je ne suis pas tout à fait sûr non plus de comprendre ce "choix du signe" . Propagation difficile de lanégativité d'une expression en ne connaissant pas toutes les parties depuis le début ? Ou autre chose ?

Re: Dérive les fonctions de façon fiable sur TI-Nspire non-C

Unread postPosted: 12 May 2016, 17:18
by Hamza.S
désolé Parisse c'est "détermination de l'opérateur" comme la fonction part(expr,0) avec les versions CAS
Parser et règle, ces deux choses ne me disent rien. J'ai utilisé une méthode vraiment nulle, il est facile de créer une erreur.

s'il y a de l'aide, pour l'améliorer je suis preneur. (d'ailleurs j'attends toujours la méthode de Bisam pour la détermination du signe)

Re: Dérive les fonctions de façon fiable sur TI-Nspire non-C

Unread postPosted: 12 May 2016, 17:21
by critor
Je ne comprends pas non plus l'expression "choix du signe", mais c'est peut-être la fatigue de fin de journée.

parisse wrote:Je ne comprends pas bien ce que veut dire "le programme dispose d'un assistant virtuel intégré qui te dira si le résultat qu'il a trouvé est juste, faux, ou bien si il ne sait pas", c'est une verification par derivation numerique et comparaison? Si oui, ca veut dire qu'il y a la possibilite de substituer x par une valeur.


Le programme comme ses prédécesseurs parse la fonction en tant que chaîne de caractères.
Nombre de cas d'écriture auxquels on ne pense pas forcément sont donc à gérer, et des erreurs ne sont pas impossibles.
En tous cas, il y en avait à foison avec les tentatives précédentes.

D'où l'intérêt d'un module qui dit "c'est bon tu peux recopier", "je ne sais pas, relis bien" ou "c'est faux, laisse tomber" et qui manquait aux outils précédents.



La vérification est assez simple et est numérique comme tu le devines. Une série de valeurs aléatoires tirées sur ]0;1[.
C'est d'ailleurs pour ça que la vérification n'arrive pas à décider du caractère juste ou faux dans le cas des fonctions utilisant des paramètres ou faisant appel à d'autres fonctions non définies.

Pour chaque valeur a tirée, il y a évaluation avec x=a, x=1/a, x=-a et x=-1/a.

Le but est de s'adapter à la plupart des ensembles de définition, et d'éviter de tomber sur des valeurs remarquables pouvant être des cas particuliers.

Il y a ensuite comparaison entre l'évaluation de l'expression de dérivée trouvée, et le nombre dérivé obtenu avec la fonction de dérivation numérique utilisable sur non-CAS.

Les couples de valeurs non définies (hors ensemble de définition) sont ignorés.
Les couples de valeurs numériques sont comparés à 10-10 près si je me souviens bien.



Bref, qu'est-ce qui selon toi est mal formulé dans ce contexte et devrait être modifié ?
D'ailleurs en me relisant, je vois que je dis que c'est le "meilleur outil jamais sorti".
C'est bien évidemment faux car il y a Xcas - je pensais dans le contexte de programmes ne nécessitant pas Ndless.
J'espère que tu ne m'en tiendras pas rigueur - je vais de toutes façon corriger de ce pas.

Merci pour ton intervention sur ce fil.