Calcul formel avec wxMaxima

linux 15 déc. 2012

Aujourd’hui, un article orienté sciences et calcul, et (un peu) LaTeX : on va parler de Maxima et de wxMaxima, respectivement un logiciel de calcul formel et une interface graphique pour ce dernier. Je vais vous présenter un peu tout ça, et essayer de vous donner quelques bases d’utilisation. C’est pratique, bien fait, puissant, et surtout capable d’exporter les résultats sous un grand nombre de dormes différentes.

 

(wx)Maxima, c’est quoi ?

C’est le descendant d’un (vieux) logiciel développé par le MIT qui s’appelait Macsyma et qui a servi de bas à sable géant pour le développement de tout un tas d’algorithmes que nous utilisons aujourd’hui.

Je ne vous fait pas un historique complet de la chose, mais sachez quand même que si Macsyma est né à la fin des années 60, Maxima n’est devenu libre (licence GNU/GPL) qu’en 1998. En réalité, 3 « déclinaisons » existent aujourd’hui :

  • la version libre dont nous parlons, Maxima
  • la version du MIT, DOE-Macsyma (non-libre)
  • la version de Symbolics/Macsyma Inc, Macsyma (non-libre)

Maxima est écrit en Lisp, ce qui a permis (et permet toujours) de développer relativement aisément des extensions. Il est compatible avec les principales plate-formes : Linux, MacOS, Windows…

Quant à wxMaxima, c’est une interface graphique relativement jolie (du moins plus agréable que celle de base) qui utilise la librairie wxWidgets, et qui permet d’avoir le logiciel dans la langue que vous utilisez (et ça aide). wxMaxima est aussi sous licence GNU/GPL, et est maintenant inclus dans Maxima.

 

Et concrètement, ça sert à quoi ?

Eh bien, c’est un équivalent libre à toutes ces usines à gaz que sont Maple (que j’ai utilisé pendant 1 an… avant qu’un prof ne me fasse découvrir Maxima. Ben oui, ma licence Maple était expirée :mrgreen: ) et Mathematica, même si ses possibilités sont un poil plus limitées que celles de ses concurrents (surtout côté graphique).

Maxima vous permet de faire du calcul : dérivées, intégration, polynômes, fractions rationnelles, matrices, limites, séries, et bien plus !

(je vous ai pas perdus là quand même, si ?)

Il sais aussi tracer des courbes 2D et 3D, et peut utiliser l’excellent GNUplot pour le faire.

 

Euh, ça ressemble à quoi sinon ?

Un dessin vaut mieux que de longs discours, donc voici une capture d’écran de la fenêtre principale (dans mon cas, wxMaxima 12.09.0 et Maxima 5.28.0) :

wxMaxima1

Avec donc accès simplifié à tous les menus et fonctions proposés par la bête.

 

Bases d’utilisation

 

 Premier calcul : affectation d’une fonction et évaluation numérique

Non, nous ne sommes pas en train de réécrire la théorie des cordes… De bien méchants mots, en vérité. Mais la réalité est un peu plus simple : retenez que pour affecter une variable on utilise les deux points « : », et que pour les entrées à plusieurs lignes chacune d’elles doit se terminer par un point-virgule « ; ».

Faisons simple, affectons ici à la fonction f(x) l’opération « mise au cube », et évaluons le résultat pour x=2.

1
2
3
4
/* [wxMaxima: input   start ] */
f(x) := x^3;
f(2);
/* [wxMaxima: input   end   ] */

Normalement, wxMaxima vous renvoie une ligne affichant 8. Notez que cette ligne a un numéro, un identifiant si vous voulez, de la forme « %oX ». « o » pour « output » (sortie), X est un numéro correspondant à celui de votre cellule (numérotée %iX pour input). C’est pas seulement pour décorer hein, il y a une vraie utilité : vous pouvez réutiliser un résultat par la suite ! Si vous tapez ensuite par exemple %o1*42 et que vous évaluez, vous aurez bien le résultat de l’opération 8*42. Magique !

 

Deuxième calcul : résolution d’une équation

Super utile pour aider vos enfants si vous en avez. C’est vrai qu’à un moment quand ils nous parlent par exemple de… [latex]b^2-4ac[/latex]

Ça évoque vaguement les souffrances endurées à l’époque en cours de maths. Mais sans pour autant permettre de confirmer (ou non) le résultat de l’exercice des malheureux bambins. Maxima va faire ça pour vous (et vous conserverez cette aura parentale qui vous est si chère).

Hop ! Direction le menu Équations > Résoudre… et entrez votre équation, comme sur la capture ci-dessous :

maxima2

Cliquez sur « OK », et vous voyez apparaître sous vos petits yeux émerveillés le résultat, par ailleurs mis en forme proprement.

 

 Troisième calcul : tracé d’une fonction

Allez dans le menu Tracé de courbes > Courbe 2D… et remplissez la boîte de dialogue comme il vous sied (principalement avec la fonction qui vous intéresse, sur le bon intervalle). Exemple :

Courbe 2D

Cliquez sur OK, et là… Le miracle se produit.

Gnuplot

Simplissime !

 

La suite…

…je vous laisse l’écrire. Furetez, fouinez, promenez-vous dans les menus, il y a sûrement des choses qui vous parleront. Si vous êtes scientifique (lycée en filière S, ou au-dessus), les termes utilisés vous parleront et vous n’aurez aucun mal à utiliser wxMaxima. Si vous ne l’êtes pas, ne pensez pas pour autant que ce logiciel ne vous sera pas utile, il l’est toujours à un moment donné :mrgreen:

Et à vous les joies du tracé de graphiques en 3D !

Gnuplot2

Mots clés