FPF:UFDF005 Programování pro fyziky - Informace o předmětu
UFDF005 Programování pro fyziky
Filozoficko-přírodovědecká fakulta v Opavězima 2020
- Rozsah
- 0/0/0. 0 kr. Ukončení: dzk.
- Garance
- doc. RNDr. Stanislav Hledík, Ph.D.
Centrum interdisciplinárních studií – Filozoficko-přírodovědecká fakulta v Opavě - Předpoklady
- Zručnost v programovacím jazyce C (v rozsahu předmětu UF/BL124 "Programování v jazyce C"), zejména v práci s poli (jedno- i dvourozměrnými) a ukazateli. Absolvování předmětu UF/W3601 "Programování pro fyziky" je výhodou. Hodí se znalost práce s vhodným IDE, na němž budou vypracovávány domácí úlohy.
- Omezení zápisu do předmětu
- Předmět je nabízen i studentům mimo mateřské obory.
- Mateřské obory/plány
- Teoretická fyzika a astrofyzika (program FPF, P1703 Fyz4) (2)
- Theoretical Physics and Astrophysics (program FPF, P1703 Fyz4) (2)
- Cíle předmětu
- Doktorský kurs Programování pro fyziky seznamuje se základními i pokročilejšími numerickými metodami používanými ve fyzice. Používá se programovací jazyk C.
- Osnova
- 1. Seznámení s vývojovým prostředím I: Základy OS unixového typu (Linux), shell, práce s příkazovou řádkou, editor. IDE pod Windows (Code::Blocks, Bloodshed Dev-C++). Překladač, oddělený překlad, sestavení. Nástroj pro management překladu make.
2. Opakování: Konstrukce programovacího jazyka C důležité pro numeriku. Organizace programu a řídicí struktury. Práce s knihou Press W. H. et al.
3. Reprezentace čísel v počítači a počítačová aritmetika: Dekadická, binární, oktalová a hexadecimální reprezentace. Celá čísla znaménková a bezznaménková. Čísla s plovoucí desetinnou čárkou (floating-point numbers). IEEE standard. Zaokrouhlování, aritmetické operace, výjimky. Chyba a přesnost. Stabilita výpočtu. Pasti a nástrahy.
4. Řešení lineárních algebraických rovnic: Gaussova-Jordanova eliminace. Gaussova eliminace se zpětnou substitucí. LU dekompozice. Řešení pro některé speciální tvary matice.
5. Řešení nelineárních algebraických rovnic, hledání extrémů: Bracketing a bisekce. Metoda sečen. Newtonova-Raphsonova metoda. Kořeny polynomů.
6. Interpolace a extrapolace: Polynomiální interpolace a extrapolace. Racionální interpolace a extrapolace. Kubické splajny. Interpolace ve dvou a více dimenzích.
7. Náhodná čísla: Generátory rovnoměrného rozdělení, systémové generátory vs. portabilní generátory náhodných čísel. Transformační a rejekční metoda pro generování jiných rozdělení. Exponenciální a normální rozdělení. Rozdělení gama, Poissonovo, binomické. Integrace Monte Carlo.
8. Numerická integrace: Klasické formule (otevřené, uzavřené, polootevřené) a algoritmy (lichoběžníkové, Simpsonovo pravidlo). Rombergova integrace. Nevlastní integrály. Gaussova kvadratura a ortogonální polynomy. Vícerozměrné integrály. Integrace jako speciální případ řešení obyčejných diferenciálních rovnic. Integrace Monte Carlo.
9. Evaluace funkcí: Konvergence řad a její urychlení, řetězové zlomky. Polynomiální a racionální funkce. Komplexní aritmetika. Rekurence. Kvadratické a kubické rovnice. Numerická derivace. Čebyševova aproximace. Padého aproximanty.
10. Obyčejné diferenciální rovnice: Problém počátečních hodnot vs. problém okrajových hodnot. Metoda Runge-Kutta. Metody s fixním a adaptivním krokem. Metoda prediktor-korektor. Metoda Bulirschova-Stoerova.
11. Problém okrajových hodnot: Metoda nástřelu (shooting method). Relaxační metoda.
12. Rychlá Fourierova transformace (FFT) a její aplikace: Fourierova transformace diskrétně vzorkovaných dat. Nyquistova kritická frekvence, vzorkovací teorém, aliasing. Komplexní FFT, FFT reálných funkcí, sinová a kosinová transformace. Vícerozměrná FFT. Konvoluce a dekonvoluce. Korelace a autokorelace. Filtrování. Wavelety.
13. Parciální diferenciální rovnice: Cauchyův problém (pro hyperbolické a parabolické rovnice), hraniční problém (pro eliptické rovnice). Cauchyův problém se zachováním toku. Von Neumannova analýza stability. Difúzní rovnice, Schrödingerova rovnice. Metoda Fourierova a metoda cyklické redukce pro hraniční problém.
14. Vývojové prostředí II: Debugging. Profiling. Testování.
- 1. Seznámení s vývojovým prostředím I: Základy OS unixového typu (Linux), shell, práce s příkazovou řádkou, editor. IDE pod Windows (Code::Blocks, Bloodshed Dev-C++). Překladač, oddělený překlad, sestavení. Nástroj pro management překladu make.
- Literatura
- doporučená literatura
- Press, W. H., Teukolsky, S. A., Vetterling, W. T., Flannery, B. Numerical Recipes in C: The Art of Scientific Computing. Cambridge University Press, Cambridge, 1997. ISBN 0-521-43108-5. URL info
- Vetterling, W. T., Teukolsky, S. A., Press, W. H., Flannery, B. Numerical Recipes Example Book (C). Cambridge University Press, Cambridge, 1993. ISBN 0-521-43720-2. URL info
- Výukové metody
- Přednášení
Přednáška s analýzou videozáznamu
Demonstrace
Laborování - Metody hodnocení
- Test
Analýza výkonů studenta
Projekt (zápočtový, semestrální, seminární) - Informace učitele
- Pro úspěšné ukončení předmětu a získání zkoušky je třeba obhájit projekt, jehož téma bude přiděleno v průběhu výuky, a absolvovat ústní zkoušku, v níž budou hodnoceny teoretické a praktické znalosti.
- Další komentáře
- Předmět je dovoleno ukončit i mimo zkouškové období.
- Statistika zápisu (zima 2020, nejnovější)
- Permalink: https://is.slu.cz/predmet/fpf/zima2020/UFDF005