Sistema di algebra computazionale

Con il termine sistema di algebra computazionale (o anche con il termine inglese computer algebra system e con il suo acronimo CAS) si intende un sistema software in grado di facilitare l'esecuzione di elaborazioni simboliche. La funzionalità di base di un CAS è la manipolazione di espressioni matematiche in forma simbolica. Lo studio degli algoritmi e delle strutture informative concretamente utilizzabili per i sistemi CAS viene detto algebra computazionale o anche computer algebra.

Tipi di espressioni

Le espressioni che un CAS è in grado di manipolare tipicamente comprendono polinomi e funzioni razionali in una e più variabili; funzioni elementari standard (potenza, esponenziale, logaritmo, seno, coseno, tangente, varianti iperboliche, funzioni inverse, ...); varie funzioni speciali (gamma, zeta, erf, Bessel, ...); composizioni delle funzioni precedenti; derivate, integrali, somme, prodotti delle espressioni trattabili; serie troncate con coefficienti dati da espressioni, matrici di espressioni e così via. In modo più preciso l'insieme delle espressioni manipolabili da un CAS viene individuato da una definizione ricorsiva alla quale corrispondono i meccanismi interni per il riconoscimento delle espressioni e la determinazione degli schemi per le loro manipolazioni e valutazioni.

Manipolazioni simboliche eseguibili

Le manipolazioni simboliche supportate in genere comprendono

  • semplificazione, inclusa la semplificazione automatica e la semplificazione con presunzioni;
  • sostituzione di valori simbolici o numerici per le espressioni;
  • cambiamenti di forma delle espressioni mediante: sviluppo di prodotti e di potenze, riscrittura sotto forma di frazioni parziali, riscrittura di funzioni trigonometriche come esponenziali, ... ;
  • differenziazione rispetto a una o più variabili;
  • ottimizzazione globale simbolica sotto vincoli o senza vincoli;
  • fattorizzazione parziale e completa;
  • soluzione di equazioni lineari e di alcune equazioni non lineari su vari domini;
  • soluzione di alcune equazioni differenziali e di alcune equazioni alle differenze;
  • valutazione di limiti;
  • integrazione indefinita e integrazione definita di varie funzioni, inclusi gli integrali multidimensionali;
  • trasformate integrali;
  • sviluppi in serie di Taylor, di Laurent e di Puiseux opportunamente troncati;
  • sviluppi di alcune serie infinite;
  • sommazione di alcune serie;
  • operazioni su matrici, come somme, prodotti, inversioni, prodotti diretti, ... ;
  • presentazione bidimensionale delle espressioni matematiche secondo le forme della tradizionale tipografia matematica, spesso utilizzando sistemi per la composizione tipografica simili a TeX (vedi anche pretty print)

La parola "alcuni" in molte espressioni precedenti pone in rilievo che un sistema CAS è in grado di effettuare una data operazione solo su determinati insiemi di espressioni, ovvero solo su determinati insiemi di funzioni. Va rilevato che tutti i sistemi CAS che riescono a rimanere sul mercato vanno progressivamente ampliando questi insiemi.

Altre funzioni

Molti sistemi CAS consentono di effettuare operazioni numeriche:

  • algebra lineare numerica;
  • valutazione di espressioni per particolari valori delle variabili e dei parametri;
  • calcoli di precisione molto elevata (aritmetica di precisione illimitata), che, ad esempio, permettono di valutare numeri algebrici come 21/3 con 10.000 cifre decimali;
  • tracciamento di grafici e diagrammi parametrici di funzioni che si sviluppano in due e tre dimensioni.

Molti sistemi CAS dispongono anche di un proprio specifico linguaggio di programmazione di alto livello il quale consente agli utenti di implementare propri algoritmi e proprie funzioni. Talora questi linguaggi possono essere sviluppati in ambienti di sviluppo dotati di buoni strumenti per i programmatori.

Infine alcuni sistemi dispongono di strumenti per la gestione di files e archivi di dati da utilizzare nelle elaborazioni o prodotti dalle stesse.

I tempi di esecuzione dei programmi che richiedono prevalentemente operazioni numeriche implementati nei sistemi CAS sono normalmente superiori a quelli di programmi equivalenti che possono essere implementati in sistemi computazionali come MATLAB e GNU Octave oppure mediante linguaggi di livello medio-basso come Fortran e C, in quanto i CAS sono programmati per riuscire a governare elaborazioni simboliche di elevata generalità e tendenzialmente non sono in grado di far intervenire nel modo più diretto le operazioni numeriche di macchina per gran parte delle loro funzionalità.

Storia

I primi sistemi di algebra computazionale sono diventati disponibili nei primi anni 1970, anche come derivati dalla ricerca in intelligenza artificiale; i due settori dell'algebra computazionale e della intelligenza artificiale si sono però presto separati piuttosto nettamente. I primi sistemi a raggiungere la popolarità sono stati Reduce, Derive e Macsyma, tutti sistemi ancora commercialmente disponibili; una versione copyleft di Macsyma chiamata Maxima viene attivamente manutenuta. Gli attuali leader di mercato sono Mathematica e Maple; entrambi sono ampiamente utilizzati per ricerca e sviluppo da matematici, scienziati e ingegneri. Un altro diffuso sistema commerciale è MuPAD; esso è disponibile in una versione gratuita con una interfaccia con leggere limitazioni per usi di ricerca senza scopo di lucro e per attività didattiche. Sono inoltre disponibili molti altri sistemi di algebra computazionale, per esempio CoCoA, che concentrano le proprie prestazioni su aree computazionali specifiche; per taluni ristretti campi di applicazione spesso questi sistemi specializzati sono molto più efficienti di quelli di portata più generale, in quanto implementano algoritmi validi per situazioni molto particolari; questi sono tipicamente sviluppati in ambienti accademici e sono gratuiti.

Nozioni matematiche usate nei sistemi di algebra computazionale

Bibliografia

  • Richard J. Fateman (1972): "Essays in algebraic simplification". Technical report MIT-LCS-TR-095. (Rapporto tecnico di interesse storico per le prime direzioni della ricerca nell'algebra computazionale. accessibile nel sito di MIT LCS [1])

Voci correlate

  • A sharp
  • 20-GATE
  • Prolog
  • Graphing Calculator
  • Elenco di sistemi di algebra computazionale
  • Confronto di sistemi di algebra computazionale
  Portale Matematica: accedi alle voci di Wikipedia che trattano di matematica