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).

logo-sagemath

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 if a for cyklov).

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 .html dokumentu, pričom sa obsah zafixuje
  • po uložení, ak chcete pokračovať v predošlej práci, otvorte .html dokumentu, 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:

  1. "Tri bodky" (vpravo hore na paneli)
  2. "Nastavenia"
  3. "Stiahnuté"
  4. 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á skratka Shift + 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.

Ď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 Edit nad 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 pomocou print().

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)