Anar al contingut

SageMath

De L'Enciclopèdia, la wikipedia en valencià
SageMath

SageMath, conegut anteriorment com Sage, és un sistema algebraic computacional (en anglés CAS) que destaca per estar construït sobre paquets matemàtics ya contrastats com NumPy, Sympy, PARI/GP o Maxima i per accedir a les seues potències combinades a través d'un llenguage comú basat en Python.

L'interacció en l'usuari és possible des de l'interfaç de llínea de comandos (basada en IPython ) o via uns quaderns web[1] que combinen celes de còdic en celes en gràfics, text enriquit o fòrmules renderizadas en LaTeX.

Història i filosofia de disseny

[editar | editar còdic]

La primera versió de SAGE es va publicar en 2005 en l'objectiu inicial de recrear un chicotet subconjunt del sistema algebraic computacional Magma, i reduir aixina la dependència del software matemàtic propietari i tancat.[2]

Archiu:William caps block 4 Stein.png
William A. Stein, desenrollador de Sage

El líder del proyecte, William A. Stein, matemàtic en l'Universitat de Washington, va destacar varis factors en dissenyar Sage:[3]

  • Crear una alternativa viable a Magma, Maple, Mathematica, i MATLAB, duria centenars, o mils d'anys-home si s'escomençara des de l'inici.
  • Existix una àmplia gama de software matemàtic de còdic obert ben provat, escrit en diferents llenguages (sent C, C++, Fortran i Python els més comuns).

Aixina que en lloc d'escomençar des de l'inici, Sage (escrit en Python i Cython) integraria tot el software de còdic obert sobre matemàtica ya existent en un interfaç comú: un usuari necessitarà saber únicament un llenguage ben conegut com Python.

A on no hi haguera una opció de software lliure disponible per a algun problema, llavors seria escrit en Sage. Pero Sage no reinventa la roda. La mateixa filosofia de disseny s'usa en atres programes matemàtics (com Mathematica), pero Sage pot utilisar un espectre més ampli de software, que els seus contrapartes no lliures, ya que les llicències propietàries imponen séries restriccions a la reutilisació del software.

El desenroll de Sage ho porten a terme tant estudiants com a professionals. És recolzat tant per treball voluntari com per donacions.[4]

En 2007 Sage va guanyar el primer premi en la categoria de software científic en l'Els Trophées du lliure, una competició internacional de software lliure.[5]

Característiques

[editar | editar còdic]

De la mateixa manera que atres CAS, SageMath es dividix en un núcleu que realisa els càlculs i un interfaç (a elegir) que els mostra i interacciona en l'usuari.

Interfaços en l'usuari

[editar | editar còdic]

Existix un interfaç gràfic (notebook) per a la revisió i reutilisació d'entrades i eixides anteriors, incloent gràfiques i notes de text. Realment en 2016 conviuen dos tipos de notebook: un (SageMath worksheet) dissenyat exprofeso per a SageMath, en un atre (Jupyter notebook) d'us més generalisat en el software científic.

Ademés existix una llínea de comandos basada en text usant iPython que permet el control interactiu dels càlculs:

sage                     # inicia interfaç de llínea de comandos
sage -n                  # inicia navegador en interfaç Sagemath worksheet
sage -n jupyter          # inicia navegador en interfaç Jupyter notebook

Posseïx assistència a l'usuari en autocompletado (TAB), consulta de documentació (EXPRESION?) o del còdic font (EXPRESION??) és possible en tots els interfaços.

En els interfaços de tipo notebook permet l'inclusió de widgets (p.ej caixes d'entrada, deslizadores) que permeten a l'usuari del programa interaccionar en ell sense tindre que modificar el còdic font. Per a això n'hi ha prou en aplicar el decorador interact a una funció ya definida.[6]

Llenguage de programació

[editar | editar còdic]

SageMath utilisa el llenguage de programació Python, que soporta expressions en programació orientada a objectes i funcional. Internament, SageMath està escrit en Python i en una versió modificada de Pyrex cridada Cython. Quan SageMath invoca funcions d'atres paquets ho fa de forma transparent usant internament el mòdul python Pexpect.

Ademés, utilisa processament paralel usant tant processadors de núcleu múltiple com multiprocessadors simètrics.

Ferramentes que aglutina

[editar | editar còdic]

Reunix i unifica baix un sol entorn, llenguage i jerarquia d'objectes tota una colecció de software matemàtic i tracta de reblir els buits de funcionalitat deixats per uns i uns atres. Proporciona un interfaç Python a software lliure especialisat en distints camps entre els que destaquem:

Camp Paquets matemàtics distribuïts en SageMath
Àlgebra GAP, Maxima, Singular
Àlgebra llineal ATLAS, BLAS, LAPACK, NumPy, LinBox, IML, GSL
Àlgebra llineal numèrica GSL, SciPy, NumPy , ATLAS
Aritmètica de precisió arbitrària GMP, MPFR, MPFI, NTL
Càlcul Maxima, Sympy, GiNaC
Combinatòria Symmetrica, Sage-Combinat
Estadística R, SciPy
Geometria algebraica SINGULAR, Macaulay2
Geometria aritmètica PARI/GP, NTL, mwrank, GMP-ECM
Geometria Diferencial i Càlcul Tensorial Sage Manifolds
Gràfics Matplotlib, Tachyon, GD, Jmol
Teoria de grafos NetworkX
Teoria de grups GAP , Symmetrica
Teoria de números PARI/GP, FLINT, NTL

També proporciona interfaços a un atre software no lliure com Mathematica, Magma i Maple (no distribuïts en SageMath) que permet als usuaris combinar software i comparar resultats i eixercite.

Tots estos paquets cobrixen, entre unes atres, les funcionalitats bàsiques següents:

  • Gràfiques en 2D i 3D tant de funcions com de senyes.
  • Ferramentes de manipulació de senyes i matrius.
  • Ferramentes per a visualisar i analisar gràficas


  • Filtres per a importar i exportar senyes, imàgens, vídeo, sò, CAD, i GIS

Referències

[editar | editar còdic]
  1. «Jupyter notebook».
  2. «http://www.sagemath.org/why/stein-sd4.pdf». Archivat des d'el original, el 28 de setembre de 2007. Consultat el 11 de març de 2008.
  3. London Mathematical Society Lecture Note Séries 403, 230-238.Consultat el 2016.
  4. «Explicit Approaches to Modular Forms and Modular Abelian Varieties». National Science Foundation. Consultat el 24 de juliol de 2007.
  5. «Free Software Brings Affordability, Transparency To Mathematics». Science Daily. Consultat el 20 de juliol de 2008.
  6. «SageMath Interact functionality». Consultat el 11 d'abril de 2008.


Referències

[editar | editar còdic]