Zsálya

Zsálya

Animált diagram a Sage programban, y=x 2 (piros görbe), y=x 3 (kék görbe)
Típusú Számítógépes algebra rendszer
Fejlesztő William A. Stein [d]
Beírva Python , Cython
Operációs rendszer Többplatformos szoftver
Első kiadás 2005. február 24
Hardver platform Piton
legújabb verzió
Engedély GNU általános nyilvános licenc
Weboldal sagemath.org
 Médiafájlok a Wikimedia Commons oldalon

A Sage (  angolul  -  "sage") egy számítógépes algebrai rendszer, amely a matematika számos területét lefedi , beleértve az algebrát , a kombinatorikát , a számítási matematikát és a matematikai elemzést .

A Sage első verziója 2005. február 24-én jelent meg ingyenes szoftverként , a GNU GPL licenc alatt . A projekt eredeti célja az volt , hogy "nyílt forráskódú alternatívát nyújtson a Magma , Maple , Mathematica és MATLAB számára " [2] . A fő fejlesztő a Washingtoni Egyetem matematikusa , William Stein .

Jellemzők

A rendszer fő felülete egy interaktív jegyzettömb , amely a legtöbb modern webböngészőből elérhetővé teszi a beírt parancsok megtekintését és újrafelhasználását, az eredmények kiadását és mentését, beleértve a grafikonokat és szöveges megjegyzéseket . A biztonságos kapcsolat a HTTPS protokollon keresztül támogatott . Helyben és távolról is végrehajtható.

Van egy parancssori beviteli felület , amely a Python nyelvet használja (a Sage 9.0-s verziója óta - Python 3-as verzió, korábban - Python 2-es verzió).

A párhuzamos számítást többmagos processzorok , többprocesszoros rendszerek és elosztott számítástechnikai rendszerek egyaránt támogatják .

A matematikai elemzés a Maxima és a SymPy rendszerek alapján valósul meg . A lineáris algebra a GSL , SciPy és NumPy rendszereken alapul . Saját elemi és speciális matematikai függvénykönyvtárak megvalósítása. Vannak olyan eszközök a mátrixokkal és adattömbökkel való munkához, amelyek támogatják a ritka tömböket . Különféle statisztikai függvénykönyvtárak érhetők el az R és a SciPy funkciók használatával .

A függvények és adatok lapos és háromdimenziós grafikonok formájában jeleníthetők meg. Létezik egy sor eszköz, amellyel saját felhasználói felületet adhat hozzá számításokhoz és alkalmazásokhoz [3] . Léteznek eszközök tudományos és műszaki dokumentáció elkészítéséhez a képletszerkesztő segítségével, valamint a Sage LaTeX formátumú dokumentációba való beágyazásának lehetőségével [4] .

Támogatja a különféle adatformátumok importálását és exportálását: képek, videó, hang, CAD , GIS , dokumentumok és orvosi formátumok. pylab és Python használják a képfeldolgozást; léteznek gráfelméleti elemzési és gráfvizualizációs eszközök.

Lehetőség van adatbázisokhoz kapcsolódni. Különféle hálózati protokollok támogatottak, beleértve a HTTP , NNTP , IMAP , SSH , IRC , FTP protokollokat .

Megvalósított programozási interfészek a Mathematica rendszerekkel való munkavégzéshez (a Sage a Mathematica [5] [6] felületéről is hívható ), Magma és Maple .

A forráskód és a Sage végrehajtható fájlok letölthetők. A rendszer felépítésekor a készletben található számos könyvtár automatikusan be lesz állítva az optimális működéshez ezen a hardveren, figyelembe véve a processzorok és magok számát, a cache pufferek méretét és a speciális utasításkészletek támogatását, mint pl. SSE .

Bölcs fejlesztési filozófia

A Sage fejlesztése során William Stein arra a tényre támaszkodott, hogy több száz vagy több ezer emberévbe telik , hogy méltó alternatívát hozzon létre a Magma, Maple , Mathematica és MATLAB mellett, ha a fejlesztési folyamatot a nulláról kezdi, és van egy nagy mennyiségű kész matematikai szoftver nyílt forráskóddal, de különféle programozási nyelveken íródott, amelyek közül a legelterjedtebb a C , C++ , Fortran és Python .

Ezért ahelyett, hogy a nulláról kezdené, úgy döntöttek, hogy az összes speciális matematikai szoftvert egy közös felülettel rendelkező rendszerré egyesítik. A végfelhasználónak csak a Python nyelvet kell ismernie . Ha egy adott feladathoz nem létezett nyílt forráskódú szoftver, akkor a feladat a megfelelő blokk megírása volt a Sage számára, miközben a kereskedelmi számítógépes algebrai rendszerekkel ellentétben gyakran már létező szabad szoftverek forráskódjait használták.

Szakemberek és hallgatók egyaránt részt vesznek a Sage fejlesztésében. A fejlesztők önkéntes alapon dolgoznak, és támogatásokkal támogatják őket [7] .

Licenc és elérhetőség

A Sage egy ingyenes szoftver , amelyet a GNU General Public License 2+ verziójának feltételei szerint terjesztenek. A forráskód letölthető a hivatalos oldalról. Fejlesztés alatt álló kiadások is elérhetők, bár általános felhasználók számára nem ajánlottak. A végrehajtható fájlok elérhetők Linux , Windows , OS X és Solaris operációs rendszereken ( x86 és SPARC architektúrákon egyaránt ). Rendelkezésre áll egy Linux live CD is , amely lehetővé teszi a Sage kipróbálását anélkül, hogy telepítené a számítógépére.

A felhasználók használhatják a Sage online verzióját. Ugyanakkor korlátozások vonatkoznak a rendelkezésre álló memória mennyiségére és a munka bizalmas kezelésére.

2007-ben Sage első díjat nyert a Les Trophées du Libre nemzetközi szabad szoftverversenyen a tudományos szoftver szekcióban [8] .

A Sage-ben található szoftvercsomagok

Matek csomagok
Algebra GAP , Maxima , Singular
Algebrai geometria Egyedülálló
Önkényes precíziós aritmetika GMP , MPFR , MPFI , NTL
Aritmetikai geometria PARI , NTL , mwrank , ecm
Mathanalysis Maxima , SymPy , GiNaC
Kombinatorika Symmetrica , Sage-Combinat
Lineáris algebra Linbox , IML
gráfelmélet NetworkX
Csoportelmélet rés
Numerikus számítások GSL , SciPy , NumPy , ATLAS
Egyéb csomagok
Parancssori interfész IPython
Adatbázis ZODB , Python Pickles , SQLite
GUI Sage Notebook, jsmath
Grafika Matplotlib , Tachyon3d , GD , Jmol
Parancstolmács Piton
Hálózatépítés Csavart

Parancssori példák

Elemzés

x , a , b , c = var ( 'x,a,b,c' ) log ( sqrt ( a )) . szimplify_log () # visszatér (log(a))/2 log ( a / b ) . szimplify_log () # a log(a) - log(b) sin ( a + b ) eredményt adja vissza . simplify_trig () # visszaadja a cos(a)*sin(b) + sin(a)*cos(b) cos ( a + b ) . simplify_trig () # visszatér cos(a)*cos(b) - sin(a)*sin(b) ( a + b ) ^ 5 # visszatér (b + a)^5 expand (( a + b ) ^ 5 ) # a következőt adja vissza: 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 = végtelen ) # 1/3 határértéket ad vissza ( sin ( x ) / x , x = 0 ) # 1-et ad vissza diff ( acos ( x ), x ) # -1/sqrt(1 - x^2) f = exp ( x ) * log ( x ) f . diff ( x , 3 ) # e^x*log(x) + 3*e^x/x - 3*e^x/x^2 + 2*e^x/x^3 megoldja ( a * x ^ 2 + b * x + c , x ) # az [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 megold ( f . diff ( x ) == 0 , x ) # visszaadja [x == 3*sqrt(3)*I - 3, # x == -3*sqrt(3 )*I - 3, x == 6]

Differenciálegyenletek

t = var ( 't' ) # definiáljon egy változót t x = függvény ( 'x' , t ) # definiálja x-et ennek a változónak a függvényeként DE = lambda y : diff ( y , t ) + y - 1 desolve ( DE ( x ( t )), [ x , t ]) # '%e^-t*(%e^t+%c)'

Lineáris algebra

A = Mátrix ([[ 1 , 2 , 3 ], [ 3 , 2 , 1 ], [ 1 , 1 , 1 ]]) y = vektor ([ 0 , - 4 , - 1 ] ) A. solve_right ( y ) # visszaadja (-2, 1, 0) A . sajátértékek () #returns[5, 0, -1] B = Mátrix ([[ 1 , 2 , 3 ], [ 3 , 2 , 1 ], [ 1 , 2 , 1 ]]) B . inverz () # [ 0 1/2 -1/2] # [-1/4 -1/4 1] # [ 1/2 0 -1/2] # Moore-Penrose pszeudo-inverz C = Mátrix ([[ 1 , 1 ], [ 2 , 2 ]]) C . pszeudoinverz () #[1/10 1/5] #[1/10 1/5]

Számelmélet

prime_pi ( 1000000 ) # 78498-at ad vissza, az egymilliónál kisebb prímek számát E = Elliptikus görbe ( '389a' ) # készítsen elliptikus görbét a Cremona címkéjéből P , Q = E . gens () 7 * P + Q # visszaadja (2869/676 : -171989/17576 : 1)

Verzióelőzmények

Főbb megjelenések:

Sage verziók
Változat Kiadási dátum Leírás
0.1 2005. január A Pari engedélyezve van, de a GAP és a Singular hiányzik
0,2 - 0,4 2005 márciusától júliusig Cremona adatbázis, többváltozós polinomok, nagy véges mezők és több dokumentáció
0,5 - 0,7 2005 augusztusától szeptemberig Vektor mezők, gyűrűk, moduláris szimbólumok és ablakok használata
0.8 2005. október Teljesen tartalmazza a GAP, Singular
0.9 2005. november Maxima és klipek hozzáadva
1.0 2006. február
2.0 2007. január
3.0 2008. április Interaktív shell, interfész az R nyelvhez
4.0 2009. május Solaris 10 támogatás, 64 bites OSX támogatás
5.0 2012. május [9] OSX Lion támogatás
6.0 2013. december A Sage adattár átkerült a Git-be [10]
7.0 2016. január
8.0 2017. július Windows támogatás
9.0 2020. január Áttérés a Python 3-ra

Jegyzetek

  1. Sage 9.7 Release Tour
  2. Stein, William SAGE Days 4 (downlink) (2007. június 12.). Letöltve: 2007. augusztus 2 .. Archiválva az eredetiből: 2007. június 27. 
  3. Sage Interact funkció (lefelé irányuló kapcsolat) . Letöltve: 2008. április 11. Az eredetiből archiválva : 2012. április 19.. 
  4. A TeX online katalógus, a sagetex bejegyzése, a Ctan Edition (lefelé irányuló kapcsolat) . Hozzáférés dátuma: 2010. március 7. Az eredetiből archiválva : 2009. február 2.. 
  5. Sage hívása a Mathematicából (lefelé irányuló kapcsolat) . Hozzáférés dátuma: 2010. december 21. Az eredetiből archiválva : 2012. július 8.   Felhívom Sage-et a Mathematicából
  6. http://facstaff.unca.edu/mcmcclur/Mathematica/Sage/UsingSage.nb Archiválva : 2011. július 19. a Wayback Machine -nél Egy Mathematica notebook Sage-nek a Mathematicától való felhívásához.
  7. Explicit megközelítések a moduláris formákhoz és a moduláris Abeli-fajtákhoz (a hivatkozás nem érhető el) . Nemzeti Tudományos Alapítvány (2006. április 14.). Letöltve: 2007. július 24. Az eredetiből archiválva : 2012. június 17. 
  8. Az ingyenes szoftver megfizethetőséget és átláthatóságot hoz a matematikába (lefelé irányuló kapcsolat) . Science Daily (2007. december 7.). Letöltve: 2008. július 20. Az eredetiből archiválva : 2012. április 19.. 
  9. sage-5.0.txt . Letöltve: 2012. május 17.  (elérhetetlen link)
  10. A Sage telepítése és használata még egyszerűbbé vált . Hozzáférés időpontja: 2014. július 12. Az eredetiből archiválva : 2014. július 4.

Linkek