Charles Explorer logo
🇨🇿

Programování pro fyziky

Předmět na Matematicko-fyzikální fakulta |
NOFY056

Sylabus

* Strukturované procedurální programování

Programovací jazyky, zdrojový text, spouštění programu, příkazový řádek. Struktura programu v jazyce Python. Proměnné, hodnoty, typy. Příkazy a příkazové konstrukce: přiřazovací příkaz, podmíněné příkazy, příkazy cyklu, příkazy skoku. Základní datové typy. Výrazy a pravidla jejich vyhodnocování. Seznamy, pole a jiné strukturované datové typy. Procedury a funkce, předávání a druhy argumentů, způsoby vracení výsledku funkce, globální data, lokalita. Použití objektového přístupu, metody a atributy. Knihovny, modularizace programů.

* Výbava numerického programátora

Vlastnosti reálných datových typů, šíření numerických chyb. Standardní matematické funkce, náhodná čísla. Vstup a výstup dat, formátování dat, textové a binární soubory. Použití numerických knihoven. Vizualizace výsledků. Přesměrování standardního vstupu a výstupu. Ladění.

* Numerické algoritmy

Časová a paměťová složitost algoritmů. Celočíselné algoritmy: Eukleidův algoritmus, Eratosthenovo síto. Mini-algoritmy: řešení kvadratické rovnice, Hornerovo schéma. Numerická lineární algebra: maticové násobení, Gaussova eliminace, LU faktorizace. Polynomická aproximace. Numerické integrování: kvadraturní vzorce, Monte Carlo. Hledání kořenů: bisekce, Newtonova metoda tečen. Počáteční úloha pro soustavy obyčejných diferenciálních rovnic: Eulerova metoda, Rungeovy-Kuttovy metody.

* Nenumerické problémy

Dynamické datové struktury, vyhledávání, třídění.

Anotace

Výchozí kurz programování pro studenty fyziky. Základy jazyka Python. Řešení problémů za použití metodiky strukturovaného procedurálního programování.

Předvedení vybraných numerických algoritmů. Cvičení nad počítači pro nabývání praktických dovedností, od přípravy dat přes jejich numerické zpracování po vizualizaci výsledků.