Sage (software)

De la Wikipedia, enciclopedia liberă.
Salt la navigare Salt la căutare
SALVIE
software
Siglă
Animație creată cu Sage
Animație creată cu Sage
Tip Sistem de algebră computațională
Analiza numerica
Dezvoltator Variat
Data primei versiuni 2005
Ultima versiune 8.9 (29 septembrie 2019)
Ultima versiune beta 9.0.beta5 (11 noiembrie 2019)
Sistem de operare Linux
macOS
Microsoft Windows
Limba Fortran
Piton
C ++
C.
Cython
Licență GPL / Diverse: depinde de software-ul atașat
( Licență gratuită )
Site-ul web http://cloud.sagemath.com/ www.sagemath.org/, http://cloud.sagemath.com/

SageMath (cunoscut anterior sub numele de Sage sau SAGE ) este un program de matematică multiplataforma potrivit pentru rezolvarea problemelor din diferite domenii ale matematicii, cum ar fi algebra , analiza matematică , analiza numerică , combinatorică , geometrie și teoria numerelor .

Prima versiune a fost lansată pe 24 februarie 2005 sub formă de software gratuit sub licența publică generală GNU . A luat naștere ca o alternativă open source la Magma , Maple , Mathematica și MATLAB . Primul dezvoltator al proiectului SageMath, William Stein, este matematician la Universitatea din Washington .

SageMath folosește limbajul de programare Python și acceptă mai multe paradigme de programare procedurală , programare funcțională și programare orientată obiect .

SageMath este disponibil pentru platforma Linux și Mac OS X (10.4 sau mai mare); este disponibil și pentru Microsoft Windows , într-o versiune implementată pentru Oracle VirtualBox .

Funcționalitate

Interfața Sage Notebook funcționează cu Firefox (și Mozilla ), Opera , Konqueror și Safari .
Soluție de ecuație și tipărire utilizând interfața web notebook Sage.

Unele dintre caracteristicile majore ale SageMath sunt: [1] .

  • Interfața de documente notebook , pentru revizuirea și reutilizarea datelor de intrare sau ieșire anterioare, inclusiv grafică sau casete de text utilizabile pentru multe browsere web, inclusiv Firefox , Opera , Konqueror și Safari .
    O conexiune HTTPS sigură la interfața web notebook este acceptată atunci când securitatea și confidențialitatea sunt importante și permite Sage să fie utilizat atât local, cât și de la distanță.
  • O interfață text de linie de comandă folosind IPython .
  • Limbajul de programare Python acceptă limbaje procedurale, funcții și construcții legate de programarea orientată pe obiecte .
  • Suport pentru procesare paralelă utilizând ambele computere cu procesor multi-core disponibile în multe computere moderne, pe lângă sistemele de calcul distribuite .
  • Analiza cu Maxima și SymPy .
  • Algebra liniară cu biblioteci software GSL , SciPy și NumPy .
  • Biblioteci de funcții elementare și funcții matematice speciale.
  • Grafice 2D și 3D atât pentru funcții, cât și pentru date.
  • Instrumente de matrice și manipulare a datelor, inclusiv suport pentru matrice .
  • Diverse biblioteci statistice, folosind caracteristicile R și SciPy .
  • Un set de instrumente pentru adăugarea de interfețe utilizator pentru calcule și aplicații. [2]
  • Instrumente de editare a imaginilor folosind Pylab , precum și limbajul de programare Python .
  • Instrumentele de vizualizare și analiză a graficelor .
  • Biblioteci de funcții ale teoriei numerelor.
  • Importați și exportați filtre pentru date, imagini, videoclipuri, sunete, CAD , GIS , documente și formate biomedicale.
  • Suport pentru numere complexe , aritmetică arbitrară și precizie simbolică pentru funcții atunci când acest lucru este indicat.
  • Procesor tehnic de text, inclusiv editor de formule , posibilitatea de a încorpora documente LaTeX în SageMath. [3]
  • Instrumente de rețea pentru conectarea la SQL , Java , .NET , C ++ , FORTRAN furnizate de Twisted , acestea acceptă un număr mare de protocoale, inclusiv HTTP , NNTP , IMAP , SSH , IRC , FTP și altele.
  • Interfețe ale unor programe software terțe, precum Mathematica , Magma și Maple, care permit utilizatorilor să asambleze software și să compare rezultatele și performanța. Prin urmare, este, de asemenea, un „front-end” pentru alte instrumente matematice similare cu GNU TeXmacs .
  • MoinMoin este un sistem Wiki pentru gestionarea cunoștințelor.
  • Documentare folosind Sphinx.
  • Un instrument automat de testare, care permite testarea pe computerul utilizatorului final.
  • Deși nu este acceptat direct, SageMath poate fi invocat în cadrul Mathematica. [4] Pentru această funcționalitate este disponibil un notebook Mathematica. [5]

Dezvoltare

William A. Stein

În timpul dezvoltării SageMath, William Stein a realizat că există o varietate de software matematic open-source scris în diferite limbaje de programare, cum ar fi C , C ++ , Common Lisp , Fortran și Python .

În loc să „reinventeze roata”, SageMath (care este scris în principal în Python și Cython) conține diferitele programe matematice existente într-o singură interfață, pentru care sintaxa utilizată este cea a Python. În plus, sute de mii de linii de cod au fost scrise pentru a adăuga noi funcționalități și a conecta diferitele componente. [6]

SageMath este dezvoltat de studenți și profesioniști, atât prin contribuții voluntare, cât și prin granturi. [7]

Eliberare

Numai evoluțiile majore sunt prezentate în tabelul următor. SageMath respectă o politică de lansare care prevede noi actualizări la fiecare câteva săptămâni sau luni. În total, au fost făcute peste 300 de lansări, deși frecvența a scăzut în ultima perioadă. [8]

Versiunile SageMath
Versiune Data de lansare Descriere
0,1 Ianuarie 2005 CHIAR este inclus
0,2–0,4 Martie-iulie 2005 Polinoame multi-variabile, extinderea documentației
0,5–0,7 August-septembrie 2005 Spații vectoriale, inele
0,8 Octombrie 2005 GAP, Singular
0,9 Noiembrie 2005 Maxima și clisp au fost adăugate
1.0 Februarie 2006
2.0 Ianuarie 2007
3.0 Aprilie 2008 Interacționează, interfață R.
4.0 Mai 2009 Suport pentru Solaris 10 și 64 biți OSX
5.0 Mai 2012 [9] Suport OSX Lion
6.0 Decembrie 2013 Dezvoltarea SageMath sa mutat la Git [10]
7.0 Ianuarie 2016 Îmbunătățiri în interfața grafică
8.0 Iulie 2017 Prima versiune cu suport complet Microsoft Windows

Software conținut în SageMath

Filozofia lui Sage este de a utiliza bibliotecile open source existente atunci când sunt disponibile. Așadar, el împrumută din multe proiecte în realizarea lucrării finale.

Software matematic conținut în SageMath
Algebră GAP , Maxima , SINGULAR
Geometrie algebrică SINGULAR
Aritmetică Precizie aritmetică GMP , MPFR , MPFI , NTL
Geometria aritmetică PARI / GP , NTL , mwrank , ecm
Calcul Maxima , SymPy , GiNaC
Combinatorial Symmetrica , Sage-Combinat
Algebră liniară ATLAS , BLAS , LAPACK , NumPy , LinBox , IML , GSL
Teoria graficelor NetworkX
Teoria grupului DECALAJ
Calcul numeric GSL , SciPy , NumPy , ATLAS
Teoria numerelor EGAL / GP , FLINT , NTL
Calculul statistic R , SciPy
Alte pachete software conținute în SageMath
Linie de comanda IPython
Bază de date ZODB , Python Pickles , SQLite
Interfață grafică Sage Notebook, jsmath
Grafică Matplotlib , Tachyon3d , GD Graphics Library , Jmol
Limbaj de programare interactiv Piton
Rețele Răsucit
Alte programe opționale de matematică din SageMath
Geometrie diferențială și calcul tensor Sage Manifolds [11]

Licență și disponibilitate

SageMath este un software gratuit , lansat sub licența publică generală GNU . Poate fi obținut în mai multe moduri:

  • Codul sursă poate fi descărcat de pe pagina de descărcări, unde sunt disponibile și versiuni de dezvoltare.
  • Există binare precompilate pentru Linux, OS X și Solaris (ambele versiuni x86 și SPARC).
  • Un CD live este disponibil pentru utilizarea SageMath chiar și pe mașinile care nu au instalat Linux, OS X sau Solaris.
  • O versiune online a SageMath ar putea fi utilizată pe sagenb.org până la 17 aprilie 2015. Arhivat la 30 aprilie 2007 la Internet Archive.
  • Puteți utiliza o versiune SageMath „cu o singură celulă” online la sagecell.sagemath.org sau puteți încorpora o „singură celulă” pe orice site web. De asemenea, puteți crea legături permanente către SageMath folosind serverul cu o singură celulă. [12]
  • O nouă versiune online a SageMath este disponibilă la cloud.sagemath.com . Pe această versiune este posibilă și compilarea documentelor în LaTeX , utilizarea unui terminal Linux și a unui notebook Jupyter.
  • Este disponibil în repo-ul distro Debian -derivate

Exemple de interfață de comandă

Analize

 x , a , b , c = var ( 'x, a, b, c' )

log ( sqrt ( a )) . simplify_log () # returnează jurnalul (a) / 2
jurnal ( a / b ) . simplify_log () # returnează jurnalul (a) - jurnalul (b)
păcat ( 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 # returnează (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 = infinit ) # 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]

Ecuatii diferentiale

 t = var ( 't' ) # definește variabila t
x = function ( 'x' , t ) # definește că x trebuie să fie o funcție a variabilei t
DE = lambda y : dif ( y , t ) + y - 1
desolve ( DE ( x ( t )), [ x , t ]) # returnează '% e ^ ​​-t * (% e ^ ​​t +% c)'

Algebră liniară

 A = Matrice ([[ 1 , 2 , 3 ], [ 3 , 2 , 1 ], [ 1 , 1 , 1 ]])
y = vector ([ 0 , - 4 , - 1 ])
A. solve_right ( y ) # returnează (-2, 1, 0)
A. autovalori () # returnează [5, 0, -1]

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

# Numery de apel pentru pseudo-inversul Moore-Penrose,
# deoarece Sage nu acceptă încă acest lucru.

import numpy
C = Matrice ([[ 1 , 1 ], [ 2 , 2 ]])
matrix (numpy. linalg. Pinv (C. numpy ())) # returnează [0,1 0,2]
 # [0,1 0,2]

Teoria numerelor

 prime_pi ( 1000000 ) # returnează 78498, numărul primilor mai mic de un milion

E = EllipticCurve ( '389a' ) # construiește o curbă eliptică din eticheta sa Cremona
P, Q = E. gens ()
7 * P + Q # returnează (2869/676: -171989/17576: 1)

Notă

  1. ^ Documentația salvie
  2. ^ Funcționalitate Sage Interact , la wiki.sagemath.org . Adus la 11 aprilie 2008 .
  3. ^ TeX Catalog OnLine, Intrare pentru sagetex, Ediția Ctan , pe ctan.org . Accesat la 2 mai 2010 (arhivat din original la 2 februarie 2009) .
  4. ^ UsingSage Arhivat 8 iulie 2012 Data în adresa URL nepotrivită : 8 iulie 2012 la Archive.is . Sunându-l pe Sage de la Mathematica
  5. ^ http://facstaff.unca.edu/mcmcclur/Mathematica/Sage/UsingSage.nb Arhivat 19 iulie 2011 la Internet Archive . Un caiet Mathematica pentru a-l numi pe Sage de la Mathematica.
  6. ^ days7 - Sage Wiki , la wiki.sagemath.org . Adus pe 9 decembrie 2013 .
  7. ^ Înțelept - Recunoaștere , la sagemath.org . Adus la 13 iulie 2010 .
  8. ^ Descărcare SageMath - src-old , la sagemath.org . Accesat 17 iulie 2011.
  9. ^ sage-5.0.txt ( TXT ) [ link rupt ] , pe sagemath.org . Adus la 17 mai 2012 .
  10. ^ Instalarea și utilizarea SageMath tocmai au devenit și mai ușoare , pe drvinceknight.blogspot.com . Adus la 12 iulie 2014 .
  11. ^ SageManifolds: acasă
  12. ^ Despre serverul de celule SageMath , la sagecell.sagemath.org . Adus pe 9 decembrie 2013 .

Elemente conexe

Alte proiecte

linkuri externe