From 986185134fcfaad5b290b31aee8fc26e409db902 Mon Sep 17 00:00:00 2001 From: Filip Znachor Date: Thu, 20 Jun 2024 07:50:33 +0200 Subject: [PATCH] =?UTF-8?q?P=C5=99id=C3=A1n=C3=AD=207.=20a=208.=20okruhu?= =?UTF-8?q?=20z=20NM?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- KMA NM/Zkouška/07. okruh.md | 122 +++++++++++++++++++++++++++++++++++ KMA NM/Zkouška/08. okruh.md | 125 ++++++++++++++++++++++++++++++++++++ 2 files changed, 247 insertions(+) create mode 100644 KMA NM/Zkouška/07. okruh.md create mode 100644 KMA NM/Zkouška/08. okruh.md diff --git a/KMA NM/Zkouška/07. okruh.md b/KMA NM/Zkouška/07. okruh.md new file mode 100644 index 0000000..eba695d --- /dev/null +++ b/KMA NM/Zkouška/07. okruh.md @@ -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$ diff --git a/KMA NM/Zkouška/08. okruh.md b/KMA NM/Zkouška/08. okruh.md new file mode 100644 index 0000000..ea76c15 --- /dev/null +++ b/KMA NM/Zkouška/08. okruh.md @@ -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})$