Sage (software)

Da Wikipedia, l'enciclopedia libera.
(Reindirizzamento da SAGE Math)
SAGE
Logo
Animazione creata con Sage
Animazione creata con Sage
Sviluppatore Vari
Ultima versione 6.2 (6 maggio 2014)
Sistema operativo Linux
Mac OS X
Microsoft Windows
Linguaggio Python
Genere Sistema di algebra computazionale
Analisi numerica
Licenza GPL/Varie: dipendente dai software allegati
(Licenza libera)
Sito web http://www.sagemath.org

Sage è un sistema di algebra computazionale open source nato come alternativa a Magma, Maple, Mathematica e MATLAB. È scritto in Python e Cython e integra sotto un'unica interfaccia diversi software open source quali Axiom, GMP, GAP, GP/PARI, Macaulay2, Maxima, NTL, Octave e Singular; inoltre può comunicare con software commerciali quali Magma, Maple, Mathematica, MATLAB e MuPAD.

Il linguaggio di programmazione è una variante di Python, inoltre sono disponibili due interfacce grafiche. La prima, chiamata Sage notebook, è basata su web browser. La seconda è fornita da Cantor, che è un componente della suite KDE Education Project.

Sage è disponibile per la piattaforma Linux e Mac OS X (10.4 o superiore); è disponibile anche per Microsoft Windows, in una versione implementata per Oracle VirtualBox.

La prima versione pubblicata, la 0.9.10, porta la data del 17-11-2005; dopo circa due anni, il 24-04-2008, con la versione 3.0, ha raggiunto un notevole grado di completezza. Il 21-1-2013 è stata rilasciata la versione 5.6.

Funzionalità[modifica | modifica wikitesto]

L'interfaccia Sage Notebook lavora con Firefox (e Mozilla), Opera, Konqueror, e Safari.
soluzione di Equazioni e stampa usando l'interfaccia web Sage notebook.

Alcune delle caratteristiche maggiori di Sage sono:[1].

  • L'interfaccia notebook document, per revisionare e riusare precedenti dati in ingresso o in uscita, includendo grafici o caselle di testo usabili per molti web browser incluso Firefox, Opera, Konqueror, e Safari.
    Una connessione sicura con HTTPS verso l'interfaccia web notebook è supportata quando sicurezza e riservatezza sono importanti, e consente di Sage di essere utilizzato sia in locale che in remoto.
  • Una interfaccia testuale a riga di comando usando IPython.
  • Il linguaggio di programmazione Python supporta linguaggi procedurali, Funzioni e costrutti riferiti alla Programmazione orientata agli oggetti.
  • Supporto per parallel processing usando sia computer con processori Multi core disponibili in molti computer moderni, in aggiunta a sistemi di computer distribuiti (distributed computing).
  • Calcoli usando Maxima e SymPy.
  • Algebra lineare usando le librerie software GSL, SciPy e NumPy.
  • Librerie di Funzioni elementari e funzioni matematiche speciali.
  • Grafici 2D e 3D graphs sia per funzioni che per dati.
  • Matrice e strumenti di manipolazione dei dati incluso supporto per Array.
  • Librerie statistiche varie, usando le funzionalità di R e SciPy.
  • Un toolkit per aggiungere interfacce utente per calcoli e applicazioni.[2]
  • Strumenti per editor di immagini usando Pylab nonché il linguaggio di programmazione Python.
  • Strumenti per visualizzazione ed analisi dei grafi.
  • Librerie di funzioni di teoria dei numeri.
  • Importazione ed esportazione filtri per dati, immagini, video, suoni, CAD, GIS, documenti e formats biomedicali.
  • Supporto per numeri complessi, precisione aritmetica arbitraria e simbolica per funzioni quando ciò è indicato.
  • Elaboratore di testo tecnico includente editor di formule la capacità di incorporare all'interno di Sage documenti di LaTeX.[3]
  • Strumenti di rete per connessione a SQL, Java, .NET, C++, FORTRAN fornito da Twisted, questo supporta un gran numero di protocolli tra cu HTTP, NNTP, IMAP, SSH, IRC, FTP e altri.
  • Interfacce di alcuni software di terze parti come Mathematica, Magma, e Maple, che permette agli utenti di assemblare software e confrontare risultati e prestazioni. È quindi anche un "front-end" verso altri strumenti matematici simili a GNU TeXmacs.
  • MoinMoin è un sistema Wiki per la gestione della conoscenza.
  • Documentazione usando Sphinx.
  • Uno strumento automatico di testing, che consente la prova sul computer di un utente finale.

Anche se non sono funzioni direttamente fornite da Sage, Sage può essere invocato all'interno di Mathematica.[4] Un notebook di Mathematica è disponibile per questa funzionalità.[5]

Software contenuti in Sage[modifica | modifica wikitesto]

La filosofia di Sage è quella di utilizzare quando disponibili le esistenti librerie open source. Quindi prende in prestito da molti progetti nella realizzazione del lavoro finale.

Software matematici contenuti in Sage
Algebra GAP, Maxima, SINGULAR
Geometria Algebrica SINGULAR
Precisione Aritmetica Arbitraria GMP, MPFR, MPFI, NTL
Geometria Aritmetica PARI/GP, NTL, mwrank, ecm
Calcolo Maxima, SymPy, GiNaC
Combinatorio Symmetrica, Sage-Combinat
Algebra Lineare ATLAS, BLAS, LAPACK, NumPy, LinBox, IML, GSL
Teoria dei Grafi NetworkX
Teoria dei Gruppi GAP
Calcolo numerico GSL, SciPy, NumPy, ATLAS
Teoria dei Numeri PARI/GP, FLINT, NTL
Calcolo statistico R, SciPy
Altri pacchetti software contenuti in Sage
Riga di Comando IPython
Database ZODB, Python Pickles, SQLite
Interfaccia grafica Sage Notebook, jsmath
Grafiche Matplotlib, Tachyon3d, GD Graphics Library, Jmol
Linguaggio di programmazione interattivo Python
Networking Twisted

Esempi interfaccia di comando[modifica | modifica wikitesto]

Calcoli[modifica | modifica wikitesto]

x,a,b,c = var('x,a,b,c')
 
log(sqrt(a)).simplify_log() # returns log(a)/2
log(a/b).simplify_log() # returns log(a) - log(b)
sin(a+b).simplify_trig() # returns cos(a)*sin(b) + sin(a)*cos(b)
cos(a+b).simplify_trig() # returns cos(a)*cos(b) - sin(a)*sin(b)
(a+b)ˆ5 # returns (b + a)ˆ5
expand((a+b)ˆ5) # returns bˆ5 + 5*a*bˆ4 + 10*aˆ2*bˆ3 +
 # 10*aˆ3*bˆ2 + 5*aˆ4*b + aˆ5
 
limit((2+1)/(2+x+3*xˆ2), x=infinity) # returns 1/3
limit(sin(x)/x, x=0) # returns 1
 
diff(acos(x),x) # returns -1/sqrt(1 - xˆ2)
f = exp(x)*log(x)
f.diff(x,3) # returns e^x*log(x) + 3*e^x/x - 3*e^x/x^2 + 2*e^x/x^3
 
solve(a*x^2 + b*x + c, x) # returns [x == (-sqrt(b^2 - 4*a*c) - b)/(2*a),
 # x == (sqrt(b^2 - 4*a*c) - b)/(2*a)]
 
f =2 + 432/x
solve(f.diff(x)==0,x) # returns [x == 3*sqrt(3)*I - 3,
 # x == -3*sqrt(3)*I - 3, x == 6]

Equazioni differenziali[modifica | modifica wikitesto]

t = var('t') # definisce la variable t
x = function('x',t) # definisce che x deve essere una funzione della variabile t
DE = lambda y: diff(y,t) + y - 1
desolve(DE(x(t)), [x,t]) # restituisce '%e^-t*(%e^t+%c)'

Algebra lineare[modifica | modifica wikitesto]

A = Matrix([[1,2,3],[3,2,1],[1,1,1]])
y = vector([0,-4,-1])
A.solve_right(y) # returns (-2, 1, 0)
A.eigenvalues() # returns [5, 0, -1]
 
B = Matrix([[1,2,3],[3,2,1],[1,2,1]])
B.inverse() # returns [ 0 1/2 -1/2]
 # [-1/4 -1/4 1]
 # [ 1/2 0 -1/2]
 
# Call numpy for the Moore-Penrose pseudo-inverse,
# since Sage does not support that yet.
 
import numpy
C = Matrix([[1 , 1], [2 , 2]])
matrix(numpy.linalg.pinv(C.numpy())) # returns [0.1 0.2]
 # [0.1 0.2]

Teoria dei Numeri[modifica | modifica wikitesto]

prime_pi(1000000) # returns 78498, the number of primes less than one million
 
E = EllipticCurve('389a') # construct an elliptic curve from its Cremona label
P, Q = E.gens()
7*P + Q # returns (2869/676 : -171989/17576 : 1)

Note[modifica | modifica wikitesto]

  1. ^ Sage documentation
  2. ^ Sage Interact functionality. URL consultato l'11 aprile 2008.
  3. ^ The TeX Catalogue OnLine, Entry for sagetex, Ctan Edition
  4. ^ UsingSage Calling Sage from Mathematica
  5. ^ http://facstaff.unca.edu/mcmcclur/Mathematica/Sage/UsingSage.nb A Mathematica notebook to call Sage from Mathematica.

Voci correlate[modifica | modifica wikitesto]

Altri progetti[modifica | modifica wikitesto]

Collegamenti esterni[modifica | modifica wikitesto]