Le "pretty print" des logiciels de calcul formel

Transcription

Le "pretty print" des logiciels de calcul formel
Le "pretty print" des logiciels de calcul formel
Extract of Les nouvelles technologies pour l'enseignement des mathématiques
http://revue.sesamath.net/spip.php?article294
Le "pretty print" des logiciels
de calcul formel
- N°22 - Novembre 2010 -
Publication date: samedi 9 octobre 2010
Description:
Lorsqu'on utilise un logiciel de calcul formel pour additionner deux fractions, on espère que la somme soit écrite correctement. Or ce n'est pas le rôle du logiciel
de calcul formel...
Copyright © Les nouvelles technologies pour l'enseignement des
mathématiques - Tous droits réservés
Copyright © Les nouvelles technologies pour l'enseignement des mathématiques
Page 1/13
Le "pretty print" des logiciels de calcul formel
Cet article peut s'inscrire dans l'appel à contribution n° 2. Il est une sorte de préalable à l'usage
pédagogique des systèmes de calcul formel, en levant l'hypothèque d'écritures algébriques
difficilement lisibles ....
Articles du même auteur
Une tâche qu'on espère voir effectuée correctement par un logiciel de calcul formel digne de ce nom, c'est le calcul
d'une primitive de $x^4+x^3+x^2+x+1$. Mais une fois calculé, on doit s'attendre à un affichage comme
x^5/5+x^4/4+x^3/3+x^2/2+x
(dans le cas présent, fait par WxMaxima). En raison des difficultés éprouvées par les élèves (et leur prof, il faut bien
l'avouer) pour la lecture d'expressions écrites "en ligne", et par souci de cohérence avec l'exigence dont on fait
preuve lorsqu'on corrige leurs copies manuscrites, on souhaite que cet affichage soit fait dans les "règles de l'art",
avec notamment les contraintes suivantes :
•
•
•
•
•
Les traits de fraction doivent être horizontaux ;
On voudrait éviter l'étoile "*" pour noter la multiplication, mais aussi la lettre "x" ;
Les puissances devraient s'écrire avec la notation "exposant" et pas avec un chapeau ;
Le trait horizontal de la racine carrée doit recouvrir toute l'expression dont on veut la racine, car ce trait
représente une paire de parenthèses ($\sqrt{1+2\sqrt{2}}$ au lieu de $\sqrt{}1+2\sqrt{2}$) ;
etc (vecteurs avec des flèches à la place du point du "i" et pas par-dessus celui-ci : $\vec{\imath}$ au lieu de
$\vec{i}$)
Pour cela, il faut non seulement afficher le résultat du calcul formel, mais l'afficher proprement, ce qui en anglais
s'appelle "pretty print". On va donc ci-dessous chercher un moyen d'utiliser les fonctionnalités de "pretty print"
présentes dans certains logiciels de calcul formel, mais aussi de les améliorer. Le logiciel qui permet ces miracles est
TeXMacs. En effet ce logiciel (initialement un traitement de texte) peut être utilisé comme un shell (informatique)
pour ces logiciels de calcul formel en communicant avec eux par le langage LaTeX.
Un exemple de "pretty print" à l'ancienne (Yacas, Maxima) pour l'exemple ci-dessus est celui-ci :
5
4
3
2
x
x
x
x
---+---+---+---+x+1
5
4
3
2
L'effet est bien plus comique qu'avec l'export LaTeX, qui, avec l'exemple précédent sous WxMaxima, donne
$$\frac{{x}^{5}}{5}+\frac{{x}^{4}}{4}+\frac{{x}^{3}}{3}+\frac{{x}^{2}}{2}+x$$
La plupart des logiciels de calcul formel possèdent une fonctionnalité d'export en LaTeX. Et TeXMacs, lui, peut
importer du LaTeX. Alors une fois TeXMacs démarré, il suffit de cliquer sur l'icône représentant un ordinateur pour
avoir la liste des logiciels qu'on peut lancer depuis TeXMacs (au sein de celui-ci) :
Copyright © Les nouvelles technologies pour l'enseignement des mathématiques
Page 2/13
Le "pretty print" des logiciels de calcul formel
La liste exacte dépend de la machine, en particulier des logiciels que TeXMacs a pu trouver lors de son installation (il
n'y a d'ailleurs pas que des logiciels de calcul formel : Ci-dessus on voit les langages de programmation Scheme et
Python (langage), les logiciels graphiques Asymptote, DrGeo - ce dernier un logiciel de géométrie dynamique -,
GnuPlot et GraphViz -logiciel servant à tracer des graphes)...
Pour illustrer l'intérêt du bel affichage des sorties des "CAS" (acronyme anglais pour "logiciel de calcul formel") on va
leur demander (sauf exception) de calculer les valeurs exactes des cosinus et sinus de 9° (ou $\frac{\pi}{20}$) qu'on
peut obtenir par des constructions itérées de bissectrices, ce qui signifie que ces nombres sont algébriques.
Xcas
Le logiciel Xcas est en fait une interface pour giac, un logiciel de calcul formel [1] et possède son propre PrettyPrint.
Voici la sortie qu'Xcas donne au problème :
Copyright © Les nouvelles technologies pour l'enseignement des mathématiques
Page 3/13
Le "pretty print" des logiciels de calcul formel
et voici la même séance, réalisée sous TeXMacs (sous le nom de giac comme on l'a vu ci-dessus) :
On constate la présence, dans les deux cas, de parenthèses inutiles, mais l'affichage donné par TeXMacs est
meilleur. Cependant, Xcas exporte au format LaTeX et à l'impression, les deux méthodes donnent la même qualité, à
savoir celle de LaTeX.
++++
Yacas
Yacas s'utilise en mode console, entièrement au clavier, mais sa version Java appelée MathRider est multicolore,
comme le montre la copie d'écran ci-dessous. On voit que sur cet exemple, Yacas (ou MathRider) effectue juste des
réécritures, et que l'équivalent du PrettyPrint (appelé "PrettyForm" dans le langage d'Yacas) est plutôt comique :
Copyright © Les nouvelles technologies pour l'enseignement des mathématiques
Page 4/13
Le "pretty print" des logiciels de calcul formel
Ceci dit, là encore, Yacas peut exporter en LaTeX (avec TeXForm ci-dessus) non seulement vers d'autres logiciels,
mais aussi vers d'autres composantes de MathRider comme HotEqn (onglet du bas de la figure ci-dessus) ou
GeoGebra (à droite ci-dessus, en rouge).
Tout cela n'est plus nécessaire avec TeXMacs :
Copyright © Les nouvelles technologies pour l'enseignement des mathématiques
Page 5/13
Le "pretty print" des logiciels de calcul formel
L'absence de parenthèses superflues fait que les formules ci-dessus sont plus jolies avec Yacas qu'avec Xcas, mais
en ce qui concerne le calcul formel, Xcas est énormement plus puissant que Yacas...
++++
Maxima
Le PrettyPrint de WxMaxima est sans doute le plus abouti de ce comparatif ; on peut en effet y paramétrer les
polices de caractères et la couleur de chaque composant selon son goût...
Voilà ce que ça donne avec un réglage un peu extrême :
Copyright © Les nouvelles technologies pour l'enseignement des mathématiques
Page 6/13
Le "pretty print" des logiciels de calcul formel
Et la version TeXMacs est presque moins bonne :
Copyright © Les nouvelles technologies pour l'enseignement des mathématiques
Page 7/13
Le "pretty print" des logiciels de calcul formel
Comme dans les deux onglets précédents, Maxima peut exporter en LaTeX ce qui a d'ailleurs servi à l'écriture du
début de cet article.
++++
Axiom
Axiom, quelque peu réservé au monde d'UNIX, est sans conteste le plus puissant des logiciels de calcul formel de ce
comparatif. D'ailleurs ce n'est pas vraiment un logiciel de calcul formel : Dans son fonctionnement, il ressemble un
peu à un langage fonctionnel comme Objective CamL, et donne systématiquement le "type" des calculs qu'on lui
demande. Logiciel en console, il simplifie automatiquement les expressions qu'on lui demande de calculer, mais son
PrettyPrint est assez comique lui aussi (voir pour comparer, celui de l'onglet "Yacas") :
Copyright © Les nouvelles technologies pour l'enseignement des mathématiques
Page 8/13
Le "pretty print" des logiciels de calcul formel
C'est là que TeXMacs prend tout son intérêt :
Copyright © Les nouvelles technologies pour l'enseignement des mathématiques
Page 9/13
Le "pretty print" des logiciels de calcul formel
On approche tout de même de la perfection... Ceci dit, la convivialité d'Axiom n'est pas comparable à celles d'Xcas et
WxMaxima avec leurs menus à explorer, et sa puissance est source de complexité : Ce n'est vraisemblablement pas
le meilleur outil pour débuter en calcul formel. Pour de la préparation de documents, les enjeux ne sont pas les
mêmes...
++++
Pari
En fait Pari n'est généralement pas décrit comme un logiciel de calcul formel mais plutôt comme une calculatrice de
très haute précision. Son succès s'explique en grande partie par l'existence d'un langage de programmation qui
exploite cette grande précision, et qui est "algorithmiquement correct". Pari est également doté d'une calculatrice
(avec du calcul formel aussi, tout de même) en console, appelée gp, légère et rapide. À l'usage, ce logiciel est
réellement impressionnant de par sa légèreté et sa puissance simultanées.
Ceci dit les fonctionnalités de calcul formel de Pari/gp ne lui permettent pas de simplifier des racines carrées de
racines carrées, alors ici on va le tester sur du calcul matriciel, en
•
•
•
•
•
entrant une matrice A ;
demandant son polynôme caractéristique
calculant de façon approchée ses valeurs propres
l'inversant,
puis calculant sa puissance vingtième.
La séance sous gp ressemble à ceci :
Copyright © Les nouvelles technologies pour l'enseignement des mathématiques
Page 10/13
Le "pretty print" des logiciels de calcul formel
On reconnaît les matrices mais bon ...
La séance sous TeXMacs montre mieux les matrices :
++++
Copyright © Les nouvelles technologies pour l'enseignement des mathématiques
Page 11/13
Le "pretty print" des logiciels de calcul formel
SciLab
Même avec SciLab qui n'est pourtant pas un logiciel de calcul formel, le Pretty Print peut être utile, par exemple avec
l'affichage de matrices (c'est dans ce domaine que SciLab est spécialisé). Comme dans l'onglet précédent, on va
entrer une matrice, puis calculer son inverse et sa puissance vingtième.
D'abord sous la console SciLab :
Puis la version TeXMacs :
Copyright © Les nouvelles technologies pour l'enseignement des mathématiques
Page 12/13
Le "pretty print" des logiciels de calcul formel
C'est surtout pour l'affichage de $A^{20}$ que la version TeXMacs est la plus lisible !
Conclusion :
En réalité l'acronyme CAS ne signifie pas Computer Algebra Software mais Computer Algebra System, un CAS
n'étant pas réellement un logiciel mais plutôt un "système", en l'occurence une bibliothèque d'algorithmes spécialisés
dans le calcul formel. Le logiciel qu'on utilise est en fait un serveur, qui attend des questions et fournit les réponses.
Or
•
•
•
Il n'y a aucune raison qu'une bibliothèque ne contienne que les meilleurs livres, si on veut être exhaustif, on
peut avoir intérêt à consulter plusieurs bibliothèques (par exemple, Pari-gp est excellent en courbes elliptiques,
Axiom et Xcas sont excellents en intégrales indéfinies grâce à l'algorithme de Risch, ...)
Il n'y a aucune raison non plus qu'un bon programmeur en CAS soit aussi particulièrement doué en interface, et
le meilleur serveur ne correspond pas forcément au CAS le plus puissant.
Enfin le Pretty Print le meilleur semble être celui qui passe par l'extérieur, via LaTeX.
Pour ces raisons, l'utilisation de TeXMacs comme interface pour tous ces CAS est particulièrement intéressante,
notamment en terme de qulité de l'affichage, et de faciliter à récupérer par écrit le résultat (export en pdf par
exemple). Ceci dit on perd l'aisance à naviguer dans l'aide en ligne, ce qui jusqu'à ce qu'on soit expert en CAS,
diminue quelque peu les performances...
[1] en fait il y a aussi Pari dans Xcas, ce qui fait de lui un logiciel bimoteur, puisqu'il a deux moteurs de calcul formel... Ceci dit, Euler Math Toolbox
, bien que ce ne soit pas un logiciel de calcul formel, est lui aussi bimoteur puisqu'il incorpore à la fois Yacas et Maxima.
Copyright © Les nouvelles technologies pour l'enseignement des mathématiques
Page 13/13