Programování v Pythonu pro fyziky (FSI-TPY)

Akademický rok 2026/2027
Garant: doc. Ing. Miroslav Bartošík, Ph.D.  
Garantující pracoviště: ÚFI všechny předměty garantované tímto pracovištěm
Jazyk výuky: čeština
Typ předmětu: oborový předmět
Cíle předmětu:
 
Výstupy studia a kompetence:
 
Prerekvizity:
 
Obsah předmětu (anotace):

Kurz učí studenty efektivně používat jazyk Python pro numerické výpočty, simulace a vizualizaci fyzikálních jevů. Důraz je na aplikace v klasické fyzice a inženýrství – bez statistiky, ale s důrazem na algoritmické myšlení a praktické dovednosti.

Metody vyučování:
 
Způsob a kritéria hodnocení:
 
Vymezení kontrolované výuky a způsob jejího provádění a formy nahrazování zameškané výuky:
 
Typ (způsob) výuky:
    Přednáška  13 × 1 hod. nepovinná                  
    Cvičení s počítačovou podporou  13 × 1 hod. povinná                  
Osnova:
    Přednáška

Osnova (12 týdnů, 2 h/týden)



  • Týden 1: Úvod a vědecký ekosystém Pythonu – NumPy, SciPy, Matplotlib, Pandas; Jupyter Notebook, správa skriptů

  • Týden 2: Základy práce s daty – Načítání, filtrování, úprava a vizualizace dat (CSV, TXT); grafy a tabulky

  • Týden 3: Numerická derivace a integrace – numpy.gradient, trapézové a Simpsonovo pravidlo; aplikace: výpočet práce a energie

  • Týden 4: Řešení diferenciálních rovnic – Metoda Eulerova, Runge–Kutta, solve_ivp; modely: tlumený oscilátor, volný pád

  • Týden 5: Lineární algebra v praxi – Matice, vektory, inverze, řešení soustav rovnic (numpy.linalg.solve)

  • Týden 6: Interpolace a aproximace – interp1d, polynomická a spline interpolace, aplikace na experimentální data

  • Týden 7: Fourierova transformace – Základy FFT, spektrální analýza, frekvenční filtrace signálu

  • Týden 8: Numerické simulace fyzikálních procesů – 1D pohyb částice, kmitání, přenos tepla – tvorba jednoduchých modelů

  • Týden 9: Numerická simulace 2D pohyb částice – balistická křivka

  • Týden 10: Vizualizace a animace – 3D grafy, animace s FuncAnimation, vizualizace trajektorií a polí

  • Týden 11: Projektové programování a OOP – Struktura většího programu, moduly, funkce, práce s datovými sadami

  • Týden 12: Mini-projekty a shrnutí – Prezentace simulací nebo modelů, diskuze, závěrečné shrnutí metod


Výstupy učení


Student:
- efektivně používá knihovny NumPy, SciPy, Matplotlib
- umí numericky řešit diferenciální rovnice a integrály,
- simuluje jednoduché fyzikální procesy,
- připraví vizualizace a animace dat,
- zvládá strukturovat kód a organizovat projekt v Pythonu.

    Cvičení s počítačovou podporou
  1. Instalace Pythonu - Anaconda. ChatGPT.
  2. Správa verzí - GitHub
  3. Seznamy, n-tice, slovníky.
  4. Numpy - vektory a matice, maticové operace, maticové a indexové výrazy
  5. Řídicí struktury.
  6. Matplotlib - Kreslení grafů: graf bodů v rovině, prostorová křivka, plochy, grafy diskrétních dat.
  7. Vstup a výstup dat – práce s textem, regulární výrazy.
  8. Funkce: vestavěné, uživatelem definované, typy parametrů, rekurze.
  9. Numerická derivace a integrace. Řešení ODR.
  10. Aplikace objektového přístupu na řešení problému více těles.
  11. Optimalizační úloha.
  12. Semestrální práce.
  13. Odevzdání semestrální práce.
Literatura - základní:
1. SUMMERFIELD, Mark. Python 3: výukový kurz. Brno: Computer Press, 2021. ISBN 978-80-264-3673-3.
2. PILGRIM, Mark. Ponořme se do Python(u) 3. Praha: CZ.NIC, 2012. ISBN 978-80-904248-7-9.
Literatura - doporučená:
3.

JOHANSSON, Robert. Numerical Python: Scientific Computing and Data Science Applications with NumPy, SciPy and Matplotlib. 2. vyd. New York: Apress, 2018. ISBN 978-1-4842-3915-6.

Zařazení předmětu ve studijních programech:
Program Forma Obor Spec. Typ ukončení   Kredity     Povinnost     St.     Roč.     Semestr  
B-FIN-P prezenční studium --- bez specializace -- zá 2 Povinně volitelný 1 2 Z
C-AKR-P prezenční studium CZS Předměty zimního semestru -- zá 2 Volitelný 1 1 Z