Présentation de CmathOOoCAS
Introduction :
CmathOOoCAS=CmathOOo+CAS.
CAS est l’acronyme de « Computer Algebra System ». On peut le traduire par « système de calcul formel ». La définition qu’en donne Wikipédia est :
« 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. »
Présentation :
CmathOOoCAS est une extension développée en C++ qui s’appuie sur la librairie de calcul formel Giac pour étendre les capacités du tableur OOo-Calc afin de le rendre plus ouvert aux objets mathématiques que nous voulons manipuler.
En effet, les fonctions mathématiques incluses dans OOo-Calc ne savent travailler que sur des nombres décimaux et comme les calculatrices courantes, les limites du logiciel sont vite atteintes. Impossible par exemple de manipuler des nombres réels tels que ${\sqrt{2}}$ ou des expressions polynomiales.
CmathOOoCAS définit donc de nouvelles fonctions qui permettent de travailler sur des objets mathématiques formels. Voici une utilisation simple de CmathOOoCAS :
![]()
|
De façon générale, lorsqu’une fonction existait dans OOo-Calc (comme ici SOMME et PRODUIT) CmathOOoCAS ajoute la même fonction précédée de la lettre C pour signifier "CAS". Ces nouvelles fonctions opèrent sur des objets formels. Ainsi, on trouvera, par exemple, dans CmathOOoCAS les fonctions : CLN, CEXP, CPUISSANCE, CSIN, CRACINE, etc...
Lorsqu’une fonction n’existait pas dans OOo-Calc, un nom explicite est attribué : SIMPLIFIER, FACTORISER, RESOUDRE, DERIVER, INTEGRER, etc... Plus de 80 fonctions de calculs formels sont disponibles grâce à CmathOOoCAS et il est possible d’en créer de nouvelles très facilement puisqu’il est possible de programmer ses propres fonctions en langage Python et de les utiliser dans le tableur ou le traitement de texte, comme n’importe quelle fonction prédéfinie. Cela étend les capacités de LibreOffice au calcul formel et au calcul numérique en multi-précision. En plus des exemples présentés sur cette page, des activités utilisant les fonctions formelles de CmathOOoCAS sont accessibles à cette page.
Éditeur de fonctions, ligne de commande
Une boîte de dialogue contenant un éditeur de fonctions ainsi qu’une ligne de commandes de calculs formels est accessible via un menu ou une icône de la barre de menu CmathOOoCAS.
– La ligne de commande est disponible dans la partie droite de cette boîte pour y taper des instructions comme dans Xcas :
– La partie gauche est composée d’un éditeur permettant de créer ses propres fonctions. Une fois compilées à l’aide du bouton ad-hoc, la ligne de commande peut servir à tester le bon fonctionnement de ces fonctions :

– Plusieurs langages de programmation sont utilisables dans CmathOOoCAS : Python, XCAS et « algorithmique ».
La fonction "syracuse" précédente est écrite en langage Python. Il était possible de l’écrire ainsi :
Syntaxe Python | Syntaxe XCAS | Syntaxe Algorithmique |
---|---|---|
def syracuse(n): |
syracuse(n):={ |
fonction syracuse(n) |
Remarque : une fois compilées avec succès, les fonctions créées sont sauvegardées avec le document.
– Ces nouvelles fonctions sont immédiatement disponibles dans le tableur :

– Les fonctions créées par l’utilisateur sont réutilisables dans toute autre fonction créée ultérieurement. Par exemple la fonction DureeVol renvoie le nombre d’étapes nécessaires à un vol pour atterrir à 1 :
et son utilisation dans le tableur :
– Ces nouvelles fonctions exploitent bien sûr toutes les possibilités apportées par le moteur de calcul formel et peuvent travailler dans $\mathbb{C}$, dans la limite des capacités de l’ordinateur.
On vérifie ci-dessous la réponse partielle donnée au défi lancé en l’an 2000 : « quel est le plus petit entier $n$ dont la durée de vol est 2000 ? » :

– Toutes les fonctions formelles de Xcas sont utilisables dans CmathOOoCAS. Par exemple la fonction calculant le nombre dérivé en $a$ :
permet d’obtenir avec une seule formule le tableau qui suit. On pourra alors conjecturer l’expression des fonctions dérivées usuelles :
![]()
|
– Enfin, contrairement au tableur numérique, le tableur formel permet de valider les conjectures émises ; ici, en ajoutant simplement une colonne, la même formule calcule le nombre dérivé en $a$ :

– Il est également possible de créer des fonctions renvoyant plusieurs objets, sous la forme d’une liste, nommée aussi vecteur :

– Dans le tableur, CmathOOoCAS répartit les objets de cette liste en colonne, dans des cellules contiguës. Pour bénéficier de cette fonctionnalité, il faut valider la formule avec Control + Majuscule + Entrée, comme pour toutes les fonctions matricielles de OOo-Calc :

– Si on préfère une écriture du vecteur en ligne plutôt qu’en colonne, la fonction TRANSPOSE pourra servir.
Reprenons l’exemple de la suite de syracuse et définissons la fonction VOL(n) renvoyant pour un entier n, le vecteur (durée,altitude) du vol de cet entier.

– Une fonction peut également renvoyer une matrice. CmathOOoCAS transformera cette matrice en tableau dans le tableur, à condition de valider la formule avec Control + Majuscule + Entrée. Par exemple, la fonction :
une fois compilée et suivie dans le tableur de la formule "=identite(4)" renverra la matrice identité de ${{{ \mathrm{M}}}_{4}}{\left( {\mathbb{R}}\right) }$.
Accès aux fonctions de calcul formel dans le traitement de texte Writer :
Si vous utilisez l’extension CmathOOo, il est possible d’effectuer des calculs formel directement dans OOo-Writer.
Consultez cette page pour voir cette fonctionnalité en vidéo.
Voir aussi la documentation disponible dans le menu CmathOOoCAS après installation de l’extension.
Accès au téléchargement de CmathOOoCAS