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.3[1]Modificați la Wikidata()
Repogithub.com/sagemath/sageModificaț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

Sageeste oaplicațiematematicăce acoperă mai multe domenii ale matematicii inclusivalgebra,combinatorica,analiza numericașicalcul diferențial și integral.

Prima versiune a fost lansatǎ în 24 februarie 2005 ca aplicație gratuita, respectând termeniiLicenței Publice Generale GNU.Scopul principal fiind acela de a crea o alternativă opensource laMagma,Maple,MathematicașiMATLAB."[2]Sage a fost dezvoltat de cătreWilliam Stein,unmatematiciande laUniversity of Washington.

Sage este adesea numitsagemath,deoarece cuvântulsageeste un cuvânt des întâlnit.

Interfața Sage înFirefox,Opera,Konqueror,șiSafari.
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șiSafari.
  • O interfață linie de comanda folosindIPython
  • Suporta limbajul de programarePython.
  • Suporta calculul paralel folosind fie procesoarele multi-nucleu ce se regăsesc în multe computere moderne fie sistemele multiprocesor.
  • Calcul integral și diferențial folosindMaximașiSymPy
  • Algebra lineară folosindGSL,SciPyșiNumPy.
  • Librarii pentru funcții elementare și speciale
  • Grafice 2D și 3D
  • Unelte pentru manipularea matricelor și datelor, inclusiv suportul pentru procesareamatricelor rare
  • Variate librarii pentru calcul statistic, folosind funcționalitate limbajului de programareRșiSciPy
  • Unelte pentru procesarea imaginilor folosindPylabprecum și limbajul de programarePython
  • Unelte pentru vizualizarea și analizagrafurilor
  • Importa și exporta filtre pentru fișiere de date, imagini, video, audio,CAD,GISși formate biomedicale
  • Suportul pentrunumere complexeși calcul simbolic
  • Generare de documentație folosindSphinx

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,NTLpot 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.

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

Licențiere și disponibilitate

[modificare|modificare sursă]

Sage este o aplicație gratuită, distribuită sub termeniiLicenței Publice Generale GNUversiunea 2+. Sage este disponibil în multe moduri:

DeșiMicrosofta sponsorizat o versiune nativǎ a Sage pentru sistemul de operare Windows[5],utilizatorii acestui sistem de operare trebuie să folosească tehnologie de virtualizare caVirtualBox,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=lambday: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]

importnumpy
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 MilestoneArhivatîn,laWayback Machine.

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

  1. ^Release 10.3(î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.htmlCython, 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ă]