Salvia

Salvia

Sagessa luotu animoitu kaavio, y=x 2 (punainen käyrä), y=x 3 (sininen käyrä)
Tyyppi Tietokonealgebrajärjestelmä
Kehittäjä William A. Stein [d]
Sisään kirjoitettu Python , Cython
Käyttöjärjestelmä Monialustainen ohjelmisto
Ensimmäinen painos 24. helmikuuta 2005
Laitteistoalusta Python
uusin versio
Lisenssi GNU yleinen julkinen lisenssi
Verkkosivusto sagemath.org
 Mediatiedostot Wikimedia Commonsissa

Sage (  englanniksi  "  sage") on tietokonealgebrajärjestelmä , joka kattaa monia matematiikan alueita , mukaan lukien algebra , kombinatoriikka , laskennallinen matematiikka ja matemaattinen analyysi .

Ensimmäinen Sagen versio julkaistiin 24. helmikuuta 2005 GNU GPL -lisenssillä lisensoiduna ohjelmistona . Projektin alkuperäinen tavoite oli "tarjoaa avoimen lähdekoodin vaihtoehto Magmalle , Maplelle , Mathematicalle ja MATLABille " [2] . Pääkehittäjä on Washingtonin yliopiston matemaatikko William Stein .

Ominaisuudet

Järjestelmän pääkäyttöliittymä on interaktiivinen muistilehtiö , joka mahdollistaa syötettyjen komentojen katselun ja uudelleenkäytön sekä tulosten tulostuksen ja tallentamisen, mukaan lukien kaaviot ja tekstihuomautukset, joihin pääsee useimmista nykyaikaisista verkkoselaimista . Suojattua yhteyttä tuetaan HTTPS-protokollan kautta . Voidaan suorittaa sekä paikallisesti että etänä.

Python-kieltä käyttävä komentorivikäyttöliittymä ( alkaen Sage-versiosta 9.0 - Python-versiosta 3, aiemmin - Python-versiosta 2).

Rinnakkaislaskentaa tuetaan sekä moniytimisillä prosessoreilla , moniprosessorijärjestelmillä että hajautetuilla laskentajärjestelmillä .

Matemaattinen analyysi toteutetaan Maxima- ja SymPy-järjestelmien pohjalta . Lineaarinen algebra on toteutettu perustuen GSL- , SciPy- ja NumPy- järjestelmiin . Toteutettu omat kirjastot perus- ja erikoismatemaattisista funktioista. Matriisien ja datataulukoiden kanssa työskentelyyn on olemassa työkaluja, jotka tukevat harvaa taulukkoa . Erilaisia ​​tilastofunktiokirjastoja on saatavilla R- ja SciPy- toimintojen avulla .

Funktiot ja tiedot voidaan näyttää litteinä ja kolmiulotteisina kaavioina. On joukko työkaluja oman käyttöliittymän lisäämiseen laskelmiin ja sovelluksiin [3] . Tieteellisen ja teknisen dokumentaation laatimiseen on työkaluja kaavaeditorilla ja mahdollisuus upottaa Sage LaTeX -muotoiseen dokumentaatioon [4] .

Tukee erilaisten tietomuotojen tuontia ja vientiä: kuvat, video, ääni, CAD , GIS , asiakirjat ja lääketieteelliset tiedostomuodot. pylabia ja Pythonia käytetään kuvankäsittelyyn; on olemassa keinoja graafiteoreettiseen analyysiin ja graafien visualisointiin.

On mahdollista muodostaa yhteys tietokantoihin. Useita verkkoprotokollia tuetaan, mukaan lukien HTTP , NNTP , IMAP , SSH , IRC , FTP .

Toteutettu ohjelmointirajapinta työskentelyyn Mathematica -järjestelmien kanssa (myös Sage voidaan kutsua Mathematican käyttöliittymästä [5] [6] ), Magma ja Maple .

Lähdekoodi ja Sagen suoritettavat tiedostot ovat ladattavissa. Kun järjestelmä rakennetaan, monet sarjaan sisältyvät kirjastot määritetään automaattisesti toimimaan optimaalisesti tällä laitteistolla ottaen huomioon prosessorien ja ytimien lukumäärä, välimuistipuskurien koko ja tuki erityisille ohjesarjoille, kuten esim. SSE .

Sage kehitysfilosofia

Sagen kehittämisen aikana William Stein luotti siihen tosiasiaan, että kestäisi satoja tai tuhansia ihmisvuosia luoda arvokas vaihtoehto Magmalle, Maplelle , Mathematicalle ja MATLABille , jos aloitat kehitysprosessin tyhjästä, ja on olemassa suuri määrä valmiita , avoimella lähdekoodilla varustettuja matemaattisia ohjelmistoja , jotka on kirjoitettu useilla ohjelmointikielillä, joista yleisimmät ovat C , C++ , Fortran ja Python .

Nollasta aloittamisen sijaan päätettiin yhdistää kaikki erikoistuneet matemaattiset ohjelmistot järjestelmään, jolla on yhteinen käyttöliittymä. Loppukäyttäjän tarvitsee vain osata Python-kieli . Jos avoimen lähdekoodin ohjelmistoja ei ollut olemassa johonkin tiettyyn tehtävään, niin tehtävänä oli kirjoittaa vastaava lohko Sagelle, kun taas toisin kuin kaupalliset tietokonealgebrajärjestelmät, käytettiin usein jo olemassa olevien ilmaisten ohjelmistojen lähdekoodeja.

Sekä ammattilaiset että opiskelijat ovat mukana Sagen kehittämisessä. Kehittäjät työskentelevät vapaaehtoisesti, ja heitä tuetaan apurahoin [7] .

Lisenssi ja saatavuus

Sage on ilmainen ohjelmisto , jota jaetaan GNU General Public License version 2+ ehtojen mukaisesti. Lähdekoodi voidaan ladata viralliselta sivustolta. Myös kehitteillä olevia julkaisuja on saatavilla, vaikka niitä ei suositella yleiskäyttäjille. Suoritettavat tiedostot ovat saatavilla Linux- , Windows- , OS X- ja Solaris - käyttöjärjestelmille (sekä x86- että SPARC-arkkitehtuurit ). Saatavilla on myös Linux live CD , jonka avulla voit kokeilla Sagea asentamatta sitä tietokoneellesi.

Käyttäjät voivat käyttää Sagen online-versiota. Samalla rajoitetaan käytettävissä olevan muistin määrää ja työn luottamuksellisuutta.

Vuonna 2007 Sage voitti ensimmäisen palkinnon kansainvälisessä vapaiden ohjelmistojen kilpailussa Les Trophées du Libre tieteellisten ohjelmistojen osiossa [8] .

Sagen sisältämät ohjelmistopaketit

Matemaattiset paketit
Algebra GAP , Maxima , Singular
Algebrallinen geometria Yksittäinen
Mielivaltainen tarkkuusaritmetiikka GMP , MPFR , MPFI , NTL
Aritmeettinen geometria PARI , NTL , mwrank , ecm
Mathanalysis Maxima , SymPy , GiNaC
Kombinatoriikka Symmetrica , Sage-Combinat
Lineaarialgebra Linbox , IML
graafiteoria VerkkoX
Ryhmäteoria aukko
Numeeriset laskelmat GSL , SciPy , NumPy , ATLAS
Muut paketit
Komentorivikäyttöliittymä IPython
Tietokanta ZODB , Python Pickles , SQLite
GUI Sage muistikirja, jsmath
Graafinen taide Matplotlib , Tachyon3d , GD , Jmol
Komentojen tulkki Python
Verkostoituminen Kierretty

Esimerkkejä komentoriviltä

Analyysi

x , a , b , c = var ( 'x,a,b,c' ) loki ( sqrt ( a )) . simplify_log () # palauttaa (log(a))/2 log ( a / b ) . simplify_log () # palauttaa log(a) - log(b) sin ( a + b ) . simplify_trig () # palauttaa cos(a)*sin(b) + sin(a)*cos(b) cos ( a + b ) . simplify_trig () # palauttaa cos(a)*cos(b) - sin(a)*sin(b) ( a + b ) ^ 5 # palauttaa (b + a)^5 expand (( a + b ) ^ 5 ) # palauttaa arvon b^5 + 5*a*b^4 + 10*a^2*b^3 + # 10*a^3*b^2 + 5*a^4*b + a^5 raja (( x ^ 2 + 1 ) / ( 2 + x + 3 * x ^ 2 ), x = ääretön ) # palauttaa 1/3 rajan ( sin ( x ) / x , x = 0 ) # palauttaa 1 diff ( acos ( x ), x ) # palauttaa -1/sqrt(1 - x^2) f = exp ( x ) * log ( x ) f . diff ( x , 3 ) # palauttaa e^x*log(x) + 3*e^x/x - 3*e^x/x^2 + 2*e^x/x^3 ratkaista ( a * x ^ 2 + b * x + c , x ) # palauttaa [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 ratkaise ( f . ero ( x ) == 0 , x ) # palauttaa [x == 3*sqrt(3)*I - 3, # x == -3*sqrt(3 )*I - 3, x == 6]

Differentiaaliyhtälöt

t = var ( 't' ) # määritä muuttuja t x = funktio ( 'x' , t ) # määritä x olevan muuttujan funktio DE = lambda y : ero ( y , t ) + y - 1 desolve ( DE ( x ( t )), [ x , t ]) # palauttaa '%e^-t*(%e^t+%c)'

Lineaarinen algebra

A = Matriisi ([[ 1 , 2 , 3 ], [ 3 , 2 , 1 ], [ 1 , 1 , 1 ]]) y = vektori ([ 0 , - 4 , - 1 ]) A . ratkaista_oikea ( y ) # palauttaa (-2, 1, 0) A . ominaisarvot () #palauttaa[5, 0, -1] B = Matriisi ([[ 1 , 2 , 3 ], [ 3 , 2 , 1 ], [ 1 , 2 , 1 ]]) B . käänteinen () # [ 0 1/2 -1/2] # [-1/4 -1/4 1] # [ 1/2 0 -1/2] # Moore-Penrose pseudoinversio C = Matriisi ([[ 1 , 1 ], [ 2 , 2 ]]) C . pseudoinverse () #[1/10 1/5] #[1/10 1/5]

Numeroteoria

prime_pi ( 1000000 ) # palauttaa 78498, alkulukujen määrä on alle miljoona E = Elliptinen käyrä ( '389a' ) # muodosta elliptinen käyrä sen Cremona - leimasta P , Q = E . gens () 7 * P + Q # palauttaa (2869/676 : -171989/17576 : 1)

Versiohistoria

Tärkeimmät julkaisut:

Sage versiot
Versio Julkaisupäivä Kuvaus
0.1 tammikuuta 2005 Pari käytössä, mutta GAP ja Singular puuttuvat
0,2 - 0,4 maaliskuusta heinäkuuhun 2005 Cremona-tietokanta, monimuuttujapolynomit, suuret äärelliset kentät ja muuta dokumentaatiota
0,5 - 0,7 elokuusta syyskuuhun 2005 Vektorikentät, renkaat, modulaariset symbolit ja ikkunoiden käyttö
0.8 lokakuuta 2005 Täysin mukana GAP, Singular
0.9 marraskuuta 2005 Lisätty Maxima ja klipsit
1.0 Helmikuu 2006
2.0 tammikuuta 2007
3.0 huhtikuuta 2008 Interaktiivinen kuori, käyttöliittymä R-kieleen
4.0 toukokuuta 2009 Solaris 10 tuki, 64 bit OSX tuki
5.0 toukokuu 2012 [9] OSX Lion tuki
6.0 joulukuu 2013 Sage-arkisto siirrettiin Gitiin [10]
7.0 tammikuuta 2016
8.0 Heinäkuu 2017 Windows-tuki
9.0 Tammikuu 2020 Siirtyminen Python 3:een

Muistiinpanot

  1. Sage 9.7:n julkaisukierros
  2. Stein, William SAGE Days 4 (downlink) (12. kesäkuuta 2007). Haettu 2. elokuuta 2007. Arkistoitu alkuperäisestä 27. kesäkuuta 2007. 
  3. Sage Interact -toiminto (downlink) . Haettu 11. huhtikuuta 2008. Arkistoitu alkuperäisestä 19. huhtikuuta 2012. 
  4. The TeX Catalog Online, Entry for sagetex, Ctan Edition (downlink) . Käyttöpäivä: 7. maaliskuuta 2010. Arkistoitu alkuperäisestä 2. helmikuuta 2009. 
  5. Soitetaan Sagelle Mathematicasta (downlink) . Käyttöpäivä: 21. joulukuuta 2010. Arkistoitu alkuperäisestä 8. heinäkuuta 2012.   Soitto Sagelle Mathematicasta
  6. http://facstaff.unca.edu/mcmcclur/Mathematica/Sage/UsingSage.nb Arkistoitu 19. heinäkuuta 2011 Wayback Machinessa Mathematica-muistikirja Mathematican Sagelle soittamiseen.
  7. Selkeät lähestymistavat modulaarisiin muotoihin ja modulaarisiin Abelin lajikkeisiin (linkki ei saatavilla) . National Science Foundation (14. huhtikuuta 2006). Haettu 24. heinäkuuta 2007. Arkistoitu alkuperäisestä 17. kesäkuuta 2012. 
  8. Ilmaiset ohjelmistot tuovat kohtuuhintaisuutta ja läpinäkyvyyttä matematiikkaan (downlink) . Science Daily (7. joulukuuta 2007). Haettu 20. heinäkuuta 2008. Arkistoitu alkuperäisestä 19. huhtikuuta 2012. 
  9. sage-5.0.txt . Haettu: 17. toukokuuta 2012.  (linkki, jota ei voi käyttää)
  10. Sagen asentaminen ja käyttö on nyt entistä helpompaa . Käyttöpäivä: 12. heinäkuuta 2014. Arkistoitu alkuperäisestä 4. heinäkuuta 2014.

Linkit