Šalvěj

Šalvěj

Animovaný graf vytvořený v Sage, y=x 2 (červená křivka), y=x 3 (modrá křivka)
Typ Systém počítačové algebry
Vývojář William A. Stein [d]
Zapsáno v Python , Cython
Operační systém Multiplatformní software
První vydání 24. února 2005
Hardwarová platforma Krajta
Nejnovější verze
Licence GNU General Public License
webová stránka sagemath.org
 Mediální soubory na Wikimedia Commons

Sage (z  angličtiny  -  "sage") je systém počítačové algebry , který pokrývá mnoho oblastí matematiky , včetně algebry , kombinatoriky , výpočetní matematiky a matematické analýzy .

První verze Sage byla vydána 24. února 2005 jako svobodný software licencovaný pod GNU GPL . Původním cílem projektu bylo „poskytnout open source alternativu k Magma , Maple , Mathematica a MATLAB[2] . Hlavním vývojářem je matematik William Stein z University of Washington .

Funkce

Hlavním rozhraním systému je interaktivní poznámkový blok , který umožňuje prohlížení a opakované použití zadaných příkazů, výstup a ukládání výsledků včetně grafů a textových anotací, dostupný z většiny moderních webových prohlížečů . Zabezpečené připojení je podporováno prostřednictvím protokolu HTTPS . Lze provést lokálně i vzdáleně.

Existuje vstupní rozhraní příkazového řádku používající jazyk Python (od Sage verze 9.0 - Python verze 3, dříve - Python verze 2).

Paralelní výpočty jsou podporovány pomocí vícejádrových procesorů , víceprocesorových systémů a distribuovaných výpočetních systémů .

Matematická analýza je realizována na bázi systémů Maxima a SymPy . Lineární algebra je implementována na základě systémů GSL , SciPy a NumPy . Implementovány vlastní knihovny elementárních a speciálních matematických funkcí. Existují nástroje pro práci s maticemi a datovými poli s podporou řídkých polí . Pomocí funkcí R a SciPy jsou k dispozici různé knihovny statistických funkcí .

Funkce a data lze zobrazit ve formě plochých a trojrozměrných grafů. Existuje sada nástrojů pro přidání vlastního uživatelského rozhraní do výpočtů a aplikací [3] . Existují nástroje pro přípravu vědecké a technické dokumentace pomocí editoru vzorců a možnost vložit Sage do dokumentace formátu LaTeX [4] .

Podporuje import a export různých datových formátů: obrázky, video, audio, CAD , GIS , dokumenty a lékařské formáty. pylab a Python se používají pro zpracování obrazu; existují prostředky pro grafově teoretickou analýzu a vizualizaci grafů.

Je možné se připojit k databázím. Jsou podporovány různé síťové protokoly včetně HTTP , NNTP , IMAP , SSH , IRC , FTP .

Implementována programovací rozhraní pro práci se systémy Mathematica (také Sage lze volat z rozhraní Mathematica [5] [6] ), Magma a Maple .

Zdrojový kód a spustitelné soubory Sage jsou k dispozici ke stažení. Po sestavení systému bude mnoho knihoven obsažených v sadě automaticky nakonfigurováno pro optimální provoz na tomto hardwaru, přičemž se vezme v úvahu počet procesorů a jader, velikost vyrovnávacích pamětí a podpora speciálních instrukčních sad, jako je např. SSE .

Filozofie vývoje Sage

Během vývoje Sage se William Stein spoléhal na skutečnost, že vytvoření důstojné alternativy k Magma, Maple , Mathematica a MATLAB bude trvat stovky nebo tisíce mužských let , pokud začnete vývojový proces od nuly a existuje velké množství hotového matematického softwaru s otevřeným zdrojovým kódem, ale napsaného v různých programovacích jazycích, z nichž nejběžnější jsou C , C++ , Fortran a Python .

Místo toho, abychom začínali od nuly, bylo tedy rozhodnuto spojit veškerý specializovaný matematický software do systému se společným rozhraním. Koncový uživatel potřebuje znát pouze jazyk Python . Pokud pro nějaký konkrétní úkol neexistoval open source software, pak bylo úkolem napsat odpovídající blok pro Sage, přičemž na rozdíl od komerčních systémů počítačové algebry se často používaly zdrojové kódy již existujícího svobodného softwaru.

Na vývoji Sage se podílejí jak profesionálové, tak studenti. Vývojáři pracují na dobrovolné bázi a jsou podporováni granty [7] .

Licencování a dostupnost

Sage je svobodný software distribuovaný za podmínek GNU General Public License verze 2+. Zdrojový kód lze stáhnout z oficiálních stránek. K dispozici jsou také vyvíjená vydání, i když se nedoporučují běžným uživatelům. Spustitelné soubory jsou k dispozici pro operační systémy Linux , Windows , OS X a Solaris ( architektura x86 i SPARC ). K dispozici je také linuxové živé CD , které vám umožní vyzkoušet Sage bez instalace na váš počítač.

Uživatelé mohou používat online verzi Sage. Zároveň platí omezení na množství dostupné paměti a důvěrnost práce.

V roce 2007 získal Sage první cenu v mezinárodní soutěži svobodného softwaru Les Trophées du Libre v sekci vědeckého softwaru [8] .

Softwarové balíčky obsažené v Sage

Matematické balíčky
Algebra GAP , Maxima , jednotné číslo
Algebraická geometrie Jednotné číslo
Libovolně přesná aritmetika GMP , MPFR , MPFI , NTL
Aritmetická geometrie PARI , NTL , mwrank , ecm
Mathanalýza Maxima , SymPy , GiNaC
Kombinatorika Symmetrica , Sage-Combinat
Lineární algebra Linbox , IML
teorie grafů NetworkX
Teorie skupin mezera
Numerické výpočty GSL , SciPy , NumPy , ATLAS
Další balíčky
Rozhraní příkazového řádku IPython
Databáze ZODB , Python Pickles , SQLite
GUI Zápisník Sage, jsmath
Grafika Matplotlib , Tachyon3d , GD , Jmol
Překladač příkazů Krajta
vytváření sítí Zkroucený

Příklady příkazového řádku

Analýza

x , a , b , c = var ( 'x,a,b,c' ) log ( sqrt ( a )) . simplify_log () # vrátí (log(a))/2 log ( a / b ) . simplify_log () # vrátí log(a) - log(b) sin ( a + b ) . simplify_trig () # vrátí cos(a)*sin(b) + sin(a)*cos(b) cos ( a + b ) . simplify_trig () # vrací cos(a)*cos(b) - sin(a)*sin(b) ( a + b ) ^ 5 # vrací (b + a)^5 expand (( a + b ) ^ 5 ) # vrátí 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 = nekonečno ) # vrací 1/3 limit ( sin ( x ) / x , x = 0 ) # vrací 1 diff ( acos ( x ), x ) # vrací -1/sqrt(1 - x^2) f = exp ( x ) * log ( x ) f . diff ( x , 3 ) # vrátí e^x*log(x) + 3*e^x/x - 3*e^x/x^2 + 2*e^x/x^3 vyřešit ( a * x ^ 2 + b * x + c , x ) # vrátí [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 vyřešit ( f . diff ( x ) == 0 , x ) # vrátí [x == 3*sqrt(3)*I - 3, # x == -3*sqrt(3 )*I - 3, x == 6]

Diferenciální rovnice

t = var ( 't' ) # definovat proměnnou t x = funkce ( 'x' , t ) # definovat x jako funkci této proměnné DE = lambda y : diff ( y , t ) + y - 1 desolve ( DE ( x ( t )), [ x , t ]) # vrátí '%e^-t*(%e^t+%c)'

Lineární algebra

A = Matice ([[ 1 , 2 , 3 ], [ 3 , 2 , 1 ], [ 1 , 1 , 1 ]]) y = vektor ([ 0 , - 4 , - 1 ]) A . řešit_správně ( y ) # vrací (-2, 1, 0) A . eigenvalues ​​() #returns[5, 0, -1] B = Matice ([[ 1 , 2 , 3 ], [ 3 , 2 , 1 ], [ 1 , 2 , 1 ]]) B . inverzní () # [ 0 1/2 -1/2] # [-1/4 -1/4 1] # [ 1/2 0 -1/2] # Moore-Penrose pseudoinverzní C = Matice ([[ 1 , 1 ], [ 2 , 2 ]]) C . pseudoinverzní () #[1/10 1/5] #[1/10 1/5]

Teorie čísel

prime_pi ( 1000000 ) # vrací 78498, počet prvočísel je menší než jeden milion E = EllipticCurve ( '389a' ) # sestrojí eliptickou křivku z její Cremona label P , Q = E. gens () 7 * P + Q # vrací (2869/676 : -171989/17576 : 1)

Historie verzí

Hlavní vydání:

Sage verze
Verze Datum vydání Popis
0,1 ledna 2005 Pari povoleno, ale chybí GAP a Singular
0,2 - 0,4 březen až červenec 2005 Databáze Cremona, mnohorozměrné polynomy, velká konečná pole a další dokumentace
0,5 - 0,7 Srpen až září 2005 Použití vektorových polí, prstenců, modulárních symbolů a oken
0,8 října 2005 Plně zahrnuto GAP, Singular
0,9 listopadu 2005 Přidána Maxima a klipy
1,0 února 2006
2,0 ledna 2007
3.0 dubna 2008 Interaktivní shell, rozhraní k jazyku R
4,0 května 2009 Podpora Solaris 10, podpora 64bit OSX
5,0 květen 2012 [9] Podpora OSX Lion
6.0 prosinec 2013 Úložiště Sage přesunuto do Git [10]
7,0 ledna 2016
8,0 července 2017 Podpora Windows
9,0 ledna 2020 Přechod na Python 3

Poznámky

  1. Prohlídka vydání Sage 9.7
  2. Stein, William SAGE Days 4 (downlink) (12. června 2007). Získáno 2. srpna 2007. Archivováno z originálu 27. června 2007. 
  3. Funkce Sage Interact (downlink) . Získáno 11. dubna 2008. Archivováno z originálu 19. dubna 2012. 
  4. Online katalog TeX, záznam pro sagetex, vydání Ctan (odkaz dolů) . Datum přístupu: 7. března 2010. Archivováno z originálu 2. února 2009. 
  5. Volání Sage z Mathematica (downlink) . Datum přístupu: 21. prosince 2010. Archivováno z originálu 8. července 2012.   Volání Sage z Mathematica
  6. http://facstaff.unca.edu/mcmcclur/Mathematica/Sage/UsingSage.nb Archivováno 19. července 2011 na Wayback Machine Notebook Mathematica pro volání Sage z Mathematica.
  7. Explicitní přístupy k modulárním formám a modulárním abelovským odrůdám (odkaz není k dispozici) . National Science Foundation (14. dubna 2006). Získáno 24. července 2007. Archivováno z originálu 17. června 2012. 
  8. Svobodný software přináší matematice cenovou dostupnost a transparentnost (downlink) . Vědecký deník (7. prosince 2007). Získáno 20. července 2008. Archivováno z originálu 19. dubna 2012. 
  9. sage-5.0.txt . Staženo: 17. května 2012.  (nepřístupný odkaz)
  10. Instalace a používání Sage je nyní ještě jednodušší . Datum přístupu: 12. července 2014. Archivováno z originálu 4. července 2014.

Odkazy