---
layout: post
title: Cvičenie 10
excerpt: "Numerická integrácia"
tags:
  - integrácia v 1D
  - multidimenzionálna integrácia
  - Monte Carlo
---

## Numerická integrácia
Dnešné cvičenie je rozdelené na 3 časti:
  * integrácia v jednej dimenzii
  * integrácia vo viacerých dimenziách
  * integrácia Monte Carlo
Integrácia v 1D je prevažne založená na jednoduchých geometrických princípoch založených na spresňovaní tradičnej definície Riemannovho integrálu. Následne i ukážeme ako sa integrovanie v jednom rozmere dá zobecniť do viac dimenzií. Metóda Monte Carlo využíva úplne iný princíp a je založená na generovaní náhodných čísel.
### Integrácia v 1D
V jednej dimenzii ide o numerický výpočet integrálu
$$
I =	\int_{a}^b f(x) dx
$$
Jednou z možností je využiť kvadratúrne vzorce, kde uvažujeme ekvidistantné body pozdĺž celého intervalu a na danom úseku aproximujeme funkciu. Metódy sa líšia podľa spôsobu, akým funkciu aproximujeme. Bližšie vysvetlenie vo videu, implementácia sa nachádza v čase 24:24-36:13. Kto chce metódy naimplementovať sám, použite [template](http://babjarob.github.io/cv10/local_integrals.m), použiť môže aj hotový [skript](http://babjarob.github.io/cv10/local_integrals_author.m). Takisto si prezrite [odvodenie](http://babjarob.github.io/cv10/odvozeni_integrace_Lagrange.pdf) Simpsonovho pravidla.
<div class="embed-responsive embed-responsive-16by9">
<iframe width="560" height="315" src="https://www.youtube.com/embed/po1m34mcjAI" title="YouTube video player" frameborder="0" allow="accelerometer; autoplay; clipboard-write; encrypted-media; gyroscope; picture-in-picture" allowfullscreen></iframe>
</div>
Spresnenie jednoduchých kvadratúrnych vzorcov poskytuje [Rombergova metóda](http://babjarob.github.io/cv10/teorie_Rombergova_metoda.pdf), takisto si prezrite [skript](http://babjarob.github.io/cv10/romberg.m).
### Viacdimenzionálne integrály
Počítanie viacdimenzionálnych integrálov je založené na využití Fubiniovej vety, ktorá nám hovorí o prevedení viacrozmerného integrálu na sériu jednorozmerných integrálov. Nevýhodou takéhoto prístupu však je, že počet bodov potrebných na výpočet integrálu rastie s mocninou dimenzie N. To znamená, že ak v 1D počítame integrál na $$n$$ bodoch, v N dimenziách budeme potrebovať $$n^N$$ bodov. Z tohto dôvodu pre viacdimenzionálne integrály častokrát býva vhodnejšia metóda Monte Carlo.
Prejdite si video a [skript](http://babjarob.github.io/cv10/integrals_2D.m) do času 22:40, silno však odporúčam celé video kde sú metódy vysvetlené detailnejšie z pohľadu efektívnosti algoritmov. 
<div class="embed-responsive embed-responsive-16by9">
<iframe width="560" height="315" src="https://www.youtube.com/embed/2dFjhKRpEk0" title="YouTube video player" frameborder="0" allow="accelerometer; autoplay; clipboard-write; encrypted-media; gyroscope; picture-in-picture" allowfullscreen></iframe>
</div>
	
### Integrácia Monte Carlo
Ak chceme vypočítať integrál funkcie $$f$$ v objeme V, pomocou metódy Monte Carlo sa vieme k hodnote integrálu dostať ako
\begin{equation}
I = \int fdV \approx V \bar{f} \pm V\sqrt{\frac{\bar{(f^2)}-(\bar{f})^2}{N}},
\end{equation}
kde $$\bar{f}$$ označuje aritmetický priemer funkčných hodnôt. Môžme vidieť, že metóda konverguje relatívne pomaly a chyba je úmerná $$\sim N^{-1/2}$$. K aritmetickému priemeru sa dostaneme tak, že v objeme V generujeme N náhodných bodov $$\vec{\xi}_1,..., \vec{\xi}_N$$ a vyhodnocujeme na nich danú funkciu. Následne platí
\begin{equation}
\bar{f} = \frac{1}{N}\sum_{i=1}^{N}f(\vec{\xi}_i)
\end{equation}
Výhoda metódy sa prejaví hlavne pri viac dimenziách. V reále sa zvykne využívať sofistikovanejšie generovanie náhodných čísel, tzv. importance sampling. Prezrite si nasledujúce video od začiatku po 22:33, používa nasledujúci [skript](http://babjarob.github.io/cv10/MonteCarlo_author.m). 
<div class="embed-responsive embed-responsive-16by9">
<iframe width="560" height="315" src="https://www.youtube.com/embed/u7kuAx0DUxw" title="YouTube video player" frameborder="0" allow="accelerometer; autoplay; clipboard-write; encrypted-media; gyroscope; picture-in-picture" allowfullscreen></iframe>
</div>

### Domáca úloha
Deadline na odovzdanie domácej úlohy je streda 28. Apríl 2021 23:59:59. Konzultácie a odovzdanie úlohy cez chat v MS Teams. Zadanie dostanete takisto v MS Teams.