Calcoli Simbolici (Computer Algebra)
In matematica e informatica, la computer algebra, chiamata anche calcolo simbolico o calcolo algebrico, è un'area scientifica che si riferisce allo studio e allo sviluppo di algoritmi e software per la manipolazione di espressioni matematiche e altri oggetti matematici. Si tratta a tutti gli effetti di un sottocampo del calcolo scientifico, e dell'analisi numerica. Laddove nel calcolo scientifico più generale si è soliti fare uso di calcoli numerici con numeri in virgola mobile, nel calcolo simbolico si enfatizza invece il calcolo esatto con espressioni contenenti variabili che non hanno un valore dato e che vengono manipolate come veri e propri simboli.
Le applicazioni software che eseguono calcoli simbolici sono chiamate solitamente Computer Algebra Systems, con il termine sistema si allude in un certo senso alla complessità delle principali applicazioni che devono contenere. Queste includono, almeno, un metodo per rappresentare dati matematici in un computer, un linguaggio di programmazione utente, un gestore di memoria dedicato, un'interfaccia utente per l'input/output di espressioni matematiche, un ampio insieme di routine per eseguire operazioni usuali, come semplificazione delle espressioni, differenziazione mediante regola della catena, fattorizzazione polinomiale, integrazione indefinita, ecc. .
In questa parte del laboratorio menzioniamo alcuni di questi sistemi senza entrare nei dettagli di ciascuno di essi, ma con lo spirito di darvi un'idea di quelli che sono degli strumenti utili per lo studio, anche teorico, della matematica.
Il programma maxima
Maxima nasce come Macsyma, scritto originalmente in lisp
nel periodo in cui molti guru erano convinti di poter sviluppare la A.I. in questo linguaggio.
Quando l'MIT chiuse il progetto e vendette Macsyma
, fu solo grazie agli sforzi di ricercatori come
Bill Schelter
che una parte del codice finanziato con soldi pubblici fu resa open source e divenne l'attuale maxima
:
dovettero vincere una causa legale per ottenerlo.
Il maxima originariamente nasce senza interfaccia grafica, in solo modo testo. Programmi come wxmaxima
o xmaxima
aggiungono una specie di interfaccia grafica e la capacità di fare dei plot.
Noi useremo nel seguito sage
che usa maxima
al suo interno.
Se si vuole si può comunque lanciare direttamente maxima
. Bisogna ricordarsi che in maxima
le linee di comando vanno terminate con un ;
e che si esce con quit();
.
In wxmaxima
invece le righe si mandano in esecuzione con Cntrl+Enter
.
maxima
; provare a sommare 4/3 e 6/5; calcolare 100!; fattorizzare il risultato;
provare ad integrare x*sin(3*x);
Ci sono versioni di maxima
anche per gli smartphone sia per android che per iphone.
Per usarli è preferibile collegare allo smartphone una tastiera esterna, per esempio via
bluetooth.
Il programma maple
Questo è un programma venduto con licenza da una ditta che lo sviluppa e mantiene, la Maplesoft.
Anni fa, in un momento di vacche grasse, il dipartimento comperò un pacco di licenze dimaple
per le macchine Linux dei laboratori.
Incredibilmente quegli eseguibili vanno ancora nonostante gli aggiornamenti di sistema delle macchine dei laboratori.
Queste versioni vecchie del programma sono molto semplici da usare ed hanno le pagine di help ricche di esempi pratici. Purtroppo le nuove installazioni delle macchine delle aule 3 e 4 non permettono più di collegarsi in remoto, per cui per provare maple dovrete aspettare di essere in presenza su una delle macchine delle aule. E' possibile usare maple sia in modalità testo che in modalità grafica. Le nuove versioni hanno aggiunto moltissimi comandi e una interfaccia grafica più completa per cui molti degli esempi che si trovano in rete non girano sulla vecchia versione.
In maple alla fine della riga occorre ;
per l'esecuzione (e :
per non visualizzare il risultato). L'assegnazione viene fatta con
:=
mentre =
indica una equazione.
Il programma mathematica
Questo è un programma venduto con licenza da una ditta che lo sviluppa e mantiene,
la Wolfram.
La Wolfram mantiene inoltre un sito disponibile a tutti con una interfaccia web al programma !
x*sin(x)
sul sito Wolfram Alpha
Notare che il sito accetta le formule in Latex !