FYBPV0004 Programování pro fyziky

Fyzikální ústav v Opavě
zima 2020
Rozsah
0/2/0. 4 kr. Ukončení: z.
Garance
RNDr. Jan Novotný, Ph.D.
Fyzikální ústav v Opavě
Předpoklady
Zručnost v programovacím jazyce C
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
Cíle předmětu
Programování pro fyziky seznamuje se základními i pokročilejšími numerickými metodami používanými ve fyzice.
Výstupy z učení
Student bude po absolvování předmětu schopen:
- reprezentace čísel v počítači a počítačová aritmetika a jejího vlivu na přesnost výpočtů; - Řešení lineárních algebraických rovnic -- Gaussova-Jordanova eliminace. Gaussova eliminace se zpětnou substitucí. LU dekompozice; - Řešení nelineárních algebraických rovnic, hledání extrémů: Bracketing a bisekce. Metoda sečen. Newtonova-Raphsonova metoda; - 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. - Řešit obyčejné diferenciální rovnic; - Práce s relevantními knihovny pro fyziky jako například FFTW, GNU GSL, Intel MKL, OpenBLAS;
Osnova
  • 1. 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. 2. Ř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. 3. Řešení nelineárních algebraických rovnic, hledání extrémů: Bracketing a bisekce. Metoda sečen. Newtonova-Raphsonova metoda. Kořeny polynomů. 4. Interpolace a extrapolace: Polynomiální interpolace a extrapolace. Racionální interpolace a extrapolace. Kubické splajny. Interpolace ve dvou a více dimenzích. 5. 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í. 6. 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. 7. 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. 8. 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. 9. Problém okrajových hodnot: Metoda nástřelu (shooting method). Relaxační metoda. 10. 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.
Literatura
    povinná literatura
  • 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
    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
  • Ralston, A. Základy numerické matematiky. Academia, 1978. info
Výukové metody
Přednášení Demonstrace Laborování
Metody hodnocení
Test Analýza výkonů studenta Projekt (zápočtový, semestrální, seminární)
Další komentáře
Předmět je vyučován každoročně.
Výuka probíhá každý týden.
Předmět je zařazen také v obdobích zima 2021, zima 2022, zima 2023, zima 2024.