Page 1 of 2

Omega bêta 1.21 : obtiens les expressions des dérivées !

Unread postPosted: 24 Feb 2021, 13:11
by Admin
Dans sa boîte à outils, la calculatrice NumWorks te propose une fonction diff(expression,variable,valeur) pour calculer un nombre dérivé.

L'algorithme mis en œuvre en interne jusqu'à présent, était basé sur la définition du nombre dérivé telle que vue en Première : la limite du taux de variation de l'expression en la valeur en question.

Confiée à une machine, cette méthode de calcul nécessite toutefois beaucoup de précautions. Il y a nombre de choses à prendre en compte à la valeur en question :
  • la fonction est-elle définie ?
  • la fonction est-elle continue ?
  • la fonction est-elle dérivable ?
  • les limites à gauche et à droit sont-elles les mêmes ?

Bref, le calcul de nombre dérivé sur la NumWorks était jusqu'à présent tout sauf fiable.

Voici par exemple ci-contre plein de nombres dérivés nuls en 0, alors que les expressions en question ne sont pas dérivables en 0, les limites du taux de variation étant différentes à gauche et à droite, et leurs représentations graphiques n'admettent absolument pas de tangente horizontale en 0.

Ce n'est pas le seul problème. Représentons graphiquement une fonction ainsi que sa fonction dérivée. Pour de grands nombres, nous obtenons des tracés aberrants...



Egalement, les calculs de limites sont ici effectués en interne en évaluant avec des valeurs de plus en plus proches de la cible. C'est-à-dire qu'il s'agit d'approximations, et donc tu obtenais toujours ton nombre dérivé en écriture décimale, et donc bien souvent des approximations au lieu de valeurs exactes.

Et puis, la dernière mise à jour 15.3.0 est venue corriger tout cela. :bj:

Finies les erreurs manifestes que ce soit dans l'application Calculs ou Fonctions ! :bj:

Les nombres dérivés continuent à être retournés en écriture décimale, mais tu peux désormais en demander des résultats complémentaires et y trouver la valeur exacte.
Par contre attention, en pratique cela ne semble marcher que pour les valeurs rationnelles (c'est-à-dire attendues sous la forme d'une fraction irréductible). :#non#:

Mais comment ont-ils fait chez NumWorks pour réaliser de telles prouesses ?

Souviens-toi, avec la version 1.2.0, NumWorks introduisait une fonctionnalité révolutionnaire pour cette gamme de prix, le calcul littéral. C'est-à-dire qu'il y avait en interne un moteur travaillant sur des arbres de calcul représentant les différentes expressions algébriques saisies.

Cette fonctionnalité parfaitement autorisée et légitime aux examens en France puisque présente sur d'autres modèles concurrents, fut hélas supprimée à compter la version 11.2.0, sous la pression de certains de nos voisins européens interdisant ce genre de fonctionnalités à leurs examens (entre autres Pays-Bas, Portugal, Italie, Royaume-Uni, Baccalauréat International, ...). :mj:

Plus exactement, le moteur de calcul littéral n'a pas été supprimé. Mais tout résultat dont l'arbre le représentant fait intervenir la moindre valeur non numérique (variable) voit son affichage censuré par un undef.

Donc pour en revenir à la dérivation, désormais NumWorks met à profit en interne son moteur de calcul littéral pour construire l'expression dérivée de l'expression que tu as fournie, et l'évalue simplement ensuite avec la valeur ciblée.

1361313612Le firmware Omega a le gros avantage de réactiver totalement le moteur de calcul littéral de ta NumWorks.

Pour la dérivation et bien d'autres choses, tu pouvais déjà y rajouter des applications comme KhiCAS avec son moteur de calcul formel GIAC, encore une fois légitimes en France et donc restant disponibles en mode examen :bj:

Mais puisque la dernière version 15.3.0 utilise le moteur de calcul littéral pour la dérivation, et que Omega déverrouillait totalement le moteur de calcul littéral en question... qu'est-ce que ça donne avec la dernière version bêta 1.21 d'Omega ? ;)

13614Et bien fantastique magie ça marche, il suffit de redonner la variable en tant que valeur et on obtient directement l'expression dérivée ! :#tritop#:

Avec ici donc l'intégration à l'application Calculs à laquelle tu es habitué·e, et le gros avantage de la gestion directe de la saisie et de l'affichage en écriture naturelle : :D


Pour les nombres dérivées, on peut déplorer la persistance des résultats en écriture décimale.

Et pas davantage de possibilité de demander des résultats complémentaires en valeur exacte ici.

Toutefois petite astuce, il te suffit :
  1. de demander l'expression dérivée
  2. d'affecter la valeur cible à sa variable
  3. de copier coller l'expression dérivée :)

Par contre, il semble y avoir une frilosité de l'équipe Omega autour du mode examen dans cette version bêta. Déjà, la page d'installation de la version bêta te prétend que le mode examen a été supprimé...

Nous te rassurons de suite, selon nos tests le mode examen est bien présent et fonctionnel.
Toutefois, cela nous amène quand même à un très grave inconvénient avec cette version bêta d'Omega, que dans ton propre intérêt nous ne pouvons taire. Le firmware Omega bêta ajoute un message informatif à l'écran d'activation du mode examen, il indique donc ici qu'Omega est un logiciel non officiel, que son mode examen n'est donc pas garanti conforme, ni par NumWorks ni par Omega. :o

En pratique le mode examen nous semble fonctionner correctement.

Mais peu importe que ce soit vrai ou faux, avec les termes très lourds de sens de "non officiel" et "conformité [...] non garantie", il y a tout ce qu'il faut pour effrayer les surveillants qui justement peuvent être stressés et avoir les yeux partout lors de la phase d'activation du mode examen en début d'épreuve, et induire des conséquences dramatiques pour les élèves innocents : devoir composer sans la calculatrice, voir même pire faire face à un procès verbal de fraude pour avoir introduit un mode examen altéré / non conforme, passible de plusieurs années d'interdiction de passer tout examen ou concours (y compris le permis de conduire), de quoi bien gâcher une vie. Le pire étant que ce sera aléatoire et donc injuste, tout dépendra de si le surveillant posera ses yeux sur l'écran de ta machine au moment de l'activation ou pas, et si ces 3 lignes de texte normalement absentes l'amèneront à lire et tilter ou pas. :'(
Nous sommes de plus en ce 2ème trimestre en pleine période d'épreuves communes et examens blancs, où l'activation et la vérification soigneuse du mode examen sont la norme contrairement aux simples devoirs surveillés, c'est à peu près le pire moment de l'année pour diffuser en public un firmware avec un tel message...

Certes les épreuves d'examens sont annulées cette année, mais ce n'est pas forcément mieux. Cela veut dire que si tu installes la bêta d'Omega, tu risques de ne plus y penser car étant peut-être moins amené·e à utiliser ta calculatrice dans les quelques mois qui restent, et te retrouver piégé·e l'année prochaine.
Peut-être aussi en auras-tu terminé avec les sciences cette année et vas-tu revendre, prêter ou donner ta calculatrice. Et si son nouvel utilisateur ou utilisatrice est moins attentif que toi avec les versions installées, c'est lui qui sera piégé.

Nous ne pouvons que déplorer ce choix. Nombre d'élèves risquent de se présenter à leur épreuve commune ou terminale avec une version bêta cette année ou l'année prochaine, parce qu'ils auront oublié de mettre à jour d'ici-là ou parce que la calculatrice aura été prêtée/vendue, et d'avoir alors à ce moment-là une très mauvaise surprise.
Dans un contexte scolaire ou tout autre contexte avec des évaluations en mode examen, dans ton propre intérêt ne prends pas de risques. Nous le comprenons parfaitement, cela fait très mal vu les nouvelles fonctionnalités proposées, mais ne passe pas sur la version bêta d'Omega. :#non#:

Installation :

Re: Omega bêta 1.21 : obtiens les expressions des dérivées !

Unread postPosted: 24 Feb 2021, 17:50
by Thom986
Les fonctions dérivées, c'est un très gros plus. Un quasi indispensable pour gagner en confiance, en vérification pour un lycéen et un étudiant dans le sup.

Re: Omega bêta 1.21 : obtiens les expressions des dérivées !

Unread postPosted: 24 Feb 2021, 18:07
by critor
Même si on pouvait déjà via KhiCAS, en effet cela n'en reste pas moins un excellent ajout, et encore plus dans cette gamme de prix ! :bj:

Re: Omega bêta 1.21 : obtiens les expressions des dérivées !

Unread postPosted: 24 Feb 2021, 18:53
by parisse
Implementer un calcul de derivee formelle, c'est facile. L'inverse est bien plus difficile...

Re: Omega bêta 1.21 : obtiens les expressions des dérivées !

Unread postPosted: 24 Feb 2021, 23:51
by Thom986
L'inverse des recherches de primitive ?

Re: Omega bêta 1.21 : obtiens les expressions des dérivées !

Unread postPosted: 25 Feb 2021, 00:49
by Adriweb
Les dérivées, c'est simple. Les primitives, c'est compliqué. Cf. Risch notamment,

Re: Omega bêta 1.21 : obtiens les expressions des dérivées !

Unread postPosted: 25 Feb 2021, 07:26
by redgl0w
Adriweb wrote:Les dérivées, c'est simple. Les primitives, c'est compliqué. Cf. Risch notamment,

J'ai cherché à comprendre comment ça marchait. J'ai très vite abandonné en effet x3

Re: Omega bêta 1.21 : obtiens les expressions des dérivées !

Unread postPosted: 25 Feb 2021, 07:41
by Hamza.S
L'algorithme de risch, il faut des études poussées je pense mais on peut faire quelques primitives grâce au formulaire de dérivées et primitives et grâce à l'intégration par partie

Re: Omega bêta 1.21 : obtiens les expressions des dérivées !

Unread postPosted: 25 Feb 2021, 09:39
by parisse
Oui, bien sur on peut calculer pas mal de primitives sans connaitre l'algorithme de Risch (qui n'est d'ailleurs pas implemente chez TI). Mais c'est beaucoup plus difficile que d'implementer la derivation, qui necessite en gros de comprendre les regles de derivation (linearite, composition et derivee des fonctions usuelles), ce qu'est une fonction recursive et la structure de donnee recursive utilisee pour coder une expression. Je pense que ca doit etre faisable en NSI (par exemple faire un programme utilisant giac qui afficherait le calcul d'une derivee en pas a pas).
Pour l'integration par contre, il n'y a pas de regle universelle, il faut etre capable de reconnaitre la forme de l'integrand pour selectionner l'algorithme adequat, puis il faut implementer l'algorithme ce qui necessite souvent beaucoup d'algorithmes auxiliaires. Par exemple pour integrer sin(x)^10 il faut avoir une fonction de linearisation. Pour integrer une fraction rationnelle, il faut decomposer en elements simples, donc il faut une identite de Bezout sur les polynomes, donc toute l'arithmetique de base sur les polynomes. Et ca se complique encore s'il s'agit d'integrale definie (avec des bornes), car la primitive calculee n'est pas toujours continue.
En fait, les tests d'integration sont d'excellents tests de regression d'un CAS, avec une centaine de primitives on teste surement plus de la moitie du code total.

Re: Omega bêta 1.21 : obtiens les expressions des dérivées !

Unread postPosted: 25 Feb 2021, 21:04
by Bisam
Peut-on changer de variable en dérivant ?
Genre taper diff(sin(x),x,t) et obtenir cos(t) ?
Voire faire des composées : diff(sin(x),x,t^2) pour avoir cos(t^2) ?