Eigenmath

De Casio Universal Wiki
Révision datée du 6 mai 2017 à 22:52 par Nemhardy (discussion | contributions) (Reprise de l'article.)
Aller à : navigation, rechercher
Eigenmath
Eigenmath logo.png
Logo de Eigenmath
Eigenmath screenshot.png
Screenshot du portage sur Prizm
AuteurGbl08ma
Souvent mis à jourEn développement à cadence réduite
Langage de programmationC / C++
GenreCalcul Formel / CAS
PlateformeCasio Prizm et Graph 75/85/95
Site webVersion Prizm et Version Graph


Eigenmath est un logiciel libre de calcul formel (ou symbolique) développé à partir de 2002 pour PC. Codé en C++ et léger, il a fait l'objet de nombreux portages sur diverses plateformes. Il est notamment disponible pour les calculatrices Prizm, suite au travail de Gbl08ma et constitue le premier (et actuellement le seul) add-in de calcul formel pour cette calculatrice, ainsi que sur Graph 75/85/95 suite au travail de la communauté CnCalc et Planète-Casio.

Interface et fonctionnement

Prizm

Une description exhaustive et à jour des particularités du portage sur Prizm est disponible à cette adresse, en anglais cependant.

Graph 75/85/95

À l'heure de l'écriture de l'article, le programme s'organise d'une manière similaire à l'application Run-Mat de Casio, c'est à dire organisé autour d'une zone centrale de saisie, et d'affichage des résultats. La saisie se fait de manière «linéaire». Le clavier de la machine se comporte au maximum comme dans les applications natives de Casio, les fonctions usuelles (opérateurs, fonctions trigonométriques, etc) et caractères alpha-numériques étant disponibles avec les mêmes combinaisons de touches. Par défaut, les résultats complexes sont affichés en utilisant un moteur de rendu en écriture, mais leur affichage n'est pas encore intégré dans la console. Il faudra alors se positionner sur la ligne correspondant au résultat souhaité, où apparaîtra alors : «Pretty print», et presser [EXE] pour qu'un fenêtre s'ouvre permettant de visualiser le résultat. Si celui ci est trop grand pour être affiché dans l'écran, il sera possible de se déplacer grâce aux flèches. Il est possible de désactiver ce mode de visualisation, pour retrouver des résultats sous forme «linéaire» intégrés à la console en décochant l'option «pretty print» dans le menu ([Shift] + [Menu], puis [EXE] sur l'option), réglage qui sera sauvegardé. L'historique de la console conserve les 50 dernières lignes. Il est possible de réutiliser une ligne déjà tapée en se rendant sur celle-ci, puis en saisissant [Shift] + [8], ce qui collera la ligne souhaitée dans la ligne courante d'entrée.

Pour une utilisation plus facile des fonctionnalités offertes par Eigenmath, six menus associés aux touches [F1] à [F6] sont disponibles par défaut et affichés en bas de l'écran. Pour accéder aux fonctions de chacun des menus, il suffit de presser la touche [F⋅] correspondante, de se déplacer sur la fonction souhaitée et de presser [EXE] ce qui l'ajoutera dans la ligne courante (on peut aussi directement presser le nombre correspondant à cette fonction lorsque le menu est affiché). Ces menus ne sont pas exhaustifs, et ne regroupent pas l'intégralité des fonctions disponibles dans Eigenmath. Il est cependant possible de les personnaliser pour qu'ils soient plus adapatés à une utilisation précise. En effet, au premier lancement d'Eigenmath, est crée un fichier FMENU.cfg à la racine de la mémoire de stockage contenant le menu affiché. Il suffit d'éditer ce fichier (soit directement sur la machine à l'aide d'un éditeur comme Edit par exemple, soit sur un ordinateur et en transférant le fichier sur la machine une fois celui-ci modifié) dont la syntaxe est assez explicite (prendre pour modèle celui par défaut). Au plus 7 entrées par catégorie sont utilisables.

Il est aussi possible de créer ses propres fonctions qui seront chargées au démarrage du programme en créant un fichier USER.eig à la racine de la mémoire de stockage. Ce fichier devra contenir, sur chaque ligne, le définition d'une fonction ou une affectation telle qu'elle serait effectuée en direct dans la zone de saisie. D'éventuelles erreurs (de syntaxe ou mathématiques par exemple) seront signalée au démarrage. Le fichier suivant permet, par exemple, d'affecteur au démarrage une valeur à Échec d'analyse (L’exécutable <code>texvc</code> est introuvable. Lisez math/README pour le configurer.): n et de définir la fonction sinus cardinal :

n = pi/2
sinc(x) = sin(x)/x

Le fonction sera par la suite disponible dans le programme ; on aura par exemple :

 > sinc(n)
2/pi

Variables spéciales

Par défaut, deux variables sont initialisées par Eigenmath, et il est souvent intéressant de ne pas les redéfinir pendant l'éxécution.

last

La variable last, accessible via la combinaison [Shift]+[(-)] pointe résultat de la dernière opération réussie, et permet donc d'utiliser ce résultat dans la prochaine opération.

i

La variable i, qui correspond, comme habituellement, à l'unité imaginaire, est défini au lancement du programme par :

 > i = sqrt(-1)


Description des fonctions

Sont décrites ici les fonctions disponibles dans Eigenmath. Si il est possible de taper le nom des fonctions caractère par caractère, souvent, elles sont accessibles plus simplement dans le programme via une combinaison de touche ou un menu. Lorsque c'est le cas, cela est précisé ici.

Nombres complexes

Opérations élémentaires

Argument
 > arg(z)

Calcule l'argument du nombre complexe Échec d'analyse (L’exécutable <code>texvc</code> est introuvable. Lisez math/README pour le configurer.): z

Prizm : menu Complex number du catalogue

Graph 75/85/95 : menu Cplx ([F3])


Conjugaison
 > conj(z)

Calcule le conjugué du nombre complexe Échec d'analyse (L’exécutable <code>texvc</code> est introuvable. Lisez math/README pour le configurer.): z

Prizm : menu Complex number du catalogue

Graph 75/85/95 : menu Cplx ([F3])


Partie imaginaire
 > imag(z)

Calcule la partie imaginaire du nombre complexe Échec d'analyse (L’exécutable <code>texvc</code> est introuvable. Lisez math/README pour le configurer.): z

Prizm : menu Complex number du catalogue

Graph 75/85/95 : menu Cplx ([F3])


Partie réelle
 > real(z)

Calcule la partie réelle du nombre complexe Échec d'analyse (L’exécutable <code>texvc</code> est introuvable. Lisez math/README pour le configurer.): z

Prizm : menu Complex number du catalogue

Graph 75/85/95 : menu Cplx ([F3])


Module
 > mag(z)

Calcule le module du nombre complexe Échec d'analyse (L’exécutable <code>texvc</code> est introuvable. Lisez math/README pour le configurer.): z

Prizm : menu Complex number du catalogue

Graph 75/85/95 : menu Cplx ([F3])


Changement de forme

Forme polaire
 > polar(z)

Donne la forme polaire du nombre complexe Échec d'analyse (L’exécutable <code>texvc</code> est introuvable. Lisez math/README pour le configurer.): z

Prizm : menu Complex number du catalogue

Graph 75/85/95 : menu Cplx ([F3])


Forme cartésienne
 > rect(z)

Donne le forme polaire du nombre complexe Échec d'analyse (L’exécutable <code>texvc</code> est introuvable. Lisez math/README pour le configurer.): z

Prizm : menu Complex number du catalogue

Graph 75/85/95 : menu Cplx ([F3])


Forme étrange
 > clock(z)

Donne la «clock form» du nombre complexe Échec d'analyse (L’exécutable <code>texvc</code> est introuvable. Lisez math/README pour le configurer.): z , c'est une sorte de forme polaire, mais basée sur -1 et non sur l'exponentielle ; je ne l'ai jamais vue ailleurs, et ne sais pas vraiment comment ça se nomme en français…

Prizm : menu Complex number du catalogue


Algèbre linéaire

Définir une matrice

Matrice identité
 > unit(n)

Renvoie la matrice identité de taille Échec d'analyse (L’exécutable <code>texvc</code> est introuvable. Lisez math/README pour le configurer.): n

Prizm : menu Linear algebra du catalogue


Matrice nulle
 > zero(i,j,…)

Renvoie la matrice nulle de taille Échec d'analyse (L’exécutable <code>texvc</code> est introuvable. Lisez math/README pour le configurer.): i \times j . Lorsque utilisée avec plus d'arguments, la fonction renvoie le tenseur nul de la dimension précisée.

Prizm : menu Linear algebra du catalogue


Matrice de Hilbert
 > hilbert(n)

Renvoie la matrice de Hilbert d'ordre Échec d'analyse (L’exécutable <code>texvc</code> est introuvable. Lisez math/README pour le configurer.): n .

Prizm : menu Linear algebra du catalogue

Graph 75/85/95 : menu alge ([F4])


De manière général, on utilise la syntaxe suivante pour définir une matrice :

 > M = ((1,2,3),(4,5,6))

On a ainsi défini la matrice Échec d'analyse (L’exécutable <code>texvc</code> est introuvable. Lisez math/README pour le configurer.): M = \begin{pmatrix} 1 & 2 & 3\\ 4 & 5 & 6\\ \end{pmatrix}

Définir un vecteur

On définit un vecteur avec la syntaxe suivante :

 > x = (a,b,c,…)

Opérations sur les matrices

Comatrice
 > adj(M)

Renvoie la comatrice de la matrice carrée Échec d'analyse (L’exécutable <code>texvc</code> est introuvable. Lisez math/README pour le configurer.): M .

Prizm : menu Linear algebra du catalogue

Graph 75/85/95 : menu alge ([F4])


Cofacteur
 > cofactor(M,i,j)

Retourne le cofacteur Échec d'analyse (L’exécutable <code>texvc</code> est introuvable. Lisez math/README pour le configurer.): \delta_{i,j} de la matrice carrée <math>M .

Prizm : menu Linear algebra du catalogue


Trace
 > contract(M)

Retourne la trace de la matrice carrée Échec d'analyse (L’exécutable <code>texvc</code> est introuvable. Lisez math/README pour le configurer.): M . Plus généralement, si Échec d'analyse (L’exécutable <code>texvc</code> est introuvable. Lisez math/README pour le configurer.): M est un tenseur, il est possible de préciser, en arguments supplémentaires, les composantes sur lesquelles sommer (sur les matrices, les arguments supplémentaires sont donc, par défaut, égaux à 1 et 2)

Prizm : menu Linear algebra du catalogue

Graph 75/85/95 : menu alge ([F4])


Déterminant
 > det(M)

Calcule le déterminant de la matrice carrée Échec d'analyse (L’exécutable <code>texvc</code> est introuvable. Lisez math/README pour le configurer.): M .

Prizm : menu Linear algebra du catalogue

Graph 75/85/95 : menu alge ([F4])


Dimension
 > dim(M,n)

Retourne la dimension de Échec d'analyse (L’exécutable <code>texvc</code> est introuvable. Lisez math/README pour le configurer.): M selon la n-ème composante (1 pour le nombre de ligne, 2 pour les colonnes ; se généralise aux tenseurs).

Prizm : menu Linear algebra du catalogue


Valeurs propres
 > eigenval(M)

Retourne les valeurs propres de Échec d'analyse (L’exécutable <code>texvc</code> est introuvable. Lisez math/README pour le configurer.): M .

Prizm : menu Linear algebra du catalogue


Vecteurs propres
 > eigenvec(M)

Retourne les vecteurs propres de Échec d'analyse (L’exécutable <code>texvc</code> est introuvable. Lisez math/README pour le configurer.): M .

Prizm : menu Linear algebra du catalogue


Valeurs et vecteurs propres
 > eigen(M)

Stocke les valeurs propres de Échec d'analyse (L’exécutable <code>texvc</code> est introuvable. Lisez math/README pour le configurer.): M sur la diagonale de la matrice Échec d'analyse (L’exécutable <code>texvc</code> est introuvable. Lisez math/README pour le configurer.): D et les vecteurs propres de Échec d'analyse (L’exécutable <code>texvc</code> est introuvable. Lisez math/README pour le configurer.): M dans les colonnes de la matrice Échec d'analyse (L’exécutable <code>texvc</code> est introuvable. Lisez math/README pour le configurer.): Q (où Échec d'analyse (L’exécutable <code>texvc</code> est introuvable. Lisez math/README pour le configurer.): D et Échec d'analyse (L’exécutable <code>texvc</code> est introuvable. Lisez math/README pour le configurer.): Q sont les matrices désignées par les symboles D et Q dans Eigenmath)

Prizm : menu Linear algebra du catalogue


Inverse
 > inv(M)

Retourne la matrice inverse de Échec d'analyse (L’exécutable <code>texvc</code> est introuvable. Lisez math/README pour le configurer.): M .

Prizm : menu Linear algebra du catalogue

Graph 75/85/95 : menu alge ([F4])


Rang
 > rank(M)

Calcule le rang de la matrice Échec d'analyse (L’exécutable <code>texvc</code> est introuvable. Lisez math/README pour le configurer.): M . (Plus généralement, s'adapte aux tenseurs)

Prizm : menu Linear algebra du catalogue


Produit dyadique
 > outer(A,B)

Calcule le produit dyadique de Échec d'analyse (L’exécutable <code>texvc</code> est introuvable. Lisez math/README pour le configurer.): A et de Échec d'analyse (L’exécutable <code>texvc</code> est introuvable. Lisez math/README pour le configurer.): B .

Prizm : menu Linear algebra du catalogue


Transposition
 > transpose(M)

Renvoie la matrice transposée de Échec d'analyse (L’exécutable <code>texvc</code> est introuvable. Lisez math/README pour le configurer.): M . S'adapte aux tenseurs si sont précisées en plus les composantes sur lesquelles transposer.

Prizm : menu Linear algebra du catalogue

Opérations sur les vecteurs

Produit scalaire
 > dot(x,y)

Calcule le produit scalaire de Échec d'analyse (L’exécutable <code>texvc</code> est introuvable. Lisez math/README pour le configurer.): x par Échec d'analyse (L’exécutable <code>texvc</code> est introuvable. Lisez math/README pour le configurer.): y . S'adapte plus généralements aux tenseurs et donc aux matrices.

Prizm : menu Linear algebra du catalogue


Produit vectoriel
 > cross(x,y)

Calcule le produit vectoriel de Échec d'analyse (L’exécutable <code>texvc</code> est introuvable. Lisez math/README pour le configurer.): x par Échec d'analyse (L’exécutable <code>texvc</code> est introuvable. Lisez math/README pour le configurer.): y , vecteurs de dimension 3.

Prizm : menu Linear algebra du catalogue


Rotationnel
 > curl(x)

Calcule le rotationnel du vecteur Échec d'analyse (L’exécutable <code>texvc</code> est introuvable. Lisez math/README pour le configurer.): x de dimension 3

Prizm : menu Linear algebra du catalogue

Graph 75/85/95 : menu 'alge' ([F4])