# Système de calcul formel

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

Les expressions peuvent être :
* des polynômes avec de multiples variables ;
* des fonctions (fonctions trigonométriques, exponentielle, etc.) ;
* des fonctions spéciales (gamma, zêta, erf, Bessel, etc.) ;
* des fonctions composées de diverses expressions ;
* des dérivées, des intégrales, des sommes et des produits d'expressions ;
* des séries tronquées avec des expressions comme coefficients ;
* des matrices d'expressions ;
* etc.

## Manipulations symboliques

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

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 2$^{1/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

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 Schoonschip (« 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.

## Logiciels de calcul formel
### Logiciels propriétaires

* Mathematica, utilisable gratuitement, pour une partie seulement ;
* Maple ;
* MuPAD ;
* Derive, principalement utilisé dans les calculatrices graphiques de Texas Instruments, son développement et sa commercialisation ont été arrêtés en 2007, remplacé par TI-Nspire CAS ;
* Mathcad, module utilisé dans Maple ou MuPAD.

### Logiciels libres

* Algebrite, une bibliothèque JavaScript ;
* EigenMath ;
* GAP ;
* Magma ;
* Maxima ;
* PARI/GP ;
* SymPy à utiliser avec Python ;
* SageMath ;
* SMIB ;
* Xcas / Giac ;
* Yacas ;
* jscl-meditor, une bibliothèque Java.

## Mathématiques utilisées

* Base de Gröbner
* PGCD
* Factorisation
* Algorithme de Risch

## Source

* Richard J. Fateman. Essays in algebraic simplification. Technical report MIT-LCS-TR-095, 1972. Article d'importance historique disponible sur le site du LCS (MIT)
* (en) Cet article est partiellement ou en totalité issu de l’article de Wikipédia en anglais intitulé « Computer algebra system » (voir la liste des auteurs).