Xcas

Cet article est une ébauche concernant l’informatique, les mathématiques et un logiciel libre.

Vous pouvez partager vos connaissances en l’améliorant (comment ?) selon les recommandations des projets correspondants.

Xcas Description de l'image Xcaslogo.png. Description de l'image xcas.png. Informations
Développé par Bernard Parisse
Première version 2000
Dernière version 1.5.0 (décembre 2018)
Dépôt sourceforge.net/p/xcas/code/HEAD/tree
Écrit en C++
Système d'exploitation Linux, Microsoft Windows et macOS
Environnement Microsoft Windows, Linux, Mac OS X, FreeBSD
Type Calcul formel
Licence Licence publique générale GNU
Site web site officiel

Xcas (se prononce /ikskas/) est un logiciel libre et open source de calcul formel pour

Xcas est une interface de Giac, une bibliothèque C++ de calcul formel libre (licence GPL). Giac dispose d'un mode de compatibilité avec les logiciels comme Maple, Matlab, WolframAlpha , Python, Mathematica, MuPAD, Yacas, Qcas, WordMat (pour Microsoft Word), CPMP-Tools, ExpressionsinBar (64 bit app pour macOS), les calculatrices TI-89, TI-92, Voyage 200 et TI-Nspire. On peut donc utiliser Giac/Xcas aussi bien comme un logiciel gratuit compatible avec Maple, pour développer des algorithmes de calcul formel, ou l'utiliser dans un autre logiciel…

Xcas pour Firefox est une version de Xcas utilisable sans installation depuis un navigateur Web.

Xcas est intégré au complément CmathOOoCAS qui permet d'effectuer du calcul formel dans le tableur Calc et dans le traitement de textes Writer de la suite bureautique OpenOffice.org. Il est développé par Bernard Parisse et l'université Joseph-Fourier de Grenoble.

Giac/Xcas est la partie calcul formel du logiciel GeoGebra.

Giac/Xcas est porté sur certaines calculatrices sous le nom de KhiCAS:

Capacités

Voici un bref aperçu de ce que Xcas est capable de faire :

calcul de fraction sans dénominateur commun. Résolution d'équations différentielles avec Xcas.


Quelques exemples

Simulation de la chute d'un objet

On utilise les fonctions préprogrammées suivantes :

Trouver plus de commandes ici : http://www-fourier.ujf-grenoble.fr/~parisse/giac/cascmd_en.pdf

Premier modèle : Une chute sans frottement Première méthode : fonction qui retourne un nombre (la vitesse à l'impact)

On sait que la gravité terrestre nous fournit une accélération de 9,81 m s−2, donc il suffit de l'intégrer deux fois pour avoir la position.

À la ligne 6, on remplit L avec deux solutions : une négative et une positive. On ne prendra que la solution positive, qui se trouve être la deuxième (on utilisera l'indice 1, c'est-à-dire L (L'indice 0 étant la première solution)).

Code utilisé :

vitesse_chute_1_1(h):={ local a,v,x,L,temps_chute; a(t):=9.81; v:=unapply(int(a(t),t),t); x:=unapply(int(v(t),t),t); L:=solve(x(t)=h,t); temps_chute:=L retourne v(temps_chute); }:;

On a donc ici l'appel de la fonction :

vitesse_chute_1_1(9)

Qui renvoie :

13.2883407542

Qui est bien sûr la vitesse (en m s−1) que l'objet atteint au niveau du sol après une chute sans frottement d'une hauteur de 9 m.

Deuxième méthode : fonction qui retourne une phrase et un graphique

On garde la même structure que la fonction vitesse_chute_1_1, mais on ajoute une phrase et un graphique. On met un moins devant la vitesse et la position, car l'objet tombe vers le bas, qui est considéré négatif (l'altitude étant positive vers le haut).

Code utilisé :

vitesse_chute_1_2(h):={ local a,v,x,L,temps_chute; a(t):=9.81; v:=unapply(int(a(t),t),t); x:=unapply(int(v(t),t),t); L:=solve(x(t)=h,t); temps_chute:=L; title="Altitude et vitesse en fonction du temps"; plot(-x(t),t,0,temps_chute,couleur=2+line_width_6); plot(-v(t),t,0,temps_chute,couleur=1+line_width_6); retourne "Chute de "+string(h)+" mètres : Vitesse au niveau du sol après "+string(temps_chute)+" secondes de chute : "+string(v(temps_chute))+" m.s^(-1) = "+string(v(temps_chute)*3.6)+" km.h^(-1)"; }:;

On a donc l'appel de la fonction :

vitesse_chute_1_2(9)

Qui renvoie :

Renvoi

Ainsi qu'un graphique :

Vitesse (rouge) et position (vert) d'un objet faisant une chute de 9 mètres sans frottement (dans une gravité terrestre). Deuxième modèle : Une chute dans l'air avec frottement du type proportionnel (à la vitesse) : F f → = − k v → {\displaystyle {\overrightarrow {F_{f}}}=-k{\overrightarrow {v}}}

Cette fois ci, on prend en compte la force de frottement F f → = − k v → {\displaystyle {\overrightarrow {F_{f}}}=-k{\overrightarrow {v}}}  : les fonctions donnant la vitesse et la position ont été calculées manuellement, grâce au principe fondamental de la dynamique.

On trouve les fonctions (du temps) suivantes :

NB : On prend k = 12.4 {\displaystyle k=12.4} en supposant que m = 70 {\displaystyle m=70} et que la vitesse terminale (vitesse maximale lors de la chute) de cette masses est de 200 km h−1.

De plus, on ne met pas de moins devant la vitesse et la position, car le signe a déjà été pris en compte dans la réalisation des formules.

Code utilisé :

vitesse_chute_2(h):={ local g,v,x,L,temps_chute; g:=9.81:; k:=12.4; m:=70:; v:=unapply((m*g)/k*(exp((-t)*(k/m))-1),t); x:=unapply(g*(m/k)^2*(1-e^((-t)*(k/m)))-(m*g*t)/k,t):; L:=solve(x(t)=-h,t) temps_chute:=L; title="Chute de 70 kg de 9 mètre : altitude (vert) et vitesse (rouge) en fonction du temps : (épais = sans frottement ; fin = avec frottements)"; plot(v(t),t,0,temps_chute,couleur=1); plot(x(t),t,0,temps_chute,couleur=2); retourne 0; }:;

On a donc l'appel de la fonction :

vitesse_chute_2(9)

Qui renvoie :

0

(Qui est juste présent pour vérifier que la fonction a été lue jusqu'au bout.)

Ainsi qu'un graphique :

Vitesse (rouge) et position (vert) d'un objet faisant une chute de 9 mètres avec frottement proportionnel à la vitesse (dans une gravité terrestre). Superposition des deux modèles Vitesse (rouge) et position (vert) d'un objet de 70 kg faisant une chute de 9 mètres avec (trais fins) et sans (trais épais) frottement proportionnel à la vitesse, ceci dans une gravité terrestre.

On constate que les deux graphiques (avec et sans frottement) sont effectivement différents ; l'accélération n'est pas constante dans le cas du frottement : la vitesse (rouge) tend à se stabiliser (pour devenir horizontale).

Notes et références

  1. « Berkeley Madonna alternatives », sur getalternative.net (consulté le 20 avril 2020)
  2. (en) « COMPARISON OF OPEN SOURCE SOFTWARES INMATHEMATICS EDUCATION » (consulté le 28 mars 2020)
  3. « Installing Xcas », sur www-fourier.ujf-grenoble.fr (consulté le 14 novembre 2021)
  4. « Xcas Calcul Formel Lycee | Intégral | Variable (Mathématiques) », sur Scribd (consulté le 20 octobre 2019)
  5. « Freeware and Open Source Software Tools for Distance Learning in Mathematics »
  6. (da) « Xcas Pad – Apps i Google Play », sur play.google.com (consulté le 14 novembre 2021)
  7. « Xcas en ligne », sur www.xcasenligne.fr (consulté le 4 janvier 2022)
  8. « Giac/Xcas | Further edu and research Dev PLUME », sur www.projet-plume.org (consulté le 27 mars 2020)
  9. (en-US) « Systeme | » (consulté le 8 janvier 2020)
  10. « Differences between Expected Answers and the Answers Offered by Computer Algebra Systems to School Mathematics Equations »
  11. « ExpressionsinBar »
  12. « Xcas - Mathematical software - swMATH », sur swmath.org (consulté le 21 décembre 2019)
  13. (en) « Bernard Parisse - "GIAC/XCAS and PARI/GP" » (consulté le 27 mars 2020)
  14. « About: Xcas », sur dbpedia.org (consulté le 21 décembre 2019)
  15. « Download Limit Exceeded », sur citeseerx.ist.psu.edu (consulté le 21 décembre 2019)
  16. « Integration and Differential Equations »

Liens externes