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 Échec d'analyse (L’exécutable <code>texvc</code> est introuvable. Lisez math/README pour le configurer.): n 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 Échec d'analyse (L’exécutable <code>texvc</code> est introuvable. Lisez math/README pour le configurer.): n
comme une variable algébrique si on ne lui attribue aucune valeur numérique.
Un petit exemple pour mieux comprendre : définissons la fonction Échec d'analyse (L’exécutable <code>texvc</code> est introuvable. Lisez math/README pour le configurer.): f(x) = \frac{sin(x)}{x}
> f(x) = sin(x)/x
Soit ensuite Échec d'analyse (L’exécutable <code>texvc</code> est introuvable. Lisez math/README pour le configurer.): n une variable algébrique quelconque. Si on cherche
> f(n)
Le programme nous répondra par Échec d'analyse (L’exécutable <code>texvc</code> est introuvable. Lisez math/README pour le configurer.): \frac{sin(n)}{n} . Affectons maintenant la valeur Échec d'analyse (L’exécutable <code>texvc</code> est introuvable. Lisez math/README pour le configurer.): \frac{\pi}{6} à Échec d'analyse (L’exécutable <code>texvc</code> est introuvable. Lisez math/README pour le configurer.): n , puis cherchons de nouveau Échec d'analyse (L’exécutable <code>texvc</code> est introuvable. Lisez math/README pour le configurer.): f(n) .
> n = pi/6
> f(n)
Cette fois ci, la réponse du programme sera Échec d'analyse (L’exécutable <code>texvc</code> est introuvable. Lisez math/README pour le configurer.): \frac{3}{\pi}
. En effet, cette fois ci, Échec d'analyse (L’exécutable <code>texvc</code> est introuvable. Lisez math/README pour le configurer.): n
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ù Échec d'analyse (L’exécutable <code>texvc</code> est introuvable. Lisez math/README pour le configurer.): n
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 manipulations 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, s'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 naviguer en utilisant les "catégories" de fonctions.
Complex Number (Nombres Complexes)
Dans cette partie, nous aurons notamment besoin de travailler avec la variable i, représentant le nombre imaginaire du même nom. Elle est accessible grâce à la combinaison [Shift] + [0]. La variable i est en fait simplement définie au lancement du programme (ou après une exécution de Clear) ainsi :
> i = sqrt(-1)
Ainsi il est possible de redéfinir la valeur de i en fonction des besoins (cela reste néanmoins peu recommandé et utile), mais il est aussi conseillé d'effectuer un Clear avant de commencer à travailler avec les nombres complexes, car même si il est peu probable que la variable i ait été modifiée, cela reste possible.
Arg(z)
Échec d'analyse (L’exécutable <code>texvc</code> est introuvable. Lisez math/README pour le configurer.): arg(z) renvoie l'argument du nombre complexe Échec d'analyse (L’exécutable <code>texvc</code> est introuvable. Lisez math/README pour le configurer.): z , donc un angle en radians.
Exemple :> arg(1+i)retournera Échec d'analyse (L’exécutable <code>texvc</code> est introuvable. Lisez math/README pour le configurer.): \frac{1}{4}\pi
Clock(z)
Échec d'analyse (L’exécutable <code>texvc</code> est introuvable. Lisez math/README pour le configurer.): clock(z)
retourne la "clock form" (?).
On a Échec d'analyse (L’exécutable <code>texvc</code> est introuvable. Lisez math/README pour le configurer.): clock(z) = \left| z \right|*(-1)^\frac{arg(z)}{pi}
Conj(z)
Échec d'analyse (L’exécutable <code>texvc</code> est introuvable. Lisez math/README pour le configurer.): conj(z) retourne le conjugué du nombre complexe Échec d'analyse (L’exécutable <code>texvc</code> est introuvable. Lisez math/README pour le configurer.): z , aussi noté Échec d'analyse (L’exécutable <code>texvc</code> est introuvable. Lisez math/README pour le configurer.): \bar z
Exemple :> conj(7+2i)retournera Échec d'analyse (L’exécutable <code>texvc</code> est introuvable. Lisez math/README pour le configurer.): 7-2i
Imag(z)
Échec d'analyse (L’exécutable <code>texvc</code> est introuvable. Lisez math/README pour le configurer.): imag(z) retourne le coefficient de la partie imaginaire du nombre complexe Échec d'analyse (L’exécutable <code>texvc</code> est introuvable. Lisez math/README pour le configurer.): z . L'opération correspond à Échec d'analyse (L’exécutable <code>texvc</code> est introuvable. Lisez math/README pour le configurer.): Im(z)
Exemple :> imag(4-8i)retournera Échec d'analyse (L’exécutable <code>texvc</code> est introuvable. Lisez math/README pour le configurer.): -8
Mag(z)
Échec d'analyse (L’exécutable <code>texvc</code> est introuvable. Lisez math/README pour le configurer.): mag(z) retourne le module du nombre complexe Échec d'analyse (L’exécutable <code>texvc</code> est introuvable. Lisez math/README pour le configurer.): z soit Échec d'analyse (L’exécutable <code>texvc</code> est introuvable. Lisez math/README pour le configurer.): mag(z) = \left| z \right| .
Exemple :> mag(1+i)retournera Échec d'analyse (L’exécutable <code>texvc</code> est introuvable. Lisez math/README pour le configurer.): 2^\frac{1}{2} soit Échec d'analyse (L’exécutable <code>texvc</code> est introuvable. Lisez math/README pour le configurer.): \sqrt{2}
Polar(z)
Échec d'analyse (L’exécutable <code>texvc</code> est introuvable. Lisez math/README pour le configurer.): polar(z) retourne la forme polaire du nombre complexe Échec d'analyse (L’exécutable <code>texvc</code> est introuvable. Lisez math/README pour le configurer.): z noté sous forme cartésienne algébrique (i.e. écrit comme Échec d'analyse (L’exécutable <code>texvc</code> est introuvable. Lisez math/README pour le configurer.): z = a+bi avec Échec d'analyse (L’exécutable <code>texvc</code> est introuvable. Lisez math/README pour le configurer.): a et Échec d'analyse (L’exécutable <code>texvc</code> est introuvable. Lisez math/README pour le configurer.): b réels).
Exemple :polar(2+2i)retournera Échec d'analyse (L’exécutable <code>texvc</code> est introuvable. Lisez math/README pour le configurer.): 2*2^\frac{1}{2}*exp(\frac{1}{4}i\pi) soit Échec d'analyse (L’exécutable <code>texvc</code> est introuvable. Lisez math/README pour le configurer.): 2 \sqrt{2} e^{\frac{i\pi}{4}}
Real(z)
Échec d'analyse (L’exécutable <code>texvc</code> est introuvable. Lisez math/README pour le configurer.): real(z) retourne 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
Exemple :> real(4+6i)retournera Échec d'analyse (L’exécutable <code>texvc</code> est introuvable. Lisez math/README pour le configurer.): 4
Rect(z)
Échec d'analyse (L’exécutable <code>texvc</code> est introuvable. Lisez math/README pour le configurer.): rect(z) retourne le nombre complexe Échec d'analyse (L’exécutable <code>texvc</code> est introuvable. Lisez math/README pour le configurer.): z noté en coordonnées polaires sous sa forme cartésienne algébrique (i.e. écrit comme Échec d'analyse (L’exécutable <code>texvc</code> est introuvable. Lisez math/README pour le configurer.): z = a+bi avec Échec d'analyse (L’exécutable <code>texvc</code> est introuvable. Lisez math/README pour le configurer.): a et Échec d'analyse (L’exécutable <code>texvc</code> est introuvable. Lisez math/README pour le configurer.): b réels).
Exemple :> rect(exp((i*pi)/4)) * 2sqrt(2)retournera Échec d'analyse (L’exécutable <code>texvc</code> est introuvable. Lisez math/README pour le configurer.): 2+2i
Linear Algebra (Algèbre linéaire)
Abs(x)
Échec d'analyse (L’exécutable <code>texvc</code> est introuvable. Lisez math/README pour le configurer.): abs(x) retourne la valeur absolue de Échec d'analyse (L’exécutable <code>texvc</code> est introuvable. Lisez math/README pour le configurer.): x .
Exemple :> abs(-4x)retournera Échec d'analyse (L’exécutable <code>texvc</code> est introuvable. Lisez math/README pour le configurer.): 4 \times abs(x)
Adj(m)
Échec d'analyse (L’exécutable <code>texvc</code> est introuvable. Lisez math/README pour le configurer.): adj(m) retourne 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 .
Exemple :> adj(((7,x),(8,4y)))retournera Échec d'analyse (L’exécutable <code>texvc</code> est introuvable. Lisez math/README pour le configurer.): \begin{pmatrix} 4y & -x\\ -8 & 7\\ \end{pmatrix}
Coeff(p, x, n)
Échec d'analyse (L’exécutable <code>texvc</code> est introuvable. Lisez math/README pour le configurer.): coeff(p,x,n) retourne le coefficient de Échec d'analyse (L’exécutable <code>texvc</code> est introuvable. Lisez math/README pour le configurer.): x^n dans le polynôme Échec d'analyse (L’exécutable <code>texvc</code> est introuvable. Lisez math/README pour le configurer.): p .
Exemple :> coeff(14x^4-8x^2-7,x,2)retournera Échec d'analyse (L’exécutable <code>texvc</code> est introuvable. Lisez math/README pour le configurer.): -8
Cofactor(m, i, j)
Échec d'analyse (L’exécutable <code>texvc</code> est introuvable. Lisez math/README pour le configurer.): cofactor(m,i,j) retourne l'élément Échec d'analyse (L’exécutable <code>texvc</code> est introuvable. Lisez math/README pour le configurer.): a_{i,j} de la matrice Échec d'analyse (L’exécutable <code>texvc</code> est introuvable. Lisez math/README pour le configurer.): A , matrice des cofacteurs de la matrice carrée Échec d'analyse (L’exécutable <code>texvc</code> est introuvable. Lisez math/README pour le configurer.): m
Exemple :> cofactor(((1,2),(3,4)),2,1)retournera Échec d'analyse (L’exécutable <code>texvc</code> est introuvable. Lisez math/README pour le configurer.): -2
Contract(a, i, j)
Échec d'analyse (L’exécutable <code>texvc</code> est introuvable. Lisez math/README pour le configurer.): contract(a,i,j) 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.): a si Échec d'analyse (L’exécutable <code>texvc</code> est introuvable. Lisez math/README pour le configurer.): i et Échec d'analyse (L’exécutable <code>texvc</code> est introuvable. Lisez math/README pour le configurer.): j sont omis (Échec d'analyse (L’exécutable <code>texvc</code> est introuvable. Lisez math/README pour le configurer.): i et Échec d'analyse (L’exécutable <code>texvc</code> est introuvable. Lisez math/README pour le configurer.): j sont alors respectivement remplacés par Échec d'analyse (L’exécutable <code>texvc</code> est introuvable. Lisez math/README pour le configurer.): 1 et Échec d'analyse (L’exécutable <code>texvc</code> est introuvable. Lisez math/README pour le configurer.): 2 ).
> contract(((a,b),(c,d)))retournera Échec d'analyse (L’exécutable <code>texvc</code> est introuvable. Lisez math/README pour le configurer.): a+d
//A faire : généraliser la définition.
Cross(u, v)
Échec d'analyse (L’exécutable <code>texvc</code> est introuvable. Lisez math/README pour le configurer.): cross(\vec{u},\vec{v}) retourne le produit vectoriel de Échec d'analyse (L’exécutable <code>texvc</code> est introuvable. Lisez math/README pour le configurer.): \vec{u} et Échec d'analyse (L’exécutable <code>texvc</code> est introuvable. Lisez math/README pour le configurer.): \vec{v} , vecteurs de dimension 3.
Exemple :> cross((2,1,x),(5,x,2))retournera Échec d'analyse (L’exécutable <code>texvc</code> est introuvable. Lisez math/README pour le configurer.): \begin{pmatrix} 2-x^2\\ -4+2x\\ -5+2x\\ \end{pmatrix}
Curl(x)
Échec d'analyse (L’exécutable <code>texvc</code> est introuvable. Lisez math/README pour le configurer.): curl(x) retourne le rotationnel du champ de vecteurs Échec d'analyse (L’exécutable <code>texvc</code> est introuvable. Lisez math/README pour le configurer.): x de dimension 3.
Det(m)
Échec d'analyse (L’exécutable <code>texvc</code> est introuvable. Lisez math/README pour le configurer.): det(m) retourne le déterminant de la matrice Échec d'analyse (L’exécutable <code>texvc</code> est introuvable. Lisez math/README pour le configurer.): m .
Exemple :> det(((1,2),(3,x)))retournera Échec d'analyse (L’exécutable <code>texvc</code> est introuvable. Lisez math/README pour le configurer.): x-6