Sage (software)
SALVIE software | |
---|---|
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
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
Î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]
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.
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 |
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 |
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ă
- ^ Documentația salvie
- ^ Funcționalitate Sage Interact , la wiki.sagemath.org . Adus la 11 aprilie 2008 .
- ^ TeX Catalog OnLine, Intrare pentru sagetex, Ediția Ctan , pe ctan.org . Accesat la 2 mai 2010 (arhivat din original la 2 februarie 2009) .
- ^ UsingSage Arhivat 8 iulie 2012 Data în adresa URL nepotrivită : 8 iulie 2012 la Archive.is . Sunându-l pe Sage de la Mathematica
- ^ 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.
- ^ days7 - Sage Wiki , la wiki.sagemath.org . Adus pe 9 decembrie 2013 .
- ^ Înțelept - Recunoaștere , la sagemath.org . Adus la 13 iulie 2010 .
- ^ Descărcare SageMath - src-old , la sagemath.org . Accesat 17 iulie 2011.
- ^ sage-5.0.txt ( TXT ) [ link rupt ] , pe sagemath.org . Adus la 17 mai 2012 .
- ^ Instalarea și utilizarea SageMath tocmai au devenit și mai ușoare , pe drvinceknight.blogspot.com . Adus la 12 iulie 2014 .
- ^ SageManifolds: acasă
- ^ Despre serverul de celule SageMath , la sagecell.sagemath.org . Adus pe 9 decembrie 2013 .
Elemente conexe
- Software gratuit / Open Source și freeware conex:
- Software comercial similar
Alte proiecte
- Wikimedia Commons conține imagini sau alte fișiere despre Sage
linkuri externe
- ( RO ) Pagina principală a proiectului , pe sagemath.org .
- ( EN ) O scurtă introducere în Sage ( PDF ) [ link rupt ] , pe sagemath.org .
- ( EN ) Online Sage în browserul web , pe cloud.sagemath.com .
- ( EN ) Sage Reference Manual , pe sagemath.org . Adus la 4 mai 2019 (arhivat din original la 23 iulie 2008) .
- ( RO ) Software-ul gratuit aduce accesibilitate, transparență la matematică , pe physorg.com .
- Sisteme de calcul algebrice gratuite
- Software gratuit de analiză numerică
- Software Linux
- Software gratuit pentru macOS
- Software gratuit pentru Microsoft Windows
- Software în Fortran
- Software gratuit în Python
- Software gratuit în C ++
- Software gratuit în C
- Software licențiat GNU GPL v2
- 2005 software
- Software Debian