Výuka probíhá prezenčně ve čtvrtek 14:50 - 16:20, počítačová učebna N10, Impakt, Troja.
Účelem cvičení je pohrát si s jednoduchými fyzikálními problémy, vyzkoušet si různé způsoby jejich řešení (i triviální řešení je řešení) a naučit se analzyovat a zobrazovat obdržené výsledky. Většina příkladů bude demonstrována v populárním programovacím jazyce Python, ale dojde i na základy psaní textů v LaTeXu a úvod do použítí komerčního nástroje Mathematica. V průběhu cvičení se také naučíte základy verzovacího systému Git. Další informace k předmětu jsou na stránce SISu.
Ve cvičení nebude probíhat systematická výuka žádného programovacího jazyka ani numerických algoritmů. Pro prohloubení vašich znalostí doporučuji specializované přednášky na oboru fyzika, například
a nepřeberně přednášek na oboru informatika.
Fyzika, matematika, numerika, algoritmy
Techniky
Za zápočtovou úlohu bude možné získat maximálně 14 bodů. K bodům za zápočtovou úlohu se přičtou 3 body za každý správně a úplně vypracovaný domácí úkol. Výsledná známka bude určena na základě následujícího klíče (b je celkový získaný počet bodů):
b≥12 | 1 (výborně) |
---|---|
9≤b<12 | 2 (velmi dobře) |
7≤b<9 | 3 (dobře) |
K zápočtu tedy vede více možných cest a je na vás, jakou si dle svých preferencí zvolíte.
Ačkoliv převážná část předmětu bude demonstrována příklady v programovacím jazyce Python 3 a vývojovém prostředí Visual Studio Code, rozhodně není nutné, abyste úkoly nebo zápočtové programy vypracovávali pomocí stejných nástrojů. Zvolte si sami, jaký jazyk či vývojové prostředí jsou vám sympatické. Obecně doporučuji takové programovací jazyky, které mají dobrou podporu, jsou živé a ideálně pro které existují kvalitní numerické knihovny a knihovny pro vykreslování grafů. Sám jsem zběhlý v jazycích C/C++, C#, Python, Julia, Mathematica, PHP, Javascript, SQL; v nich vám budu schopen nejsnáze poradit a pomoci, pokud budete potřebovat.
Během dálkové výuky v době koronavirové pandemie jsem sepsal studijní text, jehož součástí jsou i vzorově vypracované úlohy dostupné v repozitáři na Githubu. Jelikož velké části témat z textu se budeme věnovat i letos během prezenční výuky, doporučuji brát tento text jako studijní materiál. Text bude aktualizován a doplňován podle toho, co konkrétně bude během výuky procvičeno.
= uznaný domácí úkol
= domácí úkol za polovic
Kód | 1 | 2 | 3 | 4 | 5 | 6 | 7 | Body za úkoly |
Zápočtová práce |
Známka |
---|---|---|---|---|---|---|---|---|---|---|
065 | - | - | 15 | - | 1 | |||||
243 | - | - | - | - | - | 4½ | - | |||
391 | - | - | - | 9 | 3 | 1 | ||||
513 | - | - | - | - | - | - | 1½ | 3 | ||
552 | - | - | - | - | - | - | 3 | - | ||
618 | - | - | 10½ | 7 | 1 | |||||
707 | - | - | 15 | - | 1 | |||||
930 | - | - | - | - | - | - | 3 | - |
1. cvičení | 16.2.2023 | Úvod, organizace cvičení Průled nad základy jazyka Python | Základy syntaxe: introduction.py Práce s poli: arrays.py Grafika: plot.py Textové soubory: files.py |
---|---|---|---|
2. cvičení | 23.2.2023 | Obyčejné diferenciální rovnice Soustavy diferenciálních rovnic 1. řádu Eulerova metoda 1. a 2. řádu | Kód ze cvičení: sin.py |
3. cvičení | 2.3.2023 | Verzovací systém Git |
Domácí úkol na 9.3.2023
(odevzdávejte mailem na pcfyzika@pavelstransky.cz) Kódy ze cvičení: ode2023 Celý repozitář si stáhnete pomocí příkazu git clone https://github.com/PavelStransky/ode2023
|
4. cvičení | 9.3.2023 | Řešení parciálních diferenciálních rovnic Poissonova rovnice |
Domácí úkol na 23.3.2023
(odevzdávejte mailem na pcfyzika@pavelstransky.cz) Kódy ze cvičení: poisson.py, capacitor.py |
5. cvičení | 16.3.2023 | ||
6. cvičení | 23.3.2023 | Náhodná procházka ve 2D Hledání minima funkce dvou proměnných |
|
7. cvičení | 30.3.2023 | Metropolisův algoritmus Hledání globálního minima funkce více proměnných |
Domácí úkol na 6.4.2023 (odevzdávejte mailem na pcfyzika@pavelstransky.cz) |
8. cvičení | 6.4.2023 | LaTeX |
Domácí úkol na 13.4.2023: Napište v LaTeXu pojednání o nějakém fyzikálním (případně matematickém) problému. Dokument by měl obsahovat aspoň jednu číslovanou rovnici a jeden obrázek. Textová část stačí na jednu stránku. (odevzdávejte mailem na pcfyzika@pavelstransky.cz) |
9. cvičení | 13.4.2023 | Rozdělení náhodných čísel Histogram |
Domácí úkol na 27.4.2023
(odevzdávejte mailem na pcfyzika@pavelstransky.cz) |
10. cvičení | 20.4.2023 | Monte Carlo Využití k integraci |
|
11. cvičení | 27.4.2023 | Úvod do paralelního programování |
Domácí úkol na 4.5.2023
(odevzdávejte mailem na pcfyzika@pavelstransky.cz) |
12. cvičení | 4.5.2023 | Mathematica Symbolické výpočty |
Notebook ze cvičení: mathematica.nb |
13. cvičení | 11.5.2023 | Fourierova transformace |
Domácí úkol na 18.5.2023
(odevzdávejte mailem na pcfyzika@pavelstransky.cz) |
14. cvičení | 18.5.2023 | Zápočtová písemka |
Na webu existuje nepřeberné množství tutoriálů a návodů k Pythonu a jeho knihovnám, které vám pomůžou s konkrétními problémy. Odpovědi najdete na diskuzních fórech (např. Stack Overflow) nebo nejnověji dotazem na chatbot (např. Chat GPT).
Pokročilejší monografie, v nichž naleznete seriózní příklady využití programovacího jazyka Python ve vědě:
[1] | P.R. Turner, T. Arildsen, K. Kavanagh, Applied Scientific Computing With Python (Springer 2018) |
---|---|
[2] | R. Johansson, Numerical Python: Scientific Computing and Data Science Applications with Numpy, SciPy and Matplotlib (Springer 2019) |
[3] | S. Nagar, Introduction to Python for Engineers and Scientists (Springer 2018) |
[4] | S. Lynch, Dynamical Systems with Applications using Python (Springer 2018) |
[5] | B.J. Korites, Python Graphics: A Reference for Creating 2D and 3D images (Springer 2018) |
Algoritmy obecně:
[6] | M. Mareš, T. Valla, Průvodce labyrintem algoritmů (CZ.NIC 2022) |
---|
Náhodně vybrané (ale zajímavé) eseje k programování obecně:
[7] | S. Wolfram, What Is ChatGPT Doing... and Why Does It Work? (2023) |
---|---|
[8] | I. Suzdalnitski, Object-Oriented Programming - The Trillion Dollar Disaster (2019) |
[9] | Ch. Scalfani, Goodbye, Object Oriented Programming (2016) |
Pokud se chcete na cokoliv zeptat nebo si potřebujete něco vyjasnit, stavte se na konzultaci.