Numerické metody pro teoretické fyziky I - NTMF057

Základní informace:     v roce 2024/2025 přednáší Karel Houfek
přednáška a cvičení se koná každý čtvrtek od 3.10. do 9.1. (kromě 26.12. a 2.1.) od 14:50 v posluchárně ÚTF

Poznámky a notebooky v Mathematice

Při přípravě na zkoušku můžete použít poznámky Martina Čížka, které nejsou zatím hotové, ale obsahují odkazy na další studijní literaturu.

Níže jsou zatím materiály, které jsem používal při přednáškách v roce 2022/2023. Pokud budu v průběhu semestru některé aktualizovat, bude to explicitně uvedeno.

Pro většinu demonstrací v Mathematice je potřeba nejprve nahrát knihovnu funkcí
Basic.Functions.for.TMF057.m
Po otevření v Mathematice klikněte na Run All Code v pravém horním rohu. Tím se všechny funkce nahrají do paměti a lze je pak používat v ostatních notebookách.

Témata odpřednášená v roce 2022/23:

  1. Základní pojmy a vliv zaokrouhlovacích chyb na výpočty
  2. Řešení nelineárních rovnic a urychlování konvergence
  3. Aproximace funkcí
  4. Numerická derivace
  5. Numerická integrace
  6. Numerické řešení obyčejných diferenciálních rovnic
  7. Numerická lineární algebra

Cvičení na fakultním JupyterHUBu

Cvičení nejsou přímo oddělené od přednášky, během které se demostrují vykládané numerické metody přímo v prostředí JupyterHUB na fakultním výpočetním clusteru. Podrobné informace a návod pro příhlášení najdete zde (zatím pouze v angličtině).

Po dobu přednášky/cvičení jsou rezervovány výpočetní prostředky, které jsou dostupné všem studentům zapsaným na předmět v SISu. Při spouštění serveru zadejte
Reservation: ntmf057_39 Other SLURM options: -A ntmf057

Ukázkové notebooky si můžete stáhnout buď pomocí odkazů výše v sekci Poznámky a notebooky v Mathematice výše, nebo jsou uloženy na clusteru ve složce /home/teaching/ntmf057, kam byste měli mít přístup, pokud jste mezi přidanými uživateli pro účet ntmf057, tj. pokud máte předmět zapsán.

Zadání zápočtových úloh

Podmínkou udělení zápočtu je vypracování jedné ze zápočtových úloh, které jsou ke stažení zde. Zatím jsou zadány stejné úlohy jako v roce 2022/2023. Rád bych ještě přidal nové úlohy, ale nemám je dosud otestované. Pokud byste měli nápad na jinou úlohu, která se řeší metodami vykládanými na přednášce a kterou byste chtěli řešit, ozvěte se a domluvíme se případně na konrétním zadání. Cílem zápočtových úloh je zkusit si sám naprogramovat určitou numerickou metodu a použít ji na konkrétní problém.

Požadavky ke zkoušce

Níže uvedená témata je potřeba znát v rozsahu přednášky, pokud např. nebyl na přednášce uveden důkaz některého tvrzení, pak nebude požadován ani u zkoušky. U jednotlivých hlavních témat je uvedena literatura, ze které jsem při přípravě přednášky především čerpal. Odkazy jsou na seznam doporučené literatury níže.

  1. Základní pojmy([1] kap. 1.1, [9] kap. 3 a 12-15)
  2. Iterace, urychlování konvergence. Řešení nelineárních rovnic ([5] kap. 6, příp. [1] kap. 9)
  3. Aproximace a interpolace funkcí ([5] kap. 1)
  4. Numerická integrace (kvadratura) ([5] kap. 4)
  5. Numerické řešení obyčejných diferenciálních rovnic - počáteční úloha ([7] kap. 5-8, [8] kap. 1)
  6. Numerická lineární algebra ([9])

Doporučená literatura

Literatury o numerické metodách a numerické analýze je nepřeberné množství. Ač je seznam doporučené literatury poměrně dlouhý, jde stále o základní přehled. Doporučujeme si vybrat jednu či dvě knihy, ze kterých budete čerpat navíc k poznámkám k přednášce.

Základní přehledy numerických metod
[1] Press W. H., Teukolsky S. A., Vetterling W. T., Flannery B. P. - Numerical Recipes - The Art of Scientific Computing, Third Edition, Cambridge University Press, Cambridge 2007, starší vydání dostupné online,
základní kniha, po které sáhne každý fyzik, potřebuje-li něco vyřešit numericky, ale jde spíše o kuchařku než o soustavný výklad
[2] Vitásek E. - Numerické metody, SNTL, Praha 1987,
jde též spíše o kuchařku, vhodná jako referenční kniha
[3] Ralston A. - Základy numerické matematiky, Academia, Praha 1973
obsahuje většinu probraných témat, je ale staršího data a některá témata jsou vyložena jinak
[4] Koonin S. E. - Computational Physics, Benjamin, Menlo Park 1986,
pouze základní metody, ovšem s aplikací na konkrétní úlohy z fyziky
Podrobnější výklad jednotlivých témat
[5] Seghethová J. - Základy numerické matematiky, Karolinum, Praha 2002
řešení nelineárních rovnic, aproximace a interpolace funkcí, numerická integrace a základy numerické lineární algebry, včetně důkazů řady tvrzení
[6] Isaacson E., Keller H. B. - Analysis of Numerical Methods, Dover, New York 1994,
obsahuje (někdy až příliš) podrobný rozbor většiny probraných témat, včetně důkazů mnoha tvrzení,
v kapitola 6.4 je výklad diferenčních operátorů
[7] LeVeque R. J. - Finite Difference Methods for Ordinary and Partial Differential Equations, SIAM, Philadelphia 2007,
především kapitoly 1 (konečné diference) a 5–7 (obyčejné diferenciální rovnice)
[8] Trefethen L. N. - Finite Difference and Spectral Methods for Ordinary and Partial Differential Equations, 1996, dostupné online,
především kapitola 1 (obyčejné diferenciální rovnice)
[9] Trefethen L. N., Bau D. III - Numerical Linear Algebra, SIAM, Philadelphia 1997,
čtivá učebnice numerické lineární algebry, řada témat na přednášce je připravena podle této knihy
[10] Demmel J. W. - Applied Numerical Linear Algebra, SIAM, Philadelphia 2007,
především kapitola 2 (soustavy lineárních rovnic) a případně 4 a 5 (problém hledání vlastních čísel)

Většina z výše uvedené literatury je k dispozici ke stažení v elektronické podobě v "tajném" podadresáři, jehož jméno se dozvíte na přednášce či na požádání (nejlépe zasláním e-mailu přednášejícímu).

Numerické knihovny pro fyziku

Některé z níže zmíněných knihoven (jak ve FORTRANU, tak v jazyku 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 .