Detail předmětu
Programování v Pythonu pro fyziky
FSI-TPY Ak. rok: 2026/2027 Zimní semestr
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
Garant předmětu
Zajišťuje ústav
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.
Použití předmětu ve studijních plánech
Program B-FIN-P: Fyzikální inženýrství a nanotechnologie, bakalářský, povinně volitelný
Typ (způsob) výuky
Přednáška
13 hod., nepovinná
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á
Osnova
- Instalace Pythonu – Anaconda. ChatGPT.
- Správa verzí – GitHub
- Seznamy, n-tice, slovníky.
- Numpy – vektory a matice, maticové operace, maticové a indexové výrazy
- Řídicí struktury.
- Matplotlib – Kreslení grafů: graf bodů v rovině, prostorová křivka, plochy, grafy diskrétních dat.
- Vstup a výstup dat – práce s textem, regulární výrazy.
- Funkce: vestavěné, uživatelem definované, typy parametrů, rekurze.
- Numerická derivace a integrace. Řešení ODR.
- Aplikace objektového přístupu na řešení problému více těles.
- Optimalizační úloha.
- Semestrální práce.
- Odevzdání semestrální práce.