Page 1 of 1

Solveur équa diff en Python par Casio pour Graph Math+

Unread postPosted: 23 Dec 2024, 22:46
by critor
Surprise, dans la lancée de la sortie de sa mise à jour 2.00 majeure pour Graph Math+, Casio nous publie aujourd'hui un script Python pour Graph Math+.

Il s'agit d'un solveur graphique d'équations différentielles, également compatible avec les fx-CG100 et fx-1AU Graph, modèles équivalents hors de France.

Le manuel l'appelle Diff-Eq 1.0, mais le code Python inclut un nom plus complet : Slope Field Graph 1.0.

2156221561L'application en question se compose de 3 scripts Python que tu dois copier dans un même dossier au choix de ta calculatrice, et c'est ensuite le script DEQexe.py que tu dois lancer.

Il te demande alors de saisir ton équation différentielle ainsi que les bornes de la fenêtre, et t'affiche alors le champ de vecteurs des solutions :
215512155221553


21566Comme clairement indiqué à l'écran, tu es ensuite invité à taper
OK
pour saisir des conditions initiales et visualiser simultanément jusqu'à 3 solutions particulières :
21558215552155721559


C'est donc la toute première fois que Casio nous sort un élément additionnel codé en Python.

Avec la suppression du support des applications additionnelles en langage machine sur Graph Math+, nous nous demandions bien comment Casio allait faire pour continuer à proposer des fonctionnalités additionnelles.
Apparemment jusqu'ici il y a donc 2 approches :
  • pour les fonctionnalités nécessitant du code en langage machine et donc sensibles, comme nous avons vu avec la mise à jour 2.00 une intégration a priori en dur dans le système d'exploitation
  • et pour les autres, un codage en Python
Attention, le code Python de Diff-Eq 1.0 utilise la fonction de test de touche getkey(), et n'est donc malheureusement pas compatible avec les anciens modèles programmables en Python.
21563Et bien bonne nouvelle, nous avons le plaisir de t'offrir une version modifiée, Diff-Eq 1.0 "compatible edition" ciblant les anciennes Casio Graph programmables en Python.

La fonction getkey() ne servait ici qu'à détecter la pression de la seule touche
OK
.
Nous contournons l'absence de cette fonction en interceptant l'exception KeyboardInterrupt déclenchée lorsque tu tapes la touche
AC
.
Sur Graph 90+E et fx-CG50, il te suffit donc, comme nous l'indiquons, de taper
AC
au lieu de
OK
.

21564Nous en profitons pour rajouter également la compatibilité avec l'écran monochrome des Graph 35+E II et fx-9750/9860GIII.
Outre l'absence de couleur cela implique également une réduction de la définition de l'écran, on passe de 384×192 pixels à 128×64 pixels. L'idée est donc de diviser à peu près toutes les coordonnées d'affichage en pixels par 3, puis d'effectuer quelques ajustements ou allègements pour la lisibilité puisque nous n'avons plus que 2 couleurs pour afficher : noir et blanc.

En prime pas besoin de t'embêter à choisir entre différents fichiers, notre version détecte automatiquement la présence ou absence de la fonction getkey() ainsi que le caractère couleur ou monochrome de l'écran, et s'adapte automatiquement !

Téléchargements :

Re: Solveur équa diff en Python par Casio pour Graph Math+

Unread postPosted: 07 Jan 2025, 17:13
by parisse
J'ai mis à jour KhiCAS pour la 90 en améliorant un peu l'interface pour tracer des solutions d'équations différentielles.
Lorsqu'on tape la commande plotfield (menu rapide F3 6, pour saisir un exemple de l'aide en ligne faire curseur vers le bas puis F2 ou F3), le champ des tangentes s'affiche (jusque là pas de changement, taper + ou - pour zoomer), mais maintenant on peut déplacer le curseur (représenté par une croix, taper shift avant la touche de déplacement pour se déplacer rapidement) vers une condition initiale y_0=y(t_0) dans le plan des (t,y), puis on tape EXE pour tracer la solution passant par cette condition initiale. On peut recommencer plusieurs fois pour tracer plusieurs solutions.
Il n'y a pas de limitation à 3 solutions comme sur le programme Python. Cela fonctionne également pour un système autonome de dimension 2, par exemple plotfield([-y,x],[x,y])
Pour quitter le mode interactif, il faut taper EXIT plusieurs fois. (Techniquement, plotfield génère automatiquement une figure de géométrie 2d).