Nothing Special   »   [go: up one dir, main page]

Sari la conținut

Sage

De la Wikipedia, enciclopedia liberă
Sage
Sage logo
DezvoltatorWilliam A. Stein[*][[William A. Stein (American professor of mathematics)|​]]  Modificați la Wikidata
Versiune inițială24 February 2005
Ultima versiune10.4[1]  Modificați la Wikidata ()
Repogithub.com/sagemath/sage Modificați la Wikidata
Scris înPython, Cython
Sistem de operareMultiplatformă
PlatformăPython
TipSistem de Algebră Computerizată
LicențăGNU General Public License
Prezență online
www.sagemath.org

Sage este o aplicație matematică ce acoperă mai multe domenii ale matematicii inclusiv algebra, combinatorica, analiza numerica și calcul diferențial și integral.

Prima versiune a fost lansatǎ în 24 februarie 2005 ca aplicație gratuita, respectând termenii Licenței Publice Generale GNU. Scopul principal fiind acela de a crea o alternativă opensource la Magma, Maple, Mathematica și MATLAB."[2] Sage a fost dezvoltat de către William Stein, un matematician de la University of Washington.

Sage este adesea numit sagemath, deoarece cuvântul sage este un cuvânt des întâlnit.

Caracteristici

[modificare | modificare sursă]
Interfața Sage în Firefox, Opera, Konqueror, și Safari.
Sage-Reprezentarea rezolvării unei equații folosind interfața web

Câteva din multele caracteristici ale Sage sunt:[3].

  • O interfață web, pentru vizualizarea și reutilizarea intrărilor și ieșirilor, inclusiv grafice și comentarii utilizabile de către multe browsere web, precum: Firefox, Opera, Konqueror și Safari.
  • O interfață linie de comanda folosind IPython
  • Suporta limbajul de programare Python.
  • Suporta calculul paralel folosind fie procesoarele multi-nucleu ce se regăsesc în multe computere moderne fie sistemele multiprocesor.
  • Calcul integral și diferențial folosind Maxima și SymPy
  • Algebra lineară folosind GSL, SciPy și NumPy.
  • Librarii pentru funcții elementare și speciale
  • Grafice 2D și 3D
  • Unelte pentru manipularea matricelor și datelor, inclusiv suportul pentru procesarea matricelor rare
  • Variate librarii pentru calcul statistic, folosind funcționalitate limbajului de programare R și SciPy
  • Unelte pentru procesarea imaginilor folosind Pylab precum și limbajul de programare Python
  • Unelte pentru vizualizarea și analiza grafurilor
  • Importa și exporta filtre pentru fișiere de date, imagini, video, audio, CAD, GIS și formate biomedicale
  • Suportul pentru numere complexe și calcul simbolic
  • Generare de documentație folosind Sphinx

Atât binarele cât și codul sursă sunt disponibile în pagina de download. Dacă Sage este compilat din codul sursă, multe din librăriile incluse precum: ATLAS, FLINT, NTL pot fi optimizate pentru computerul pe care se face compilarea, ținând cont de numărul de procesoare, de mărimea memoriei cache, dacă exista suport hardware pentru instrucțiunile SSE, etc.

Cython poate creste foarte mult viteza de execuție a programelor scrise în Sage, deoarece codul sursă în limbajul de programare Python este convertit în cod sursă C. [4]Format:Self-citation

Licențiere și disponibilitate

[modificare | modificare sursă]

Sage este o aplicație gratuită, distribuită sub termenii Licenței Publice Generale GNU versiunea 2+. Sage este disponibil în multe moduri:

Deși Microsoft a sponsorizat o versiune nativǎ a Sage pentru sistemul de operare Windows [5], utilizatorii acestui sistem de operare trebuie să folosească tehnologie de virtualizare ca VirtualBox, pentru a rula Sage.

Pachete software incluse în Sage

[modificare | modificare sursă]

Filosofia din spatele lui Sage este folosirea librăriilor open source. Prin urmare el aduce la un loc mai multe proiecte de sine stătătoare pentru crearea unui produs final.

Pachete software incluse în Sage
Algebra GAP, Maxima, Singular
Geometrie algebrică Singular
Operații aritmetice cu numere foarte mari MPIR, MPFR, MPFI, NTL, mpmath
Geometrie aritmetică PARI/GP, NTL, mwrank, ecm
Calculul integral și diferențial Maxima, SymPy, GiNaC
Combinatorică Symmetrica, Sage-Combinat
Algebră lineară ATLAS, BLAS, LAPACK, NumPy, LinBox, IML, GSL
Teoria grafurilor NetworkX
Teoria grupurilor GAP
Analiză numerică GSL, SciPy, NumPy, ATLAS
Teoria numerelor PARI/GP, FLINT, NTL
Calcul statistic R, SciPy
Alte pachete software incluse în Sage
Interfață linie de comandǎ IPython
Bază de date ZODB, Python Pickles, SQLite
Interfață graficǎ Sage Notebook, jsmath
Grafice Matplotlib, Tachyon3d, GD, Jmol
Limbaj de programare interactiv (interpretat) Python
Networking Twisted

Exemple în interfața de comandǎ

[modificare | modificare sursă]

Analizǎ matematică

[modificare | modificare sursă]
x,a,b,c = var('x,a,b,c')

log(sqrt(a)).simplify_log() # returnează log(a)/2
log(a/b).simplify_log() # returnează log(a) - log(b)
sin(a+b).simplify_trig() # returnează cos(a)*sin(b) + sin(a)*cos(b)
cos(a+b).simplify_trig() # returnează cos(a)*cos(b) - sin(a)*sin(b)
(a+b)ˆ5 # returns (b + a)ˆ5
expand((a+b)ˆ5) # returnează 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) # returnează 1/3
limit(sin(x)/x, x=0) # returnează 1

diff(acos(x),x) # returnează -1/sqrt(1 - xˆ2)
f = exp(x)*log(x)
f.diff(x,3) # returnează 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) # returnează [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) # returnează [x == 3*sqrt(3)*I - 3,
 # x == -3*sqrt(3)*I - 3, x == 6]

Ecuații diferențiale

[modificare | modificare sursă]
t = var('t') # se definește o variabilǎ "t"
x = function('x',t) # definește x ca fiind o funcție de "t"
DE = lambda y: diff(y,t) + y - 1
desolve(DE(x(t)), [x,t]) # returnează '%e^-t*(%e^t+%c)'

Algebrǎ linearǎ

[modificare | modificare sursă]
A = Matrix([[1,2,3], [3,2,1], [1,1,1]])
y = vector([0,-4,-1])
A.solve_right(y) # returnează (-2, 1, 0)
A.eigenvalues() # returnează [5, 0, -1]

B = Matrix([[1,2,3], [3,2,1], [1,2,1]])
B.inverse() # returnează [ 0 1/2 -1/2]
 # [-1/4 -1/4 1]
 # [ 1/2 0 -1/2]

import numpy
C = Matrix([[1 , 1], [2 , 2]])
matrix(numpy.linalg.pinv(C.numpy())) # returnează [0.1 0.2]
 # [0.1 0.2]

Teoria numerelor

[modificare | modificare sursă]
prime_pi(1000000) # returnează 78498, numărul numerelor prime mai mici decât 1.000.000

E = EllipticCurve('389a') # construiește o curba eliptica
P, Q = E.gens()
7*P + Q # returnează (2869/676 : -171989/17576 : 1)

Mai jos sunt listate doar versiunile majore ale Sage.

Versiunile Sage
Versiunea Data lansării Descriere
0.1 Ianuarie, 2005 A fost inclus Pari
0.2 - 0.4 Martie-Iulie 2005 Tabelele Cremona, polinoamele multivariate și mai multǎ documentație
0.5 - 0.7 August-Septembrie 2005 Spatii vectoriale, inele
0.8 Octombrie 2005 Au fost adăugate GAP și Singular
0.9 Noiembrie, 2005 Au fost adăugate Maxima și Clisp
1.0 Februarie, 2006
2.0 Ianuarie, 2007
3.0 Aprilie, 2008
4.0 Mai, 2009
5.0 viitor 5.0 Milestone Arhivat în , la Wayback Machine.

În 2007, Sage a câștigat primul premiu la secțiunea "software științific" a competiției internaționale de software gratuit Les Trophées du Libre.[6]

  1. ^ Release 10.4 (în engleză), , accesat în  
  2. ^ Stein, William (). „SAGE Days 4” (PDF). Arhivat (PDF) din originalul de la . Accesat în . 
  3. ^ Sage documentation
  4. ^ http://sagemath.blogspot.com/2010/11/cython-sage-and-need-for-speed.html Cython, Sage, and the Need for Speed
  5. ^ Sage - Acknowledgment
  6. ^ „Free Software Brings Affordability, Transparency To Mathematics”. Science Daily. . Accesat în . 

Legături externe

[modificare | modificare sursă]