Zápočtový úkol 3

Zápočtový úkol 3#

Úkol - zápočet 3

Implementujte metodu Monte Carlo (druhou verzi ukázanou na cvičení) a jednu z metod založených na Newton-Cortesových vzorcích (například Simpsonovo pravidlo) pro integraci následující funkce tří proměnných:

\[ f(x, y, z) = \exp(y - x^2) \sin(\pi z), \]

na intervalu \(x \in (0, 1), y \in (0, 1), z \in (0, 1)\).

Pro obě metody odhadněte chybu způsobem ukázaným na cvičení. Porovnejte s přesným výsledkem, který lze určit analyticky nebo s využitím knihovní funkce (nquad()).

Srovnejte rychlosti konvergence obou integračních metod (stačí spočítat hodnoty integrálu pro několik řádově různých \(M\) - np.logspace()). Použijte stejný počet kroků (výpočtů funkční hodnoty) v obou metodách, aby srovnání mělo smysl! U metody Monte Carlo je \(M\) pokusů (vyhodnocení funce \(f\)) ekvivalentní výpočtu funkčních hodnot na 3D mřížce o velikosti \(M^{1/3} \times M^{1/3} \times M^{1/3}\) pro metodu Newton-Cortesova vzorce.

Vykreslete vývoj chyby do log-log grafu (plt.loglog() nebo plt.xscale('log')). Okomentujte velikost chyb obou metod a jak rychle klesají s rostoucím \(M\).

Tip

Nápověda:

Rozšíření metod založených na Newton-Cortesových vzorcích do více dimenzí je následující:

  • stejně jako v 1D vyčíslujeme funkci na diskrétní mřížce, tentokrát na 3D mřížce

  • celkový integrál je dán součtem funkčních hodnot vynásobených určitou váhou

  • u Simpsona jsme viděli, že v 1D se střídají váhy \(\frac{1}{3}, \frac{4}{3}, \frac{2}{3}, \frac{4}{3}, \frac{2}{3}, \dots, \frac{1}{3}\), tedy krajní body mají váhu \(\frac{1}{3}\), sudé \(\frac{4}{3}\) a liché \(\frac{2}{3}\)

  • ve více dimenzích máme koeficient pro každou dimenzi podle stejného pravidla a výsledný koeficient je jejich součinem! (nezapomeňte také na faktor \(h^3\))

  • cesta nízkého odporu je volba obdélníkové metody (koeficienty jsou rovny \(1\))!

## DOPLŇTE ##