Page 1 of 7

Firmware Delta N0110: calcul formel GIAC même en mode exam !

Unread postPosted: 18 Sep 2019, 10:48
by Admin
Le calcul littéral et formel est un formidable outil de découverte et réelle compréhension des Mathématiques, permettant de porter un tout autre regard sur les problèmes du lycée.

Pour les lycéens passionnés de Mathématiques ou plus précisément d'algèbre, ainsi que pour les poursuites d'études supérieures avec une part significative de Mathématiques, la HP Prime est un excellent choix. Elle intègre un portage par Bernard Parisse du moteur de calcul formel GIAC de son logiciel de Mathématiques intégré Xcas.
Comme il s'agit d'un portage officiel, il est reconnu par le mode examen qui une fois activé peut laisser les fonctionnalités associées accessibles lorsqu'elles sont autorisées, notamment pour la France.
Le seul bémol à cette excellente solution est hélas son prix à 3 chiffres, qui en France fera fuir une large majorité des familles.

Mais Bernard a depuis quelques années entamé un formidable travail autour de la démocratisation et l'accessibilité du calcul littéral et formel, avec ses applications KhiCAS gratuites pour calculatrices de milieu de gamme.

L'application KhiCAS intègre un portage du moteur de calcul formel GIAC du logiciel Xcas, agrémenté de fonctionnalités annexes diverses selon les modèles ciblés.

Il en existait désormais 3 déclinaisons pour cette rentrée 2019 :
  • KhiCAS pour TI-Nspire :
    Ce programme étend donc les capacités formelles des TI-Nspire CAS au niveau de la HP Prime, ou rajoute ces mêmes capacités formelles aux TI-Nspire numériques (non CAS). Il bénéficie d'une interface d'entrée-sortie qui fonctionne d'origine en écriture naturelle.
    Un exemple de capacité additionnelle bénéficiant à la fois aux TI-Nspire CAS et TI-Nspire numériques, c'est la possibilité d'obtenir un tableau d'étude de fonction !
    Nécessitant Ndless, il ne peut donc être installé que sur les seules TI-Nspire CX en version inférieure à 4.5.1, et est à ce jour exclu des TI-Nspire CX II.
    En tant que portage non officiel, il sera systématiquement bloqué en mode examen. :#non#:
  • KhiCAS pour Casio Graph 90+E :
    On retrouve ici le moteur de calcul formel GIAC, avec une interface fonctionnant en écriture ligne et ne gérant l'écriture naturelle que sur demande (éditeur d'expression).
    Toutefois l'application bénéficie ici de plusieurs compléments fort bienvenus.
    D'une part pour une prise en main bien plus autonome, une sélection de commandes GIAC est disponible via les menus de bas d'écran.
    D'autre part, il est ici possible de créer et exécuter des programmes et la syntaxe Python est gérée avec tout ce qu'il faut, éditeur et coloration syntaxique !
    Et en prime, le langage de programmation inclut des commandes de tracé à la Scratch/Logo !
    Là encore, en tant que portage non officiel, il sera inutilisable en mode examen. :#non#:
  • KhiCAS pour Casio Graph 35+E II :
    La non disponibilité de cette application pour les modèles précédents Casio Graph 35+E et Graph 75+E, s'explique par le fait que la version KhiCAS optimisée pour calculatrices Casio Graph prend à ce jour près de 2 Mio, or ces anciens modèles ne disposaient que de 1,5 Mio de capacité de mémoire de stockage. Avec désormais 3 Mio de mémoire de stockage sur Graph 35+E II, c'est bon maintenant.
    On retrouve exactement les mêmes fonctionnalités que dans la déclinaison Graph 90+E.
    Cela n'empêche pas l'application d'avoir été conçue sur mesures, avec des fonctionnalités pertinemment adaptées à l'écran monochrome de la Graph 35+E II. Par exemple, la coloration syntaxique des programmes et ici remplacé par de l'enrichissement syntaxique !
    Là encore, en tant que portage non officiel, il sera inaccessible en mode examen. :#non#:

11557Pour cette rentrée 2019, la NumWorks bénéficie d'une nouvelle révision matérielle avec une puce Flash de capacité accrue, on passe de 1 Mio à 8 Mio, désormais bien plus qu'il n'en faut.

Il n'en fallait pas davantage pour que Bernard se remette à faire des miracles, et avec l'aide de Jean-Baptiste Boric et zardam voici venir Delta ! :bj:

Il ne s'agit pas d'une application rajoutable cette fois-ci puisque contrairement à la concurrence la calculatrice NumWorks ne permet pas de rajouter des applications à chaud, mais d'un firmware complet conçu spécifiquement pour ta NumWorks N0110.
Plus précisément, il s'agit d'une reprise du firmware officiel, avec remplacement du moteur de calcul par GIAC.

Ce qui signifie non seulement le retour sur ta NumWorks du calcul littéral supprimé depuis la version 11, mais aussi plus que ça l'arrivée du calcul formel !

L'intégration du moteur GIAC s'est visiblement faite dans un grand respect de l'esprit du système NumWorks, puisque le moteur se fait totalement oublier tant qu'on n'y pense pas. Il ne perturbe pas le fonctionnement normal de l'application Calculs, où l'on continue à bénéficier de l'affichage mixte des résultats (exact + décimal) ainsi que de l'affichage naturel pour la saisie et les résultats.

Ici encore, un grand soin à été apporté pour une prise en main autonome, avec tout un travail sur la boîte à outils qui liste et documente les fonctions.

1155011556On y retrouve par exemple un nouveau menu Algebre, avec ce qu'il te faudra pour changer la forme de tes résultats (factorisation réelle ou complexe, décomposition en éléments simples, simplification...).

Mais ce n'est pas tout, car d'autres menus comme celui Matrice se voient rajouter nombre d'éléments, ici entre autre pour l'algèbre linéaire en BAC+1/2 selon les cursus (noyau, valeurs et vecteurs propres, réduction...).
1155211551


11554Méticuleusement, Bernard va même jusqu'à corriger la documentation des fonctions qui ont désormais un comportement différent, comme diff(...) pour la dérivation dans le menu calculs.

Et le gros avantage du firmware Delta par rapport aux applications KhiCAS rajoutées sur TI-Nspire ou Casio Graph, c'est que ses fonctionnalités de calcul formel cette fois-ci intégrées restent disponibles en mode examen ! :bj:

Malheureusement, les licences protégeant le code NumWorks et le code Delta issu de GIAC/KhiCAS/Xcas, sont incompatibles.
Il n'est donc pas possible de distribuer le fichier firmware Delta.

La contribution a été soumise à NumWorks donc espérons qu'elle pourra être intégrée après correction des licences dans un sens ou dans l'autre.
Mais dans le contexte encore fort récent (Juillet dernier) de la suppression de tout calcul littéral pour s'ouvrir les portes des marchés de nos voisins européens dont les examens interdisent ces fonctionnalités (Royaume-Uni, Pays-Bas, Portugal, Italie...), nous doutons qu'une évolution rapide soit possible.

En attendant le code source est public et, pour une installation moins complexe en attendant mieux, a été rendu disponible via un conteneur Docker.
Une dois Docker installé, l'unique commande ci-dessous suffira pour construire et flasher le firmware Delta.


Lien Docker : https://hub.docker.com/r/zardam/epsilon-builder
Commande Docker : docker run -it --rm --privileged zardam/epsilon-builder https://github.com/zardam/epsilon.git n110-giac

Sources et compléments : viewtopic.php?f=97&t=22870&start=50#p244721 , viewtopic.php?f=97&t=22870&start=70#p244750 et posts suivants à chaque fois

Re: Firmware Delta N0110: calcul formel GIAC même en mode ex

Unread postPosted: 18 Sep 2019, 12:49
by parisse
Merci! Je precise que le portage est loin d'etre fini. Il n'est meme pas au stade alpha, il y a donc certainement pas mal de bugs, n'hesitez pas a m'en faire part.

Notez que pour m'inserer dans l'app Calcul, j'utilise le moteur d'affichage naturel natif de Numworks, et celui-ci est beaucoup moins souple pour la syntaxe que KhiCAS, cequi ne permet pas de tout faire, on le voit du reste pour l'utilisation de certaines fonctions de calcul formel, par exemple solve n'admet pas de = dans l'argument, ou bien limit va s'afficher avec des crochets autour des 3 arguments.

Heureusement l'application de code permet elle beaucoup plus de souplesse. J'y ai donc remplace l'evaluateur Python par celui de KhiCAS. Pour le moment c'est un remplacement, parce que je n'arrive pas a compiler Python et KhiCAS simultanement, je ne comprends pas les messages d'erreurs du compilateur lorsque je valide la compilation des 2 apps simultanement, si on en prend l'une ou l'autre tout va bien. Quand quelqu'un de competent aura compris, on devrait pouvoir avoir les 2 apps simultanement.
On peut donc faire dans le shell ex-Python les commandes usuelles de Xcas (en saisie algebrique 1-d traditionnelle), en particulier celles qui ne peuvent pas etre saisies dans Calculs ou qui necessitent trop de ressources pour l'afficheur 2d de Calculs. Les programmes Python fonctionnent si ils sont suffisamment standards pour etre compris par l'interpreteur de Xcas, les programmes Xcas (en langage naturel) aussi. Les instructions de calcul fonctionnent, de meme que les instructions de programmation graphique absolu (donc avec quelques commandes en plus par rapport a kandinsky). Je suis en train de porter le moteur d'affichage des graphiques dans un repere, ce qui permettra de representer des courbes de fonction, des courbes parametrees, des stats, avec des donnees qu'on peut generer par un programme de simulation ou avec des fonctions definies par un programme (ou definies par morceaux, etc.). Le module tortue devrait suivre (sauf probleme de memoire RAM insuffisante), ainsi que l'editeur d'expressions, le debuggueur, la touche var, et les menus du shell (qui pour l'instant ne tiennent pas compte de KhiCAS).

Pour resoudre le probleme des licences incompatibles, une solution serait de porter completement le moteur du shell KhiCAS des Casio. On verra ca une fois le portage a l'interieur de Calculs et Python fonctionnel. A noter que la version compilee a partir du source ne doit pas etre diffusee publiquement (il s'agit d'une version a usage personnel a des fins de prototypage, ce qui est permis par la GPL il me semble).

Re: Firmware Delta N0110: calcul formel GIAC même en mode ex

Unread postPosted: 18 Sep 2019, 19:50
by critor
Merci pour les précisions, justement je me demandais pourquoi je n'arrivais pas à faire marcher solve(...) dans l'application calcul, alors que le comportement obtenu n'était justement pas le même que celui d'une fonction inexistante.

Re: Firmware Delta N0110: calcul formel GIAC même en mode ex

Unread postPosted: 22 Sep 2019, 07:34
by wawachief
Bonjour
Tout d'abord bravo et merci pour le portage de giac sur la numworks, c'est juste énorme !

J'ai compilé le dernier firmware delta et je rencontre assez fréquemment des reboots. Voici une procédure qui semble faire crasher systématiquement la machine :
diff((2x-1)/(2x^2-9x+9),x,1)
jusque ici tout va bien, on a bien la dérivée
factor(résultat précédent sélectionné avec le curseur)
la machine reboute

Re: Firmware Delta N0110: calcul formel GIAC même en mode ex

Unread postPosted: 22 Sep 2019, 08:56
by parisse
Sans doute un probleme de memoire insuffisante. Tout va bien dans le shell Khicas.

Re: Firmware Delta N0110: calcul formel GIAC même en mode ex

Unread postPosted: 22 Sep 2019, 09:35
by parisse
Ca marche aussi en diminuant la taille du pool de poincare, ce que je vais faire pour les prochains firmwares.

Re: Firmware Delta N0110: calcul formel GIAC même en mode ex

Unread postPosted: 26 Sep 2019, 22:19
by cyberpiv
beau boulot, j'avais pris la numworks à l'origine pour la possibilité de la programmer en python et de bidouiller le firmware, et là avec l'intégration de GIAC, je me demande quoi ajouter (un module RPN, nostalgique de la HP48G ?)

Petit bug : le diff(asin(x),x,1) fait reseter la calculatrice, mais pas le arcsin, ni le acos/atan.

Un mot clé utilisé ailleurs ?

Re: Firmware Delta N0110: calcul formel GIAC même en mode ex

Unread postPosted: 27 Sep 2019, 07:58
by parisse
Ca marche chez moi, essayez d'installer le dernier firmware delta. Il y a d'ailleurs eu pas mal d'ameliorations cette semaine, en particulier l'integration de l'editeur d'expressions en mode lecture seule, qui permet d'utiliser les commandes de giac dans le shell Khicas (saisie en mode algebrique) et de voir le resultat en ecriture naturelle. Du coup, je conseille de faire du calcul formel plutot dans KhiCAS que dans Calculs, il n'y a pas de contraintes sur les saisies, par exemple on peut utiliser rsolve pour trouver la valeur explicite de certaines suites recurrentes, linsolve pour resoudre un systeme lineaire, diff avec 2 arguments, limit sans avoir des crochets autour des 3 arguments, etc.

Pour les programmes qui utilisent kandinsky, j'ai aussi remis en place la possibilite d'utiliser un unique entier pour coder la couleur (on peut donc utiliser color(r,g,b) ou directement un entier comme au debut).

J'ai aussi adapte les 3 programmes exemples fournis au demarrage, ils fonctionnent avec les 2 interpreteurs: KhiCAS ou MicroPython. On passe de l'un a l'autre par la commande python ou xcas, qui sont accessibles depuis la Toolbox, dont les menus ont ete rearranges. Ca permet, pour les programmes compatibles, de les executer plus rapidement avec MicroPython (par exemple la fractale), ou de les executer en pas a pas avec affichage de la valeur des variables dans KhiCAS, et de les executer en calcul exact avec KhiCAS (par exemple le programme exemple de calcul de racines d'un polynome du 2nd degre).

Je suis en train de travailler sur la gestion du clavier, pour la fonction getKey() de KhiCAS et pour passer en mode lecture/ecriture l'editeur d'expressions...

Re: Firmware Delta N0110: calcul formel GIAC même en mode ex

Unread postPosted: 28 Sep 2019, 12:51
by wawachief
J'ai mis à jour à partir du SVN et en effet, les crashs que je rencontrai ont disparu. Merci !

@ cyberpiv : Le mode RPN sur la numworks existe, grâce à l'excellente appli de boricj. Elle peut également s'installer sur Delta, c'est la configuration que j'ai actuellement.
Attention toutefois, le Delta est basé sur la version 11 et RPN, sur la version 12. Il faut donc récupérer sur le SVN l'avant dernière version qui se trouve ici :
https://github.com/boricj/numworks-rpn/ ... b2b0daea54

Edit : J'ai parlé trop vite, crash depuis calculs de diff((sqrt(x^2+x+1)-x)/(x+1),x,1). La fonction ne crashe pas depuis khicas.

Re: Firmware Delta N0110: calcul formel GIAC même en mode ex

Unread postPosted: 30 Sep 2019, 13:42
by parisse
Je n'ai pas de crash, avec une machine qui vient d'etre resettee. Mais si la machine a fait des calculs avant, le tas peut etre partiellement rempli, et ca se remarque sans doute plus dans Calculs que dans Khicas. En particulier si on a utilise la tortue et pas fait un efface. Je pense donc que c'est toujours le meme probleme, pas assez de tas, meme rehausse a 50K (valeur actuelle pour delta). Il va sans doute falloir supprimer quelques apps pour eviter les crash trop frequents, je vais tester en enlevant regressions.