Sage (software)
| SAGE | |
|---|---|
Animazione creata con Sage |
|
| Sviluppatore | Vari |
| Ultima versione | 5.6 (21 gennaio 2013) |
| Sistema operativo | Linux Mac OS X 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.
Indice |
Funzionalità [modifica]
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 processoriMulti 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]
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.
| 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 |
| 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]
Calcoli [modifica]
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((xˆ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 = xˆ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]
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]
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]
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]
- ^ Sage documentation
- ^ Sage Interact functionality. URL consultato in data 11 aprile 2008.
- ^ The TeX Catalogue OnLine, Entry for sagetex, Ctan Edition
- ^ http://facstaff.unca.edu/mcmcclur/Mathematica/Sage/ Calling Sage from Mathematica
- ^ http://facstaff.unca.edu/mcmcclur/Mathematica/Sage/UsingSage.nb A Mathematica notebook to call Sage from Mathematica.
Voci correlate [modifica]
- Free Software/Open Source e Freeware relativi:
- Software commerciali simili
Altri progetti [modifica]
Commons contiene immagini o altri file su Sage (software)
Collegamenti esterni [modifica]
- (EN) Project home page
- (EN) A Brief Introduction to Sage
- (EN) Public SAGE notebook
- (EN) SAGE Reference Manual
- (EN) Free software brings affordability, transparency to mathematics