fbpx
Wikipedia

SageMath

SageMath, conocido anteriormente como Sage, es un sistema algebraico computacional (en inglés CAS) que destaca por estar construido sobre paquetes matemáticos ya contrastados como NumPy, Sympy, PARI/GP o Maxima y por acceder a sus potencias combinadas a través de un lenguaje común basado en Python.

SageMath

La interfaz gráfica bajo Firefox
Información general
Tipo de programa Software matemático (Sistema algebraico computacional CAS)
Desarrollador William Stein (líder del proyecto) et al
Lanzamiento inicial 24 de febrero de 2005
Licencia GNU GPL
Información técnica
Programado en Python, Cython
Versiones
Última versión estable 9.1 20 de mayo de 2020 (1 año, 2 meses y 16 días)
Enlaces
Sitio web oficial
Repositorio de código

La interacción con el usuario es posible desde la interfaz de línea de comandos (basada en IPython ) o vía unos cuadernos web[1]​ que combinan celdas de código con celdas con gráficos, texto enriquecido o fórmulas renderizadas con LaTeX.

Historia y filosofía de diseño

La primera versión de SAGE se publicó en 2005 con el objetivo inicial de recrear un pequeño subconjunto del sistema algebraico computacional Magma, y reducir así la dependencia del software matemático propietario y cerrado.[2]

 
William A. Stein, desarrollador de Sage

El líder del proyecto, William A. Stein, matemático en la Universidad de Washington, destacó varios factores al diseñar Sage:[3]

  • Crear una alternativa viable a Magma, Maple, Mathematica, y MATLAB, llevaría cientos, o miles de años-hombre si se empezara desde el inicio.
  • Existe una amplia gama de software matemático de código abierto bien probado, escrito en diferentes lenguajes (siendo C, C++, Fortran y Python los más comunes).

Así que en lugar de empezar desde el inicio, Sage (escrito en Python y Cython) integraría todo el software de código abierto sobre matemática ya existente en una interfaz común: un usuario necesitará saber únicamente un lenguaje bien conocido como Python.

Donde no hubiera una opción de software libre disponible para algún problema, entonces sería escrito en Sage. Pero Sage no reinventa la rueda. La misma filosofía de diseño se usa en otros programas matemáticos (como Mathematica), pero Sage puede utilizar un espectro más amplio de software, que sus contrapartes no libres, ya que las licencias propietarias imponen serias restricciones a la reutilización del software.

El desarrollo de Sage lo llevan a cabo tanto estudiantes como profesionales. Es apoyado tanto por trabajo voluntario como por donaciones.[4]

En 2007 Sage ganó el primer premio en la categoría de software científico en el Les Trophées du libre, una competición internacional de software libre.[5]

Características

Al igual que otros CAS, SageMath se divide en un núcleo que realiza los cálculos y una interfaz (a elegir) que los muestra e interacciona con el usuario.

Interfaces con el usuario

Existe una interfaz gráfica (notebook) para la revisión y reutilización de entradas y salidas anteriores, incluyendo gráficas y notas de texto. Realmente en 2016 conviven dos tipos de notebook: uno (SageMath worksheet) diseñado exprofeso para SageMath, con otro (Jupyter notebook) de uso más generalizado en el software científico.

Además existe una línea de comandos basada en texto usando iPython que permite el control interactivo de los cálculos:

sage  # inicia interfaz de línea de comandos sage -n  # inicia navegador con interfaz Sagemath worksheet sage -n jupyter # inicia navegador con interfaz Jupyter notebook 

Posee asistencia al usuario con autocompletado (TAB), consulta de documentación (EXPRESION?) o del código fuente (EXPRESION??) es posible en todas las interfaces.

En las interfaces de tipo notebook permite la inclusión de widgets (p.ej cajas de entrada, deslizadores) que permiten al usuario del programa interaccionar con él sin tener que modificar el código fuente. Para ello basta con aplicar el decorador @interact a una función ya definida.[6]

Lenguaje de programación

SageMath utiliza el lenguaje de programación Python, que soporta expresiones en programación orientada a objetos y funcional. Internamente, SageMath está escrito en Python y en una versión modificada de Pyrex llamada Cython. Cuando SageMath invoca funciones de otros paquetes lo hace de forma transparente usando internamente el módulo python Pexpect.

Además, utiliza procesamiento paralelo usando tanto procesadores de núcleo múltiple como multiprocesadores simétricos.

Herramientas que aglutina

Reúne y unifica bajo un solo entorno, lenguaje y jerarquía de objetos toda una colección de software matemático y trata de rellenar los huecos de funcionalidad dejados por unos y otros. Proporciona una interfaz Python a software libre especializado en distintos campos entre los que destacamos:

Campo Paquetes matemáticos distribuidos con SageMath
Á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ón arbitraria GMP, MPFR, MPFI, NTL
Cálculo Maxima, Sympy, GiNaC
Combinatoria Symmetrica, Sage-Combinat
Estadística R, SciPy
Geometría algebraica SINGULAR, Macaulay2
Geometría aritmética PARI/GP, NTL, mwrank, GMP-ECM
Geometría Diferencial y Cálculo Tensorial Sage Manifolds
Gráficos Matplotlib, Tachyon, GD, Jmol
Teoría de grafos NetworkX
Teoría de grupos GAP , Symmetrica
Teoría de números PARI/GP, FLINT, NTL

También proporciona interfaces a otro software no libre como Mathematica, Magma y Maple (no distribuidos con SageMath) que permite a los usuarios combinar software y comparar resultados y desempeño.

Todos estos paquetes cubren, entre otras, las funcionalidades básicas siguientes:

  • Gráficas en 2D y 3D tanto de funciones como de datos.
  • Herramientas de manipulación de datos y matrices.
  • Herramientas para visualizar y analizar gráficas
  • Filtros para importar y exportar datos, imágenes, vídeo, sonido, CAD, y GIS

Licencia y disponibilidad

SageMath es software libre, distribuido bajo los términos de la GNU General Public License versión 2 o posterior. Está disponible de varias maneras:

Versiones en línea

  • Pueden usarse desde SageMathCloud (enlace roto disponible en Internet Archive; véase el historial, la primera versión y la última)., un servicio de computación en la nube al que se accede desde ordenadores o dispositivos móviles mediante cuentas gratuitas o de suscripción. Este servicio está disponible desde 2013.
  • Para una consulta puntual existe, desde el año 2009, una versión reducida en SageMathCell.

Instalación en el ordenador

  • Se pueden descargar binarios para GNU/Linux, OS X y Solaris (tanto x86 como SPARC). Los binarios de Solaris se consideran experimentales.
  • El código fuente puede descargarse de la página de descargas.
  • Un CD live que corre una versión del sistema GNU/Linux permite probar Sage sin necesidad de instalarlo.
  • Los usuarios de Windows solo pueden utilizarlo a través de software de virtualización como Virtualbox o Vmware.

Ejemplos de línea de comandos

Cálculo

x,a,b,c = var('x,a,b,c')  # en contraste con otros CAS, debemos declarar     # una variable simbólica antes de usarla  log(sqrt(a)).simplify_log()  # devuelve log(a)/2 log(a/b).simplify_log()  # devuelve log(a) - log(b) sin(a+b).simplify_trig()  # devuelve cos(a)*sin(b) + sin(a)*cos(b) cos(a+b).simplify_trig()  # devuelve cos(a)*cos(b) - sin(a)*sin(b) (a+b)ˆ5   # devuelve (b + a)ˆ5 expand((a+b)ˆ5)   # devuelve 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) # devuelve 1/3 limit(sin(x)/x, x=0)  # devuelve 1 diff(acos(x),x)   # devuelve -1/sqrt(1 - xˆ2) f = exp(x)*log(x) f.diff(x,3)   # devuelve 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)  # devuelve [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)  # devuelve[x == 3*sqrt(3)*I - 3,    # x == -3*sqrt(3)*I - 3, x == 6] 

Ecuaciones Diferenciales

t = var('t')   # declara una variable simbólica t x = function('x',t)  # define x como función de t DE = lambda y: diff(y,t) + y - 1 desolve(DE(x(t)), [x,t])  # devuelve '%e^-t*(%e^t+%c)' 

Álgebra Lineal

A = matrix([[1,2,3],[3,2,1],[1,1,1]]) y = vector([0,-4,-1]) A.solve_right(y)  # devuelve (-2, 1, 0) A.eigenvalues()   # devuelve [5, 0, -1] B = matrix([[1,2,3],[3,2,1],[1,2,1]]) B.inverse()   # devuelve [ 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())) # devuelve [0.1 0.2]    # [0.1 0.2] 

Teoría de Números

prime_pi(1000000)   # devuelve 78498, el número de primos     # menores que 1 millón. E = EllipticCurve('389a')  # construye una curva elíptica     # de las tablas de Cremona P, Q = E.gens() 7*P + Q   # devuelve (2869/676 : -171989/17576 : 1) 

Referencias

  1. «Jupyter notebook». 
  2. . Archivado desde el original el 28 de septiembre de 2007. Consultado el 11 de marzo de 2008. 
  3. Stein, William (2013). «Sage: creating a viable free open source alternative to Magma, Maple, Mathematica, and MATLAB.». London Mathematical Society Lecture Note Series 403, 230-238. Consultado el 2016. 
  4. «Explicit Approaches to Modular Forms and Modular Abelian Varieties». National Science Foundation. 14 de abril de 2006. Consultado el 24 de julio de 2007. 
  5. «Free Software Brings Affordability, Transparency To Mathematics». Science Daily. 7 de diciembre de 2007. Consultado el 20 de julio de 2008. 
  6. «SageMath Interact functionality». Consultado el 11 de abril de 2008. 
  7. «The TeX Catalogue OnLine, Entry for sagetex, Ctan Edition». 

Enlaces externos

  •   Wikimedia Commons alberga una categoría multimedia sobre SageMath.
  • Sitio web de SageMath / Documentación oficial (en inglés)
  • Hoja de referencia rápida
  • SageMath cell server Sagemath en la nube para breves cálculos.
  • SageMathCloud SageMath para proyectos en la nube (requiere registro gratuito)
  • Sagemath y matemáticas Lista con 21 videotutoriales en español.
  •   Datos: Q1165184
  •   Multimedia: Sage (mathematics software)

sagemath, conocido, anteriormente, como, sage, sistema, algebraico, computacional, inglés, destaca, estar, construido, sobre, paquetes, matemáticos, contrastados, como, numpy, sympy, pari, maxima, acceder, potencias, combinadas, través, lenguaje, común, basado. SageMath conocido anteriormente como Sage es un sistema algebraico computacional en ingles CAS que destaca por estar construido sobre paquetes matematicos ya contrastados como NumPy Sympy PARI GP o Maxima y por acceder a sus potencias combinadas a traves de un lenguaje comun basado en Python SageMathLa interfaz grafica bajo FirefoxInformacion generalTipo de programaSoftware matematico Sistema algebraico computacional CAS DesarrolladorWilliam Stein lider del proyecto et alLanzamiento inicial24 de febrero de 2005LicenciaGNU GPLInformacion tecnicaProgramado enPython CythonVersionesUltima version estable9 1 20 de mayo de 2020 1 ano 2 meses y 16 dias EnlacesSitio web oficial Repositorio de codigo editar datos en Wikidata La interaccion con el usuario es posible desde la interfaz de linea de comandos basada en IPython o via unos cuadernos web 1 que combinan celdas de codigo con celdas con graficos texto enriquecido o formulas renderizadas con LaTeX Indice 1 Historia y filosofia de diseno 2 Caracteristicas 2 1 Interfaces con el usuario 2 2 Lenguaje de programacion 2 3 Herramientas que aglutina 3 Licencia y disponibilidad 3 1 Versiones en linea 3 2 Instalacion en el ordenador 4 Ejemplos de linea de comandos 4 1 Calculo 4 2 Ecuaciones Diferenciales 4 3 Algebra Lineal 4 4 Teoria de Numeros 5 Referencias 6 Enlaces externosHistoria y filosofia de diseno EditarLa primera version de SAGE se publico en 2005 con el objetivo inicial de recrear un pequeno subconjunto del sistema algebraico computacional Magma y reducir asi la dependencia del software matematico propietario y cerrado 2 William A Stein desarrollador de Sage El lider del proyecto William A Stein matematico en la Universidad de Washington destaco varios factores al disenar Sage 3 Crear una alternativa viable a Magma Maple Mathematica y MATLAB llevaria cientos o miles de anos hombre si se empezara desde el inicio Existe una amplia gama de software matematico de codigo abierto bien probado escrito en diferentes lenguajes siendo C C Fortran y Python los mas comunes Asi que en lugar de empezar desde el inicio Sage escrito en Python y Cython integraria todo el software de codigo abierto sobre matematica ya existente en una interfaz comun un usuario necesitara saber unicamente un lenguaje bien conocido como Python Donde no hubiera una opcion de software libre disponible para algun problema entonces seria escrito en Sage Pero Sage no reinventa la rueda La misma filosofia de diseno se usa en otros programas matematicos como Mathematica pero Sage puede utilizar un espectro mas amplio de software que sus contrapartes no libres ya que las licencias propietarias imponen serias restricciones a la reutilizacion del software El desarrollo de Sage lo llevan a cabo tanto estudiantes como profesionales Es apoyado tanto por trabajo voluntario como por donaciones 4 En 2007 Sage gano el primer premio en la categoria de software cientifico en el Les Trophees du libre una competicion internacional de software libre 5 Caracteristicas EditarAl igual que otros CAS SageMath se divide en un nucleo que realiza los calculos y una interfaz a elegir que los muestra e interacciona con el usuario Interfaces con el usuario Editar Existe una interfaz grafica notebook para la revision y reutilizacion de entradas y salidas anteriores incluyendo graficas y notas de texto Realmente en 2016 conviven dos tipos de notebook uno SageMath worksheet disenado exprofeso para SageMath con otro Jupyter notebook de uso mas generalizado en el software cientifico Ademas existe una linea de comandos basada en texto usando iPython que permite el control interactivo de los calculos sage inicia interfaz de linea de comandos sage n inicia navegador con interfaz Sagemath worksheet sage n jupyter inicia navegador con interfaz Jupyter notebook Posee asistencia al usuario con autocompletado TAB consulta de documentacion EXPRESION o del codigo fuente EXPRESION es posible en todas las interfaces En las interfaces de tipo notebook permite la inclusion de widgets p ej cajas de entrada deslizadores que permiten al usuario del programa interaccionar con el sin tener que modificar el codigo fuente Para ello basta con aplicar el decorador interact a una funcion ya definida 6 Lenguaje de programacion Editar SageMath utiliza el lenguaje de programacion Python que soporta expresiones en programacion orientada a objetos y funcional Internamente SageMath esta escrito en Python y en una version modificada de Pyrex llamada Cython Cuando SageMath invoca funciones de otros paquetes lo hace de forma transparente usando internamente el modulo python Pexpect Ademas utiliza procesamiento paralelo usando tanto procesadores de nucleo multiple como multiprocesadores simetricos Herramientas que aglutina Editar Reune y unifica bajo un solo entorno lenguaje y jerarquia de objetos toda una coleccion de software matematico y trata de rellenar los huecos de funcionalidad dejados por unos y otros Proporciona una interfaz Python a software libre especializado en distintos campos entre los que destacamos Campo Paquetes matematicos distribuidos con SageMathAlgebra GAP Maxima SingularAlgebra lineal ATLAS BLAS LAPACK NumPy LinBox IML GSLAlgebra lineal numerica GSL SciPy NumPy ATLASAritmetica de precision arbitraria GMP MPFR MPFI NTLCalculo Maxima Sympy GiNaCCombinatoria Symmetrica Sage CombinatEstadistica R SciPyGeometria algebraica SINGULAR Macaulay2Geometria aritmetica PARI GP NTL mwrank GMP ECMGeometria Diferencial y Calculo Tensorial Sage ManifoldsGraficos Matplotlib Tachyon GD JmolTeoria de grafos NetworkXTeoria de grupos GAP SymmetricaTeoria de numeros PARI GP FLINT NTLTambien proporciona interfaces a otro software no libre como Mathematica Magma y Maple no distribuidos con SageMath que permite a los usuarios combinar software y comparar resultados y desempeno Todos estos paquetes cubren entre otras las funcionalidades basicas siguientes Librerias de funciones elementales y especialesGraficas en 2D y 3D tanto de funciones como de datos Herramientas de manipulacion de datos y matrices Una caja de herramientas para anadir interfaces de usuario a calculos y aplicacionesHerramientas para procesamiento de imagenes usando pylab asi como PythonHerramientas para visualizar y analizar graficasFiltros para importar y exportar datos imagenes video sonido CAD y GISEmbeber Sage en documentos LaTeX 7 Licencia y disponibilidad EditarSageMath es software libre distribuido bajo los terminos de la GNU General Public License version 2 o posterior Esta disponible de varias maneras Versiones en linea Editar Pueden usarse desde SageMathCloud enlace roto disponible en Internet Archive vease el historial la primera version y la ultima un servicio de computacion en la nube al que se accede desde ordenadores o dispositivos moviles mediante cuentas gratuitas o de suscripcion Este servicio esta disponible desde 2013 Para una consulta puntual existe desde el ano 2009 una version reducida en SageMathCell Instalacion en el ordenador Editar Se pueden descargar binarios para GNU Linux OS X y Solaris tanto x86 como SPARC Los binarios de Solaris se consideran experimentales El codigo fuente puede descargarse de la pagina de descargas Un CD live que corre una version del sistema GNU Linux permite probar Sage sin necesidad de instalarlo Los usuarios de Windows solo pueden utilizarlo a traves de software de virtualizacion como Virtualbox o Vmware Ejemplos de linea de comandos EditarCalculo Editar x a b c var x a b c en contraste con otros CAS debemos declarar una variable simbolica antes de usarla log sqrt a simplify log devuelve log a 2 log a b simplify log devuelve log a log b sin a b simplify trig devuelve cos a sin b sin a cos b cos a b simplify trig devuelve cos a cos b sin a sin b a b ˆ5 devuelve b a ˆ5 expand a b ˆ5 devuelve 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 devuelve 1 3 limit sin x x x 0 devuelve 1 diff acos x x devuelve 1 sqrt 1 xˆ2 f exp x log x f diff x 3 devuelve 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 devuelve 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 devuelve x 3 sqrt 3 I 3 x 3 sqrt 3 I 3 x 6 Ecuaciones Diferenciales Editar t var t declara una variable simbolica t x function x t define x como funcion de t DE lambda y diff y t y 1 desolve DE x t x t devuelve e t e t c Algebra Lineal Editar A matrix 1 2 3 3 2 1 1 1 1 y vector 0 4 1 A solve right y devuelve 2 1 0 A eigenvalues devuelve 5 0 1 B matrix 1 2 3 3 2 1 1 2 1 B inverse devuelve 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 devuelve 0 1 0 2 0 1 0 2 Teoria de Numeros Editar prime pi 1000000 devuelve 78498 el numero de primos menores que 1 millon E EllipticCurve 389a construye una curva eliptica de las tablas de Cremona P Q E gens 7 P Q devuelve 2869 676 171989 17576 1 Referencias Editar Jupyter notebook http www sagemath org why stein sd4 pdf Archivado desde el original el 28 de septiembre de 2007 Consultado el 11 de marzo de 2008 Stein William 2013 Sage creating a viable free open source alternative to Magma Maple Mathematica and MATLAB London Mathematical Society Lecture Note Series 403 230 238 Consultado el 2016 Explicit Approaches to Modular Forms and Modular Abelian Varieties National Science Foundation 14 de abril de 2006 Consultado el 24 de julio de 2007 Free Software Brings Affordability Transparency To Mathematics Science Daily 7 de diciembre de 2007 Consultado el 20 de julio de 2008 SageMath Interact functionality Consultado el 11 de abril de 2008 The TeX Catalogue OnLine Entry for sagetex Ctan Edition Enlaces externos Editar Wikimedia Commons alberga una categoria multimedia sobre SageMath Sitio web de SageMath Documentacion oficial en ingles Hoja de referencia rapida SageMath cell server Sagemath en la nube para breves calculos SageMathCloud SageMath para proyectos en la nube requiere registro gratuito Sagemath y matematicas Lista con 21 videotutoriales en espanol Datos Q1165184 Multimedia Sage mathematics software Obtenido de https es wikipedia org w index php title SageMath amp oldid 134851547, wikipedia, wiki, leyendo, leer, libro, biblioteca,

español

, española, descargar, gratis, descargar gratis, mp3, video, mp4, 3gp, jpg, jpeg, gif, png, imagen, música, canción, película, libro, juego, juegos