From Wikipedia, the free encyclopedia
SAGE és un sistema algebraic computacional (en anglès CAS) escrit en Python, aquesta aplicació de software cobreix molts aspectes de les matemàtiques, incloent-hi àlgebra, combinatòria, mètodes numèrics i càlcul. Reuneix i unifica sota un únic entorn, llenguatge i jerarquia d'objectes de diferents software matemàtic i intenta omplir els forats de funcionalitat que van deixant uns i altres llenguatges.
| |
Tipus | Sistema Algebraic Computacional |
---|---|
Versió inicial | 2005 |
Versió estable | |
Llicència | GNU GPL 2.0 |
Característiques tècniques | |
Sistema operatiu | Linux, Microsoft Windows i macOS |
Escrit en | Python, Cython, C, C++ i Fortran |
Equip | |
Desenvolupador(s) | William A. Stein |
Distribuidor | Google Play |
Més informació | |
Lloc web | sagemath.org (anglès) |
Stack Exchange | Etiqueta |
| |
La primera versió de Sage va tenir lloc el 24 de febrer del 2005 com un software lliure sota els termes de GNU General Public License, tal que el seu objectiu principal era crear una alternativa oberta al software de d'àlgebra computacional com Magma, Maple, Mathematica, i MATLAB, i d'aquesta forma reduir la dependència del software matemàtic amb propietari i amb codi tancat.
El líder del projecte, William A. Stein, és un matemàtic de la Universitat de Washington, i fa servir estudiants com a becaris per al desenvolupament d'aquest software.[1]
Algunes de les moltes característiques de Sage incloue:[2]
Encara que no està directament proporcionat per Sage, aquest pot cridar-se des de Mathematica. el notebook de Mathematica està disponible per aquest.
William A. Stein va remarcar diversos factors importants a l'hora de dissenyar Sage.
De forma que en comptes de començar des del principi, Sage (que es troba escrit en Python i Cython) integraria tot el software de codi obert que ja existís sobre matemàtiques a una interfície comuna. Així, un usuari necessitarà només saber Python.
Quan no hi hagués cap opció de software lliure disponible per a resoldre algun problema, aleshores seria escrit en Sage. Però, el que volem dir, és que Sage no reinventa la roda. La mateixa filosofia de disseny es fa servir en altres programes matemàtics (com Mathematica), però Sage pot fer servir un espectre més ampli de software, que la competència no lliure, ja que algunes llicències de codi obert imposen grans restriccions en l'ús comercial del codi.
El desenvolupament de Sage es fa tant a través d'estudiants com de professionals. Està recolzat tant pel treball voluntari com per donacions o beques.[5]
El 2007 Sage va guanyar el primer premi en la categoria de software científic en el Les Trophées du Libre, una competició internacional de software lliure.[6]
Sage és programari lliure, distribuït sota els termes de la GNU General Public License versión 2 o posterior. Sage està disponible de diverses formes:
Tot i que Microsoft està desenvolupant una versió nativa de Sage per al sistema operatiu Windows,[7] de moment els usuaris de Windows només poden fer servir Sage a través d'una màquina virtual, és a dir, de software de virtualització, com Virtualbox o Vmware. Aquests et permeten simular Linux dins de Windows.
Com hem comentat anteriorment, la filosofia de Sage fa ús de les llibreries de codi obert que ja existeixen. De manera que manlleva molts projectes per tal de produir un producte final.
Àlgebra | GAP, Maxima, Singular |
Àlgebra lineal | ATLAS, BLAS, LAPACK, NumPy, LinBox, IML, GSL |
Àlgebra lineal numèrica | GSL, SciPy, NumPy, ATLAS |
Aritmètica de precisió arbitrària | GMP, MPFR, MPFI, NTL |
Càlcul | Maxima, Sympy, GiNaC |
Combinatòria | Symmetrica, MuPAD-Combinat* |
Geometria algebraica | Singular, Macaulay2 |
Geometria aritmètica | PARI, NTL, mwrank, ecm |
Gràfiques | Matplotlib, Tachion3d, GD, Jmol |
Teoria de grafs | NetworkX |
Teoria de grups | GAP |
Teoria de nombres | PARI/GP, FLINT, NTL |
Estadística | R, SciPy |
Línia d'ordres | IPython |
Bases de dades | ZODB, Python Pickles, SQLite |
Interfície gràfica | Sage Notebook, jsmath |
Llenguatge de progrmaació interactiu | Python |
Xarxes | Twisted |
x,a,b,c = var('x,a,b,c')
log(sqrt(a)).simplify_log() # retorna log(a)/2
log(a/b).simplify_log() # retorna log(a) - log(b)
sin(a+b).simplify_trig() # retorna cos(a)*sin(b) + sin(a)*cos(b)
cos(a+b).simplify_trig() # retorna cos(a)*cos(b) - sin(a)*sin(b)
(a+b)ˆ5 # returns (b + a)ˆ5
expand((a+b)ˆ5) # retorna 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) # retorna 1/3
limit(sin(x)/x, x=0) # retorna 1
diff(acos(x),x) # retorna -1/sqrt(1 - xˆ2)
f = exp(x)*log(x)
f.diff(x,3) # retorna 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) # retorna [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) # retorna [x == 3*sqrt(3)*I - 3,
# x == -3*sqrt(3)*I - 3, x == 6]
t = var('t') # defineix una variable t
x = function('x',t) # defineix x com a funció d'aquesta variable
DE = lambda y: diff(y,t) + y - 1
desolve(DE(x(t)), [x,t]) # retorna '%e^-t*(%e^t+%c)'
A = Matrix([[1,2,3],[3,2,1],[1,1,1]])
y = vector([0,-4,-1])
A.solve_right(y) # retorna (-2, 1, 0)
A.eigenvalues() # retorna [5, 0, -1]
B = Matrix([[1,2,3],[3,2,1],[1,2,1]])
B.inverse() # retorna [ 0 1/2 -1/2]
# [-1/4 -1/4 1]
# [ 1/2 0 -1/2]
# Crida numpy per fer servir la pseudo-inversa de Moore-Penrose,
# donat que Sage encara no ho té pròpiament implementat.
import numpy
C = Matrix([[1, 1], [2, 2]])
matrix(numpy.linalg.pinv(C.numpy())) # retorna [0.1 0.2]
# [0.1 0.2]
prime_pi(1000000) # retorna 78498, el nombre de primers menors a un milió
E = EllipticCurve('389a') # construeix una corba el·líptica a partir de la seva etiqueta de Cremona
P, Q = E.gens()
7*P + Q # retorna (2869/676 : -171989/17576 : 1)
Seamless Wikipedia browsing. On steroids.
Every time you click a link to Wikipedia, Wiktionary or Wikiquote in your browser's search results, it will show the modern Wikiwand interface.
Wikiwand extension is a five stars, simple, with minimum permission required to keep your browsing private, safe and transparent.