Eigenmath
![]() Logo de Eigenmath | |
![]() Screenshot du portage sur Prizm | |
Auteur | Gbl08ma |
Souvent mis à jour | En développement |
Langage de programmation | C / C++ |
Genre | Calcul Formel / CAS |
Plateforme | Casio Prizm (FxCg10-20) |
Site web | Site de l'auteur |
Eigenmath est un logiciel libre de calcul formel (ou symbolique) développé à partir de 2002 pour PC. Il a fait l'objet de nombreux portages, jusqu'à être adapté sur la console Nintendo DS par exemple.
Il est également 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.
Sommaire
Description de l'interface
L'interface est relativement simple et surtout, bien intégrée au système : ainsi, l'usage et l'utilisation des menus et touches ne différera que peu des applications implémentées par Casio (comme Exe-Mat par exemple). On trouvera donc une zone principale de saisie, comme on pourrait trouver dans Exe-Mat, ainsi qu'un barre d'onglets en bas de l'écran. La version actuelle (Beta 7 à l'heure où l'article est rédigé) compte 5 onglets accessibles grâce aux touches [F1] à [F6] ([F4] n'étant affectée à aucun menu pour l'instant, et effacera la ligne que vous êtes en train d'écrire).
Le premier onglet, Catalog, ouvre un menu permettant d'accéder à l'ensemble des fonctions proposées par Eigenmath.
L'onglet Load permet d'afficher un explorateur de fichiers vous permettant de sélectionner un script (sous forme de fichier texte) à exécuter.
Clear permet d'effacer la console de saisie, ainsi que de supprimer les différentes attributions littérales (du type f(x) = x^2 ou encore A = 5).
L'onglet "A <=> a" permet de choisir d'écrire le prochain caractère en minuscule (ou si le mode de saisie alphabétique est choisi, d'écrire en minuscule jusqu'à une nouvelle pression sur [F5]) et "G <=> T" permet de naviguer entre le mode de saisie et le mode de représentation graphique.
Concepts du calcul formel
L’intérêt d'un logiciel de calcul formel (ou symbolique) est que ce dernier est capable de traiter non seulement des expressions numériques, mais aussi des expressions algébriques. En effet, le système est par exemple capable de considérer comme une valeur numérique si l'utilisateur le définit explicitement grâce au symbole "=" comme une valeur numérique :
n=12^3
mais il pourra également considérer comme une variable algébrique si on ne lui attribue aucune valeur numérique.
Un petit exemple pour mieux comprendre : définissons la fonction
> f(x) = sin(x)/x
Soit ensuite une variable algébrique quelconque. Si on cherche
> f(n)
Le programme nous répondra par . Affectons maintenant la valeur
à
, puis cherchons de nouveau
.
> n = pi/6
> f(n)
Cette fois ci, la réponse du programme sera . En effet, cette fois ci,
a été considérée comme une valeur numérique : le programme a donc procédé au calcul en prenant cette valeur en compte, contrairement au premier calcul où
a été conservé comme nous l'aurions fait dans un calcul à la main.
Un logiciel de calcul formel vous permettra donc de manipuler des "objets" mathématiques que ce soit pour des opérations algébriques "simples" (quelques exemples de manipulation "simples" mais permettant de bien comprendre divers aspects basiques du logiciel seront détaillés en annexe plus tard :) ), ou pour la mise en œuvre d'opérations plus avancées (calculs de primitives, ou manipulation de nombres complexes par exemple...).
Description des fonctions
Même s'il est possible de taper l'alias des fonctions caractère par caractère, il est bien plus rapide d'y accéder par le menu Catalog (en appuyant sur [F1]). Là encore, il est possible d'accéder à l'ensemble des fonctions en choisissant le sous-menu All. Il est plus rapide, une fois l'interface maîtrisée, de passer par les "catégories" de fonctions.
Complex Number (Nombres Complexes)
Arg(z)
renvoie l'argument du nombre complexe
, donc un angle en radians.
> arg(1+i)retournera

Clock(z)
retourne la "clock form" (?).
On a Échec d'analyse (fonction inconnue « \lvert »): clock(z) = \lvert z \rvert*(-1)^\frac{arg(z)}{pi}
Conj(z)
retourne le conjugué du nombre complexe
, aussi noté
> conj(7+2i)retournera

Imag(z)
retourne le coefficient de la partie imaginaire du nombre complexe
. L'opération correspond à
> imag(4-8i)retournera

Mag(z)
retourne le module du nombre complexe
soit Échec d'analyse (fonction inconnue « \lvert »): mag(z) = \lvert z \rvert
.
> mag(1+i)retournera


Polar(z)
retourne la forme polaire du nombre complexe
noté sous forme cartésienne algébrique (i.e. écrit comme
avec
et
réels).
polar(2+2i)retournera


Real(z)
retourne la partie réelle du nombre complexe
> real(4+6i)retournera

Rect(z)
retourne le nombre complexe
noté en coordonnées polaires sous sa forme cartésienne algébrique (i.e. écrit comme
avec
et
réels).
> rect(exp((i*pi)/4)) * 2sqrt(2)retournera

Linear Algebra (Algèbre linéaire)
Abs(x)
retourne la valeur absolue de
.
> abs(-4x)retournera

Adj(m)
retourne la comatrice de la matrice carrée
.
> adj(((7,x),(8,4y)))retournera

Coeff(p, x, n)
retourne le coefficient de
dans le polynôme
.
> coeff(14x^4-8x^2-7,x,2)retournera

Cofactor(m, i, j)
retourne l'élément
de la matrice
, matrice des cofacteurs de la matrice carrée
> cofactor(((1,2),(3,4)),2,1)retournera

Contract(a, i, j)
retourne la trace de la matrice carrée
si
et
sont omis (
et
sont alors respectivement remplacés par
et
).
> contract((a,b),(c,d))retournera

//A faire : généraliser la définition.
Cross(u, v)
retourne le produit vectoriel de
et
, vecteurs de dimension 3.
> cross((2,1,x),(5,x,2))retournera

Curl(x)
retourne le rotationnel du champ de vecteurs
de dimension 3.
Det(m)
retourne le déterminant de la matrice
.
> det((1,2),(3,x))retournera
