
Autori: RNDr. Dominik Borovský1, doc. RNDr. Jozef Hanč2, PhD.
2026, ÚFV PF, Univerzita Pavla Jozefa Šafárika v Košiciach
1dominik.borovsky@student.upjs.sk, 2jozef.hanc@upjs.sk
Zoznámte sa so SageMath
V tomto minikurze, ktorý pozostáva zo série niekoľkých materiálov, získate zručnosti so softvérom, ktorý vám umožní efektívne riešiť fyzikálne alebo aj matematické úlohy a problémy s využitím počítača. V rámci neho sa naučíte používať matematický sofvér SageMath (alebo skrátene Sage, anglicky to znamená mudrc).
Sage je voľne dostupný pythonovský open-source softvér, ktorý je tzv. systémom počítačovej algebry (CAS z ang. Computer Algebra System).

Sage umožňuje:
manipuláciu s matematickými výrazmi, ako je napr. zadávanie komplikovaých funkcií alebo vyčíslenie konkrétnych funkčných hodnôt
Príklad: Zadanie závislosti výchylky $x$ od času $t$ pre tlmené kmity: $x(t) = A \, e^{-bt} \cos(\omega t)$, výpočet výchylky $x$ pre konkrétne číselné hodnoty $A, b, \omega$ v konkrétnom čase $t$.
riešenie a úprava rovníc, ich sústav
Príklad: Riešenie sústavy rovníc s neznámymi $x,y,z$:
$$\begin{aligned} 2x + y - z = 3 \\ - x + 3y + 2z = 7 \\ 4x - 2y + z = 1 \end{aligned}$$
symbolické úpravy a výpočty (t.j. práca s premennými v podobe písmen) ako je napr. automatické zjednodušenie výrazov alebo všeobecné riešenie rovníc
Príklad: Nájdenie všeobecného vzťahu pre čas $t$, v ktorom dosiahne voľne vyhodené teleso konkrétnu výšku $h$ z pohybovej rovnice: $$h = h_0 + v_0 t - \frac{1}{2} g t^2$$
pokročilú štatistickú analýzu (napríklad výsledkov meraní)
kvalitné vizualizácie v podobe rôzne kombinovaných grafov, zobrazenie dát, pekne nasádzaných, ľahko čitateľných výrazov a rovnice
automatizáciu všetkých vyššie zmienených krokov (napr. pomocou
ifaforcyklov).
Pre pokročilých: Sage umožňuje aj prácu v rámci diferenciálneho a integrálneho počtu v podobe získania derivácií funkcií, integrálov (v analytickej podobe či približne vyčíslené pre konkrétne hranice integrálu) alebo priamo riešenie diferenciálnych rovníc.
Filozofiou Sagu je spájať dokopy množstvo balíkov z univerza otvoreného matematického softvéru. Lepidlom, ktoré spája všetky tieto dostupné prostriedky, je Python, ktorý je najpopulárnejším a najľahšie naučiteľným programovacím jazykom. Takže a
Zo spomenutých softvérov, ktoré sú súčasťou Sagu môžeme zmieniť:
- Maxima: jednoducho použiteľný CAS
- SciPy: Scienfific Python - knižnica na vedecké výpočty v Pythone
- NumPy: Numerical Python - knižnica na rýchle numerické výpočty
- Pandas: pythonovská knižnica pre prácu s dátami (napr. z excel súborov)
- R: veľmi rozšírený programovací jazyk medzi dátovými analytikmi a štatistikmi
- a množstvo iných
Sage je švajčiarsky nožík medzi otvorenými matematickým softvérami. Veľa vecí je ihneď k dispozícii bez toho, aby bolo potrebné ich individuálne sťahovať/inštalovať a nie je nutné ich používať oddelene.
Na čo sa to vlastne pozerám?
To, na čo sa práve pozeráte, je jeden z materiálov vo formáte interaktívneho SageMath AI notebooku. Jedná sa o projekt autorov tohto materiálu (D. Borovský, J. Hanč), ktorého cieľom je jednoducho a pohodlne sprístupniť SageMath v podobnom formáte ako sú známe Jupyter notebooky.
Jedná sa o súbory s koncovkou .html, ktoré viete otvárať a upravovať cez akýkoľvek webový priehliadač (Google Chrome, Firefox, MS Edge a pod.). Nevyžadujú žiadnu inštaláciu a je možné ich používať cez ľubovoľné zariadenia, od PC cez tablety až po mobily s podporou pre všetky štandardné platformy (Windows, MacOS, Linux, Android, iOS atď.). Môžete ich mať uložené na svojom zariadení/zariadeniach, alebo vám môžu byť poskytnuté aj ako webová stránka. Aby boli tieto dokumenty plne funkčné, potrebujete jedinú vec: pripojenie na Internet.
skladajú sa z týchto základných častí:
- ovládací panel navrchu (zelené tlačidlá)
- telo zložené s tzv. buniek (angl. cells) s textom, obrázkami, prípadne videami a spustiteľným kódom
Ovládací panel
Vo vrchnej časti obrazovky môžete vidieť ovládací panel s niekoľkým tlačidlami. Jedno z najdôležitejších je tlačidlo
Save (ikonka diskety )
- uloží notebook, v ktorom ste urobili nejaké zmeny (text, kód, úpravy buniek)
- po stlačení vás vyzve na stiahnutie
.htmldokumentu, pričom sa obsah zafixuje - po uložení, ak chcete pokračovať v predošlej práci, otvorte
.htmldokumentu, ktorý sa vám stiahol
Odporúčanie: Zvyčajne prehliadače všetok sťahovaný obsah ukladajú do priečinka "Prevzaté" (prípadne "Downloads"). Najlepšie je nastaviť si webový prehliadač tak, aby sa vás stále opýtal, kde si chcete sťahovaný obsah uložiť. V Google Chrome sa to dá nastaviť cez:
- "Tri bodky" (vpravo hore na paneli)
- "Nastavenia"
- "Stiahnuté"
- zašktrnúť "Pred každým sťahovaním sa spýtať, kam uložiť súbor"
Alebo skratka cez chrome://settings/downloads (skopíruj túto adresu do Chrome).
Podobne by to malo ísť aj v iných prehliadačoch.
Význam ďalších tlačidiel je ozrejmený v návode ku SageMath AI Notebookom (odkaz).
Vyskúšajte si: Po prečítaní/vašich úpravách uložte tento materiál do svojho počítača/zariadenia.
Telo notebooku - bunky
Každý notebook je postavený zo série buniek (cells) - akoby kúskov textu, či už v podobe vysvetlení (ako je práve toto), alebo kódu. Keď prechádzate myšou po tomto notebooku, tak sa vám ku každej z buniek v tomto dokumente zobrazujú menšie ovládacie panely pre každú z buniek. Pomocou nich viete upravovať poradie buniek, pridávať prázdne, mazať bunky a podobne.
Vyskúšajte si: Čo robia jednotlivé tlačidlá v menších ovládacích paneloch pri bunkách? Ak sa vám podarí tento notebook "rozbiť", môžete ho obnoviť pomocou
F5(refresh).
- textové bunky, v ktorých sa píšu sprievodné informácie/obsah k Vašim výpočtom. Používajú jednoduchý jazyk Markdown, ktorý pomocou obyčajného textu umožňuje rozličné editácie, podporuje aj $\LaTeX$, ktorý slúži na sádzanie skvele vyzerajúcich matematických formúl, napr.:
- Eulerova identita: $e^{i\pi} + 1 = 0$
- Schrödingerova rovnica: $$i\hbar \frac{\partial}{\partial t}\Psi(\vec{r},t) = \left[ -\frac{\hbar^2}{2m}\nabla^2 + V(\vec{r},t) \right] \Psi(\vec{r},t)$$
- Markdown v kódových bunkách môžete upravovať po stlačení tlačidla
Edit/View. Ak sa niečo napíšete, obsah sa ihneď "rendruje" pod editovacím oknom.
- kódové bunky obsahujú vopred pripravený kód alebo sú ponechané prázdne a môžete v nich sami napísať
- na ich spúšťanie môžete použiť tlačidlo
Execute - ak ste s kurzorom v bunke (pri písaní), môžete ich spúšťať súčasným stlačením kláves
Ctrl + Enter(alebo aj klávesová skratkaShift + Enter) - pri spustení kódovej bunky sa program vykoná a buď sa zobrazí výsledok, alebo sa uložia do pamäte vami zadané údaje (napr. premenné).
- Kódové bunky je potrebné spúšťať postupne od prvej, aby sa medzivýsledok z každej predošlej načítal do tej nasledujúcej. Ak urobíte v niektorej bunke zmenu, tak po opätovnom spustení bunky za v nej zmenené hodnoty prepíšu, resp. sa aktualizuje výstup.
- na ich spúšťanie môžete použiť tlačidlo
Ďalšie užitočné klávesové skratky nájdete sú uvedené v menu pod ikonkou otáznik .
Niektoré markdown príkazy sú v pomôcke pri markdown bunkách dostupnej cez ikonku žiarovky ("Markdown Tips")
Markdown sa dá naučiť za menej ako 10 minút. Krátky interaktívny kurz jazyku Markdown si môžete vyskúšať na https://commonmark.org/.
Bunka na úpravu markdown
- Vyskúšajte niečo dopísať, text do tejto bunky (stlačte
Editnad touto bunkou). - Výskúšajte webový doplnok LaTeX From Web pre kopírovanie $\LaTeX$-u z webu, napr. Wikipédie.
Kódové bunky na vyskúšanie
Vyskúšajte spustiť/upravovať nasledujúce bunky:
Vyskúšajte si: Zmeňte text v
pozdrav-e (bunku je potrebné spustiť pre uloźenie zmeny) a opäť ho vytlačte, môžete pridať a svoju vlastnú premennú s textom (medzi úvodzovkami"") a zobraziť ju pomocouprint().
Všimnite si: Hoci bolo formálne zadané $f(x) = \dfrac{1}{x} \cdot \sin x$, Sage to automaticky zjednodušil na $f(x) = \dfrac{ \sin x}{x}$. Vo väčšom meradle to vie robiť aj s omnoho komplikovanejšími výrazmi.
Prečo používať Sage?
Hlavnými pomôckami pri výpočtoch v matematike a fyzike sú klasicky papier, pero a kalkulačka, prípadne tabuľkový kalkulátor (napr. Excel).
Poďme si vzájomne porovnať tieto tradičné nástroje so Sagom.
Pozn.: Nie všetko v nasledujúcej/predošlej časti môže byť jasné. Pri troche zmyslu pre vnímanie zákonitostí a vzorcov (+trocha angličtiny) sa ale môžete dovtípiť, čo jednotlivé časti kódu znamenajú. Vyskúšajte urobiť drobné zmeny v kóde a uvidíte, ako sa prejavujú. Táto kapitola nie je o tom, že by ste hneď mali všetkému porozumieť, skôr je to demoštrácia sily a zároveň jednoduchosti Sage. Podrobnejšie sa s výpočtami a jednotlivými funkcionalitami oboznámite v ďalších kapitolách.
Výpočty
- na papieri (z hlavy) sa môžeme ľahko dopustiť chyby, časovo náročné
- v kalkulačke je to často prácne, neprehľadné, pri zapnutí/vypnutí kalkulačky prídeme o výsledky
- v Sagi vieme zadať aj veľmi komplikované vzorce na výpočet, výsledky sa ukladajú do pamäte a dajú sa ľahko použiť v ďalších výpočtoch
- výpočet sa dá ľahko upraviť a okamžite získať nový výsledok, celý postup si vieme uložiť a kedykoľvek upraviť
- SageMath je superkalkulačka, úplne jednoduché výpočty môžu vyzerať už takto
Ukážka: Riešenie sústavy rovníc s neznámymi $x,y,z$:
$$\begin{aligned} 2x + y - z = 3 \\ - x + 3y + 2z = 7 \\ 4x - 2y + z = 1 \end{aligned}$$
Úprava výrazov
- na štandardných kalkulačkách nemožné
- pri ručnej úprave na papieri sa môže v niektorom z krokov vyskytnúť chyba
- v Sagi sú úpravy automatické, nedopúšťa sa chyby, ľahko vieme zadaný výraz skontrolovať/upraviť
Ukážka: Nájdenie všeobecného vzťahu pre čas $t$, v ktorom dosiahne voľne vyhodené teleso konkrétnu výšku $h$ z pohybovej rovnice: $$h = h_0 + v_0 t - \frac{1}{2} g t^2$$
Ukážka: Zjednodušenie výrazu $\sqrt{\dfrac{m^2 v^4}{m^2 v^2} \cdot x}$
Vykresľovanie grafov
- na papieri je kreslenie grafov časovo náročné a často nepresné, najmä pri zložitejších funkciách
- na bežných kalkulačkách sa to nedá, je potrebná špeciálna grafická kalkulačka, problematický je potom prenos obrázku do počítača (napr. do prezentácie, laboratórneho protokolu)
- v Exceli je možné vytvárať grafy, ale je to obmedzené na dáta v tabuľkách (jednotlivé body grafu je potrebné predtým vypočítať)
- v Geogebre sa dobre vytvárajú grafy, no pri zložitejších grafoch to vyžaduje veľa vyklikávania, najmä pri zmene hodnôt viacerých parametrov grafu
- v Sagi môžeme:
- ľahko vykresliť grafy zložitých funkcií s vysokou presnosťou
- jednoducho upravovať parametre grafov (farby, hrúbka čiar, mierka osí)
- kombinovať viacero grafov do jedného obrázka pre porovnanie
- interaktívne meniť grafy a okamžite vidieť výsledky zmien
Pokročilá ukážka vytvárania grafov.
Ako sa dá ešte Sage používať?
Existuje hneď niekoľko možností, ako môžete používať Sage:
SageMathCell (sagecell.sagemath.org)
- jednoduchá online služba, ktorá umožňuje spúšťať kód Sage priamo vo webovom prehliadači bez potreby inštalácie alebo registrácie
- MIMORIADNE UŽITOČNÉ pre rýchle a jednoduché použitie Sage s jednou kódovou bunkou
CoCalc (cocalc.com)
- pokročilá online platforma pre prácu so Sage, Pythonom a ďalšími nástrojmi
- umožňuje vytvárať interaktívne dokumenty - Jupyter Notebooky - so spustiteľným kódom, sprievodným textom a iným obsahom
- platený, resp. dostupný v obmedzenej free skúšobnej verzii (menšia kapacita úložiska, nestabilný výkon)
Offline inštalácia (sagemath.org)
- nezávisí pri používaní od internetu, ale vyžaduje inštaláciu na vlastnom počítači
- je to lokálna verzia Sage a taktiež umožňuje vytvárať Jupyter Notebooky
- inštalácia je žiaľ netriviálna, vyžaduje si isté pokročilé zručnosti s Linuxom ("WSL" - Windows Subsystem for Linux)