π
<-
Chat plein-écran
[^]

KhiCAS : calcul formel + Python sur ta Graph 35+E II

Online

KhiCAS : calcul formel + Python sur ta Graph 35+E II

Unread postby critor » 19 May 2019, 22:12

11073Pour cette rentrée 2019,
Casio
nous sort une nouvelle édition de sa
Graph 35
numéro un au lycée, la
Graph 35+E II
.

La mise à jour
3.10
gratuite qui sera disponible mercredi 22 mai lui rajoutera la gestion des scripts
Python
. :D

Ce n'est pas la seule nouveauté puisque lors de notre test initial nous avons notés plusieurs améliorations matérielles significatives par rapport aux anciennes
Graph 35/75+E
, comme :
  • le doublement de la fréquence processeur avec
    59 MHz
    :bj:
  • le doublement de la capacité de la puce
    Flash
    avec
    8 Mio
    :bj:
  • en conséquence le doublement de la mémoire de stockage avec
    3 Mio
    :bj:
La
Graph 35+E II
gère désormais les applications, mais avec tous ces changements la compatibilité avec les applications
Graph 75+E
n'est que partielle.

Il n'empêche que nombre d'applications parmi les plus utiles fonctionnent déjà. Tu peux notamment dès maintenant rajouter à ta
Graph 35+E II
:
  • l'application de programmation
    Python
    CasioPython
    - même pas la peine d'attendre mercredi ;)
  • l'application de calcul formel
    CAS
    par la communauté jeuxcasio.com
  • l'application de calcul formel
    Algebra
    basée sur le moteur du logiciel
    EigenMath
Toutefois, on pouvait reprocher à ces deux applications de calcul formel d'être relativement limitées même dans le contexte du lycée, ainsi qu'une maintenance inexistante pour la première et très occasionnelle pour la dernière.

Mais voici venir l'infatigable avec le moteur de calcul formel
Giac
de son logiciel
Xcas
.

Bernard
avait déjà rendu disponible son moteur
Giac
pour plusieurs calculatrices graphiques, avec :
  • le programme
    Ndless KhiCAS
    pour
    TI-Nspire
  • l'application
    KhiCAS
    pour
    Casio Graph 90+E
    et
    fx-CG10/20/50

Aujourd'hui, grâce au travail acharné de
Bernard
et à l'aide formidable de
Lephenixnoir
, administrateur
Planète Casio
,
KhiCAS
débarque sur ta
Graph 35+E II
! :bj:

En prime, l'application
KhiCAS
est programmable dans une syntaxe proche du
Python
, que demander de plus ?... :#tritop#:

Elle inclut son propre éditeur de scripts, qui a l'avantage d'une belle innovation par rapport à l'éditeur de
Casio
que nous avons testé. En effet l'éditeur de
KhiCAS
se donne même la peine de compenser l'absence d'écran couleur et donc de coloration syntaxique par quelques enrichissements ! :D

Et en prime nous y avons même un module
turtle
pour programmer du tracé comme en
Scratch / Logo
! :bj:
Précisons toutefois qu'il ne s'agit pas d'un véritable interpréteur
Python
, mais d'une couche de traduction syntaxique vers le langage de programmation historique de
Xcas
.

Nombre de scripts
Python
pourront ne pas fonctionner correctement sans des modifications qui ne seront pas toujours évidentes.

Mais pourquoi obtenons-nous
KhiCAS
seulement maintenant sur
Graph 35+E II
, et pourquoi ne l'avons-nous pas eu plus tôt sur les anciennes
Graph 35+E/USB
et
Graph 75/85/95
?

Comme nous l'avons vu dans notre test, la
Graph 35+E II
a bénéficié de plusieurs améliorations matérielles, et ses fonctionnalités logicielles ont également été fortement rafraîchies en empruntant beaucoup à la
Graph 90+E
.

Matériellement, la capacité de la mémoire
Flash ROM
a doublé, passant de
4 Mio
à
8 Mio
. En conséquence, la capacité de la mémoire de stockage a également doublé, passant de
1,5 Mio
à
3 Mio
. Or, il se trouve que l'application
KhiCAS
pour
Graph 90+E
faisait déjà légèrement moins de 2 Mio, ce qui ne rentrait pas sur les anciens modèles.

Mais ce n'était pas la seule raison. Les anciens modèles monochromes
Graph 35+E/USB
et
Graph 75/85/95
étaient incapables de gérer les applications faisant plus de
512 Kio
. Cette limitation avait été repoussée à
2 Mio
sur les modèles couleur
Graph 90+E
et
fx-CG10/20/50
, et en empruntant au code de ces modèles la limitation de taille passe aussi à
2 Mio
sur la nouvelle
Graph 35+E II
! :bj:

En calcul exact, tu retrouveras entre autres tout dont la calculatrice est capable d'origine.

A la seule différence près que la saisie et l'écriture naturelle ne sont pas directement gérées à l'écran des calculs. Pour saisir en écriture naturelle plutôt qu'en ligne tu devrais taper
F3
sur la ligne de saisie, ce qui te donnera accès à un éditeur d'expression plein écran. De façon similaire, pour les résultats où l'application le jugera pertinent, l'application te présentera une vue temporaire plein écran en affichage naturel avant de te ramener à l'historique des calculs.

Rappelons que comme ses soeurs la
Graph 35+E II
ne gère d'origine que deux familles résultats exacts :
  • $mathjax$\pm\frac{a\pi}{b}$mathjax$
    pour la trigonométrie bien évidemment
  • $mathjax$\frac{\pm a\sqrt{b} \pm c\sqrt{d}}{f}$mathjax$
    qui est une famille de nombres avec des propriétés aisément vérifiables par les processeurs légers, et couvrant jusqu'ici l’essentiel des besoins des lycéens jusqu’en Première
Ce qui devient insuffisant par contre dans le contexte du nouveau programme de rentrée 2019 où les exponentielles descendent de la Terminale à la Première.

Avec
KhiCAS
où le calcul exact s'appuie sur un moteur de calcul formel nous n'avons pas ce genre de limitation, les résultats pourront utiliser des exponentielles et bien d'autres choses encore ! :bj:

Enfin, parlons performances puisque l'application
KhiCAS
est programmable dans un langage proche du
Python
.

Dans le contexte des nombres entiers, prenons le script suivant :
Code: Select all
try:
  from time import *
except:
  pass

def hastime():
  try:
    monotonic()
    return True
  except:
    return False

def genseed(ndigits):
  nmax,s,k=5*10**(ndigits-1),0,1
  while s<nmax:
    s+=k
    k*=2
  return s

def genarr(ndigits):
  sd,arr=genseed(ndigits),[]
  for k in range(1,ndigits):
    for j in range(ndigits):
      t=sd%10**k
      arr.extend([t,-t,10**k-t,t-10**k])
      sd=sd//10+(sd%10)*10**(ndigits-1)
  arr.extend([sd,-sd])
  return arr

def sortarr(arr,sdiff):
  segs=[0,len(arr)-1]
  while len(segs):
    iref=segs[0]
    for k in range(segs[0],segs[1]+1):
      if sdiff*(arr[k]-arr[iref])>0:
        t=arr[iref]
        arr[iref]=arr[k]
        arr[k]=arr[iref+1]
        arr[iref+1]=t
        iref+=1
    if iref>=segs[0]+2:
      segs.extend([segs[0],iref-1])
    if iref<=segs[1]-2:
      segs.extend([iref+1,segs[1]])
    segs.pop(0)
    segs.pop(0)
  return arr

def test(l,n):
  timed=hastime()
  start,stop,sdiff,arr=0 or timed and monotonic(),1,-1,[]
  arr.extend(genarr(l))
  for k in range(n):
    arr.extend(sortarr(arr,sdiff))
    sdiff=-sdiff
  stop=timed and monotonic() or 1
  return stop-start,len(arr),arr[0],arr[len(arr)//2-1],arr[len(arr)//2],arr[len(arr)-1]


La ligne d'appel test(9,2) se termine en
140,13s
.

D'où le classement pour les performances en calcul entier
Python
:
  1. 1,41s
    :
    TI-Nspire
    (32 bits : ARM9/ARMv5 @
    120MHz
    )
  2. 1,56s
    :
    TI-Nspire CM / CX révisions A-V
    (32 bits : ARM9/ARMv5 @
    132MHz
    )
  3. 2,40s
    :
    TI-Nspire CX révisions W+/CR4+
    (32 bits : ARM9/ARMv5 @
    156MHz
    )
  4. 3,74s
    :
    NumWorks
    (32 bits : Cortex/ARMv7 @
    100MHz
    )
  5. 4,75s
    :
    Casio Graph 90+E / fx-CG50
    (32 bits : SH4 @
    118MHz
    )
  6. 8,81s
    :
    HP Prime G2
    (32 bits : Cortex/ARMv7 @
    528MHz
    )
  7. 9,56s
    :
    Casio Graph 35+E/75+E / 35+USB/75/95 SH4 / fx-9750/9860GII SH4
    (32 bits : SH4 @
    29,5MHz
    )
  8. 10,19s
    :
    Casio Graph 35+E II
    (32 bits : SH4 @
    59MHz
    )
  9. 12,99s
    :
    Casio Graph 35+USB/75/85/95 SH3 / fx-9750GII SH3 / fx-9860G/GII SH3
    (32 bits : SH3 @
    29,5MHz
    )
  10. 14,93s
    :
    Casio Graph 35+E II
    (32 bits : SH4 @
    59MHz
    )
  11. 20,73s
    :
    HP Prime G1
    (32 bits : ARM9/ARMv5 @
    400MHz
    )
  12. 23,20s
    : module externe
    TI-Python pour TI-83 Premium CE
    (32 bits : Cortex/ARMv7 @
    48MHz
    )
  13. 26,60s
    :
    TI-83 Premium CE Edition Python
    (?)
  14. 33,48s
    : module externe
    TI-Python pour TI-83 Premium CE
    (32 bits : Cortex/ARMv7 @
    48MHz
    )
  15. 60,71s
    :
    Casio Graph 90+E / fx-CG50
    (32 bits : SH4 @
    118MHz
    )
  16. 116,93s
    :
    Casio fx-CG10/20
    (32 bits : SH4 @
    59MHz
    )
  17. 140,13s
    :
    Casio Graph 35+E II
    (application KhiCAS)
    (32 bits : SH4 @
    59MHz
    )


Passons maintenant aux nombres flottants avec le script suivant :
Code: Select all
try:
  from time import *
except:
  pass

def hastime():
  try:
    monotonic()
    return True
  except:
    return False

def seuil(d):
  timed=hastime()
  start,stop,n,u,l,d=0 or timed and monotonic(),1,0,2.,1,d**2
  while (u-l)**2>=d: u,n=1+(1/((1-u)*(n+1))),n+1
  stop=timed and monotonic() or 1
  return [stop-start,n,u]


La ligne d'appel seuil(0.005) se termine en
69,55s
.

D'où le classement pour les performances en virgule flottante
Python
:
  1. 0,962s
    :
    HP Prime G2
    (32 bits : Cortex/ARMv7 @
    528MHz
    )
  2. 1,08s
    :
    TI-Nspire CM / CX CR3-
    (32 bits : ARM9/ARMv5 @
    132MHz
    )
  3. 1,29s
    :
    TI-Nspire
    (32 bits : ARM9/ARMv5 @
    120MHz
    )
  4. 1,61s
    :
    TI-Nspire CX CR4+
    (32 bits : ARM9/ARMv5 @
    156MHz
    )
  5. 2,036s
    :
    NumWorks
    (32 bits : Cortex/ARMv7 @
    100MHz
    )
  6. 3,068s
    :
    HP Prime G1
    (32 bits : ARM9/ARMv5 @
    400MHz
    )
  7. 8,94s
    :
    Casio Graph 90+E / fx-CG50
    (32 bits : SH4 @
    118MHz
    )
  8. 9,68s
    : module externe
    TI-Python pour TI-83 Premium CE
    (32 bits : Cortex/ARMv7 @
    48MHz
    )
  9. 10,38s
    :
    TI-83 Premium CE Edition Python
    (?)
  10. 10,68s
    :
    Casio Graph 35+E II
    (32 bits : SH4 @
    59MHz
    )
  11. 11,26s
    :
    Casio 35+E/75+E / 35+USB/75/95 SH4 / fx-9750/9860GII SH4
    (32 bits : SH4 @
    29,5MHz
    )
  12. 11,46s
    : module externe
    TI-Python pour TI-83 Premium CE
    (32 bits : Cortex/ARMv7 @
    48MHz
    )
  13. 13,87s
    :
    Casio Graph 35+USB/75/85/95 SH3 / fx-9750GII SH3 / fx-9860G/GII SH3
    (32 bits : SH3 @
    29,5MHz
    )
  14. 19,98s
    :
    Casio Graph 90+E / fx-CG50
    (32 bits : SH4 @
    118MHz
    )
  15. 25,19s
    :
    Casio Graph 35+E II
    (32 bits : SH4 @
    59MHz
    )
  16. 35,55s
    :
    Casio fx-CG10/20
    (32 bits : SH4 @
    59MHz
    )
  17. 69,55s
    :
    Casio Graph 35+E II
    (application KhiCAS)
    (32 bits : SH4 @
    59MHz
    )


Ce sont donc les performances qui pèchent à ce jour. Mais on peut noter que c'était relativement déjà le cas pour l'application
KhiCAS
originelle sur
Graph 90+E
, et que pour un usage courant au niveau lycée cela devrait suffire.

Avec
KhiCAS
, bénéficie gratuitement d'un moteur de calcul formel aux capacités exhaustives qui couvriront cette fois-ci l'ensemble des tâches réalisées au lycées ainsi que nombre de besoins de l'enseignement supérieur !

Ton extraordinaire
Graph 35+E II
au prix d'entrée de gamme numéro un au lycée n'aura désormais plus rien à envier aux modèles haut de gamme, c'est une première historique, une révolution ! :bj:

Ne terminons pas sans rappeler que cette application d'excellente facture n'en reste pas moins des plus pertinentes sur le plan pédagogique des nouveaux programme du lycée, avec :
  • une programmation en syntaxe proche du
    Python
    :bj:
  • un enrichissement syntaxe en remplacement de la coloration syntaxique impossible sur écran noir et blanc :)
  • le module
    turtle
    qui permet aux nouveaux élèves de Seconde de passer progressivement de la programmation par blocs à la programmation textuelle, tout en s'appuyant sur les acquis de la programmation de tracés en
    Scratch
    du collège :D

Merci
Bernard
, et les constructeurs de modèles haut de gamme feraient bien d'en prendre de la graine pour leurs prochains modèles ou mises à jour ciblant la France. ;)

Téléchargement
:
KhiCAS
Source
:
https://www.planet-casio.com/Fr/forums/ ... hiCAS.html
Image
User avatar
critorAdmin.
Niveau 18: DC (Deus ex Calculatorum)
Niveau 18: DC (Deus ex Calculatorum)
Level up: 98.2%
 
Posts: 33707
Images: 8795
Joined: 25 Oct 2008, 00:00
Location: Montpellier
Gender: Male
Calculator(s):
Class: Lycée
YouTube: critor3000
Twitter: critor2000
Facebook: critor.ti

Re: KhiCAS : calcul formel + Python sur ta Graph 35+E II

Unread postby parisse » 20 May 2019, 07:09

Merci, critor!
En complement, je signale que la saisie d'expressions "en ecriture naturelle" est en fait possible, il suffit de taper sur la touche F3 (voir) depuis l'historique des calculs. Cela ouvre l'editeur d'expressions qui permet d'afficher une expression mais aussi de la modifier.
Cet editeur sert aussi a editer des listes et matrices.
L'addin permet aussi de tracer des graphes de fonction, parametrique, statistiques, ... en relation avec les donnees entrees dans l'addin.
Le langage de programmation donne acces a une bonne compatibilite avec Python, je suis en train de tester les programmes de 1ere parus dans le numero de mai de sesamaths, la grande majorite des scripts fonctionne sans changements, ceux-ci sont souvent necessaires pour les illustrations graphiques avec matplotlib, mais c'est aussi le cas pour les utiliser avec le Python natif des calculatrices lorsqu'elles proposent un module graphique, ce qui n'est pas le cas sur Casio.
Les echanges sont facilites par l'adoption d'un format de sauvegarde commun a KhiCAS pour Graph 90, Graph 35iie et Xcas (desktop et Xcas pour Firefox). On peut copier-coller un script depuis son navigateur vers Xcas pour Firefox, echanger par mail, puis exporter au format xw, copier sur la calculatrice clef, et ouvrir la session dans KhiCAS (la sauvegarde comprend les lignes de commande dans le shell, et le script python qu'on peut aussi sauvegarder seul). Des exemples de sessions sont disponibles https://www-fourier.ujf-grenoble.fr/~parisse/casio/sessions/index.html
En consequence l'interface de KhiCAS pour la Graph 90 a ete modifiee et est je pense plus intuitive, elle peut etre testee sur les 90 pour ceux qui n'ont pas de 35eii: https://www-fourier.ujf-grenoble.fr/~parisse/casio/khicas_n.g3a
J'espere etre en mesure de fournir une doc et une version release d'ici 2 semaines environ.
Mon souhait est que KhiCAS fournisse une 2eme calculatrice CAS a l'interieur d'une calculatrice non CAS.
Last edited by parisse on 20 May 2019, 13:56, edited 1 time in total.
User avatar
parisseVIP++
Niveau 11: LV (Légende Vivante)
Niveau 11: LV (Légende Vivante)
Level up: 79.7%
 
Posts: 1798
Joined: 13 Dec 2013, 16:35
Gender: Not specified

Re: KhiCAS : calcul formel + Python sur ta Graph 35+E II

Unread postby Lionel Debroux » 20 May 2019, 07:27

Beau travail, que ce soit KhiCAS Graph 35+E II ou la news correspondante :)
Membre de la TI-Chess Team.
Co-mainteneur de GCC4TI (documentation en ligne de GCC4TI), TIEmu et TILP.
User avatar
Lionel DebrouxModo.G
Niveau 14: CI (Calculateur de l'Infini)
Niveau 14: CI (Calculateur de l'Infini)
Level up: 5.2%
 
Posts: 6390
Joined: 23 Dec 2009, 00:00
Location: France
Gender: Male
Calculator(s):
Class: -
GitHub: debrouxl

Re: KhiCAS : calcul formel + Python sur ta Graph 35+E II

Unread postby parisse » 20 May 2019, 13:57

J'ai modifie le lien vers les exemples de sessions, en mettant l'index au lieu du repertoire.
User avatar
parisseVIP++
Niveau 11: LV (Légende Vivante)
Niveau 11: LV (Légende Vivante)
Level up: 79.7%
 
Posts: 1798
Joined: 13 Dec 2013, 16:35
Gender: Not specified

Online

Re: KhiCAS : calcul formel + Python sur ta Graph 35+E II

Unread postby critor » 21 May 2019, 09:55

Merci @parisse pour les précisions.

J'ai reformulé la partie qui traitait de la saisie et de l'affichage en écriture naturelle.
Image
User avatar
critorAdmin.
Niveau 18: DC (Deus ex Calculatorum)
Niveau 18: DC (Deus ex Calculatorum)
Level up: 98.2%
 
Posts: 33707
Images: 8795
Joined: 25 Oct 2008, 00:00
Location: Montpellier
Gender: Male
Calculator(s):
Class: Lycée
YouTube: critor3000
Twitter: critor2000
Facebook: critor.ti

Re: KhiCAS : calcul formel + Python sur ta Graph 35+E II

Unread postby parisse » 29 May 2019, 15:16

Mise a jour de la doc et de l'addin:
https://www-fourier.ujf-grenoble.fr/~parisse/casio/khicasio.html
https://www-fourier.ujf-grenoble.fr/~parisse/casio/khicas.g1a
La principale nouvelle fonctionnalite, c'est de pouvoir modifier un niveau de l'historique des calculs, les niveaux en-dessous sont alors reevalues.
On peut d'ailleurs creer des curseurs pour faire varier des parametres de maniere plus efficace (assistant de creation dans le menu F6 Parameter), les calculs et les graphes qui suivent sont alors reactualises si on selectionne le niveau contenant la commande assume(...) en tapant sur la touche + ou -. L'exemple de session https://www-fourier.ujf-grenoble.fr/~parisse/casio/sessions/quad.xw illustre ce principe, c'est une version KhiCAS de l'applet quadratic explorer des HP.
User avatar
parisseVIP++
Niveau 11: LV (Légende Vivante)
Niveau 11: LV (Légende Vivante)
Level up: 79.7%
 
Posts: 1798
Joined: 13 Dec 2013, 16:35
Gender: Not specified

Online

Re: KhiCAS : calcul formel + Python sur ta Graph 35+E II

Unread postby critor » 30 May 2019, 16:01

Merci, j'ai mis à jour.

Comment on fait pour exécuter un script Python maintenant ?

Dans le menu [F6] je ne vois plus que :
5) Editeur script
6) Ouvrir script
7) Exécuter session


Merci.
Image
User avatar
critorAdmin.
Niveau 18: DC (Deus ex Calculatorum)
Niveau 18: DC (Deus ex Calculatorum)
Level up: 98.2%
 
Posts: 33707
Images: 8795
Joined: 25 Oct 2008, 00:00
Location: Montpellier
Gender: Male
Calculator(s):
Class: Lycée
YouTube: critor3000
Twitter: critor2000
Facebook: critor.ti

Re: KhiCAS : calcul formel + Python sur ta Graph 35+E II

Unread postby parisse » 30 May 2019, 18:33

On peut aller dans l'editeur de script (EXIT), effacer si necessaire (F6 Effacer) et inserer le script puis EXE.
La logique a change pour se recentrer sur la sauvegarde/restauration de sessions (avec les scripts correspondants automatiquement inclus), du coup j'ai remplace l'item executer un script qui ne me paraissait plus necessaire. Mais je peux remettre cet item, ce n'est pas fige,
User avatar
parisseVIP++
Niveau 11: LV (Légende Vivante)
Niveau 11: LV (Légende Vivante)
Level up: 79.7%
 
Posts: 1798
Joined: 13 Dec 2013, 16:35
Gender: Not specified

Online

Re: KhiCAS : calcul formel + Python sur ta Graph 35+E II

Unread postby critor » 30 May 2019, 18:45

Merci bien, je pense avoir saisi.
Image
User avatar
critorAdmin.
Niveau 18: DC (Deus ex Calculatorum)
Niveau 18: DC (Deus ex Calculatorum)
Level up: 98.2%
 
Posts: 33707
Images: 8795
Joined: 25 Oct 2008, 00:00
Location: Montpellier
Gender: Male
Calculator(s):
Class: Lycée
YouTube: critor3000
Twitter: critor2000
Facebook: critor.ti

Re: KhiCAS : calcul formel + Python sur ta Graph 35+E II

Unread postby parisse » 30 May 2019, 19:28

Voila, j'ai retabli Executer script, ca peut etre utile, et comme j'ai deplace la configuration dans shift-SETUP, la liste du menu F6 n'est pas si longue.
Mais il ne reste meme plus 1K de libre pour la version pour la 90...
User avatar
parisseVIP++
Niveau 11: LV (Légende Vivante)
Niveau 11: LV (Légende Vivante)
Level up: 79.7%
 
Posts: 1798
Joined: 13 Dec 2013, 16:35
Gender: Not specified


Return to News Casio

Who is online

Users browsing this forum: No registered users and 3 guests

-
Search
-
Featured topics
Concours TI-Planet-Casio de rentrée 2019. 3 défis pour plus d'une 15aine de calculatrices graphiques et nombre de goodies sortant de l'ordinaire ! :D
Comparaisons des meilleurs prix pour acheter sa calculatrice !
12
-
Donations / Premium
For more contests, prizes, reviews, helping us pay the server and domains...

Discover the the advantages of a donor account !
JoinRejoignez the donors and/or premium!les donateurs et/ou premium !


Partner and ad
Notre partenaire Jarrety 
-
Stats.
550 utilisateurs:
>514 invités
>30 membres
>6 robots
Record simultané (sur 6 mois):
6892 utilisateurs (le 07/06/2017)
-
Other interesting websites
Texas Instruments Education
Global | France
 (English / Français)
Banque de programmes TI
ticalc.org
 (English)
La communauté TI-82
tout82.free.fr
 (Français)