Quali algoritmi vengono implementati nei programmi di calcolo simbolico?

Il calcolo simbolico consiste in sostanza nel trasformare un’espressione (nel senso più ampio del termine) in una espressione “più semplice”. Si noti che la parola “calcolo” nel termine può risultare fuorviante
in quanto si riferisce solitamente alla determinazione di valori numerici (ad esempio di una funzione) in corrispondenza di uno o più valori delle variabili.

Il risultato che si ottiene utilizzando tecniche di calcolo simbolico non è un insieme di valori numerici, ma una espressione, ancora simbolica.

Ad esempio la figura mostra l’interfaccia di uso di maxima (vedi sotto):

Si noti in particolare la prima espressione (calcolo dell’integrale di un funzione). Come è stato mostrato in una precedente risposta, i valori dell’integrale su un qualunque assegnato intervallo possono essere calcolati con metodi di integrazione numerica a partire dalla funzione integranda. Questo costituisce l’approccio opposto al calcolo simbolico che fornisce la soluzione cosiddetta “in forma chiusa”, ovvero una funzione il cui valore numerico per un assegnato valore della variabile corrisponde al valore dell’integrale.

I programmi di calcolo simbolico funzionano applicando le stesse regole che vengono insegnate agli studenti dei corsi di algebra: semplificazion e delle espressioni, trasformazione dei polinomi, regole di calcolo di derivate ed integrali, regole di trigonometria, ecc., sostanzialmente riproducendo il procedimento seguito da un esperto. Poiché si tratta di manipolare simboli e non direttamente numeri, i sistemi di calcolo simbolico sono solitamente sviluppati con linguagi di programmazione specializzati per queste operazioni, in particolare LISP ed i suoi dialetti.

Il primo sistema di calcolo simbolico è stato sviluppato a partire dagli anni ’60 presso il centro MIT di Boston e fu denominato Macsyma. Da questo “capostipite” sono derivate varie versioni commerciali, adesso più note, quali ad esempio Maple e Mathematica. Il sistema Macsyma è stato recentemente distribuito in forma Open Source con il nome di Maxima. Il sito Web del progetto Maxima è un buon punto di partenza per reperire in formazioni più approfondite.