Système de calcul formel

Un article de Wikipédia, l'encyclopédie libre.
Aller à : navigation, rechercher

Un système de calcul formel (computer algebra system ou CAS en anglais) est un logiciel qui facilite le calcul symbolique. La partie principale de ce système est la manipulation des expressions mathématiques sous leur forme symbolique.

Types d'expressions[modifier | modifier le code]

Les expressions peuvent être :

Manipulations symboliques[modifier | modifier le code]

Les manipulations symboliques sont typiquement :

  • simplification, qu'elle soit automatique ou effectuée à partir d'hypothèses ;
  • substitution de symboles ou de valeurs numériques par des expressions ;
  • changement de forme des expressions : expansion, de produits et de puissances, re-écriture de fractions partielles, re-écriture de fonctions trigonométriques comme exponentielles, etc. ;
  • différentiation relative à une ou plusieurs variables ;
  • optimisation globale, qu'elle soit conditionnelle ou non ;
  • factorisation partielle ou complète ;
  • solution d'équations linéaires et de quelques équations non-linéaires dans différents domaines ;
  • solution de quelques équations différentielles et d'équation aux différences ;
  • calcul de limites de certaines fonctions ;
  • quelques intégrales définies et indéfinies, incluant des intégrales à plusieurs variables ;
  • transformées (Laplace, Fourier, etc.) ;
  • expansion en série de Taylor, de Laurent et de Puiseux ;
  • quelques expansions de séries infinies ;
  • quelques sommes de série ;
  • opérations sur les matrices incluant le produit, l'inversion, etc. ;
  • affichage d'expressions mathématiques, souvent à l'aide de systèmes semblables à TeX (voir aussi Impression élégante).

Autres fonctionnalités[modifier | modifier le code]

De plus, ces systèmes incluent des opérations numériques :

  • évaluation en fonction de valeurs numériques précises
  • évaluation en multi-précision. Par exemple, donner la valeur numérique de 21/3 avec 10 000 chiffres
  • calculs numériques d'expressions d'algèbre linéaire
  • tracé de graphes en 2D et 3D

Plusieurs offrent également un langage de programmation de haut niveau, ce qui permet aux utilisateurs de personnaliser ou d'augmenter les fonctionnalités déjà présentes.

Le temps d'exécution lors d'évaluation numérique est habituellement plus long que les programmes équivalents implantés en MATLAB, Octave ou en langage C. C'est normal, puisque ces systèmes considèrent la représentation symbolique presque tout le temps, ce qui ne leur permet pas de profiter au mieux des bibliothèques numériques des processeurs (CPU).

Histoire[modifier | modifier le code]

Martin Veltman est le pionnier dans ce domaine, lui qui a conçu les premières applications en physique des hautes énergies. Son premier programme, conçu en 1963, s'appelait Schoonship (« vaisseau propre » en néerlandais).

Ces systèmes sont devenus populaires au début des années 1970 et ont mené la création de l'IA. En 2006, ils sont vus comme des champs d'étude distincts.

Les premiers systèmes à devenir populaires sont Reduce, Derive et Macsyma, qui sont encore disponibles. Une version gratuite de Macsyma sous licence GNU appelée Maxima est encore maintenue.

Les meneurs dans ce marché sont Maple et Mathematica. Les deux sont couramment utilisés par les mathématiciens, les scientifiques et les ingénieurs. MuPAD et Mathcad sont aussi disponibles.

Le fonctionnement du logiciel libre Giac / Xcas est proche de celui des calculatrices formelles de la marque Texas Instruments. Le système de calcul formel Axiom initialement développé par IBM a cessé d'être commercialisé en 2001 et est devenu un logiciel libre depuis 2002. Les projets FriCAS et OpenAxiom commencés en 2007 sont directement issus du programme Axiom initial.

D'autres systèmes sont plus spécialisés et se limitent à quelques domaines d'application. Ils sont habituellement conçus, développés et maintenus dans un milieu académique.

Quelques logiciels de calcul formel[modifier | modifier le code]

Mathématiques utilisées[modifier | modifier le code]

Source[modifier | modifier le code]