Přidání 7. a 8. okruhu z NM

This commit is contained in:
Filip Znachor 2024-06-20 07:50:33 +02:00
parent 7c0c3511ff
commit 986185134f
2 changed files with 247 additions and 0 deletions

View file

@ -0,0 +1,122 @@
**Aproximace funkcí. Základní aproximační úlohy. Aproximace Taylorovým polynomem, interpolace, diskrétní a spojitá L2 aproximace. Diskrétní Fourierova transformace.**
### Základní aproximační úloha
Formulace
- cílem je nahrazení funkce $f$ jinou funkcí $\varphi$, která v nějakém smyslu napodobuje původní funkci $f$ za účelem snazšího zpracování či modelování na počítači
Aproximace
- **vstup**: $f = f(x); \quad x \in \langle a,b\rangle$
- zvolíme $n+1$ LN funkcí $\varphi_{i}$ a hledáme funkci $\varphi$, která lze vyjádřit ve tvaru lineární kombinace
- $\varphi = \varphi(x), \varphi(x) = c_{0}\varphi_{0}(x) + c_{1}\varphi_{1}(x) + \dots + c_{n}\varphi_{n}(x)$
- tento typ se nazývá **lineární aproximace**
- pokud jsou $\varphi_{i}(x)$ polynomy, jedná se o **polynomiální aproximaci**
- stanovujeme koeficienty $c_{i}$ tak, aby se $f$ a $\varphi$ co nejvíce podobaly
Základní úlohy
- aproximace na okolí bodu
- chceme-li aproximovat chování funkce v malém okolí bodu
- např. vyčíslení hodnot $\sin \frac{\pi}{4}$
- interpolace
- chceme-li zadanými body proložit polynom
- požadujeme, aby aproximace přesně procházela zadanými body
- L2-aproximace
- hledáme-li funkční závislost mezi zadanými body
- nevyžadujeme, aby aproximace body procházela
Věta (Weierstrassova)
- TODO
### Aproximace Taylorovým polynomem
- aproximace na okolí bodu
Předpoklad
- $f$ má v bodě $x_{0}$ a jeho okolí spojité derivace až do řádu $n$
Taylorův polynom
- $\displaystyle T_{n}(x) = f(x_{0}) + f'(x_{0})(x-x_{0}) + \frac{f''(x_{0})}{2!}(x-x_{0})^2 + \dots + \frac{f^{(n)}(x_{0})}{n!}(x-x_{0})^n$
Chyba aproximace
- $\displaystyle e(x) = f(x) - T_{n}(x) = \frac{f^{(n+1)}(\xi)}{(n+1)!}\cdot(x-x_{0})^{(n+1)}, \quad\xi \in u(x_{0})$
### Interpolace
- zadané hodnoty v $n+1$ bodech $x_{0}, \dots, x_{n}$ (uzly interpolace)
- prochází zadanými body
Interpolační podmínky
- prochází zadanými body ... $P_{n}(x_{i}) = f(x_{i}), \quad i = 0, 1, \dots, n$
- chyba v uzlech interpolace ... $e(x) = f(x) - P_{n}(x) = 0$
Jednoznačnost řešení
- interpolační úloha má jediné řešení, pokud jsou uzly interpolace $x_{i}$ vzájemně různé
**Lagrangeův interpolační polynom**
- $\displaystyle L_{n}(x) = \sum_{i=0}^n f(x_{i})\cdot l_{i}(x)$
- $f(x_{i})$ ... splnění interpolační podmínky
+ $\displaystyle l_{i}(x) = \frac{(x-x_{0})(x-x_{1})\dots(x-x_{i-1})(x-x_{i+1})\dots(x-x_{n})}{(x_{i}-x_{0})(x_{i}-x_{1})\dots(x_{i}-x_{i-1})(x_{i}-x_{i+1})\dots(x_{i}-x_{n})}$
- vynecháme člen $(x-x_{i})$ a $(x_{i}-x_{i})$
- dílčí polynomy n-tého stupně
**Newtonův interpolační polynom**
- $N_{n}(x) = a_{0} + a_{1}(x-x_{0}) + a_{2}(x-x_{0})(x-x_{1}) + \dots + a_{n}(x-x_{0})(x-x_{1})\dots(x-x_{n-1})$
- vyžadujeme splnění interpolační podmínky ... $N_{n}(x_{i}) = f(x_{i}), \quad i = 0,1,\dots,n$
- přidáním dalšího bodu interpolace není nutné celý výpočet opakovat, jen dopočítáme příslušný koeficient $a_{n+1}$
- **algoritmus**: počítáme koeficienty $a_{i}$ pomocí poměrných diferencí
| $i$ | $x_{i}$ | $f(x_{i})$ | $\displaystyle\frac{f(x_{i}) - f(x_{i-1})}{x_{i} - x_{i-1}} = f^I(x_{i})$ | $\displaystyle\frac{f^I(x_{i}) - f^I(x_{i-1})}{x_{i} - x_{i-2}} = f^{II}(x_{i})$ | $\displaystyle\frac{f^{II}(x_{i}) - f^{II}(x_{i-1})}{x_{i} - x_{i-3}} = f^{III}(x_{i})$ |
| --- | ------- | ----------- | ------------------------------------------------------------------------- | -------------------------------------------------------------------------------- | --------------------------------------------------------------------------------------- |
| 0 | 0 | $1 = a_{0}$ | | | |
| 1 | 1 | $2$ | $\frac{2-1}{1-0} = 1 = a_{1}$ | | |
| 2 | -1 | $2$ | $\frac{2-2}{-1-1} = 0$ | $\frac{0-1}{-1-0} = 1 = a_{2}$ | |
| 3 | 3 | $0$ | $\frac{0-2}{3-(-1)} = -\frac{1}{2}$ | $\frac{-\frac{1}{2}-0}{3-1} = -\frac{1}{4}$ | $\frac{-\frac{1}{4}-1}{3-0} = -\frac{5}{12} = a_{3}$ |
**Chyba interpolačního polynomu**
- $\displaystyle e(x) = f(x) - P_{n}(x) = \frac{f^{(n+1)}(\xi)}{(n+1)!}(x-x_{0})(x-x_{1})\dots(x-x_{n})$
**Nevilleův algoritmus**
- výpočet hodnoty polynomu $N_{n}(\alpha)$ v bodě $\alpha$
- není potřeba počítat celý polynom
- body je potřeba seřadit podle vzdálenosti
- **princip**
1. $P_{i,0} = f(x_{i}); \quad i =0, 1, \dots, n$
2. $\displaystyle P_{i,k} = P_{i,k-1} + (\alpha-x_{i}) \frac{P_{i,k-1} - P_{i-1,k-1}}{x_{i} - x_{i-k}};$
3. $N_{n}(\alpha)$
+ $\alpha = 1.8$
| $x_{i}$ | 0 | 1 | 2 | 3 | 4 |
| ---------- | ------ | ------- | ------- | ------- | ------- |
| $f(x_{i})$ | 1.0000 | 0.36788 | 0.13534 | 0.04979 | 0.01832 |
| $\vert\alpha-x_{i}\vert$ | $x_i$ | $f(x_{i}) = P_{i,0}$ | $P_{i,1}$ | $P_{i,2}$ | $P_{i,3}$ | $P_{i,4}$ |
| ------------------------ | ----- | -------------------- | ----------- | ----------- | ----------- | ----------- |
| 0.2 | 2 | **0.13534** | | | | |
| 0.8 | 1 | 0.36788 | **0.18185** | | | |
| 1.2 | 3 | 0.04979 | 0.24064 | **0.17009** | | |
| 1.8 | 0 | 1.00000 | 0.42987 | 0.08926 | **0.16201** | |
| 2.2 | 4 | 0.01832 | 0.5582 | 0.27583 | 0.13901 | **0.16431** |
**Spline funkce**
- více polynomů dohromady
- **lineární spline funkce**
- lomená čára spojující zadané body
- **kubická spline funkce**
- na každém intervalu polynom 3. stupně
- splňuje interpolační podmínky
- je spojitá
- má spojitou první derivaci - nemá hroty
- má spojitou druhou derivaci - nemá prudké změny koeficientů křivosti
### L2 aproximace
Princip
- hledáme aproximace ve tvaru
- $\varphi = \varphi(x), \varphi(x) = c_{0}\varphi_{0}(x) + c_{1}\varphi_{1}(x) + \dots + c_{n}\varphi_{n}(x)$
- cílem L2 aproximace je minimalizovat odchylku funkce $\varphi$ od zadaných bodů
Druhy
- diskrétní L2 aproximace lineárním polynomem
- $\varphi(x) = c_{0} + c_{1}x$
- diskrétní L2 aproximace kvadratickým polynomem
- $\varphi(x) = c_{0} + c_{1}x + c_{2}x^2$

View file

@ -0,0 +1,125 @@
**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**
- pro změnšující se $h$ roste chyba (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ě až 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 má dva obdélníky
- tříbodový vzorec: $K = w_{0}f(x_{0}) + w_{1}f(x_{1}) + w_{2}f(x_{2})$