Calculatrice Numworks : nombreuses améliorations avec le firmware 1.3.0, notamment sur Python
Bientôt une alternative crédible ?
Le 06 février 2018 à 14h19
6 min
Sciences et espace
Sciences
Deux mois après la précédente mise à jour, Numworks en déploie une nouvelle. Le firmware 1.3.0 apporte des changements dans quasiment toutes les applications de la calculatrice. Cette fois encore, on se demande bien pourquoi certains ont pris autant de temps.
En septembre dernier, Numworks lançait sa « calculatrice réinventée ». Problème, comme nous l'avions expliqué dans notre test en novembre, de nombreuses fonctionnalités étaient absentes lors du lancement, tandis que d'autres méritaient des améliorations. Un premier gros changement est arrivé avec le firmware 1.2.0 publié début décembre.
Il était notamment question du moteur de calcul exact pour éviter les erreurs d'arrondis. Un exemple parmi d'autres : lors de son lancement, « 1 - 0,8 - 0,2 » ne donnait pas 0 comme n'importe qui pourrait s'y attendre, mais - 5,551115e-17. L'autre gros morceau concernait l'intégration de scripts dans l'application Python.
Désormais, le firmware 1.3.0 est disponible avec, cette fois encore, des notes de versions relativement longues. Si les changements sont bienvenus, on y trouve beaucoup plus de correctifs et d'améliorations des fonctions existantes que de grosses nouveautés.
Plus de fonctions pour Python (dont input), la Toolbox s'enrichit aussi
Pour commencer, l'application Python est encore améliorée avec l'ajout d'un « module random » dans la boite à outils de la calculatrice (Toolbox). Celui-ci propose les fonctions suivantes : getrandbits
, seed
, randrange
, randint
, choice,
random
et uniform
.
D'autres, tout aussi intéressantes, font leur apparition. Notamment input()
, qui permet d'interagir avec l'utilisateur en lui demandant de saisir du texte (fonction disponible dans le menu Catalogue de la Toolbox). Enfin, min()
, max()
et list[m:n]
(pour des tableaux) débarquent avec cette mouture 1.3.0. Là encore, des fonctionnalités assez basiques dont on se demande pourquoi elles n'arrivent que maintenant.
La Toolbox gagne trois autres fonctions : factor(n)
pour décomposer un nombre en facteurs premiers, random()
et randint(a,b)
pour obtenir respectivement un nombre aléatoire entre 0 et 1 ou entre a et b.
Calculs de puissance de polynômes, suites liées et outils pour les fonctions
L'application Calculs peut désormais développer des puissances de polynômes – (a+b+c+...)^n par exemple –, tandis que « le symbole Ans est maintenant remplacé par son expression mathématique exacte »... un changement qui aura mis du temps à arriver. Toujours dans Calculs, la calculatrice affiche maintenant le « signe égal entre une expression et sa valeur décimale exacte dans les résultats ».
Du côté de l'application Suites, les suites liées sont utilisables, v(n) pouvant dépendre de u(n) par exemple. Par défaut, deux suites au maximum peuvent être entrées dans la calculatrice. Il faut toujours modifier le code source, le compiler et l'installer sur sa calculatrice pour augmenter cette limite.
Des outils dédiés ont été ajoutés dans les options des suites. Dans le cas d'une suite récurrente de niveau 1 ou 2, l'indice du premier terme peut être ajusté. Pour rappel, il était par défaut à 0 sur les firmwares précédents. Ainsi, au lieu de préciser u(0), vous pouvez spécifier u(10) ou u(42). On regrettera par contre que le tableau des valeurs s'obstine à commencer pour n=0 par défaut, alors que notre suite commence à u(10) par exemple.
L'application Fonctions profite également de plusieurs améliorations. Par exemple, un nouveau menu est accessible en appuyant sur OK lorsque le curseur est sur une courbe. Baptisé Calculer, il permet d'obtenir l'intersection, les maximum et minimum, les zéros, tangente et intégrale. D'autres modifications plus anecdotiques sont présentes, comme la modification du curseur (qui est désormais un point au lieu d'une croix) et l'amélioration du graphisme.
Application Probabilités améliorée, de petits correctifs par-ci par-là
Du côté des probabilités, la précision des résultats a été augmentée, les champs de texte sont étirables et s’adaptent automatiquement, les résultats peuvent être copiés et la calculatrice utilise « erf et l’inverse de erf pour la loi normale ».
Enfin, plusieurs correctifs plus généraux sont à noter : alignement des exposants, bug dans le réglage du nombre de chiffres significatifs (14 maximum depuis la mise à jour 1.2.0), soucis avec les dérivées, « amélioration des performances de la calculatrice », etc. Les notes de versions détaillées se trouvent par ici.
Les choses s'améliorent, mais il reste encore du travail pour convaincre pleinement
Si le moteur de calcul exact introduit avec le firmware 1.20 permettait à Numworks de revenir dans la course, la calculatrice souffrait encore de plusieurs manques par rapport à ses concurrentes. Cette mouture 1.3.0 en corrige certains, notamment sur les applications Suites et Python, mais ce n'est pas encore parfait... loin de là. Quelques exemples parmi d'autres : pas de conversion ou de calcul sur les unités, des interactions entre les applications trop limitées, pas de possibilité de sauvegarder ou copier des scripts Python avec son ordinateur, etc.
Néanmoins, force est de constater que deux mois après la dernière grosse mise à jour, le travail continue. Espérons que le fabricant tienne le rythme afin de proposer une calculatrice bien plus aboutie pour la prochaine rentrée des classes de lycée.
Pour rappel, la société mise sur les professeurs (elle distribue d'ailleurs gratuitement des exemplaires aux enseignants de mathématiques et mathématiques-sciences) pour pousser son produit auprès de leurs élèves... mais encore faut-il convaincre les enseignants. Si ce n'était pas franchement gagné avec le firmware 1.1.x, les choses s'améliorent grandement depuis.
Mettre à jour sa calculatrice : Chrome obligatoire
Comme toujours, il faut passer par le workshop pour effectuer la mise à jour, et obligatoirement via Chrome (à partir de la version 61). En effet, avec Edge ou Firefox, un message d'erreur indique que « le navigateur est incompatible » car « il ne dispose pas de la fonctionnalité WebUSB ». De plus, sous Windows, cette procédure nécessite l'installation d'un pilote, directement proposé par le fabricant.
La suite des étapes est classique : il faut connecter la calculatrice en USB à l'ordinateur, appuyer sur le bouton Reset sur son dos et laisser la mise à jour s'installer.
Le 06 février 2018 à 14h19
Calculatrice Numworks : nombreuses améliorations avec le firmware 1.3.0, notamment sur Python
-
Plus de fonctions pour Python (dont input), la Toolbox s'enrichit aussi
-
Calculs de puissance de polynômes, suites liées et outils pour les fonctions
-
Application Probabilités améliorée, de petits correctifs par-ci par-là
-
Les choses s'améliorent, mais il reste encore du travail pour convaincre pleinement
-
Mettre à jour sa calculatrice : Chrome obligatoire
Commentaires (41)
Vous devez être abonné pour pouvoir commenter.
Déjà abonné ? Se connecter
Abonnez-vousLe 06/02/2018 à 14h26
#1
Décidément, elle m’intéresse vraiment.
Pour mon premier enfant quand il en aura besoin ,je pense en prendre une et voir si cela est pas que bien sur le papier.
Le 06/02/2018 à 14h33
#2
Bien que ce fut corrigé, la présence d’erreurs d’arrondi à sa sortie me fait perdre toute confiance dans le produit.
Il y a de-facto un problème dans l’architecture logicielle du truc si une telle chose fut possible!
Le 06/02/2018 à 14h45
#3
Pas vraiment, si tu lances une console Python 2.7 et que tu fais le calcul évoqué, ça te donne ce résultat. Plus de détails ici : https://docs.python.org/fr/2/tutorial/floatingpoint.html
Le 06/02/2018 à 15h27
#4
Le 06/02/2018 à 15h31
#5
En fait, si j’étais concerné, cette succession de sorties de version pourrait bien me convaincre: c’est quand même une façon de prouver que le produit est hautement évolutif, et donc que son ouverture n’est pas inutile.
(mais je ne suis pas concerné: si j’ai besoin de faire des calculs, c’est que je suis au taf, donc en face d’un ordinateur sur lequel j’installe les packages dont j’ai besoin)
Le 06/02/2018 à 15h52
#6
WebUSB
Marrant, on dirait que ce mot a été uniquement créé pour tourmenter les responsables sécurité dans les grandes entreprises…
Le 06/02/2018 à 15h59
#7
Le 06/02/2018 à 16h00
#8
Le 06/02/2018 à 16h00
#9
Je trouve la tarif raisonnable : à 79,99€, c’est pas beaucoup plus cher qu’une Casio type lycée.
Le 06/02/2018 à 16h05
#10
Le 06/02/2018 à 16h10
#11
Le 06/02/2018 à 16h19
#12
N’exagérons rien : on peut toujours trouver la rédemption en écrivant une fonction de comparaison avec un epsilon.
Oui, comme chantait Sharon Jones : I learned the hard way…
Le 06/02/2018 à 16h21
#13
Le 06/02/2018 à 16h32
#14
Le 06/02/2018 à 16h57
#15
Et de toute façon, 1⁄2 ça vaut zéro parce que 1 et 2 sont des entiers, donc le compilateur choisit d’effectuer une division entière.
Le 06/02/2018 à 17h03
#16
Le 06/02/2018 à 18h44
#17
Le 06/02/2018 à 19h01
#18
Le 06/02/2018 à 19h02
#19
Le 07/02/2018 à 07h49
#20
C’est quand même la règle numéro 1 en informatique : “Tu ne feras point de comparaison d’égalité entre flottants”.
Tu parles d’AMD, mais ce problème est spécifique… Au binaire. Tout les processeurs de toutes les architectures et de tous les fabricants seront impactés. Encore pire que Spectre/Meltdown !
Le 07/02/2018 à 09h00
#21
Non, Excel utilise des flottants double précision et calcule avec les valeurs complètes, pas celles affichées (sauf pour les comparaisons, apparemment).
Le 07/02/2018 à 09h24
#22
Pas d’accord.
Mon enfant se formera tout seul ou avec mon aide.
Comme ce fût le cas pour moi.
Sachant qu’en plus, j’ai appris à tout faire sans calculette …et servait qu’à vérifier les résultats.
Et ,perso, j’avais une ti quand les profs avait des casio.
Une calculette restera une calculette qu’elle soit de n’importe quelle marque et si un prof ,son cours dépendra d’une marque ….c’est un très mauvais prof.
Le 07/02/2018 à 09h28
#23
Le 07/02/2018 à 09h36
#24
Ah ça c’est clair qu’il y a un vrai problème dans la confiance qu’une maison mère pense pouvoir accorder a sa succursale qui est souvent inférieure à la confiance dont ils pourraient faire preuve par exemple.
Le 07/02/2018 à 09h42
#25
Le 07/02/2018 à 10h22
#26
Le 07/02/2018 à 10h28
#27
Le 07/02/2018 à 13h29
#28
Les mecs sont quand meme pas fut fut…. personne utilise de Float pour faire des opération mathématique en Python sinon c’est la catastrophe " />.
Ils ont changer par un Decimal et hop sa a marché, une erreur de stagiaire quand même.
La doc sur le Decimal est assez clair la dessus en plus
Le 07/02/2018 à 14h44
#29
Ne pratiquant pas Python, quel est le problème de l’utilisation des floats ? Normalement, le choix Decimal/Float est censé être plus éclairé que “personne ne l’utilise parce que c’est nul”…
Le 07/02/2018 à 15h03
#30
Pas sûr que tous les modules qui sont à portée de main sur un PC soient disponibles sur cette calculatrice
Le 07/02/2018 à 15h49
#31
Le 07/02/2018 à 17h16
#32
Le 07/02/2018 à 17h22
#33
Celui qui le lira, ce ne sera pas le prof, et comme je l’ai dit, pour une bonne partie des lycéens, dès lors que c’est autre chose que leur iPhone, c’est au moins aussi compétent que ta grand-mère. Le mode d’emploi, c’est quelque chose qui tend à être totalement ignoré au point que même les constructeurs ne le fournissent plus.
Bien sûr qu’un enseignant ne peut pas imposer un modèle de calculatrice, mais il n’a qu’une compétence limité et ne peut pas aider les élèves qui n’ont pas la calculatrice sur lequel il a quelque compétence. Si un élève se ramène avec un modèle exotique et qu’il est incapable de faire les exercices, le prof, qui n’a pas le temps de passer des heures sur le problème, va lui faire comprendre qu’il a intérêt à se fournir avec un modèle plus classique.
Le 07/02/2018 à 17h34
#34
Ca ne rend pas le float inutilisable pour autant, même en math. Il a l’avantage de la performance et du stockage par rapport au decimal. Si tu dois placer des points dans un repère cartésien dont l’unité est le mètre et la précision le millimètre, la différence entre 5.55e-17 et 0 est négligeable.
Globalement, le decimal est meilleur pour traiter les unités monétaires, car même si tu brasses des trillions, tu ne veux pas perdre le moindre centime lors d’opérations successives. Pour les unités de grandeurs physiques, le float est applicable dans la majorité des cas.
Le 07/02/2018 à 17h37
#35
Le 07/02/2018 à 23h05
#36
Decimal est bien dans l’implémentation de référence de Python (CPython), mais ne fait pas partie du langage lui même, donc il n’y a aucune obligation de l’intégrer dans toutes les implémentations.
Typiquement, dans MicroPython il n’y est pas, la plupart des modules de la bibliothèque de référence ont été dégagés pour gagner de la place (MicroPython tient dans 256 Ko).
Et vues les caractéristiques matérielles de la Numworks, sont implémentation de Python est sans doute plus proche de MicroPython que de CPython.
Accessoirement, à la base le problème de précision lié au float sur la Numworks était dans son appli Calculatrice, donc ça n’a strictement rien à voir avec Python : l’application Calculatrice est écrite en C++, pas en Python.
Le 09/02/2018 à 09h36
#37
Ben ouais, leçon numéro 1 sur l’usage des flottants en école d’ingé : ne jamais faire une comparaison flottante mais toujours un encadrement. On n’écrit pas if(1⁄2 == 0,4){} mais if(abs(1⁄2 - 0.5) <= 0.000000000001)) par exemple.
Tu peux renvoyer le développeur qui t’a fait ton test en formation, c’est un des trucs de base.
Le 09/02/2018 à 14h10
#38
Le 09/02/2018 à 14h45
#39
Ben ouais, si tu recrutais sur NXi, tu n’aurais que la crème des développeurs, ceux qui ont tout écouté en cours et rien oublié depuis.
Le 09/02/2018 à 14h45
#40
Faudra donc que tu me dises où tu as lu que je proposais de le renvoyer, qu’il était en test ou qu’il était en formation. J’ai dit que tu devais le renvoyer en formation, ce qui en français signifie que tu demandes à la RH non pas de le virer mais de le former pour le mettre à niveau…
Je t’ai dit qu’il avait écrit un test (ça c’est bien toi qui nous l’as dit, 1⁄2==0,5 c’est bien un test dans du code…).
D’ailleurs pour être honnête, ça ne me gêne pas qu’il fasse l’erreur (je suis sûr que c’est arrivé même au plus aguerri des développeurs de la faire, c’est un classique, et c’est bien pour ça qu’on le signale dès l’apprentissage de base du code). Ce qui me gêne, c’est de s’en étonner derrière, une fois qu’on a eu le souci on le corrige, on fait son mea culpa et on passe à autre chose.
Le 09/02/2018 à 16h09
#41