Detail předmětu

Programování v Pythonu pro fyziky

FSI-TPYAk. rok: 2026/2027

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.

Jazyk výuky

čeština

Počet kreditů

2

Vstupní znalosti

Předpokládá se obvyklá středoškolská počítačová gramotnost.

Pravidla hodnocení a ukončení předmětu

Účast na přednáškách je žádoucí, na cvičeních povinná. Výuka běží podle týdenních plánů. Zápočet je udělen na základě zpracování skriptu simulujícího jednoduchou fyzikální úlohu.

Učební cíle

Cílem je základní zvládnutí použití Pythonu pro praxi fyzikálního inženýra.

Studijní opory

Základní literatura

PILGRIM, Mark. Ponořme se do Python(u) 3. Praha: CZ.NIC, 2012. ISBN 978-80-904248-7-9. (CS)
SUMMERFIELD, Mark. Python 3: výukový kurz. Brno: Computer Press, 2021. ISBN 978-80-264-3673-3. (CS)

Doporučená literatura

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

Zařazení předmětu ve studijních plánech

  • Program B-FIN-P bakalářský 2 ročník, zimní semestr, povinně volitelný

Typ (způsob) výuky

 

Přednáška

13 hod., nepovinná

Vyučující / Lektor

Osnova

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

13 hod., povinná

Vyučující / Lektor

Osnova

  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.