Data la sua origine, Maxima è un programma che interagisce prevalentemente attraverso un terminale a caratteri; tuttavia, sono disponibili versioni grafiche che consentono la visualizzazione delle formule elaborate in una forma più graziosa dal punto di vista estetico. Per esempio, wxMaxima è un interfaccia frontale per Maxima, in grado di aggiungere questo miglioramento grafico.
Le potenzialità di Maxima sono enormi. In questo capitolo si fanno solo dei cenni relativi a problemi molto semplici. Va osservato che Maxima può fare anche molto altro, in particolare nel capitolo è omessa completamente la gestione dei vettori e delle matrici.
Installazione.
L'installazione di Maxima non dovrebbe dare problemi nei sistemi operativi più comuni, dal momento che sono disponibili pacchetti precompilati per una vasta gamma di ambienti. Tuttavia va osservato che Maxima richiede la presenza di Gnuplot per produrre dei grafici, installato in modo corretto, o comunque «standard». Eventualmente, se non si riesce a ottenere un grafico con le funzioni che invece dovrebbero produrlo, occorre concentrarsi nell'installazione corretta di Gnuplot.Avvio e interazione normale con il programma.
Maxima si avvia normalmente attraverso il file-eseguibile maxima, senza indicare opzioni particolari:maxima [opzioni]
Una volta avviato, comincia un'interazione con il programma, il quale offre un invito composto dalla sigla (%in), dove n è un numero progressivo che inizia da uno e la lettera «i» sta a sottolineare il fatto che si tratta di una riga di «input». Nella riga di comando preceduta dall'invito di Maxima è possibile inserire comandi che spesso sono costituiti semplicemente da espressioni o equazioni matematiche:(%i1)
x^2+sqrt(x);
[Invio]In questo caso viene inserita l'espressione x2+x0,5 e si può osservare che è stata terminata con un punto e virgola. Normalmente, dopo l'inserimento di un comando, si ha una forma di risposta da parte di Maxima, con la quale si può verificare il recepimento di quanto inserito: 2
(%o1) x + sqrt(x)
Eventualmente, se Maxima viene usato attraverso la mediazione di un programma frontale grafico, questa risposta potrebbe essere più graziosa esteticamente:(%o1)
Continuando con altri inserimenti, l'invito di Maxima incrementa il suo numero progressivo:
(%i2)
sqrt(x^3+x^2);
[Invio](%o2)
(%i3)
factor(%o2);
[Invio](%o3)
(%i4)
%o3 + sqrt(x^4);
[Invio](%o4)
(%i5)
quit();
[Invio]Funzionamento di wxMaxima, dove si vede che i comandi vanno inseriti nello spazio inferiore della finestra.
Gestione degli oggetti di Maxima.
Ogni volta che si inserisce qualcosa nella riga di comando di Maxima, si produce un nuovo oggetto, con il risultato dell'inserimento stesso. Il riferimento a tali oggetti avviene con una sigla del tipo %on, dove n è il numero dell'oggetto. In alternativa, è possibile dare un nome ulteriore all'oggetto, specificandolo all'inizio dell'inserimento:[nome_oggetto:] comandoPer esempio, si può definire un'espressione e le si può associare il nome espressione_1:
(%i1)
espressione_1: x^4+x^3+x^2;
[Invio]
(%o1) x4 + x3 + x2
(%i2)
espressione_1 + x;
[Invio]
(%o2) x4 + x3 + x2 + x
Gli oggetti creati e non più utilizzati, possono essere eliminati con il comando kill():kill (nome_oggetto[, nome_oggetto]...)
kill (all)In pratica, come argomento del comando kill() si può mettere un elenco di oggetti (separato con la virgola), oppure la parola chiave all, con la quale si indicano implicitamente tutti.
Gli oggetti da eliminare vanno identificati con la sigla generica %on o per nome, se gli è stato associato un nome. Tuttavia, le due cose sono indipendenti. Per esempio, se con il nome nome_3 è stato identificato l'oggetto corrispondente alla sigla %o3, il fatto di eliminare nome_3 non si propaga all'oggetto dal punto di vista della sigla %o3 e lo stesso viceversa.
(%i3)
kill (%o1, %o2);
[Invio]
(%o3) done
(%i4)
espressione_1;
[Invio]
(%o4) x4 + x3 + x2
(%i5)
kill (espressione_1);
[Invio]
(%o5) done
(%i6)
quit();
[Invio]Funzioni.
Maxima consente di definire espressamente delle funzioni, utilizzando l'operatore :=. Le funzioni possono essere disegnate, con l'ausilio di un programma esterno, costituito di norma da Gnuplot. L'esempio seguente crea la funzione f(x) e la visualizza, nell'intervallo che va da -π e +π:(%i1)
f(x) := x^3;
[Invio]
(%o1) f(x) := x3
(%i2)
plot2d (f, [x, -%pi, %pi]);
[Invio]
Si possono creare funzioni di funzioni; in altri termini, la creazione di una funzione si può avvalere di funzioni già definite. Negli esempi seguenti si crea una funzione g(x), composta utilizzando la già definita f(x). Al termine, vengono disegnate le due funzioni.
(%i3)
g(x) := f(sin(x));
[Invio]
(%o3) g(x) := f(sin(x))
(%i4)
plot2d ([f,g], [x, -%pi, %pi], [y, -2, 2]);
[Invio]
(%i5)
h(x,y) := x**2 * y**3;
[Invio]
(%o5) h(x,y) := x2 y3
(%i6)
plot3d (h, [x, -%pi, %pi], [y, -%pi, %pi]);
[Invio]
(%i7)
k(x) := block ([], if (x < 0) then return (-(-x)^0.5) else
\\
return (x^0.5));
[Invio]
(%o7) k(x) := block ([], if x < 0 then return (-(-x)0.5) else return (x0.5))
(%i8)
plot2d (k, [x, -1, 1]);
[Invio]
(%i9)
j(x) := block([], if (x < 0) then return (x*1.25) else
\\
(if (x >= 0 and x < 2) then return (0) else
\\
return (x*3-6)));
[Invio]
(%o9) j(x) := block ([], if x < 0 then return (x·1.25) else if x>=0 and x<2 then return (0) else return (x·3-6))
(%i10)
plot2d (j, [x, -1, 3]);
[Invio]
fonte: a2pluto
Screenshots.
Se ti è piaciuto l'articolo , iscriviti al feed cliccando sull'immagine sottostante per tenerti sempre aggiornato sui nuovi contenuti del blog: