(ukol8)=
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$.
Nápověda:
Rozšíření metod založených na Newton-Cortesových vzorcích do více dimenzí je následující:
## DOPLŇTE ##