In rete: http://www.elegio.it/mc2/doc/prove-con-maxima.html
Prove con Maxima ( marzo 2010)
Ho pochissima memoria ed essendo un principiante nel calcolo simbolico prendo qui un po' di appunti sugli aspetti che al momento mi interessano maggiormente.
- L'estensione dei file di Maxima è .wxm
- L'assegnazione si fa con il ":" mentre la definizione di una nuova funzione si fa col ":=" e la base dei logaritmi naturali è indicato da %e. π invece viene indicato con %pi
a: x^4-y^4; f(x):= (%e)^(-x)*((%e)^x-1)^(1/3);- I vettori si fanno scrivendo espressioni separate da virgole e racchiusi in parentesi quadre:
vettore1: [x^2-y, y^3-x^3, 12];- Le matrici si fanno usando matrix(...) contenente la lista di vettori:
miama : matrix( [5,-1,-2],[-1,4,7],[-2,7,3]);- Il prodotto tra matrici si fa usando l'operatore dot ovvero il punto. Ad esempio la matrice identità si può ottenere nel seguente modo:
invert(miama).miama- I numeri in virgola mobile si ottengono usando b come indicatore dell'esponente ( in Javascript, Fortran e C si usa e ) per cui 1000 può essere scritto come 1b3. E' ammesso anche l'esponente e ma ha precisione limitata e non multipla.
La variabile fpprec inizialmente impostata a 16 specifica il numero di cifre significative ma può essere impostata ad un valore più alto... mentre la funzione bfloat(...) calcola il valore in argomento usando tante cifre significative quanto è il valore di fpprec.fpprec:60; bfloat(%e);fornisce come risultato: 2.71828182845904523536028747135266249775724709369995957496697b0- Gli elementi di una matrice possono essere acceduti con l'operatore "[ ]" come in Javascript. Pertanto si può popolare una matrice nel seguente modo classico:
ma: matrix([0,0,0,14],[0,0,0,0],[0,0,9,0],[0,0,0,11]); ma[1][1]:1; ma[1][2]:3; ma[2][1]:5; ma[2][2]:7; ma;che visualizza la matrice:notare che il primo indice è l'indice di riga mentre il secondo è l'indice di colonna e la numerazione di righe e colonne parte da 1 come in Fortran e non da 0 come in Javascript o in C.
┌
│
│
│
│
└1 3 0 14 ┐
│
│
│
│
┘5 7 0 0 0 0 9 0 0 0 0 11 - Per derivare una formula rispetto ad una data variabile, ad esempio x, si usa l'operatore diff(formula,x) oppure diff(formula,x,2) se si vuole la derivata seconda. Per esempio provare:
yy: sin(3*x)*x^(-2); diff(yy,x); diff(yy,x,2);- L'integrazione di una funzione della variabile x si fa usando l'operatore integrate(funzione,x). Per esempio:
integrate(1/sqrt(x^2+ac*x+bc),x);Se il determinante ossia 4*bc-ac^2 risulta zero il risultato è log(2*x+ac) mentre se non lo è il risultato è log(2*sqrt(x*x+ac*x+bc)+2*x+ac) ma va notato che questa seconda formula include il caso particolare a meno di una costante che è inessenziale nell'integrazione indefinita. Da notare che Maxima fa uso anche dell'arco del seno iperbolico ossia asinh(y) che corrisponde a log(sqrt(y*y+1)+y) ma sembra non essere in grado di riconoscere questa identità.- Per sostituire un valore numerico o una data espressione nuova al posto di un simbolo usato in una formula ( per ipotesi contenente la variabile x ) si usa l'operatore subst(nuova,x,formula). Per esempio:
subst(3/4,x,log(sqrt(x*x+1)+x));deve dare come risultato log(2).
Il sito di Maxima si trova qui:
http://maxima.sourceforge.net/
Per scaricare Maxima GRATUITAMENTE usare il sito:
http://sourceforge.net/projects/maxima/
Opinioni...
Maxima is great for a free computer algebra system. It's not as good as Mathematica ( http://it.wikipedia.org/wiki/Mathematica ) or Maple ( http://it.wikipedia.org/wiki/Maple ), but then again, it's free. It's quite useful as an occasional scratchpad.
Per calcoli da ... calcolatrice... però trovo pratica la mia, semplicissima, basata su Javascript: http://www.elegio.it/calcolatrice/