{ "cells": [ { "cell_type": "markdown", "metadata": {}, "source": [ "(ukol8)=\n", "# Zápočtový úkol 8\n", "\n", "
\n", "\n", "\n", "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:\n", "\n", "$$\n", "f(x, y, z) = \\exp(y - x^2) \\sin(\\pi z),\n", "$$\n", "\n", "na intervalu $x \\in (0, 1), y \\in (0, 1), z \\in (0, 1)$.\n", "\n", "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()`).\n", "\n", "Srovnejte rychlosti konvergence (závislost relativní chyby metody na počtu kroků) 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.\n", "\n", "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", "
\n", "\n", "\n", "**Nápověda**:\n", "\n", "Rozšíření metod založených na Newton-Cortesových vzorcích do více dimenzí je následující:\n", "* stejně jako v 1D vyčíslujeme funkci na diskrétní mřížce, tentokrát na 3D mřížce\n", "* celkový integrál je dán součtem funkčních hodnot vynásobených určitou váhou\n", "* 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}$\n", "* 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$)\n", "* cesta nízkého odporu je volba *obdélníkové metody* (koeficienty jsou rovny $1$)!\n", "
\n", "