Numerické
metody ve fyzice II - TMF058 (LS 2021-22)
Aktuální
informace:
(5.5.2022)
Vypsal jsem předtermín pro zkoušku na 16. května od 10:00.
Započtové úlohy si vyberte z této
sady a nebo z této sady,
případně pokud vás napadne vlastní úloha podobného rozsahu, která
zapadá do probírané látky, kontaktujte mě a domluvíme se na konkrétních
úkolech. Opět budu zkoušet teorii k zápočtové úloze a další otázku
vyberu z probíraných témat.
(23.2.2022)
Přednáška probíhá ve čtvrtek od 13:10 v posluchárně UTF. První
přednášku o numerických aspektech Fourierovy transformace přednesl
Karel Houfek. Od 24.2. pokračuji já. Odkaz na předchozí běhy:
Karel
Houfek 2021 a Martin Čížek
2020.
LEKCE 0 – záskok, Karel Houfek – Fourierova Transformace
a její využití (poznámky)
- Formulace
počáteční úlohy pro PDR, okrajové podmínky.
- Diskrétní Fourierova
tranformace
- Aliasing
a Nyquistova frequence
- Algoritmus
rychlé Fourierovy transformace (FFT)
- Použítí
FFT na vývoj vlnového klubka v QM
Demostrace:
1.
Wolfram matematika
– algoritmus FFT a pdf printout
2.
Split-operator metoda
v matematice a pdf printout
Zatím starý sylabus z roku 2020: (bude aktualizován)
LEKCE 1 -
Diferenční metody (metoda sítí) pro počáteční úlohu. (viz [2],[3] a [6], tabulka metod)
- Formulace
počáteční úlohy pro PDR, okrajové podmínky.
- Reprezentace
řešení pomocí hodnot hledané funkce na síti. Reprezentace rovnice a
okrajových podmínek.
- Základní
diferenční schémata pro modelové problémy (rovnice vedení tepla,
Schrodingerova a vlnová rovnice, advekce).
- Obecná
formulace jednokrokové a vícekrokové formule.
- Řád
přesnosti a konvergence metody.
- Spektrální
analýza stability schématu, CFL podmínka stability.
- Numerická
disperze a disipace (nestihl jsem, nezkouším).
Demonstrace:
- Nestabilita
integrace rovnice vedení tepla ............................ DemoL01.01_Difusion.py
- Divergující
vlastní
módy jednokrokového operátoru ............DemoL01.02_Eigmode.py
- Stabilní
propagace implicitní Eulerovou metodou..................DemoL01.03_Dif_IE.py
- Norma
mocniny matice (ke stabilitě multikrok formulí).........DemoL02.01_matmul.py
- Ke
stabilite metody "Leap-Frog"........................................
DemoL02.02_LFgroth.py
- Schrodinger
1D, pohyb volného balíku metodou CN.......... DemoL03.01_Schrodinger1D_0.py
- Schrodinger
1D, odraz od bariery...................................... DemoL03.02_Schrodinger1D_V.py
- Schrodinger
1D, komplexní absorb. okraj. podmínka......... DemoL03.03_Schrodinger1D_absorb.py
LEKCE 2 -
Diferenční a relaxační metody pro okrajové úlohy. (viz [5, 6] a [2], úvodní část poznámek)
- Formulace okrajové úlohy pro PDR, okrajové podmínky.
Souvislost okrajových a počátečních úloh.
- Formulace okrajové úlohy na síti. Popis okrajových
podmínek.
- Obecná formulace řešení metodou střelby.
- Obecná formulace relaxační metody.
- Metody Jakobiho, Gaussova-Sidelova, SOR. Rychlost
konvergence.
- Podstata multigridové metody.
Demonstrace:
- 2D
kondenzátor Jakobiho metodou
.....................................................................DemoL04.01_Jacobi.py
- Totéž,
ale srovnání rychlosti konvergence různých relax. metod
............................DemoL04.02_compare.py
- Totéž,
ale rychl. konverg. při zjemnění sítě, pro analyt.
řešitelnou okraj. podm........DemoL04.03_convergN.py
- Totéž,
ale pro správnou fyzikální okraj.
podmínku.................................................DemoL04.04_Kondenzator.py
LEKCE 3 - Základní
principy metody konečných prvků (FEM). (viz [8], odkaz na FreeFEM++)
- Formulace okrajové úlohy pro PDR pomocí variačního
principu a slabá formulace.
- Příklady slabé a variační formulace
různých typů úloh.
- Použití báze, Ritzova variační a Galerkinova
metoda.
- Podstata metody konečných prvků. Příklady
bázových funkcí v 1D.
- Zobecnění na vícedimenzionální úlohy.
Demonstrace:
Místo demonstrací jsme si
prohlíželi manuál a řešené úlohy v programovém balíku FreeFEM++.
LEKCE 4 - Gradientní a
Krylovovské metody řešení soustav lineárních rovnic. (viz [2, 4] a [5])
- Formulace soustavy rovnic pro symetrickou
positivně definitní matici pomocí optimalizační úlohy.
- Metoda největšího spádu a její výhodnost pro
řídké matice a její nevýhody.
- Podstata metody sdružených gradientů (CG).
Rychlost konvergence.
- Princip předpodmínění (preconditioning)
úlohy.
- Přehled dalších metod založených na Krylovově
prostoru.
Demonstrace:
- Porovnání
met. největšího spádu a CG pro náhod. matici 5x5...................DemoL05.01_SDxCG.py
- Porovnání
konvergence CG pro různé typy matic
....................................DemoL05.02_CG_tst.py
- Vliv
preconditioningu na konvergenci CG (příklad z
[4])...........................DemoL05.03_CG_prekond.py
- Rychlost
konverg. CG pro náhod.
matici s daným spektrem......................DemoL05.04_CG_cluster.py
LEKCE 5 - Metoda
Monte-Carlo. (viz
[6], úvodní část poznámek)
- Základní pojmy matematické statistiky. Náhodná
proměnná a její momenty.
- Střední hodnoty náhodné proměnné a její
funkce, výpočet z definice a pomocí statistického souboru.
- Příklady náhodných proměnných. Součet
náhodných proměnných.
- Centrální limitní věta a její použití k formulaci
úloh.
- Integrace funkce metodou Monte-Carlo. Rychlost
konvergence. Srovnání s jinými metodami.
- Generování náhodné proměnné s předem
danou rozdělovací funkcí, Metropolisův algoritmus.
- Statistická závislost náhodných proměnných,
korelační koeficient a autokorelační funkce.
- Variační a difůzní kvantové
Monte-Carlo, podstata metod.
Demonstrace:
- MC
výpočet čísla pi a rychlost konvergence
......................................DemoL06.01_MCpi.py
- Distribuční
funkce pro součet náhodných proměnných.........................DemoL06.02_x+y.py
LEKCE 5 – Fourierovské a spektrální metody – letmý úvod
- Fourierova
transformace – opakování: inverze, konvoluce a derivace, vlastnosti
transformace hladkých funkcí
- Semidiskrétní
Fourierova transformace. Nyquistova frekvence a aliasing, inverzní
transformace. Aliasing theorem (Poissonova formule). Použití pro
interpolaci.
- Diskrétní
Fourierova transformace. Definice, inverze. Podstata algoritmu rychlé
Fourierovy transormace.
- Metoda rozděleného propagátoru
pro Schrodingerovu rovnici.
- Podstata spektrálních metod. Spektrální konvergence.
- Podstata kolokační metody.
- Fourierovská, Čebyševova báze. Použití FFT.
- Příklady použití
DOPORUČENÁ LITERATURA:
Opírám se především o [3],
[5] a [6]. Jako vhodný doplněk pro praktickou implementaci
algoritmů lze vždy doporučit [2]. Ostatní uvedené knihy jsou vhodným doplňkem k různým
tématům, viz zelené poznámky.
- [1]
Poznámky přednášce. Moje verze v LaTeXu je zatím neúplná a plná
chyb, do sylabu výše jsem dal odkazy na některé zlomky.
- [2]
Press, Teukolsky, Vetterling, Flannery: Numerical Recipes in Fortran (or
in C), k dipozici online. Starší verze zdarma.
Tištěná verze by měla být v knihovně. - základní odkaz pro většinu témat k
přednášce.
- [3] L. N. Trefethen: Finite difference and spectral methods for ODE and PDE. Nedopsaná kniha
přístupná online. Pěkný
pedagogický výklad LIMUFO, a diferenčních metod pro PDE.
- [4]
L.N. Trefethen, D. Bau III: Numerical Linear Algebra. SIAM 1997. V tomto semestru především Krylovovské metody.
- [5]
J.W. Demmel: Applied Numerical Linear Algebra. SIAM 1997. Maticové iterační metody včetně
multigridu a konjugovaných gradientů.
- [6]
Koonin:
Computational Physics. Řešené
příklady s fyzikální tématikou. Základní odkaz na Monte-Carlo metody
je kapitola 8.
- [7]
Vitásek:
Numerické metody. Příručka
pro inženýry, obsahuje například úvod do FEM.
- [8]
C. Johnson: Numerical solution of PDE by the FEM, Cambridge 1987. Úvod do FEM.
Poznámka k Pythonu: Výše
uvedené příklady v Pythonu používají knihovny numpy a matplotlib.
Python lze stáhnout zdarma. Jedna z možností je:
1 jít na https://www.continuum.io/downloads stáhnout anacondu dle
vlastniho výběru
2 nainstalovat 3 spustit Anaconda Launcher
4 spustit Spyder - IDE (obsahuje i interaktivní konzoli) nebo spustit
Ipython-qtconsole - interaktivni python .
Loňské stránky
Karla Houfka jsou zde.
Numerické
knihovny pro fyziku (přehled užitečných,
osvědčených balíků nad Num.Rec.)
Některé z níže zmíněných knihoven jak ve FORTRANU tak v c, a mnohé
další, pro řadu speciálních problémů, lze najít na www.netlib.org.
1) CPC - Library,
(hlavně FORTRAN)
Knihovna programů časopisu "Computer Physics
Communications", kde lze nalézt články popisující metody.
Obsahuje řešení pro mnoho úloh s nimiž se setkáte ve fyzice,
včetně pokročilých metod, npř. různé speciální funkce, řešení
Hartree-Fockových rovnic, ...Dostupné v doméně fakulty.
2) GSL (Gnu scientific library)
(orientovano na C, ale je zde i překladač a knihovny pro F90)
Široké spektrum matematických procedur různého zaměření, vše
volně k dispozici.
3) BLAS, EISPACK, LINPACK,
LAPACK (Primárně FORTRAN 77, FORTRAN 90, existuje C++ verze)
BLAS je základní
balík pro manipulaci s vektory a maticemi (jeho náhrada, která se umí maximálně efektinvě
přizpůsobit hardware (optimální využití cache paměti procesoru
pro násobení matic atd.) se jmenuje ATLAS). Na něj staví EISPACK pro diagonalizaci matic a
LINPACK pro lineární algebru. Jejich sloučením vznikl LAPACK, který
obsahuje velké množství procedur pro numerickou lineární algebru.
4) Intel
Fortran (C) MKL - library
Matematické knihovny dodávané k intelovským překladačům
FORTRANU a C. Obsahují mimo jiné LAPACK a SPARSE SOLVER pro inverzi obecných
řídkých matic.
5) NAG
library
Komerční profesionální balík matematických knihoven.
6) Super LU - Berkeley
LU dekompozice pro obecné řídké matice.
7) Quadpack
Adaptibilní kvadratury .