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 / Misc: depinde de atașamentele software ( 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 matematic multiplatform adecvat 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 publicată pe 24 februarie 2005 ca software gratuit licențiat sub licența publică generală GNU . S-a născut ca o sursă deschisă alternativă la Magma , Maple , Mathematica și MATLAB . Primul dezvoltator SageMath al proiectului, William Stein, este matematician la Universitatea din Washington .
SageMath utilizează 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); De asemenea, este disponibil pentru Microsoft Windows , implementat într-o versiune pentru Oracle VirtualBox .
Funcționalitate
Unele dintre principalele caracteristici SageMath sunt: [1] .
- Interfața de documente notebook , pentru revizuirea și refolosirea datelor anterioare de intrare sau ieșire, inclusiv grafică sau casete de text utilizabile pentru multe browsere web, inclusiv Firefox , Opera , Konqueror și Safari .
O conexiune sigură cu HTTPS 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ță de linie de comandă bazată pe text 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 procesoare Multi core Disponibil în multe computere moderne, pe lângă sistemele de calcul distribuite (calcul distribuit).
- 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 Array .
- Biblioteci diverse statistici, folosind funcționalitatea R și SciPy .
- Un set de instrumente pentru adăugarea de interfețe utilizator la calcule și aplicații. [2]
- Editor de instrumente pentru imagini folosind Pylab , precum și limbajul de programare Python .
- Instrumente pentru vizualizarea și analiza graficelor .
- Biblioteci de funcții ale teoriei numerelor.
- Filtre de import și export pentru date, imagini, video, sunet, CAD , GIS , documente și formate biomedicale.
- Suport pentru număr complex , aritmetică de precizie arbitrară și funcții simbolice pentru momentul în care este indicat.
- Procesor de text tehnic, inclusiv editor de formule , posibilitatea de a încorpora în documentele SageMath LaTeX . [3]
- Instrumente de rețea pentru a accesa SQL , Java , .NET , C ++ , FORTRAN furnizate de Twisted , acesta acceptă un număr mare de protocoale între HTTP , NNTP , IMAP , SSH , IRC , FTP și altele.
- Interfețe cu unele programe terță parte precum Mathematica , Magma și Maple, permițând utilizatorilor să asambleze programe ș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] Un caiet Mathematica este disponibil pentru această caracteristică. [5]
Dezvoltare
În timpul dezvoltării SageMath, William Stein ne-am dat seama 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 a trecut la Git [10] |
7.0 | Ianuarie 2016 | Îmbunătățiri în interfața grafică |
8.0 | Iulie 2017 | Prima versiune cu suport complet pentru 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 | PARI / 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 , care sunt și versiuni disponibile de dezvoltare.
- Există binare precompilate pentru Linux, OS X și Solaris (ambele versiuni x86 și SPARC).
- Există un CD live pentru utilizarea SageMath chiar și pe mașinile care nu au instalat Linux, OS X sau Solaris.
- Până la 17 aprilie 2015 a fost posibilă utilizarea unei versiuni online a SageMath a sagenb.org Depusă la 30 aprilie 2007 în Internet Archive ..
- Puteți utiliza o versiune online a „celulei unice” a SageMath din sagecell.sagemath.org sau puteți încorpora o „celulă unică” în orice site web. De asemenea, puteți crea legături permanente către SageMath folosind serverul cu o singură celulă. [12]
- Există o nouă versiune online a cloud-ului SageMath.sagemath.com . Pe această versiune puteți compila documente și în LaTeX , puteți utiliza un terminal Linux și un 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) # returnează 5 (b + a) 5
expand ((a + b) 5) # returnează b5 + 5 * la * 10 * a2 + b4 + b3 *
# 10 * aˆ3 * bˆ2 + 5 * aˆ4 * b + aˆ5
limit ((x2 + 1) / (2 + x + 3 * x2), x = infinit) # returnează 1/3
limit (sin (x) / x, x = 0) # returnează 1
diff (acos (x), x) # returnează -1 / sqrt (1 - x2)
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 = x2 + 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) #definiți 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ă 'și% ^ 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. reverse () # returnează [0 1/2 -1/2]
# [-1/4 -1/4 1]
# [1/2 0 -1/2]
# Numpy 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ă 78.498, 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 , pe wiki.sagemath.org. Adus la 11 aprilie 2008 .
- ^ The TeX Catalog OnLine, Intrare pentru sagetex, Ediția CTAN , pe ctan.org. Adus la 2 mai 2010 (depus de 'url original 2 februarie 2009).
- ^ UsingSage Arhivat la 8 iulie 2012 URL Data nu se împerechează: 8 iulie 2012 în Archive.is . Sunându-l pe Sage de la Mathematica
- ^ Http://facstaff.unca.edu/mcmcclur/Mathematica/Sage/UsingSage.nb Filed 19 iulie 2011 în Internet Archive . Un caiet Mathematica pentru a-l numi pe Sage de la Mathematica.
- ^ Days7 - Sage Wiki pe wiki.sagemath.org. Adus pe 9 decembrie 2013 .
- ^ Sage - Recunoaștere pe sagemath.org. Accesat 13 iulie 2010.
- ^ Descărcare SageMath - src-old , de la sagemath.org. Adus la 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 , pe sagecell.sagemath.org. Adus pe 9 decembrie 2013 .
Elemente conexe
- Software gratuit / Open Source și Freeware legate de:
- Software comercial similar
Alte proiecte
- Wikimedia Commons conține imagini sau alte fișiere pe 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.
- (RO) Sage Reference Manual pe sagemath.org. Adus la 4 mai 2019 (depus de „url original 23 iulie 2008).
- (RO) Software-ul gratuit aduce accesibilitate, transparență la matematică , a 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