Numerické metody ve
fyzice II - TMF058 (LS 2023-24)
Aktuální
informace:
(24.5.2024) V SISu
jsem vypsal zkoušky, tak si
nějaký termín vyberte. Jinak kromě materiálů níže přiládám linky na svoje poznámky k přednášce:
Lekce1
– sítě, Lekce 2 – relaxace, Lekce 3 – FEM, Lekce 4 – MC, Lekce 5 – FT a take kopie tabulí z kovidového roku: 2. dubna: Řešení okrajových úloh, 9.
dubna: Multigridové
metody, 16. dubna: Základy
FEM, 23.
dubna: FEM ve více dimenzích
a začátek gradientních
metod, 30.
dubna: Gradientní a Krylovovské
iterační maticové metody. *
(17.5.2024) Jako
zápočtovou úlohu si můžete
vybrat něco z předchozích let, například
toto, nebo z tohohle a nebo
ještě něco
tady.
(29.2.2024) Přednáška
probíhá v pátek od 9:00 v posluchárně UTF. První přednášku o numerických aspektech Fourierovy transformace přednesl Karel Houfek. Od 1.3. 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
2022: (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
.