Numerické metody ve fyzice
II - TMF058 (LS 2023-24)
Aktuální
informace:
(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
.