χCAS: Xcas sur calculatrices Casio Graph 90, 35+eii, Math+Bernard.Parisse@univ-grenoble-alpes.fr2019, 2022, 2025 |
Résumé: Ce document explique comment prendre en main et utiliser efficacement sur calculatrices Casio Graph 90+e, 35+eii ou Math+ le système de calcul formel et géométrie analytique χCAS, une version adaptée du logiciel Xcas pour ces calculatrices.Ce document est interactif, vous pouvez modifier les commande et voir le résultat de l’exécution des commandes proposées en exemple en cliquant sur le bouton ok (ou en validant avec la touche Entrée).
χCAS est une version adaptée du logiciel Xcas pour calculatrices, ici de la marque Casio. KhiCAS est utilisable en mode examen sur les Graph 90 et 35eii.
Sur les Casio Graph Math+, le clavier a été notablement modifié, il n’y
a plus de touches F1 à F6 et les 6 menus en bas de l’écran
sont remplacés dans l’OS par 2 onglets de navigation.
Notez que l’interface de χCAS ne suit pas cette nouvelle logique,
elle conserve la logique des Casio 90/35. Les touches en correspondance
des légendes de menu permettent de les activer. La touche correspondant
à F4 étant une touche de déplacement sur la Math+, elle n’a plus de
légende en menu.
L’action correspondante à F4 sur la 90, qui est l’accès au menu
de toutes les commandes, s’effectue avec la touche Tools sur la Math+.
Il n’y a plus de touche MENU sur la Math+, c’est la touche Home
qui joue ce rôle, à la position de la touche F2 sur la 90.
Ainsi pour quitter χCAS sur la Math+, on tape shift OFF ou on
tape sur Home et on valide l’entrée de menu quit qui apparait.
Il peut être nécessaire de lancer une application Casio avant de relancer
un addin, sinon on risque un crash, sauf si KhiCAS est le seul addin présent.
KhiCAS est conforme à la réglementation du bac en France, circulaire 2015-178 du 1er octobre 2015 et cahier des charges, au même titre que les calculatrices CAS des constructeurs (HP Prime, TI Nspire CX/CX2, Casio Classpad), il est donc utilisable aux épreuves de terminale de maths du bac. Mais attention, certains autres concours ou examens interdisent l’utilisation de calculatrices formelles. Il est de la responsabilité de l’utilisateur de vérifier que les calculatrices formelles sont autorisées avant d’utiliser χCAS dans un autre examen ou concours. Les auteurs ne sauraient être tenus pour responsables en cas d’utilisation non autorisée.
Pour utiliser KhiCAS en mode examen, il est nécessaire d’exécuter (une fois pour toutes) un programme de mise en compatibilité, utilisable sur les OS 3.80.1 (Graph 90, fonctionne aussi sur OS 3.60) ou 3.70 (Graph 35eii, fonctionne aussi sur 3.40). Ce programme sécurisé a été écrit par Sébastien Michelland de Planète Casio et est disponible depuis le 23 mai 2025. Il n’est pas encore disponible pour les Graph Math+.
Vérifiez votre version d’OS depuis MENU, Système, F5.
Si vous n’avez pas la bonne version, téléchargez l’installeur de la version compatible de l’OS
Lancez le programme de mise à jour sur votre ordinateur, sur la calculatrice, toujours depuis Système, il faut taper F6 puis F5 (OS Update).
Si le programme d’installation refuse de se lancer parce que vous avez une version trop récente de l’OS, vérifiez qu’il s’agit bien de l’installeur de l’OS 3.80.1 pour la Graph 90 ou 3.70 sur la 35eii. Si le problème d’installation persiste, rendez-vous section 14.
Lorsque votre calculatrice a la bonne version de l’OS, récupérez le logiciel de mise en compatibilité de KhiCAS en mode examen pour Windows :
Sur la calculatrice, tapez MENU Système F6 F5 (OS update),
branchez la calculatrice à un PC sous Windows et
lancez le programme de mise en compatibilité inclus
tai-installer-* (trusted addins installer)
et suivez les instructions sur la calculatrice.
Vous pouvez maintenant installer KhiCAS. Branchez la calculatrice sur un ordinateur, sélectionnez F1 sur la calculatrice, vous devez voir les fichiers de la calculatrice vue comme une clef USB sur votre gestionnaire de fichiers
Il est conseillé de tester que tout s’est bien passé.
Vous pouvez passer à la section 2 Premier pas pour apprendre à utiliser l’interface du shell, stocker des valeurs dans des variables, saisir efficacement un nom de commande. Si vous êtes en terminale, vous pouvez ensuite consulter la section 3 qui donne des indications sur l’utilisation de KhiCAS pour vérifier ou effectuer les calculs d’un sujet de bac 2025.
Pour installer ou mettre à jour χCAS récupérez sur votre ordinateur
Branchez le cable USB de la calculatrice, tapez F1 pour que la calculatrice soit considérée comme une clef USB et copiez le ou les fichiers
khicasfr.g3a, cas90a.mzs
et cas90b.mzs
excas.g1a
mpm.bin, khicasmp.g3a,
mpcasa.mpz et mpcasb.mpz
sur la “clef”-calculatrice puis suivre la manipulation de votre ordinateur qui permet de débrancher une clef USB en toute sécurité. Le transfert s’effectue en moins d’une minute.
Si vous testez sur l’émulateur (PC, Mac), depuis le menu principal de la calculatrice (MENU), allez à Mémoire, puis F3 (Import/Export), puis F1 (Import files), puis sélectionnez le fichier à transférez depuis le disque dur de votre ordinateur, tapez F1 pour sauvegarder sur la racine de la calculatrice, confirmez par F1 si vous effectuez une mise à jour. Le transfert est relativement long (plusieurs minutes) sur l’émulateur. Une fois le transfert terminé, une nouvelle icone (avec le flocon de Xcas ou le mot Xcas) apparait dans le menu principal de la calculatrice.
Attention, pour installer la version complète en 2 fichiers sur l’émulateur, il faut transférer khicas90.882 et emucas90.g3a.
Remarques:
wine "C:\Program Files (x86)\CASIO\fx-CG Manager PLUS Subscription for fx-CG50series\fx-CG_Manager_PLUS_Subscription_for_fx-CG50series.exe" /n"fx-CG Manager PLUS Subscription for fx-CG50series" &
Depuis le menu principal, déplacez le curseur jusqu’à l’icone de Xcas, puis tapez EXE. Lors de la première exécution, on vous demandera de choisir entre syntaxe Xcas et Python. Sélectionnez l’un des deux avec F1 et F6. Pour changer de syntaxe plus tard, utilisez shift-SETUP ou le menu F6.
Vous devez alors voir un historique de calculs (shell) vide dans lequel vous pouvez taper la plupart des commandes de calcul formel de Xcas.
Par exemple, tapez
1/2+1/6
puis EXE, vous devriez voir le résultat 2/3 s’afficher
sur la ligne du dessous.
Vous pouvez recopier dans la ligne de commande
une commande de l’historique en utilisant le
curseur vers le haut ou vers le bas puis EXE, puis vous pouvez
modifier la commande et l’exécuter. Par exemple, taper sur la
touche curseur vers le haut, EXE et remplacez 1/6 par 1/3.
Remarques :
hh,mm=>,.
Pour saisir =>, tapez sur la touche →
située au-dessus de la touche AC/ON.13,17=>, pour 13h17.
L’affichage de l’heure est utile en examen, car vous n’avez
alors pas accès à un smartphone ou à une montre connectée.
Vous pouvez utiliser le résultat de la dernière commande
avec la touche Ans de la calculatrice (taper sur shift
puis (-)),
mais il vaut en général mieux définir une variable comme résultat
d’une commande si on souhaite la réutiliser. Pour cela, on
utilise une des deux instructions d’affectation :
=> s’obtient avec la
touche → de la
calculatricen (au-dessus de ON),
par exemple 2=>A met 2 dans la variable A.
Vous pouvez ensuite utiliser A dans un calcul, sa
valeur sera remplacée par 2.
=) ou en Xcas (:=, =
est accepté s’il n’y a pas de risque de confusion).
Par exemple A:=2 fait la même chose que 2=>A.
Pour vous aider à saisir les commandes Xcas les plus utiles,
χCAS dispose d’un catalogue d’une centaine de commandes
par thèmes,
avec une courte description et le plus souvent un exemple
d’exécution facile à recopier.
Appuyez sur la touche F4 (cmds), choisissez une catégorie avec le curseur,
par exemple Algebre, tapez EXE,
puis choisissez une commande avec le curseur, par exemple factor.
La touche F6 vous affiche une courte description de la commande,
en général avec un exemple. En tapant sur F2, vous recopiez
l’exemple en ligne de commande. S’il y a un deuxième exemple,
on le recopie avec F3. Vous pouvez alors valider (EXE) ou
modifier la commande et valider (EXE)
pour factoriser un autre polynôme que celui
donné en exemple.
Si vous connaissez le nom de la commande, vous pouvez aussi sélectionner la commande depuis l’index des commandes en tapant sur les touches shift CATALOG (touche 4).
Lorsqu’une commande renvoie une expression (i.e. un résultat qui n’est pas entier, ni réel approché, ni une fraction d’entiers), celle-ci est affichée en écriture naturelle (affichage 2-d). Vous pouvez faire défiler l’affichage avec les touches du curseur lorsque l’expression est grande. Tapez sur EXIT pour revenir au shell.
Maintenant essayez de taper la commande plot(sin(x)).
Indication: taper F4 (cmds), puis sélectionner
Courbes.
Lorsqu’une commande renvoie un graphe, celui-ci est affiché. Vous
pouvez modifier la fenêtre graphique d’affichage
avec les touches + ou -
(zoom in ou out, utiliser la touche (-)
pour faire un zoom out partiel selon l’axe Oy),
les touches du curseur, orthonormaliser le repère (touche /)
ou faire une recherche automatique de l’échelle (autoscale
touche *). Pour enlever ou remettre les axes et graduations,
tapez sur SIN.
Tapez sur EXIT pour revenir au shell.
Vous pouvez effacer l’historique des calculs et les variables
pour commencer un nouvel exercice : depuis le menu Fich,Cfg (F6)
sélectionnez Effacer l'historique.
Un certain nombre de raccourcis claviers sont prévus pour faciliter les taches les plus courantes: par exemple F1 (alg) et F2 (calc) ouvrent un menu avec des commandes d’algèbre et d’analyse (calculus en anglais), cf. la section 10 pour une liste complète. L’appui sur ON/AC efface la ligne courante, et si celle-ci est vide propose d’effacer l’historique des calculs.
Pour quitter χCAS, appuyez sur la touche MENU. Lorsque vous lancez une autre application, les variables et l’historique des calculs sont sauvegardés dans le fichier session.xw (mémoire de sauvegarde de la calculatrice, visible depuis l’application Mémoire de Casio), ils seront restaurés lorsque vous reviendrez dans χCAS. La première sauvegarde prend un peu de temps, en particulier sur l’émulateur, ensuite les sauvegardes sont plus rapides. Vous pouvez sauvegarder plusieurs sessions distinctes (historique et programmes éventuels) depuis le menu F6 de KhiCAS, et les restaurer ultérieurement.
Sur les sujets de 2025, il y a toujours 4 exercices (4 à 6 points par exercice)
Grosso modo, on peut dire qu’une calculatrice scientifique couvre environ de 25% à 40% d’un sujet de bac (40% pour une scientifique avec distribution binomiale, solveur numérique et calcul approché d’intégrale), une calculatrice graphique sans CAS couvre environ 50%, une calculatrice CAS du constructeur environ 75%, une Graph 90 avec KhiCAS couvre 100%.
Remarques :
Il y a au plus une question dans le sujet (sur les sujets de métropole
dans un sujet sur les deux en 2024 et 2025). Elle est posée
dans l’exercice sur les suites (je n’ai pas vu d’exception pour 2025,
c’est en général une question stéréotypée sur un seuil). L’énoncé donne
un script Python, soit avec des ... à compléter (expliciter
le test d’arrêt ou/et traduire la récurrence en une instruction),
soit sous forme d’une fonction mystere à interpréter, c’est
essentiellement évident dans le contexte de l’exercice. Il est
parfois demandé de donner le résultat d’exécution du script,
impliquant les premiers termes de la récurrence
L’utilisation de l’application Python de la calculatrice
n’a guère d’intérêt en pratique, il est nettement plus efficace d’utiliser
l’application Suites de la calculatrice ou la commande plotseq
de KhiCAS (et regarder une dizaine de termes). Dans quelques cas
(exécution de script), on peut effectivement saisir le script
et l’exécuter, mais d’un point de vue compréhension, cela revient
à donner des points à un élève qui est un bon presse-bouton au lieu
de donner des points à un élève qui a compris l’algorithme!
Dans d’autres cas, exécuter le script risque fort de dérouter les
candidats, parce que
les concepteurs de sujet ne semblent pas tester systématiquement
les scripts donnés. Par exemple le script donné dans le sujet
de Polynésie du 17 juin 2025, est le suivant
from math import *
def mystere(n):
I = 1 - 1.0/e
L = [I]
for i in range(n):
I = (i+1)*I - 1/e
L.append(I)
return L
et on demande ce que renvoie
mystere(100)
Cela correspond aux 101 premiers termes (d’indice 0 à 100) de la suite
récurrente étudiée dans l’exercice
| In= | ∫ |
| xn e−x dx, In+1=(n+1)In−1/e |
Or ce script est numériquement instable, et ne donne pas du tout les valeurs attendues. Les éléments de la liste L deviennent négatifs au bout d’une vingtaine de termes, et le dernier terme vaut -3.1530126806564304e+141 (avec CPython), laissant croire que limn → +∞In=−∞ alors que la limite est nulle. Cela s’explique par le fait qu’à chaque itération on soustrait des nombres qui devraient être de plus en plus proche, ce qui est la principale source de perte de précision dans un calcul numérique. Comprendre cela est hors de portée d’un lycéen normal, surtout en examen, j’en veux pour preuve que cela a échappé aux concepteurs de sujet, aux testeurs, et la première version du corrigé du site de l’APMEP n’en parle pas non plus.
Conclusion : pendant l’examen, je vous déconseille d’utiliser l’appli Python du constructeur de votre calculatrice ou celle incluse dans KhiCAS. Les questions sont suffisamment simples pour être résolues papier-crayon ou plus efficacement avec l’application Suites de la calculatrice. Et du coup, on se demande à quoi cela rime d’avoir imposé Python comme unique langage au lycée, en tout cas pour les sujets de bac. il serait bien plus raisonnable à mon avis d’écrire des algorithmes en langage naturel puisque visiblement on se dispense de l’étape de test des scripts, seul intérêt de fixer un langage, surtout à l’heure où l’IA générative n’a aucun mal à traduire vers un langage donné. On éviterait en tout cas les problèmes liés à la représentation approchée des nombres.
En juin 2025, l’épreuve anticipée de math de 1ère a été confirmée avec deux parties (automatismes et résolution de problèmes). La calculatrice est pour le moment interdite pendant toute l’épreuve. C’est à mon sens ridicule d’interdire la calculatrice dans la 2ème partie, résolution de problèmes, alors que c’est légitime pour juger les automatismes. C’est aussi ce que demandait l’APMEP, mais nos décideurs ont choisi de passer outre, suivant les demandes des intégristes anti-calculatrice. On voit ainsi sur les sujets 0 un encadré “Aide au calcul” qui peut par exemple souffler aux candidats que 0,5*0,5=0,25 (sic). On n’est pas loin du retour à des tables d’exponentielles (le log n’est pas au programme de 1ère) et trigonométriques.
Le coefficient de cette épreuve est faible pour le bac (2/100), mais il s’agit de la seule épreuve de sciences hors controle continu qui figurera dans le dossier des candidats à Parcoursup, elle aura donc un impact bien au-delà de ce coefficient. Il est donc probable qu’on assiste à un recul massif de l’utilisation un peu évoluée de calculatrices graphiques (et de logiciels de calcul) au lycée, au moins en première (en vue de la préparation à l’épreuve anticipée), mais aussi en seconde : les élèves de seconde ne vont probablement plus s’équiper, ce sera reporté à la fin de 1ère début terminale pour les élèves ayant choisi la spécialité maths en terminale (175 000 en 2025). Une partie de ces élèves va sans doute trouver l’achat d’une calculatrice graphique milieu de gamme (TI83, Casio Graph90/math+, Numworks) trop onéreux juste pour quelques mois (septembre à mars, date de fin des dépôts de dossier Parcoursup), ils vont utiliser une calculatrice scientifique (qui permet de traiter de 20% à 40% d’un sujet de bac selon le modèle). On peut anticiper une division par un facteur 2 de la taille du marché français des calculatrices graphiques, peut-être plus si un cercle vicieux se met en place (hausse du prix de vente car moins d’achats, pressions pour que les sujets de terminale soient faisable avec une calculatrice collège).
L’élève qui achètera une calculatrice le fera ssouvent deux ans après son entrée au lycée, il sera plus autonome dans le choix entre calculatrices selon les capacités utiles pour la terminale et éventuellement la poursuite d’études dans le supérieur. Pour aider à faire ce choix, je propose d’établir un DPE, diagnostic perfomance examen, de quelques calculatrices en fonction des sujets de bac de spé maths terminale de 2025. Un + désigne une fonctionnalité présente, un - présente mais peu confortable.
| Calculatrice | Graph 90 | Graph Math+ | Graph 35eii | Graph Light | FX92 | Numworks 110 | Numworks 115/120 | TI83CE | TI82AEP | TI36XPRO |
| observation | KhiCAS | KhiCAS | déverrouillée | verrouillée | KhiCAS | |||||
| prix rentrée | occas (≈60?) | 70-90 | 50 | 35 | 15-20 | occas (≈60?) | 83 | 80-90 | 60 | 20 |
| DPE | A+ | C | B | D | E | A | C | B | C | D |
| proba-stats | + | + | + | + | + | + | + | + | + | + |
| binomial_cdf | + | - | + | + | + | + | + | + | + | + |
| graphe suite | + | + | + | + | + | + | + | |||
| premiers termes | + | + | + | - | - | + | + | + | + | - |
| rsolve | + | + | + | |||||||
| limit | + | + | + | + | ||||||
| solve | + | + | + | + | ||||||
| fsolve | + | + | + | + | + | + | + | + | + | |
| analytique 3D | + | + | ||||||||
| tests 3D | + | + | ||||||||
| géométrie 3D | + | + | ||||||||
| linsolve | + | + | + | + | - | + | + | + | + | + |
| graphe fct | + | + | + | + | + | + | + | + | ||
| dérivée | + | + | + | + | ||||||
| primitive | + | + | + | + | ||||||
| aire/courbe | + | + | + | + | + | + | + | + | ||
| tableau var. | + | + | - | + | ||||||
| mémoire RAM | 8M | 8M | 512K | 24K | 24K | 256K | 256K | 256K | 256K | N.A. |
| stockage flash | 13M/32 | 4.7M/32 | 1M/8 | 0/512K | 0/512K | 2M/8 | 5M/8 | 192K/4M | /4M | 0/128K |
Voir aussi le QCC de tiplanet qui établit une comparaison beaucoup plus complète, mais celui-ci est adapté au programme de spé maths de terminale. Pour les prix de calculatrices neuves, cf. le comparateur de tiplanet.
Remarques :
Conclusion : selon votre budget, je vous conseille la Graph 90 graphique couleur (à trouver d’occasion vers les 60 euros, les prix neufs sont en général bien trop élevés), ou la Graph 35eii graphique monochrome (neuf 50 euros avec la remise différée de 14 euros de Casio) ou ou la TI36XPRO scientifique monochrome (neuf 20 euros).
Le sujet du 17 juin métropole 2025 jour 1
Tout le début peut se faire avec une calculatrice scientifique, on peut bien sur aussi utiliser le shell de KhiCAS.
Question 1.b, on gagne un peu de temps avec
binomial_cdf(100,0.0714,7)
qui renvoie 0.577. Pour saisir la commande, le plus efficace est
de taper shift CATALOG puis b i n, descendre jusqu’à
binomial_cdf. F5 affiche alors l’aide de la commande, puis
on tape F1 ou F2 pour recopier un exemple, on modifie et on tape EXE.
On peut vérifier que c’est vraissemblable avec le graphe
plot(binomial(100,0.0714))
1.c
stddev(binomial,100,0.0714)=>S
permet de calculer l’écart-type de la loi qui vaut 2.57.. et
de la stocker dans S.
Ensuite S^2 donne la variance 6.63...
2.d
S/sqrt(N) => s
nous donne l’écart-type de MN qui
va servir ensuite pour Bienaymé-Tchebycheff.
On veut P(|X−7.14|>=0.14)<0.05, on pose donc 0.14=a*s,
avec a tel que
solve(1/a^2=0.05,a) => A,
puis N tel que
solve(A[1]*s=0.14,N) qui renvoie N=6766.
Discussion : cela fait beaucoup de villes, mais on surestime avec l’inégalité de Bienaymé-Tchebycheff, en utilisant la loi normale a passe de 4.47 à 1.96, une estimation plus réaliste diviserait donc N par 5 environ, ce qui correspond au nombre de villes de plus de 5000 habitants (ça reste 10 fois plus que le nombre de maisons du don, mais beaucoup moins que le nombre de collectes mobiles).
Partie A :
Cette partie est prévue pour tester la lecture graphique
et ne pas utiliser d’outil de calcul,
mais comme la fonction est donnée en partie B, on peut quand même
vérifier (trouver?) les valeurs de la partie A avec KhiCAS.
On commence par saisir la valeur de f donnée en partie B
x*(2*ln(x)^2-3*ln(x)+2) => F
puis on vérifie qu’elle correspond au graphe de la partie A
plot(F,x=0..3)
Pour ajouter la tangente en x=1, il faut donner un nom au graphe,
on remonte dans l’historique pour recopier la commande précédente et on ajoute
G:= (taper shift → pour saisir :=)
G:=plot(F,x=0..3)
puis on tape
TA:=tangent(G,1)
et pour voir G et TA simultanément
G,TA
La commande
equation(TA)
nous renvoie y=−x+3 et permet de vérifier qu’on passe par le point C,
le coefficient directeur -1 nous donne la valeur de f′(1), qu’on
peut ausi obtenir par les deux commandes
diff(F)=>F1
(taper F2 pour saisir diff ou ')
F1(x=1)
On vérifie que
solve(F1=0)
renvoie 2 solutions (1/e et e1/2).
On calcule
F1’=>F2
puis
F2(x=0.2)
Partie B :
Utiliser les menus F1 et F2 pour saisir rapidement les commandes
solve(2X^2-3X+2,X)
limit(F,x,oo)
limit(F,x,0) (admis dans l’énoncé)
simplify(F2)
solve(F2>0)
Partie C:
equation(tangente(G,e))
integrate(x*ln(x),x) (pour vérifier la primitive)
integrate(x*ln(x),x,1,e) (pour vérifier l’énoncé)
integrate(F-(2x-e),x,1,e)
renvoie 3*exp(1)2/4−(4*exp(1)+5)/4
En mettant 1.0 au lieu de 1 on a une valeur numérique 1.57...
et on peut juger si c’est vraisemblable en comparant à l’aire
de la partie hachurée sur l’énoncé.
Pour saisir les commandes, taper les touches F4 * (3d) ou F4 →
(géométrie) ou shift CATALOG et les premières lettres de la commande
point(-1,0,5)=>A
point(3,2,-1)=>B
point(0,0,0)=>O
Sur la calculatrice taper EXIT pour quitter le graphe 3d. Pour visualiser plusieurs objets géométriques simultanément, on peut taper ici A,B,O. Les touches du curseur permettent de changer le point de vue 3d.
Affirmation 1:VRAI
B-A renvoie les coordonnées du vecteur
AB et on regarde si c’est colinéaire avec
le vecteur directeur déduit de l’équation paramétrique,
qui passe en t=0 par B.
Attention une droite admet une infinité de représentations paramétriques,
parameq(droite(A,B))
ne donne pas la même équation que celle de l’énoncé.
Affirmation 2: FAUX
equation(plan(O,A,B))
renvoie −10*x+14*y−2*z=0 donc vecteur normal au plan (−10,14,−2)
non colinéaire au vecteur n.
Autre solution cross(A-O,B-O)
Affirmation 3: VRAI
On voit sans calcul que les 2 droites ne sont pas parallèles
(les vecteurs directeurs ne sont pas colinéaires),
on teste si elles sont sécantes
solve([15+k=1+4s,8-k=2+4s,-6+2k=1-6s],[k,s])
renvoie [[-4,5/2]] donc oui, donc les droites sont coplanaires.
Affirmation 4: VRAI
point(2,-1,2)=>C
distance(plan(x-y+z+1=0),C) renvoie 2√3. On peut aussi le faire de tête en remplaçant les coordonnées de C dans l’équation du plan (ce qui donne 6) et en divisant par la racine carrée de la somme des carrés des coefficients de x,y,z (norme du vecteur normal, √3)
Partie A
-0.02*x^2+1.3*x=>H
H(x=1) nous donne u1=1.28
solve(H=x) nous donne la limite L=15 (L=0 est exclus ici)
Partie B
La résolution de la question 1 à la machine est un peu technique,
je pense qu’il vaut mieux le faire sans la calculatrice
d’autant plus que la réponse est donnée. Si on veut vraiment le vérifier,
eq:=diff(y(t),t)=0.02*y(t)*(15-y(t))
normal(equal2diff(subst(eq,y(t)=1/f(t))))
qui affiche -diff(f(t),t)-0.3*f(t)+0.02
Pour vérifier la solution de l’équation différentielle, il faut
saisir les coefficients sous forme de fraction
(15*c_0*exp(-3*x/10)+1)/15
(14*exp(-3*x/10)+1)/15
Puis on inverse
1/g=>f
puis on vérifie
limit(f,x,oo)
on retrouve le L de la partie A. Enfin
solve(f>14) renvoie x>10*ln(196)/3
Le sujet du 18 juin métropole 2025 jour 2
Exercice de proba/stats: une calculatrice scientifique suffit ici,
sauf pour A5b/ où ce serait fastidieux, dans KhiCAS on peut taper
binomial_cdf(100,0.24,20,100)
ou son équivalent à 3 arguments
1-binomial_cdf(100,0.24,19)
(pour saisir binomial_cdf, taper shift CATALOG puis b i n
puis déplacer le curseur sur la commande, taper F5 si vous voulez
consulter l’aide en ligne, puis F1 ou F2 pour recopier un exemple,
le modifier et calculer avec EXE).
Partie A
Question 1/ sélectionner solve dans le menu rapide F2, puis saisir
solve([3/2+2t=s,2+t=3/2+s,3-t=3-2s],[t,s])
(pour taper t ou s, taper F5 puis la touche avec
le label en rouge correspondant puis ALPHA pour quitter le mode alphabétique).
On obtient [[-1,-1/2]] donc t=−1 (et s=−1/2),
les droites sont bien sécantes, pour déterminer l’intersection on peut
faire
subst([3/2+2t,2+t,3-t],t=-1)=>S (=> s’obtient
en tapant sur la touche → située au-dessus de AC/ON).
Attention S n’est pas un point géométrique
mais la liste des coordonnées de l’intersection.
Question 2/
On crée les points avec la commande point du menu F4 * (3d)
ou shift CATALOG taper le début de point et déplacer le curseur
à la commande point.
point(-1,2,1)=>A (taper ALPHA puis la touche de label A pour saisir A)
point(1,-1,2) => B
point(1,1,1) => C
[1,2,4] => n
A, B, C sont des objets géométriques 3d, qui sont représentés graphiquement
lorsqu’on exécute la commande. Taper EXIT pour quitter la représentation
graphique. Si vous voulez voir les trois points simultanément, taper
dans une ligne de commande
A,B,C
Vous pouvez utiliser les touches
curseur pour changer de point de vue 3d, EXIT pour quitter.
(B-A)*n renvoie 0. La différence de 2 points est la liste
des coordonnées du vecteur les reliant (AB ici),
et * entre 2 vecteurs calcule leur produit scalaire.
(C-A)*n renvoie aussi 0.
Donc n est normal au plan.
subst(x+2y+4z,[x,y,z],coordonnees(A)) renvoie 7,
c’est la bonne constante.
Question 3/
subst(x+2y+4z,[x,y,z],S) renvoie 35/2 donc le point S dont les
coordonnées sont dans la variable S n’est pas dans le plan ABC.
Question 4a/
[-1,0,2]=>H
H-S renvoie [-1/2,-1,-2] soit −n/2 et
subst(x+2y+4z,[x,y,z],H) renvoie 7.
Question 4b/ distance(H,S) renvoie √21/2.
Partie B
coordonnees(C)=>c
c+k*(S-c)=>M (représentation paramétrique des coordonnées de M)
(M-coordonnees(A))*(M-coordonnees(B))=>eq (produit scalaire
AM.BM)
solve(eq=0,k) renvoie list[(-6*sqrt(14)+12)/45,(6*sqrt(14)+12)/45], ou numériquement
fsolve(eq=0,k), il y a une seule solution sur le segment
(k=0.76...)
1/ faux (Evident!) pour vérifier
limit((1+5^n)/(1+3^n),n,oo) renvoie +∞.
2/ N.B.: w0==0 donc faux sur l’énoncé de l’apmep mis en lien,
mais sur le vrai sujet on a inégalité large, donc c’est vrai.
Si on n’aime pass trop les inéquations, on peut montrer par récurrence que
wn=n+3n−1 et conclure puisque 3n−1>=0.
En effet, KhiCAS permet de calculer l’expression explicite de wn
rsolve(w(n+1)=3*w(n)-2n+3,w(n),w(0)=0) (rsolve est dans
le menu F2) qui renvoie [n+3n−1]. Il suffit ensuite de le justifier.
3/ c’est concave en A
4/ tabvar(ln(x)-x+1) (tabvar est dans le menu F4 Analyse, ou bien shift CATALOG taper le premières lettres de la commande). N.B. l’inégalité est large sur le “vrai” sujet. Donc vrai.
Partie A lecture graphique
Cette partie d’énoncé avec un graphique sur papier millimétré qui fleure
bon le 20ème siècle est prévu pour faire des lectures graphiques,
sans calculatrices. Mais en exclusivité ici, comme on ne demande pas
de justifier dans cette partie, je vous explique comment le résoudre
avec des outils du 21ème siècle.
Il suffit en effet de lire l’énoncé jusqu’au bout pour obtenir
l’expression de d:
(12+x)*exp(-3/5*x) =>v
integrate(v,x,0,t) => d (menu F2)
plot(d,t=0..15) (menu F3) permet de reproduire la figure pour
vérifier la saisie.
fsolve(d=15,t=2) renvoie 2.02..., en lecture graphique 2
limit(d,t,oo) renvoie 205/9 soit environ 22.8
v(x=4.7) vaut 0.99... donc en lecture graphique 1.
Partie B
1a/
desolve(y’+3/5*y=0) ou desolve(y’+0.6*y=0) (pour les
étourdis qui ont oublié que ça se résoud de tête, desolve est dans le
menu rapide F2).
1b/ desolve(y’+3/5*y=exp(-3/5*t))
1c/ desolve([y’+3/5*y=exp(-3/5*t),y(0)=12])
(ou desolve(y’+3/5*y=exp(-3/5*t) and y(0)=12))
renvoie t*exp(-3*t/5)+12*exp(-3*t/5)
Ou en approché
desolve([y’+0.6*y=exp(-0.6*t),y(0)=12])
renvoie t*exp(-0.6*t)+12.0*exp(-0.6*t)
1d/ Pour trouver v sans se fatiguer à dériver, on peut utiliser l’équation différentielle
2/
v’=>v1
normal(v1) renvoie le résultat de l’énoncé en exact
limit(v,x,oo) renvoie 0, on s’en doutait puisque d converge (graphiquement ou vers 205/9).
tabvar(v,x=0..oo) (menu F4 Analyse)
fsolve(v=1,x=4.7)=>T permet de vérifier le résultat de la partie A (à recopier en 2d et 3)
partie C: les calculs ont déjà été faits:
normal(d)
d(t=T) renvoie 20.94...
on vérifie sur le graphique l’ordonnée du point A.
Remarque : ce modèle me semble partiellement sorti du chapeau, en effet si la partie homogène de l’équation différentielle sur v correspond au principe fondemental de la dynamique avec un frottement proportionnel à la vitesse, je ne vois pas ce que modélise le terme de forçage non homogène en e−0.6t, dépendant du temps compté à partir du moment où le chariot entre dans la zone de freinage. Est-ce un habillage artificiel, le but étant d’avoir une solution particulière multipliée par t (-0.6 solution de l’équation caractéristique) ?
Depuis le catalogue, sélectionner le sous-menu Algebre
ou tapez F1 :
factor : factorisation. Raccourci clavier =>*
(touche → puis *),
par exemple x^4-1=>*.
Utiliser cfactor pour factoriser sur .
partfrac : développement d’un polynôme ou
décomposition en éléments simples pour une fraction. Raccourci
clavier =>+ (touche → puis +),
par exemple (x+1)^4=>+
ou 1/(x^4-1)=>+.
simplify : essai de simplifier une expression.
Raccourci clavier =>/ (touche → puis /),
par exemple sin(3x)/sin(x)=>/
ratnormal : développer une expression,
écrire une fraction sous forme irréductible.
Depuis le catalogue, sélectionner le sous-menu Analyse, ou
tapez F2
diff : dérivation. On peut aussi utiliser la notation
' (raccourci clavier F3) pour dériver par rapport à x, ainsi
diff(sin(x),x) et sin(x)’ sont équivalents.
Pour dériver plusieurs fois, ajouter le nombre de dérivations
par exemple diff(sin(x^2),x,3).
integrate : primitive si 1 ou 2 arguments,
par exemple
integrate(sin(x)) ou integrate(1/(t^4-1),t)
pour ∫1/t4−1 dt limit : limite d’une expression.
Exemple limit((cos(x)-1)/x^2,x=0)tabvar : tableau de variations d’une expression.
Par exemple tabvar(x^3-7x+5)
on peut vérifier avec le graphe plot(x^3-7x+5,x,-4,4)
taylor et series : développement de Taylor
(ou développement limité ou asymptotique). Par exemple
taylor(sin(x),x=0,5)
sum : somme discrète. Par exemple
sum(k^2,k,1,n) calcule ∑k=1n k2,
sum(k^2,k,1,n)=>* calcule la somme et l’écrit sous
forme factorisée.
Depuis le catalogue, sélectionner le sous-menu Resoudre.
solve permet de résoudre de manière exacte
une équation (se ramenant à une équation polynomiale).
Il faut préciser la variable si ce n’est pas x par
exemple solve(t^2-1=0,t). Si la
variable est x, on peut écrire l’expression
ou l’équation suivie de 2 appuis sur la touche →,
par exemple x^2-1=>fsolve
permet de faire une résolution approchée, soit par
une méthode itérative en partant d’une valeur
initiale fsolve(cos(x)=x,x=0.0), soit par
dichotomie fsolve(cos(x)=x,x=0..1).csolve.solve permet aussi de résoudre des systèmes
polynomiaux simples, on donne en 1er argument la liste des
équations, en 2ème argument la liste des variables.
Par exemple intersection d’un cercle et d’une droite
solve([x^2+y^2+2y=3,x+y=1],[x,y])
linsolve permet de résoudre des systèmes
linéaires. On lui passe la liste des équations et la liste
des variables (par convention une expression équivaut
à l’équation expression=0). Par exemple
linsolve([x+2y=3,x-y=7],[x,y])
linsolve renvoie la solution générale du système
(y compris si la solution n’est pas unique).
desolve permet de résoudre de manière exacte
certaines équations différentielles, par exemple
pour résoudre y′=2y, on tape desolve(y'=2y).desolve([y'=2y,y(0)=1],x,y)
Utiliser odesolve
pour une résolution approchée et plotode pour une
représentation graphique de solution calculée de manière
approchée.
rsolve permet de résoudre de manière exacte
certaines relations de récurrences un+1=f(un,...),
par exemple les suites arithmético-géométriques, par
exemple un+1=2un+3, u0=1
rsolve(u(n+1)=2*u(n)+3,u(n),u(0)=1)
Lorsque cela est nécessaire,
on distingue l’arithmétique des entiers de celle des polynômes
par l’existence du préfixe i (comme integer) dans
un nom de commande, par exemple ifactor factorise un entier
(pas trop grand) alors que factor factorise un polynôme
(et cfactor factorise un polynôme sur les complexes).
Certaines commandes fonctionnent à la fois pour les entiers et
les polynômes, par exemple gcd et lcm.
Depuis le catalogue, sélectionner le sous-menu Arithmetic, Crypto
iquo(a,b),
irem(a,b) quotient et reste de la division euclidienne
de deux entiers.isprime(n) teste si n est un nombre premier.
Le test est probabiliste pour de grandes valeurs de n.
isprime(2^64+1)
ifactor(n) factorise un entier pas trop grand
(les algorithmes utilisés se limitent à la division et Pollard-ρ,
il n’y avait pas de place pour le crible quadratique).
Par exemple
ifactor(2^64+1)=>*)
gcd(a,b), lcm(a,b) PGCD et PPCM de deux entiers
ou de deux polnômesiegcd(a,b) renvoie 3 entiers u,v,d tels que
au+bv=d où d est le PGCD de a et b, avec |u|<|b| et
|v|<|a|.ichinrem([a,m],[b,n]) lorsque cela est possible,
renvoie c tel que c=a (mod m ) et c=b (mod n ) (si m et n
sont premiers entre eux, c existe).
c,n:=ichinrem([1,23],[2,13]); irem(c,23); irem(c,13)
powmod(a,n,m) calcule an (mod m ) par
l’algorithme de la puissance rapide modulaire.
powmod(7,22,23)
Les commandes asc et char permettent de convertir
une chaine de caractères en liste d’entiers (entre 0 et 255) et
réciproquement, ce qui permet de faire facilement de la cryptographie
avec des messages sous forme de chaines de caractères.
Depuis le catalogue, sélectionner le sous-menu Polynomes.
La variable est par défaut x, sinon il faut la spécifier en
général en dernier argument, par exemple degree(x^2*y)
ou degree(x^2*y,x) renvoient 2, alors que degree(x^2*y,y)
renvoie 1
coeff(P,n) coefficient de xn dans P, lcoeff(P)
coefficient dominant de P, par exemple
P:=x^3+3x; coeff(P,1); lcoeff(P)
degre(P) degré du polynôme P.
degree(x^3)
quo(P,Q), rem(P,Q) quotient et reste de la division
euclidienne de P par Q
P:=x^3+7x-5; Q:=x^2+x; quo(P,Q); rem(P,Q)
proot(P) : racines approchées de P (réelles et complexes)interp(X,Y) : pour deux listes
de même taille, polynôme d’interpolation
passant par les points (Xi,Yi). resultant(P,Q) : résultant des polynômes
P et Q
P:=x^3+7x-5; Q:=x^2+x; resultant(P,Q)
hermite(x,n) : n-ième polynôme de Hermite,
orthogonal pour la densité e−x2dx sur
laguerre(x,n,a) : n-ième polynôme de Laguerre,
legendre(x,n) : n-ième polynôme de Legendre,
orthogonal pour la densité dx sur [−1,1]
tchebyshev1(n) et tchebyshev2(n)
polynômes de Tchebyshev de 1ère et 2ème espèce
définis par :
| Tn(cos(x))=cos(nx), Un(cos(x))sin(x)=sin((n+1)x) |
Xcas ne fait pas de différence entre vecteur et liste. Par exemple pour faire le produit scalaire de deux vecteurs, on peut saisir : v:=[1,2]; w:=[3,4] dot(v,w)
Pour saisir une matrice élément par élément, taper
sur shift-MATR et sélectionner matrix
ou F6, puis 10 (editer matrice). Vous pouvez ensuite
créer une nouvelle matrice ou éditer
une matrice existante parmi la liste de variables proposées.
Notez que la touche , permet d’insérer une ligne ou une colonne,
alors que la touche d’effacement DEL efface la ligne ou la colonne de la
sélection (tapez UNDO si vous avez effacé par erreur
une ligne ou colonne).
Pour de petites matrices, vous pouvez aussi
entrer en ligne de commandes
une liste de listes de même taille. Par exemple
pour définir la matrice
| A= | ⎛ ⎜ ⎝ |
| ⎞ ⎟ ⎠ |
on peut taper A:=[[1,2],[3,4]] ou [[1,2],[3,4]]=>A
Il est fortement conseillé de stocker les matrices dans des variables pour éviter de les saisir plusieurs fois.
Pour entrer une matrice dont les coefficients sont
donnés par une formule définissant l’élément aij
en fonction de la ligne i et colonne j,
on peut utiliser la commande matrix(.
Par exemple
matrix(2,2,(j,k)->1/(j+k+1))
renvoie
la matrice dont le coefficient ligne j et colonne k vaut
1/j+k+1 (attention les indices commencent à 0).
Pour obtenir la commande matrix(, taper F4 (cmds) puis
17 Matrices ou utiliser le raccourci shift-MATR, EXE, AC/ON.
La matrice identité de taille n
est renvoyée par la commande idn(n) (F4 17),
alors que ranm(n,m,loi,[parametres]) (menu shift-MATR ou F4 17)
renvoie une matrice à coefficients aléatoires de taille n,m.
Par exemple
U:=ranm(4,4,uniformd,0,1)
N:=ranm(4,4,normald,0,1)
Pour exécuter une commande sur des matrices, s’il s’agit
d’arithmétique de base (+,-,* inverse), on utilise
les opérations au clavier. Pour les autres commandes.
depuis le catalogue F4, sélectionner le sous-menu Matrices
rref effectue la réduction sous forme échelonnée
d’une matrice A (pivot de Gauss)
lu calcule la décomposition LU d’une matrice A
et renvoie une permutation de matrice P et deux matrices L
triangulaire inférieure et U triangulaire supérieure telles que
PA=LU. Le résultat de la commande
P,L,U:=lu(A) peut
être passé en argument à la commande linsolve(P,L,U,v)
pour résoudre un système Ax=b de matrice A en résolvant
deux systèmes triangulaires (calcul en O(n2) au lieu
de O(n3)).
qr calcule la décomposition QR d’une matrice A
et renvoie deux matrices Q orthogonale et R triangulaire supérieure
telles que A=QR.
svd(A) calcule la factorisation en valeurs
singulières d’une matrice A, et renvoie
U orthogonale, S vecteur des valeurs singulières, Q
orthogonale tels que A=U*diag(S)*tran(Q). Le rapport
de la plus grande valeur singulière de S sur la plus petite
donne le nombre de condition de A relativement à la norme euclidienne,
plus ce nombre est grand, plus on perd en précision en résolvant
un système Ax=b lorsque b n’est pas connu exactement.
Depuis le catalogue F4, sélectionner le sous-menu Probabilites
puis sélectionnez rand() (réel selon
la loi uniforme dans [0,1]) ou
n:=6:; randint(n)
(entier
entre 1 et n). De nombreuses autres fonctions aléatoires
existent, avec comme préfixe rand, suivi par le nom
de la loi, par exemple randbinomial(n,p) renvoie
un entier aléatoire selon la loi binomiale de paramètres n,p.
Pour créer un vecteur ou une matrice aléatoire, utiliser la commande
ranv ou ranm (menu F4 Matrice ou shift-MATR),
par exemple pour un vecteur de 10 composantes
selon la loi normale centrée réduite
ranv(10,normald,0,1)
Depuis F4, sélectionner le sous-menu Probabilites.
Les lois proposées dans le catalogue sont la loi binomiale, la loi normale,
la loi exponentielle et la loi uniforme.
D’autres lois sont disponibles mais il n’y a pas assez de place pour
les documenter :
chisquared, geometric, multinomial
studentd, fisherd, poisson.
Pour obtenir la distribution cumulée d’une loi, on saisit le nom de la loi
et le suffixe _cdf (sélectionner cdf dans le catalogue
sous-menu Probabilités et taper F1).
Pour obtenir la distribution cumulée inverse,
on saisit le nom de la loi et le suffixe _icdf
(sélectionner cdf dans le catalogue
sous-menu Probabilités et taper F2).
Exemple : calcul de l’intervalle centré I pour la loi normale de moyenne 5000 et d’écart-type 200 tel que la probabilité d’être en-dehors de I soit de 5% : M:=5000; S:=200; normald_icdf(M,S,0.025);normald_icdf(M,S,0.975)
Ces fonctions agissent sur des listes
par exemple l:=[9,11,6,13,17,10]
Depuis le catalogue, sélectionner le sous-menu Statistiques.
l est un échantillon
Pour les statistiques 1-d de listes avec effectifs, on remplace
l par deux listes de même longueur, la 1ère liste
est la liste des valeurs de la série statistique, la 2ème
liste est la liste des effectifs.
Voir aussi les commandes du menu Graphique
histogram et barplot.
Depuis le catalogue, sélectionner le sous-menu Statistiques.
correlation(X,Y) calcule la corrélation entre
2 listes de même taille.
covariance(X,Y) calcule la covariance entre
2 listes de même taille.
_regression(X,Y) calculent
des ajustements par régression au sens des moindres carrés,
par exemple linear_regression(X,Y) renvoie
les coefficients m,p de la droite de régression linéaire
y=mx+p.linear_regression_plot(X,Y) (respectivement
toutes les commandes
de suffixe _regression_plot) trace une droite (respectivement
une courbe) d’ajustement des données contenues dans les listes
X,Y de même taille.
Ces commandes affichent
de plus le coefficient R2 qui permet de quantifier la qualité
de l’ajustement (plus R2 est proche de 1, meilleur est
l’ajustement).
Pour obtenir une représentation graphique, on saisit une commande
de tracé (ou plusieurs commandes séparées par ;).
Depuis le catalogue F4, sélectionner le sous-menu Graphes
(7).
plot(f(x),x=a..b) graphe de f(x) pour x∈ [a,b].
On peut spécifier un pas de discrétisation avec xstep=,
par exemple plot(x^2,x=-4..4,xstep=1)
plotseq(f(x),x=[u0,a,b]) graphe “en toile d’araignée”
de la suite récurrente un+1=f(un) de premier terme u0 donné.
Par exemple si un+1=√2+un, u0=6 avec une représentation
sur [0,7]
plotseq(sqrt(2+x),x=[6,0,7])
plotparam([x(t),y(t)],t=tm..tM) courbe en paramétriques
(x(t),y(t)) pour t∈ [tm,tM].
On peut spécifier un pas de discrétisation avec tstep=
par exemple
plotparam([sin(2t),cos(3t)],t,0,2*pi)
plotpolar(r(theta),theta=a..b) courbe
en polaires r(θ) pour θ ∈ [a,b],
par exemple
plotpolar(sin(3*theta),theta,0,2*pi)
plotlist(l) pour une liste l,
trace la ligne polygonale reliant
les points de coordonnées (i,li) (indice i commençant à 0).plotlist([X1,Y1],[X2,Y2],...)
trace la ligne polygonale reliant
les points de coordonnées (Xi,Yi)
scatterplot(X,Y), polygonscatterplot(X,Y)
pour 2 listes X,Y de même taille, trace un nuage de points
ou une ligne polygonale reliant
les points de coordonnées (Xi,Yi)
histogram(l,class_min,class_size) trace
l’histogramme des données de la liste l avec
comme largeur de classe class_size en commençant
à class_min. Par exemple, on peut tester la qualité
du générateur aléatoire avec
l:=ranv(500,normald,0,1); histogram(l,-4,0.25); plot(normald(x),x,-4,4)
plotcontour(f(x,y),[x=xmin..xmax,y=ymin..ymax],[l0,l1,...])
trace les courbes de niveaux f(x,y)=l0, f(x,y)=l1, ....
plotfield(f(t,y),[t=tmin..tmax,y=ymin..ymax])
trace le champ des tangentes à l’équation différentielle
y′=f(t,y). On peut ajouter en dernier paramètre
optionnel ,plotode=[t0,y0]
pour tracer simultanément la solution passant par la condition
initiale y(t0)=y0. Exemple y′=sin(ty) sur l’intervalle [−3,3]
en temps et [−2,2] en yplotode en-dehors d’une commande
plotfield.plotfield
avec l’option plotode.
;
Lorsqu’un graphique comporte des tracés de courbes (graphes de fonction, courbes en paramétriques ou en polaires), le mode “trace” est activé par défaut sur χCAS en 2 addins pour Graph 90 et sur χCAS pour Graph 35eii. Dans ce mode, l’appui sur la touche curseur vers la droite ou la gauche permet de déplacer un pointeur sur la courbe active, en affichant les coordonnées du pointeur (et du paramètre pour une courbe en paramétriques) et d’un vecteur tangent. S’il y a plusieurs arcs de courbe, les touches de curseur haut et bas permettent de changer l’arc d’étude. L’appui sur F2 permet d’afficher les informations sur la courbe courante, si on confirme par EXE on accède à un tableau de valeurs.
Le menu F1 étude de graphes (raccourci touche x,θ,t) permet d’ajouter un vecteur normal pointant vers le centre de courbure (F4), ou/et le cercle osculateur (F5) et le rayon de courbure. On peut aussi à partir de ce menu déplacer le pointeur vers une position déterminée, ou vers un point remarquable: racine, tangente horizontale ou verticale, point d’inflexion, intersection avec un autre arc de courbe (fonctionnalité limitée à l’intersection de graphes de fonctions sur la 35eii par manque de place). On peut enfin calculer une longueur d’arc ou l’aire sous la courbe entre le pointeur et la marque.
Lorsque vous faites une étude de courbe, les variables
X0,X1,X2,Y0,Y1,Y2
sont automatiquement affectées avec l’expression de la position, vitesse
et accélération sur la courbe étudiée. Lors de la recherche
d’une racine, tangente horizontale, inflexion, longueur d’arc, aire
sous la courbe, des variables contenant la dernière recherche
sont crées.
La touche OPTN vous permet de spécifier certaines options graphiques :
display=couleur, par exemple OPTN r e d F2 pour
plot(sin(x),display=red)
display=line_width_2 à display=line_width_8.
OPTN l i puis curseur vers le bas si nécessaire puis F2
Pour changer à la fois la couleur et l’épaisseur, additionnez les
attributs, par exemple :
display=red+line_width_2
display=filled (qui peut s’additionner à d’autres attributs).
gl_x ou/et gl_y et indiquer l’intervalle
en x ou en y souhaité, la commande doit précder une
commande de tracé. Par exemple
gl_x=-2..2;gl_y=-1..4;plot(exp(x))
axes puis taper F2
(axes=0). La commande doit précéder une commande de
tracé.
Lorsqu’un calcul renvoie une expression, elle est affichée en plein écran dans l’éditeur d’expression 2d. Depuis l’historique des calculs, si le niveau sélectionné est une expression, l’appui sur F3 (voir) affiche l’expression dans l’éditeur 2d. En ligne de commande, l’appui sur F3 (voir) ouvre aussi l’éditeur 2d, soit avec 0 si la ligne de commande était vide, ou avec le contenu de la ligne de commande si celle-ci est syntaxiquement correcte.
Lorsque l’éditeur 2d est ouvert, l’expression est affichée en plein écran et une partie de l’expression est sélectionnée. On peut alors agir sur la sélection en exécutant des commandes saisies via les menus ou le clavier, on peut aussi éditer la sélection (en mode de saisie 1d). Ceci permet de retravailler des sous-expressions ou d’éditer une expression en écriture naturelle.
Exemple 1 : nous allons saisir
|
|
Depuis une ligne de commande vide, taper F3 (voir), vous devez voir 0 sélectionné. Tapez sur la touche x et EXE, maintenant c’est x qui est en surbrillance. Tapez sur la touche SIN, c’est sin(x) qui est en surbrillance. Tapez sur la touche de division (au-dessus de -), vous devez voir sin(x)/0 avec 0 en surbrillance, tapez x puis EXE, vous devez voir sin(x)/x avec x au dénominateur en surbrillance. Tapez sur le curseur flèche vers le haut pour mettre sin(x)/x en surbrillance, puis F2 4 (pour limit). L’expression est correcte, vous pouvez taper EXE pour la recopier en ligne de commande and EXE again to eval it. Si on avait voulu une limite en +∞, il aurait fallu déplacer la sélection avec curseur vers la droite, puis faire F1 8 (oo) EXE.
Exemple 2 : nous allons saisir
| ∫ |
|
| dx |
Depuis une ligne de commande vide, taper F3 (voir), puis F2 3 (integrate), vous devez voir
| ∫ |
| 0 dx |
avec x sélectionné. Il faut donc changer le 1 de la borne supérieure
et le 0 à intégrer. Pour modifier le 0, curseur vers la gauche pour
le sélectionner puis 1/(x^4+1) EXE, puis curseur vers
la gauche F1 8 EXE. Taper sur EXE pour recopier vers la ligne
de commande puis EXE pour effectuer le calcul, le résultat s’affiche
dans l’éditeur 2d, EXE quitte l’éditeur avec dans l’historique
l’intégrale et sa valeur (en syntaxe algébrique 1d).
Exemple 3 : nous allons calculer et simplifier
| ∫ |
| dx |
Depuis une ligne de commande vide, taper F3 (voir), puis F2 3 (integrate), vous devez voir
| ∫ |
| 0 dx |
Déplacez le curseur sur le 0 de la borne inférieure de l’intégrale et tapez sur la touche DEL, vous devez voir
| ∫ | 0 dx |
avec le tout sélectionné. Utilisez le curseur vers le bas
pour sélectionner 0 et tapez 1/(x^4+1) EXE puis EXE pour
recopier en ligne de commande puis EXE pour exécuter le calcul,
le résultat s’affiche maintenant dans l’éditeur 2d.
On peut alors sélectionner avec les touches du curseur par exemple
l’argument d’un des arctangentes et exécuter F1 EXE (simplify)
pour effectuer une simplification partielle du résultat, puis
recommencer avec l’autre arctangente.
On peut simplifier encore plus, en rassemblant les logarithmes. Pour
cela il faut d’abord échanger deux des arguments de la somme.
Sélectionnez un des logarithmes avec des déplacements du curseur,
puis tapez
cela échange l’argument sélectionné avec son frère de droite ou
de gauche. Tapez ensuite
ALPHA curseur vers la droite ou vers la gauche, ceci augmente la
sélection en ajoutant le frère de droite ou de gauche.
Une fois les deux logarithmes sélectionnés, menu F1 2 EXE (factor), puis
descendez la sélection sur la somme ou différence de logarithmes,
allez dans le menu F4 (cmds) puis EXE (Tout), tapez les lettres l, n, c
ce qui déplace à la première commande commençant par lnc,
sélectionnez lncollect, validez et tapez enfin sur F6 (eval).
En utilisant la touche curseur vers le haut/bas, on se déplace dans l’historique des calculs, le niveau courant est en surbrillance.
Pour modifier l’ordre des niveaux dans l’historique des calculs, tapez ALPHA-curseur vers le haut ou vers le bas. Pour effacer un niveau, appuyez sur la touche DEL (le niveau est recopié dans le presse-papiers).
Pour
modifier un niveau existant, on tape sur F3 ou sur ALPHA-F3. Dans le
premier cas, c’est l’éditeur 2d qui est appelé si le niveau
est une expression, dans le
deuxième cas, c’est l’éditeur texte qui est appelé.
Taper EXIT pour annuler les modifications ou EXE pour valider.
Si les modifications sont validées, les lignes de commande situées
en-dessous de la ligne modifiée seront automatiquement calculées,
tenant compte des modifications, par exemple si vous modifiez un niveau
comme A:=1, les lignes situées en-dessous dépendant de A
seront actualisées.
Ce processus peut être automatisé en utilisant un curseur,
que l’on peut créer avec un assistant, depuis le menu F6,
Parameter. Une fois créé, vous pouvez modifier un curseur
en tapant sur les touches + ou - lorsque le niveau contenant
la commande assume ou parameter est sélectionné
(tapez * ou / pour une modification plus rapide).
En appuyant sur la touche VARS vous affichez la liste
des variables qui ont une valeur, ainsi que des commandes de gestion
de variables. Déplacez le curseur vers une variable puis EXE pour
la recopier en ligne de commande, DEL copie en ligne de commande
la commande d’effacement de la variable (confirmez ensuite avec EXE).
La commande restart permet d’effacer toutes les variables.
La commande assume permet de faire une hypothèse sur
une variable, par exemple assume(x>5) (> se trouve
dans le menu shift-PRGM).
Depuis l’historique des calculs, avec le menu F6, vous pouvez sauvegarder
une session de travail sur la mémoire de stockage de la
calculatrice. Les fichiers ont comme extension xw.
Vous pouvez alors sauvegarder ces fichiers sur votre ordinateur en
connectant la calculatrice comme clef USB (choix F1), depuis
l’explorateur de fichiers de votre ordinateur.
Ces fichiers sont compatibles avec Xcas et Xcas pour Firefox. Vous
pouvez ouvrir une session depuis le menu Fich, Ouvrir de Xcas
ou depuis le bouton Charger/Parcourir de la page de
Xcas pour Firefox.
Vous pouvez sauvegarder des sessions Xcas et Xcas pour Firefox au format
xw dans le menu Fich, Exporter comme Khicas de Xcas,
ou le bouton Export de Xcas pour Firefox.
Vous pouvez programmer en utilisant les structures de commande en français de Xcas ou en utilisant la compatibilité de syntaxe Python. Les programmes très courts (en une ligne) peuvent être saisis directement en ligne de commande. Les programmes plus longs ou que l’on souhaite sauvegarder seront saisis dans l’éditeur de programmes sur la calculatrice, ou bien transférés depuis un PC ou une autre calculatrice.
Un premier exemple en ligne de commande :
une fonction définie par une expression algébrique. On
saisit nom_fonction(parametres):=expression
Par exemple, pour définir le périmètre d’un cercle de
rayon r, on peut taper
peri(r):=2*pi*r
puis on peut calculer peri(1).
Pour saisir := on peut utiliser le raccourci
shift-→ ou shift-INS selon la version de χCAS.
Autre exemple, pour calculer l’intervalle de confiance de seconde
connaissant une fréquence p et un effectif n, on tape
F(P,N):=[P-1/sqrt(N),P+1/sqrt(N)]
puis on teste F(0.4,30)
Autre exemple : avec la tortue de Xcas
La tortue de Xcas est un petit robot qui se déplace selon des
ordres qui lui sont donnés en laissant une trace de son passage.
Les commandes de la tortue sont accessibles depuis le dernier item
du menu F6, ou par le raccourci shift-QUIT.
Saisir la commande avance dans ce menu puis valider, vous
devez voir la tortue (symbolisée par un triangle) avancer de 10 pixels.
Taper EXIT pour revenir en ligne de commande.
Saisir la commande tourne_gauche et valider, la tortue a tourné
de 90 degrés. Répéter
3 fois ces deux commandes pour afficher un carré.
Pour effacer le dessin et ramener la tortue à l’origine,
saisir la commande efface.
Pour faire des dessins tortue, il est conseillé d’utiliser l’éditeur
de programmes (cf. ci-dessous).
Autre exemple : une boucle “oneliner” en syntaxe Xcas.
Tapez shift-PRGM, puis sélectionnez l’exemple
de pour (boucle Xcas)
pour j de 1 jusque 10 faire print(j,j^2); fpour;
tapez sur EXE, vous devez voir les carrés des entiers de 1 à 10.
Exercice : faire faire un carré à la tortue en utilisant une boucle.
Utilisation de l’éditeur
Modifions cet exemple pour faire afficher les carrés de 1 à n
en utilisant la syntaxe compatible Python et
l’éditeur de programmes. Vérifiez que la syntaxe Python
est cochée (F6 ou shift-SETUP), sinon cochez-la.
Tapez F6 (Fich,Cfg) puis sélectionner
Editeur script
pour ouvrir l’éditeur. S’il n’y a pas encore de script,
on vous propose de choisir entre Tortue ou Programme, sélectionnez
Programme, vous devriez obtenir
def session(x):. Remplacez session par f et
x par n, puis
déplacez le curseur en fin de ligne et passez à la
ligne (shift-EXE).
Tapez Shift-PRGM puis 1 for, placez le curseur entre for
et in et tapez F5 j, placez le curseur entre les parenthèses
de range tapez 1,n+1 puis
déplacez le curseur à la ligne suivante
F4 (cmds), EXE (1 Tout), P, R, déplacez
la surbrillance avec le curseur vers le bas jusque print
et validez (EXE), puis tapez j,j^2) (F5 j ALPHA , F5 j ALPHA x2).
Vous devriez avoir le programme suivant :
def f(n):
for j in range(1,n+1):
print(j,j**2)
return
N.B.: pour la puissance, on peut utiliser ^ ou ** dans
KhiCAS (sauf si on a exécuté la commande python_compat(2)),
notez qu’il faut utiliser ** en Python.
Maintenant, tapez F6 (Fich,Cfg) et sélectionnez 1. Tester syntaxe
ou tapez EXE.
Si tout va bien, vous devez voir Syntaxe correcte
dans la ligne d’état.
Sinon, le numéro de ligne de la première erreur est indiqué ainsi que
le mot qui a provoqué l’erreur. Le curseur est positionné sur la ligne
où l’erreur a été détectée (il peut arriver que l’erreur soit
située avant mais détectée un peu plus loin seulement). Si vous
utilisez la syntaxe en Python, notez que les structures de programmation
sont traduites en langage Xcas, les erreurs affichées le sont par
rapport à cette traduction (donc des mots-clefs de fin de structure
comme end rajoutés par le traducteur
peuvent apparaitre dans le message d’erreur).
Si le programme est syntaxiquement correct, vous pouvez le sauvegarder
depuis le menu F6 (File). Pour l’exécuter, revenez à la
ligne de commande en tapant la touche EXIT. En tapant la touche
VARS, f doit apparaitre, sélectionnez f
puis complétez pour obtenir par
exemple la commande f(10), puis EXE, vous devriez voir s’afficher
les carrés de 1 à 10.
3ième exemple : Calcul de l’intervalle de confiance de terminale S
On peut le saisir en ligne de commande
F(P,N):=[P-1.96*sqrt(P*(1-P)/N),P+1.96*sqrt(P*(1-P)/N)]
On peut éviter les calculs redondants en utilisant une variable
locale (utiliser shift-PRGM pour saisir def et return)
def F(P,N):
D=1.96*sqrt(P*(1-P)/N)
return [P-D,P+D]
Exercice Créez une nouvelle session contenant
un script pour afficher un carré avec la tortue.
Créez ensuite une fonction f d’argument n
pour afficher un carré de n pixels.
Solution
Faire F6, Nouvelle session, taper carre puis F6, Editeur script,
choisir Tortue ce qui crée un script contenant
l’instruction efface. Ajouter 4 fois avance; tourne_gauche;.
Appuyer sur EXE pour tester.
Quitter avec EXIT (et sauvegardez avec F1).
Taper EXIT. Modifiez avant la ligne efface en
def f(n):
for j in range(4):
avance(n)
tourne_gauche
puis après la ligne efface; tapez par exemple f(40)
puis F6 1 Tester syntaxe ou EXE.
Un exemple de fonction non algébrique : le calcul du PGCD de 2 entiers.
Utiliser shift-EXE pour passer à la ligne. Le caractère !
est accessible depuis le menu Programmation_cmds (F4 10,
raccourci F4 0).
En syntaxe Xcas
fonction pgcd(a,b)
tantque b!=0 faire
a,b:=b,irem(a,b);
ftantque;
return a;
ffonction
Le même en syntaxe Python
def pgcd(a,b):
while b!=0:
a,b=b,irem(a,b)
return a
On vérifie pgcd(12345,3425)
Mise au point
Depuis l’historique des calculs,
la commande debug (disponible depuis shift-PRGM) permet
d’exécuter une fonction en mode pas-à-pas, i.e.
visualiser l’évolution des variables instruction par instruction,
par exemple
debug(pgcd(12345,3425))
Vous trouverez en ligne des exemples de sessions dont certains sont des TP pour classes de seconde de l’IREM de Grenoble.
Contrairement aux adaptations de MicroPython proposées par
les constructeurs (dont
celui de la Casio Graph 90+e), la programmation en (simili-)Python
dans KhiCAS n’est pas une application indépendante.
Vous pouvez donc utiliser tous les types
de Xcas (par exemple les rationnels) et appliquer toutes
les commandes de Xcas dans vos programmes. Ceci correspond
plus ou moins à un environnement Python avec les modules
math, cmath, random (plus complet
que le module urandom fourni par les constructeurs),
scipy, numpy, un petit module de graphiques
pixelisé
(set_pixel(x,y,c), set_pixel()
pour synchroniser l’affichage, clear(),
draw_line(x1,y1,x2,y2,c),
draw_polygon([[x1,y1],[x2,y2],...],c),
draw_rectangle(x,y,w,h,c), draw_circle(x,y,r,c),
la couleur+epaisseur+remplissage c est un paramètre optionnel,
draw_arc(x,y,rx,ry,t1,t2,c) permet de tracer un arc
d’ellipse).
et pour remplacer matplotlib on peut utiliser
les commande graphiques dans un repère de χCAS
(point, line, segment, circle,
barplot, histogram et les commandes plot...).
De plus, vous pouvez travailler avec des expressions et faire
du calcul formel dessus.
La liste complète des commandes portées se trouve en annexe,
pour une présentation détaillée, on renvoie à la documentation
de Xcas.
Ces raccourcis sont utilisables dans le shell et l’éditeur texte
,: ;
:= ou : selon l’interpréteur
Xcas ou Python
<>_! et comb, rand, binomial, normald
Les raccourcis claviers ouvrant un menu rapide sont configurables, en
éditant le fichier FMENU.py. Pour revenir à la
configuration par défaut, effacez ce fichier depuis l’application
Memory de la Casio.
(-): dans l’éditeur de programmes,
renvoie le caractère _.
abs
arg
:=
Dans l’éditeur de programmes :
Pour éteindre la Graph 90 depuis KhiCAS, taper d’abord sur la touche MENU puis shift ON. Lorsque vous rallumez la calculatrice, taper sur MENU.
Pour connecter la Graph 90 au PC comme une clef USB lorsqu’on est dans KhiCAS, il faut taper sur une touche après avoir tapé sur F1, sinon rien ne se passe.
Si χCAS se bloque dans un long calcul, essayez de taper sur la touche AC/ON. Si cela n’a pas d’effet, vous pouvez toujours réinitialiser la calculatrice avec le bouton reset à l’arrière.
Si χCAS plante avec un affichage du type SYSTEM ERROR, etc.
essayez de taper sur la touche MENU puis de lancer une autre application,
si tout se passe bien, vous pourrez sauvegarder votre session et
relancer χCAS sans avoir à effectuer une réinitialisation
complète. En cas de problèmes persistants,
depuis le MENU principal, ouvrir l’application Mémoire, puis F2
(mémoire de stockage) puis effacez le fichier session.xw
(déplacez le curseur sur le fichier, puis F1 pour SELECT puis
F6 pour DELETE). Si χCAS90 se lance (la version en deux fichiers),
vous pouvez aussi depuis le menu F6 sélectionner le dernier item
Quit et choisir la réinitialisation de KhiCAS.
Vous disposez dorénavant d’environ 500K pour vos données sur une Graph 90 (ce qui permet de travailler assez confortablement) et de 58K sur une Graph 35eii (ce qui est vite rempli). Sur la Graph 90, il est conseillé d’ouvrir le menu VARS de temps en temps, si vous constatez que la mémoire disponible descend en-dessous des 100K, relancez χCAS (touche MENU, puis ouvrir n’importe quelle autre application puis MENU et réouvrir χCAS).
Cette version de χCAS en deux fichiers contient un portage de MicroPython avec plusieurs modules utiles pour l’enseignement, plus de commandes de Xcas, en particulier des commandes de géométrie, d’algèbre avancée, le support de flottants avec grande précision, un moteur d’affichage 3d. Le menu Fichier permet d’accéder à des applications additionnelles : tableur formel, géométrie, finance, table périodique des éléments ...
Pour installer cette version plus complète, cf. la section 1.
Pour passer du shell de Xcas à celui de MicroPython, tapez shift-SETUP et sélectionnez MicroPython. Lorsque MicroPython est actif, les menus sont sur fonds jaune-brun, sinon sur fonds rose (Xcas) ou bleu (Xcas compatible Python). Les modules disponibles sont: turtle (version plus complète que celle de Casio, avec en particulier la possibilité de remplir des formes), graphic (version plus complète de casioplot, avec compatibilité Numworks), matplotl (graphes repérés), arit (arithmétique entière), linalg/numpy (algèbre linéaire), ulab (compatibilité scipy), cas (calcul formel dans Python).
Cette version de χCAS en deux fichiers contient
toutes les commandes de base de Xcas de géométrie 2d et 3d.
On peut en particulier tracer des graphes de fonction de 2 variables,
des cones, des plans, etc. Par exemple tapez
F4 * 5 F2 pour sélectionner un exemple de cube
ou shift F4 1 pour sélectionner la commande plot,
puis tapez x^2-y^2.
Pour tracer rapidement le graphe d’une fonction de ℂ dans
ℂ, on peut utiliser la commande plot avec
en argument une fonction de 2 variables (partie réelle
et imaginaire) à valeurs complexes,
par exemple plot((x+i*y)^2-9) ou pour les fonctions
holomorphes/méromorphes ayant une expression en fonction de la variable
complexe sans passer par partie réelle et imaginaire,
on peut utiliser la commande plot3d par exemple
plot3d(x^2-9) (la commande plot(x^2-9) ne
convient pas car déjà utilisée pour un graphe de ℝ dans
ℝ. Le module de la fonction est représenté selon z,
l’argument est représenté par les couleurs de l’arc en ciel, de −π
en bleu violet à 0 en vert (en passant par jaune et orange) et de 0 à π
en passant par cyan.
Pour préciser des options, il faut utiliser la commande plotfunc,
par exemple
plotfunc((x+i*y)^3-1,[x=-2..2,y=-2..2],nstep=500)
pour tracer z → z3−1 depuis le carré du plan complexe
centré en l’origine
de coté 4, avec une discrétisation utilisant 500 petits rectangles.
Le moteur de rendu 3d étant relativement lent sur la calculatrice, la précision de tracé par défaut est moyenne ce qui impacte en premier lieu le rendu des objets avec des angles, comme les polyèdres. On peut changer la précision du tracé en tapant F2 (plus rapide, moins précise) ou F3 (moins rapide, plus précis). Notez qu’il est possible d’accélérer la vitesse du processeur au lancement de χCAS (utilise du code de Sébastien Michelland, semblable à l’addin Ptune3)
Pour obtenir un unique tracé précis sans changer la précision
par défaut, tapez sur la touche ^ et
soyez patients. On peut interrompre un tracé précis en cours en tapant
sur la touche DEL.
Les touches de déplacement permettent de changer de point de vue,
taper 5 pour revenir au point de vue initial,
- ou + pour faire un zoom in ou out. Lorsqu’on laisse
une touche de déplacement appuyée, la précision de tracé est
diminuée temporairement pour donner une certaine fluidité,
lorsqu’on relâche la touche, la dernière position est retracée
avec la précision par défaut.
F4 permet de montrer ou cacher une 2ème surface cachée, F5
affiche ou cache des points intermédiaires, F6 montre ou cache
les arêtes des polyèdres.
L’application de géométrie permet de construire des figures dans le plan ou dans l’espace, et de faire bouger un point et tout ce qui en dépend pour illustrer certaines propriétés (géométrie dynamique). On peut faire des constructions de géométrie euclidienne pure, mais aussi avec des graphes de fonction, des coniques, etc. L’application possède deux “vues”: la vue graphique et la vue symbolique qui contient les commandes Xcas permettant de créer la figure (la philosophie de cette application est proche de celle du logiciel Geogebra, avec les commandes de Xcas).
Cette section donne un aperçu rapide de l’application, pour une documentation plus complète avec quelques captures d’écran, cf. ici
Taper F6 1 (ou la touche S↔D) pour afficher la liste des
applications additionnelles, puis EXE puis sélectionnez soit une nouvelle
figure 2d ou 3d soit une figure existante. Vous pouvez aussi ouvrir
l’application de géométrie depuis un graphe (par exemple après avoir
tapé plot(sin(x))) en tapant F6 puis Sauvegarder figure.
Au lancement on est dans la vue graphique en mode repère, les touches de curseur permettent de changer de point de vue. Pour changer le mode, utiliser la touche F4, pour passer en vue symbolique et vice-versa taper EXE. Par exemple tapez F4 3 pour passer en mode point qui permet de construire des points en déplaçant le pointeur et en tapant EXE ou tapez F4 5 pour passer en mode triangle qui permet de construire un triangle à partir de ses 3 sommets, on déplace le pointeur et on tape EXE trois fois. Pour déplacer le pointeur, utiliser les touches de déplacement, pour se déplacer plus rapidement, faire shift touche de curseur. Si on est proche d’un point existant, son nom apparait en bas. Pour déplacer le pointeur vers un point existant, vous pouvez aussi taper le nom du point (par exemple touche alpha A). Pour une figure 3d, les objets créé depuis la vue graphique seront situés dans le plan qui apparait en jaune sur la figure. On peut modifier ce plan en utilisant les touches 4 et 6. Il est fortement conseillé de conserver un point de vue avec l’axe Oz vertical (donc changer de point de vue uniquement avec les touches flèche droite ou gauche qui effectuent une rotation autour de Oz).
Le mode pointeur permet de sélectionner un point et de le déplacer pour observer comment la construction varie, ce qui permet de mettre en évidence des propriétés de la figure, par exemple concurrence de 3 droites.
Si vous tapez sur la touche EXIT depuis la vue graphique
de l’application, vous revenez au mode repère ou si vous y étiez
vous passez en vue symbolique. Vous pouvez ajouter
des objets à la construction depuis cette vue, en mettant une commande
par ligne. Tapez shift-EXE pour passer à la ligne. Tapez EXE
pour revenir à la vue graphique. Dans la vue symbolique, vous
pouvez sauvegarder la construction géométrique au format texte
(avec une extension .py, même s’il ne s’agit pas
d’un script Python).
Tapez EXIT pour quitter l’application de géométrie.
Lorsque vous quittez l’application de géométrie, la figure est automatiquement sauvegardée dans une variable Xcas qui a le même nom que celui du nom de fichier affiché dans la vue symbolique. Vous pouvez purger la variable Xcas si vous voulez effacer la figure de la session.
Exemple : cercle circonscrit.
Depuis le shell, taper F6 1 sélectionner nouvelle figure 2d et valider EXE.
Puis F4 5 Triangle, EXE pour créer le premier sommet du triangle
puis déplacer le pointeur avec les touches de déplacement, EXE pour créer
le 2ème sommet du triangle, déplacer le pointeur à nouveau et EXE
pour créer le triangle.
Version longue en construisant le centre :
Taper F4 7, sélectionner 8 Mediatrice, déplacer
le pointeur de sorte que seul un segment du triangle
soit sélectionné (affichage
en bas à droite perpen_bisector D5,D),
taper EXE pour créer la médiatrice du segment, déplacer le pointeur
sur une autre arête du triangle et EXE pour créer la 2ème médiatrice,
optionnellement sur le 3ème segment pour avoir les 3 médiatrices.
Puis F4 6 et 4 Intersection unique. Déplacer le pointeur vers
une des médiatrices, taper EXE puis vers une autre médiatrice, taper EXE,
ceci crée le centre du cercle circonscrit. Pour tracer le cercle,
taper F4 4, déplacer le pointeur au centre du cercle (vous pouvez
utiliser les touches de déplacement ou juste taper
ALPHA H ou la bonne lettre si le centre du cercle s’appelle autrement),
puis EXE puis sur un des sommets et EXE.
Version courte avec la commande circonscrit :
taper F4 9 puis circonscrit puis sélectionner chaque
sommet avec EXE (ALPHA A EXE ALPHA B EXE ALPHA C EXE, remplacez A, B, C
par les lettres du sommet du triangle).
Version en vue symbolique :
taper EXIT puis en fin de script sur une ligne vide (taper shift EXE s’il
faut en créer une), taper
c:=circonscrit(A,B,C) EXE
Exemple 3d: bac septembre 2019
Taper F6 1 pour lancer l’application de géométrie puis nouvelle figure 3d.
Puis EXIT ou EXE pour passer en vue symbolique. Puis F5 c ALPHA shift =
puis F4 flèche haut deux fois pour sélectionner 3D puis EXE puis 5 pour cube
puis F6 (aide), qui explique que
les 2 premiers arguments de cube sont les sommets d’une arête,
le troisième est un point d’un plan d’une face. Le premier
exemple nous convient ici exactement, on tape F2 et on obtient
c=cube([0,0,0],[1,0,0],[0,1,0])
On tape EXE pour voir le cube puis + plusieurs fois pour zoomer et EXE
pour revenir à la vue symbolique.
Vous pouvez sauvegarder à tout moment la construction au format
texte depuis
le menu F6.
On passe à la ligne en tapant shift EXE. Puis on définit les sommets
du cube en tapant A,B,C,D,E,F,G,H=
(taper ALPHA A , ALPHA B etc.), puis F4 et flèche vers le haut 3 fois
pour sélectionner Géometrie puis flèche vers le haut 4 fois pour sélectionner
sommets EXE et mettre c en argyument sommets(c).
Taper EXE pour visualiser puis EXE à nouveau pour revenir en vue
symbolique. Passer à la ligne avec shift EXE puis créer le plan ABG
en tapant ALPHA P = puis F2 pour
ouvrir le menu rapide lines et 8 pour saisir plane. La commande plan
prend en arguments 3 points pour définir le plan (on peut aussi donner
une équation cartésienne, ici A,B,G, P=plan(A,B,G,
on va lui ajouter une couleur avec le menu rapide F3 disp
display=filled+green, vérifier en visualisant avec EXE EXE.
On passe à la ligne (shift EXE) et on crée le segment DE
ALPHA S = F2 sélectionner la commande segment avec EXE
puis D,E et F3 pour lui donner une couleur
S=segment(D,E,color=cyan)
(on pouvait aussi créer le segment depuis la vue graphique en mode Lignes
mais sur la Casio c’est un peu lent).
La construction est donc la suivante:
c=cube([0,0,0],[1,0,0],[0,1,0]) A,B,C,D,E,F,G,H=sommets(c) P=plan(A,B,G,display=filled+green) S=segment(D,E,display=cyan)
Vous pouvez taper EXE pour la visualiser et utiliser les flèches de
déplacement pour changer de point de vue. Taper EXE ou EXIT pour revenir
en vue symbolique. Pour quitter l’application taper EXIT. Taper F1 pour
sauvegarder la figure si nécessaire.
Vous pouvez depuis le shell de KhiCAS accéder à de nombreuses informations
de géométrie analytique, par exemple equation(P) (menu
F4 Géométrie) vous donnera
l’équation cartésienne du plan P ou is_orthogonal(P,S)
(F4 Géométrie) vous confirmera que le plan P est orthogonal au segment S.
Vous pouvez créer un paramètre qui se déplace entre 2 valeurs extrêmes
par saut de 1% depuis le menu F4 Curseur en vue graphique ou
la commande element en vue symbolique.
Exemple : explorateur quadratique avec des curseurs
pour explorer comment une parabole d’équation y=ax2+bx+c
dépend de la valeur de a,b,c, créer 3 curseurs
(F4 curseur vers le haut 4 fois EXE EXE). En vue symbolique
on doit avoir quelque chose ressemblant à
a:=element(-1..1) b:=element(0..1,0.5) c:=element(-1..1)
puis ajouter un graphe, depuis la vue graphique taper F4 0 (pour 10 Courbe)
et sélectionner plot,
ou en vue symbolique shift F6 et sélectionner plot,
remplir entre les parenthèses par a*x^2+b*x+c (attention
à ne pas oublier les *), puis valider avec EXE. En vue graphique,
vous devez voir 3 curseurs a, b et c et le
graphe correspondant. Vous pouvez maintenant faire varier les valeurs
de a,b,c depuis la vue graphique en mode pointeur (F4 2) en déplaçant le
pointeur vers a,b,c et en tapant EXE puis les flèches de déplacement
gauche ou droit et EXE pour arrêter.
On peut bien sur faire des exemples plus simples avec un ou deux curseurs
et une courbe dépendant d’un ou de deux paramètres. Par exemple
un explorateur linéaire droite(y=a*x+b) ou
trigonométrique plot(sin(a*x+b)).
En tapant F4 puis en sélectionnant 13 Mesures, on peut afficher une mesure en un point de la figure. Par exemple après avoir construit un triangle, on peut afficher son périmètre ou son aire en tapant F4 puis deux fois flèche vers le haut, EXE. Déplacer le pointeur près du triangle, taper EXE, puis déplacer le curseur à l’endroit où on souhaite mettre la mesure et taper EXE.
On peut afficher n’importe quelle légende avec la commande
legende() depuis la vue symbolique. Le premier argument
de légende peut être un point de la figure, ou bien un vecteur
de deux entiers donnant la position absolue en pixels mesuré
depuis le coin en haut à gauche. Le deuxième argument est la légende,
cela peut être une chaine de caractères ou n’importe quelle expression.
Si la légende est une valeur numérique, elle peut être utilisée pour
un paramètre numérique d’une commande, par exemple le rapport d’une
homothétie ou l’angle d’une rotation en utilisant la commande
extract_measure. Par exemple
r:=legend([20,40],"2")
homothetie(A,extract_measure(r),B)
La commande trace() permet de conserver la trace du
déplacement d’un objet géométrique.
Exemple Enveloppe des normales à une courbe paramétrée
(ici une ellipse).
E:=plotparam([cos(t),2*sin(t)],t=-pi..pi) a:=element(-pi..pi) M:=element(E,a) T:=tangent(M) N:=perpendiculaire(M,T) trace(N)
En faisant varier a,
on observe une courbe séparant la zone des normales à une zone sans point
tracé qui est l’enveloppe des normales, c’est la développée de l’ellipse
evolute(E,color=red)
On peut effacer les traces à tout moment
avec la touche F6, puis touche vers le haut pour sélectionner
le dernier item du menu de configuration.
Le tableur de χCAS est un tableur utilisant la syntaxe standard des tableurs pour les références de cellule, mais il est capable de travailler avec des données exactes (par exemple fraction ou racines carrées) et symboliques (par exemple on peut calculer la dérivée d’une cellule du tableur), et on dispose de l’ensemble des commandes de Xcas, ainsi que les fonctions définies par l’utilisateur.
Taper F6 1 (ou la touche S↔D) pour afficher la liste des applications additionnelles, sélectionner le tableur et valider avec EXE.
Pour donner une valeur fixe à une cellule, tapez simplement
un nombre. Vous pouvez aussi taper une chaine de caractère
ou un autre objet reconnu par Xcas. Si vous saisissez une
liste ou une commande renvoyant une liste, celle-ci remplira
plusieurs cellules (en allant vers le bas ou vers la droite selon
la configuration du tableur). Par exemple range(10)
remplira 10 cellules consécutives avec les entiers de 0 à 9
(pour saisir range, vous pouvez utiliser le menu rapide F1).
Pour définir le contenu d’une cellule en faisant référence
à d’autres cellules, taper =
puis utilisez la syntaxe
habituelle des tableurs, les
caractères : et $ sont accessibles depuis
le menu F3 edit, : est aussi accessible par shift
→.
On peut sélectionner une cellule lorsqu’on édite
le contenu d’une autre cellule en déplaçant le curseur vers
le haut ou vers le bas, puis vers n’importe quelle direction.
Pour sélectionner une plage de cellules, déplacez-vous
vers un des coins de la plage, taper shift-CLIP, puis
déplacez-vous vers l’autre coin et tapez EXE.
Dans la définition d’une cellule , vous pouvez utiliser toutes les commandes de Xcas via le menu F4 ou les menus rapides (F1 à F6 éventuellement précédés de alpha ou shift) ou shift CATALOG. Vous pouvez aussi utiliser les structures de controle Xcas (test/boucle) ainsi que des fonctions Xcas que vous avez définis. Attention, seules les fonctions définies dans l’interpréteur Xcas sont reconnus (quelle que soit la syntaxe utilisée), les programmes écrits en MicroPython ne sont pas reconnus.
Une cellule peut contenir une commande renvoyant un résultat graphique. Pour voir le graphique correspondant à toutes les cellules du tableur ayant un résultat graphique, taper la touche S↔D.
LICENSE.GPL2 de l’archive
khicasio.zip
ou sur la page
GPL2
du site de la Free Software Foundation.
Le code source de χCAS ainsi que des librairies
libtommath et USTL, se trouvent sur
la section
Casio de ma page web (cf. la section 15)
Téléchargez un installeur, par exemple ici. Lancez le programmes d’installation de Casio sur le PC jusqu’à la dernière confirmation, mais au lieu de taper F5 OS Update sur la calculatrice, effectuez les manipulations suivantes (merci à critor, TI-Planet) :
N.B.: la manipulation ci-dessus est assez acrobatique, il faudra probablement faire plusieurs essais avant d’avoir l’écran OS Error. Il peut aussi être nécessaire de laisser reposer la calculatrice (éteinte) environ 1h avant. Cette manipulation fonctionne aussi sur les Math+, mais pour l’instant χCAS n’est pas compatible avec le mode examen sur les Graph Math+..
Installer
la
librairie dynamique libmpfr.so.4 dans /usr/local/lib,
vérifiez que /usr/local/lib est dans la liste des chemins de
/etc/ld.so.conf
et exécutez
sudo ldconfig. Puis désarchivez
casiolocal.tgz,
c’est une version du cross-compiler gcc avec certaines librairies
(libc, ustl, tommath). Pour créer des addins pour la 90, vous devez aussi installer
mkg3a.
Le source pour la 90 est
giacbf.tgz
(avec support des flottants multi-précision). Il devrait se compiler avec
make.
La version light en un seul fichier est
giac90.tgz.
Pour la 35gii, c’est
giac35.tar.bz2
et on fait make dans le répertoire giac35/src0.
Si quelque chose ne fonctionne pas, voici quelques détails.
Pour développer l’add-in, j’ai installé le cross-compiler
gcc pour processeur sh3eb, en m’inspirant de ce
tutoriel.
Téléchargez gcc puis
(remplacer la version de gcc par la version téléchargée)
../gcc-5.3.0/configure --target=sh3eb-elf --prefix="$HOME/opt/sh3eb-elf" --disable-nls --disable-shared --disable-multilib --enable-languages=c,c++ --without-headers
Malheureusement, il n’y a pas de support pour sh3eb dans la newlib
(librairie C) fournie avec gcc, encore moins pour la libstdc++.
J’ai donc installé libfxcg.tar.gz,
quelque peu modifiée par mes soins
(corrections de plusieurs petits bugs dans la librairie C, ajout
de fonctions manquantes comme qsort, ...), à récupérer dans
ce répertoire (désarchiver et compiler avec make). Toujours
dans ce répertoire, on trouve tommath.tgz (gestion des
entiers multi-précision) et ustl.tar.gz (implémentation
de la standard template library) que j’ai du pas mal modifier
pour le faire fonctionner avec sh3eb-elf-g++, avec un résultat
partiel qui est suffisant pour porter Giac (support de vector/string/map
mais pas des flux E/S fichiers, j’ai créé à part un fichier
iostream pour avoir un ersatz de cin/cout, cf. le répertoire
ustl).
Tout ces fichiers se désarchivent
et on compile en principe avec make.
Comme il n’y a pas de support du compilateur pour la newlib et la libstdc++ et pour éviter les problèmes d’ordre d’initialisation des variables statiques, ce portage de Giac se caractérise par l’absence de variables statiques classes, il n’y a que des variables statiques C. La très grande majorité des variables globales (tous les noms de commandes Xcas par exemple) sont déclarées via des alias sur des structures C en constantes pour ne pas occuper de place en mémoire vive. Il a fallu tenir compte de l’endianness du CPU par rapport à d’autres portages de Giac (plus précisément le CPU peut se comporter des deux manières little ou big endian mais on est obligé de choisir le même ordre que celui de l’OS Casio, et c’est l’inverse de celui qu’on rencontre sur les architectures Intel).
Les etapes pour utiliser gdb pour Casio sous linux avec wine sont les suivantes:
wine /chemin_vers/fx-CG_Manager_PLUS_Subscription_for_fx-CG50series_Ver.3.40.exe
cd .wine/drive_c/Program\ Files\ /CASIO/fx-CG\ Manager\ PLUS\ Subscription\ for\ fx-CG50series/ mv CPU73050.dll CPU73050.real.dll wget https://www-fourier.univ-grenoble-alpes.fr/~parisse/casio/CPU73050.dll cp CPU73050.dll CPU73050.dbg.dll(j’ai mis la dll sur ma page, parce que j’ai eu un peu de mal a le compiler, le source est
https://github.com/redoste/fx-CG50_Manager_PLUS-gdbserver).wget https://ftp.gnu.org/gnu/gdb/gdb-11.1.tar.gz cd casio (ou autre repertoire de build) tar xvfz ../gdb-11.1.tar.gz mkdir sh3eb-gdb cd sh3eb-gdb ../gdb-11.1/configure --srcdir=../gdb-11.1 --target=sh3eb-elf(ajouter –prefix=chemin dans la commande configure si on n’a pas les droits sur /usr/local/bin). Puis
make sudo make install
Ensuite on crée deux scripts, casioemu pour lancer
en mode normal
#! /bin/bash cd ~/.wine/drive_c/Program\ Files\ /CASIO/fx-CG\ Manager\ PLUS\ Subscription\ for\ fx-CG50series /bin/cp CPU73050.real.dll CPU73050.dll cd wine "C:\Program Files (x86)\CASIO\fx-CG Manager PLUS Subscription for fx-CG50series\fx-CG_Manager_PLUS_Subscription_for_fx-CG50series.exe" /n"fx-CG Manager PLUS Subscription for fx-CG50series" > /dev/null &
et casiodbg pour lancer en mode debug
#! /bin/bash cd ~/.wine/drive_c/Program\ Files\ /CASIO/fx-CG\ Manager\ PLUS\ Subscription\ for\ fx-CG50series /bin/cp CPU73050.dbg.dll CPU73050.dll cd wine "C:\Program Files (x86)\CASIO\fx-CG Manager PLUS Subscription for fx-CG50series\fx-CG_Manager_PLUS_Subscription_for_fx-CG50series.exe" /n"fx-CG Manager PLUS Subscription for fx-CG50series" > /dev/null &
casioemu, pour le mode debug taper
casiodbg sh3eb-elf-gdb target remote localhost:31188
Ou directement pour utiliser avec les infos de debug de emucas.elf
sh3eb-elf-gdb -i=mi -ex "target remote localhost:31188" emucas.elf
Pour mettre un point d’arret utiliser b ou hb (hbreak
(hardware break, nécessaire pour le premier point d’arrêt).