FAV-ZCU/KMA NM/Zkouška/08. okruh.md

125 lines
6.3 KiB
Markdown

**Numerické derivování a integrování. Diference. Richardsonova extrapolace. Newtonovy-Cotesovy vzorce. Gaussovy kvadraturní vzorce. Jednoduché a složené kvadraturní vzorce.**
## Numerické derivování
- existuje konečná $\displaystyle\lim_{ h \to \infty } \frac{f(x+h) - f(x_{0})}{h} \implies f(x)$ má v bodě $x_{0}$ derivaci
- umíme zderivovat jakoukoliv funkci, ale musíme mít zadaný její předpis - co pokud máme jen některé hodnoty? (chceme zpočítat derivaci numericky)
Způsoby odvození
1. pomocí interpolačního polynomu
- pro funkci $f$ zadanou tabulkou sestrojíme interpolační polynom a ten zderivujeme
- stupeň polynomu **musí být větší nebo roven** řádu počítané derivace
2. pomocí Taylorova rozvoje
### Diference
**Levá a pravá poměrná diference** (dvoubodové)
- vytvoříme Taylorův rozvoj v bodech $(x_{0}+h)$ a $(x_{0}-h)$ (musíme mít dostatečně hladkou funkci)
- $f(x_{0}+h) = f(x_{0}) + h\cdot f'(x_{0}) + \frac{h^2}{2}\cdot f''(\xi_{1}); \quad \xi_{1} \in (x_{0}, x_{0}+h)$
- $f(x_{0}-h) = f(x_{0}) - h\cdot f'(x_{0}) + \frac{h^2}{2}\cdot f''(\xi_{2}); \quad \xi_{2} \in (x_{0}-h, x_{0})$
- z 1. rovnice získáme **pravou poměrnou diferenci**
- $\displaystyle f'(x_{0}) = D_{P} f(x_{0}) - \text{chyba} = \frac{f(x_{0}+h) - f(x_{0})}{h} - \frac{h}{2}\cdot f''(\xi_{1})$
- z 2. rovnice získáme **levou poměrnou diferenci**
- $\displaystyle f'(x_{0}) = D_{L}f(x_{0}) + \text{chyba} = \frac{f(x_{0}) - f(x_{0}-h)}{h} + \frac{h}{2}\cdot f''(\xi_{2})$
- $O(h)$ ... chyba, řád desetin pro $h < 1$
**Centrální poměrná diference** (tříbodová)
- vytvoříme Taylorův rozvoj 2. řádu
- $f(x_{0}+h) = f(x_{0}) + h\cdot f'(x_{0}) + \frac{h^2}{2} \cdot f''(x_{0}) + \frac{h^3}{6} \cdot f'''(\xi_{1}); \quad \xi_{1} \in (x_{0}, x_{0}+h)$
- $f(x_{0}-h) = f(x_{0}) - h\cdot f'(x_{0}) + \frac{h^2}{2} \cdot f''(x_{0}) - \frac{h^3}{6} \cdot f'''(\xi_{2}); \quad \xi_{2} \in (x_{0}-h, x_{0})$
- rovnice od sebe odečteme
- $\displaystyle f(x_{0}+h) - f(x_{0}-h) = 2h\cdot f(x_{0}) + \frac{\frac{h^3}{6}(f'''(\xi_{1}) + f'''(\xi_{2}))}{\frac{h^2}{6} f'''(\xi)}$
- vyjádřením $f'$ a získáme **centrální poměrnou diferenci**
- $\displaystyle f'(x_{0}) = D_{C} f(x_{0}, h) - \text{chyba} = \frac{f(x_{0}+h) - f(x_{0}-h)}{2h} - \text{chyba}$
- $O(h^2)$ ... chyba, řád setin pro $h < 1$
Vždy je **nejlepší použít centrální poměrnou diferenci**. Na krajích ale nemáme k dispozici dva body, takže využijeme levou a pravou poměrnou diferenci.
Podmíněnost
- úloha numerického derivování je **špatně podmíněna**
- chyba klesá s rostoucím $h$ (prvně klesá, poté začne strmě narůstat)
- chceme najít optimální krok $h_{opt} \to$ Richardsonova extrapolace
### Richardsonova extrapolace
Využijeme 2 přibližných výsledků k získání třetího, který bude přesnější.
- zvýšení přesnosti - numerická derivace je špatně podmíněná
Např. pro centrální diferenci
- vyjádříme centrální diferenci pro krok $h$ a $2h$ z Taylorova rozvoje 4. řádu
- $D_{C}(x_{0}, h) = f'(x_{0}) + \frac{h^2}{6}f'''(x_{0})+O(h^4)$
- $D_{C}(x_{0}, 2h) = f'(x_{0}) + \frac{4h^2}{6}f'''(x_{0}) + O(h_{4})$
- rovnice od sebe odečteme, aby zmizel prostřední člen
- $4D_{C}(x_{0},h)-D_{C}(x_{0},2h) = 3f'(x_{0}) + O(h^4)$
- vyjádříme derivaci
- $\displaystyle f'(x_{0}) = \frac{4D_{C}(x_{0},h)-D_{C}(x_{0},2h)}{3} - O(h^4)$
Vycházet jsme mohli z hodnot, které měly řádově chybu $O(h^2)$. Šikovnou kombinací jsme získali chybu pouze $O(h^4)$. Je možné pokračovat a snížit chybu ještě více.
## Numerické integrování
Použití
- když nená možno integrál spočítat analyticky (nebo je to velmi pracné)
- když máme funkci $f$ zadanou tabulkou
Funkci $f$ aproximuje funkce $\displaystyle\varphi \to I(f) \approx I(\varphi) = \int_{a}^b \varphi(x) \, dx$.
Jedná se o stabilní úlohu (narozdíl od derivování).
Princip
- interval $\langle a,b\rangle$ rozdělíme na $N$ podintervalů $\langle x_{k}, x_{k+1}\rangle$ (pro jednoduchost stejně velkých)
- na podintervalech nahradíme funkci $f$ polynomem a ten integrujeme
- **vzorce pro výpočet** integrálů (**kvadraturní vzorce**)
- **základní** - na intervalech $\langle x_{k},x_{k+1}\rangle$
- **složený** - přes celý interval $\langle a,b\rangle$ (součet základních kv. vzorců)
- uzly
- $x_{k} = x_{0} + k\cdot h$
- $k = 0,1,\dots,N-1$
- $h = \frac{b-a}{N}$
### Newton-Cotesovy vzorce
Základní kvadraturní vzorce
- **obdélníkové pravidlo**
- $f$ nahrazujeme **konstantní** funkcí $\varphi$
- $\displaystyle\int_{x_{k}}^{x_{k+1}} f(x) \, dx \approx h\cdot f\left( x_{k}+\frac{h}{2} \right) = R_{Z}(f,h)$
+ **lichoběžníkové pravidlo**
- $f$ nahrazujeme **lineární** funkcí $\varphi$
- $\displaystyle\int_{x_{k}}^{x_{k+1}} f(x) \, dx \approx \frac{h}{2}[f(x_{k})+f(x_{k+1})] = T_{Z}(f,h)$
- **Simpsonovo pravidlo**
- $f$ nahrazujeme **kvadratickou** funkcí $\varphi$
- $\displaystyle\int_{x_{k}}^{x_{k+2}} f(x) \, dx \approx \frac{h}{3}[f(x_{k})+4f(x_{k+1})+f(x_{k+2})] = S_{Z}(f,h)$
Chyby základních vzorců
- nejmenší chyba je u Simpsonova pravidla
- obdélníkové pravidlo je přesnější než lichoběžníkové
**Složení N-C vzorců**
- získáme **sečtením** základních kvadraturních vzorců
- $\displaystyle\int_{a}^b f(x) \, dx = \sum_{0}^{N-1} \int_{x_{k}}^{x_{k+1}} f(x) \, dx \approx \sum_{0}^{N-1} \int_{x_{k}}^{x_{k+1}} \varphi(x) \, dx$
Vlastnosti
- N-C vzorce nejsou konvergentní
- ke zvýšení přesnosti možno využít Richardsonovu extrapolaci
- volit $h$ a $\frac{h}{2}$ nebo kombinovat dvě různá pravidla
### Gaussovy kvadraturní vzorce
Snažíme se, aby kvadraturní vzorec integroval přesně polynomy co možná nejvyššího řádu.
Obecný tvar kvadraturního vzorce
- $\displaystyle K(f) = \sum_{i=0}^m w_{i}\cdot f(x_{i})$
- $w_{i}$ ... váhy
- $x_{i}$ ... uzly (neekvidistantní)
Vlastnosti
- máme-li $m+1$ bodů, tak vzorec integruje přesně do $2m+1$ stupně polynomu
- vyšší přesnost, ale neekvidistantní uzly (nemají od sebe stejnou vzdálenost)
- Gaussovy kv. vzorce vždy konvergují
Vzorce
- jednobodový vzorec: $K = w_{0}\cdot f(x_{0})$
- splyne s obdélníkovým pravidlem
- dvoubodový vzorec: $K = w_{0}f(x_{0}) + w_{1}f(x_{1})$
- pro 1 interval dva obdélníky
- tříbodový vzorec: $K = w_{0}f(x_{0}) + w_{1}f(x_{1}) + w_{2}f(x_{2})$