From 89fda3155af5dcf4a3fc0929e41665e62c793632 Mon Sep 17 00:00:00 2001 From: Filip Znachor Date: Fri, 14 Jun 2024 22:02:02 +0200 Subject: [PATCH] =?UTF-8?q?P=C5=99id=C3=A1n=C3=AD=20prvn=C3=ADch=20dvou=20?= =?UTF-8?q?okruh=C5=AF=20z=20NM?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- KMA NM/Zkouška/01. okruh.md | 84 +++++++++++++++++++++++++++ KMA NM/Zkouška/02. okruh.md | 109 ++++++++++++++++++++++++++++++++++++ 2 files changed, 193 insertions(+) create mode 100644 KMA NM/Zkouška/01. okruh.md create mode 100644 KMA NM/Zkouška/02. okruh.md diff --git a/KMA NM/Zkouška/01. okruh.md b/KMA NM/Zkouška/01. okruh.md new file mode 100644 index 0000000..7375945 --- /dev/null +++ b/KMA NM/Zkouška/01. okruh.md @@ -0,0 +1,84 @@ +**Základní pojmy. Matematický model, matematická úloha, korektní úloha, podmíněnost úlohy, číslo podmíněnosti, podmíněnost a stabilita algoritmu. Příklady.** + +**Proces modelování** (kroky) +- reálný problém +- matematický model + - reálný problém popisuje matematickými veličinami a vztahy +- matematická úloha + - určení, které veličiny známe a které počítáme +- numerická úloha + - neznáme metodu pro nalezení přesného řešení, volíme přibližnou metodu + - problém např. musíme diskretizovat + - chyba metoda (chyba diskretizace) +- algoritmus + - TODO +- implementace +- analýza výsledků + +### Korektní úloha + +**Definice (úloha)** +- Mějme dány dvě množiny $X$ (vstupní data) a $Y$ (výstupní data). Předpokládejme, že $X, Y$ jsou Banachovy prostory (úplné + normovaný). Úlohou rozumíme relaci $y = U(x); \, x \in X_{i}; \, y \in Y$. + +**Definice (korektní úloha)** +- Úloha je korektní na dvojici prostorů $(X,Y)$, když: + - $\forall \, x \in X \quad \exists! \, y \in Y: \quad y = U(x)$ ... zobrazení + - $\forall \, \{x_{n}\}: x_{n} \to x_{i} \cup (x_{n}) = y_{n} : y_{n} \to y = U(x)$ + - řešení $y$ spojitě závisí na vstupních datech + +### Podmíněnost úlohy + +**Definice (dobrá podmíněnost)** +- Úloha je dobře podmíněná, jestliže malá relativní změna na vstupu vyvolá malou relativní změnu řešení. +**Číslo podmíněnosti** +- je-li $C_{p} \approx_{1}$, úloha je velmi dobře podmíněná +- v praxi hovoříme o špatně podmíněné úloze pro $C_{p} \geq 100$ +- $\displaystyle C_{p} = \frac{\frac{\Vert \Delta y\Vert}{\Vert y\Vert}}{\frac{\Vert \Delta x\Vert}{\Vert x\Vert}}$ + - $\displaystyle\frac{\Vert\Delta y\Vert}{\Vert y\Vert} = \frac{\vert U(\overline{x}+ \Delta x) - U(\overline{x}) \vert}{\vert U(\overline{x}) \vert}$ + - horní část - relativní chyba na výstupu $y$ + - dolní část - relativní chyba na vstupu $x$ + +### Stabilita a podmíněnost algoritmu + +**Stabilní algoritmus** +- dobře podmíněný - málo citlivý na poruchy ve vstupních datech +- numericky stabilní - málo citlivý na vliv zaokrouhlovaných chyb + +**Nestabilní algoritmus** +- relativně malé chyby v jednotlivých krocích se akumulují tak, že dojde ke katastrofální ztrátě přesnosti řešení + +U stabilních metod roste chyba výsledku nejvýše lineárně. +- sčítáním a odčítáním můžeme ztratit hodně informací (desetinných míst) - to může vést k nestabilitě +- **reziduum** + - $r = b-A\overline{x}$ + - míra chyby mezi přesným a přibližným řešením + - vyjde nula, když dostaneme přesné řešení +- **chyba** + - $e = \overline{x} - x^*$ + - rozdíl mezi přibližným a přesným výsledkem +- když se nám rapidně zvyšuje chyba, ale reziduum je stále blízké nule, tak se jedná o **nestabilní algoritmus** + +### Příklady - podmíněnost + +Posuďte podmíněnost úlohy určit hodnotu fce $y = \sin(x)$. +- **a)** v bodě $3.14$ + - $\overline{x} = 3.14, \Delta x = 0.01$ - malá změna na vstupu + - $y = \sin \overline{x} \approx 1.5327\cdot10^{-3}$ + - $\sin(\overline{x}+\Delta x) = -8.4072\cdot10^{-3}$ + + relativní změna na vstupu: $\displaystyle\frac{\Vert\Delta x\Vert}{\Vert\overline{x}\Vert} = \frac{0.01}{3.14} \doteq 0.0031847$ + + relativní změna na výstupu: $\displaystyle\frac{\Vert\Delta y\Vert}{\Vert y\Vert} = \frac{\Vert\sin(\overline{x}+\Delta x) - \sin \overline{x}\Vert}{\Vert\sin \overline{x} \Vert} \doteq 6.2789149$ + + $C_{p} \doteq 1971.6$ - špatně podmíněná úloha +- **b)** v bodě $-0.1$ + - $\overline{x} = -0.01, \Delta x = 0.01$ + - $y = \sin \overline{x} = -0.0099998$ + - $\sin(\overline{x} + \Delta x) = \sin 0 = 0$ + - relativní změna na vstupu: $\displaystyle\frac{\Vert \Delta x\Vert}{\Vert \overline{x}\Vert} = \frac{0.01}{0.01} = 1$ + - relativní změna na výstupu: $\displaystyle\frac{\Vert \Delta y\Vert}{\Vert y\Vert} = \frac{0.0099998}{0.0099998} = 1$ + - $\displaystyle C_{p} = \frac{1}{1} = 1$ - velmi dobře podmíněná úloha + +Obecně +- úloha má tvar $y = f(x)$ +- z věty o stř. hodnotě: $\vert \Delta y\vert \approx \vert f'(x)\vert \cdot \vert \Delta x\vert$ +- dosadíme: $\displaystyle\left|\frac{\Delta y}{y}\right| \approx \left| \frac{f'(x)\cdot|\Delta x|}{f(x)}\right|$ +- rozšíříme $\displaystyle\cdot \left|\frac{x}{x}\right|$: $\displaystyle\left| \frac{\Delta y}{y} \right| \approx \left| \frac{f'(x)\cdot x}{f(x)} \right| \cdot \left| \frac{\Delta x}{x} \right|$ +- $\displaystyle C_{p} = \left| \frac{x\cdot f'(x)}{f(x)} \right|$ \ No newline at end of file diff --git a/KMA NM/Zkouška/02. okruh.md b/KMA NM/Zkouška/02. okruh.md new file mode 100644 index 0000000..e789681 --- /dev/null +++ b/KMA NM/Zkouška/02. okruh.md @@ -0,0 +1,109 @@ +**Řešení nelineárních rovnic a jejich soustav. Metoda prosté iterace, podmínky konvergence, odhad chyby, rychlost konvergence. Newtonova metoda a její konvergence.** + +### Nelineární rovnice + +Formulace problému +- Je dána fce $f: \mathbb{R} \to \mathbb{R}$ na intervalu $\langle a,b \rangle$. Hledáme $x \in \langle a,b\rangle$ takové, aby $f(x) = 0$. +- $x$ ... kořen rovnice + +Metody řešení +- **startovací metody** (vždy konvergují) + - většinou konvergují pomalu (např. zúžení intervalu možného řešení) + - metoda bisekce (půlení intervalu) + - metoda regula falsi + - metoda prosté iterace +- **zpřesňující metody** + - většinou fungují rychle, ale špatně (musíme být s počáteční hodnotou velmi blízko) + - Newtonova metoda + - metoda sečen +- **speciální metody** + +**Věta (o existenci řešení)** +- Předpokládejme, že: + 1. reálná fce $f$ je spojitá pro $x \in \langle a,b\rangle$ + 2. $f(a) \cdot f(b) < 0 \implies \exists$ alespoň jedno řešení $x$ rovnice $f(x) = 0$ na $\langle a,b\rangle$ + +### Metoda prosté iterace (MPI) + +Princip +- původní rovnici $f(x) = 0$ přepíšeme na tvar $x = \varphi(x)$ +- to můžeme udělat spoustou způsobů + - na volbě $\varphi$ závisí konvergence a její rychlost + +Algoritmus +1. zvolíme $x_{0} \in \langle a,b\rangle$ a $\epsilon > 0$ +2. $x_{k+1} = \varphi(x_{k})$ +3. zastavovací podmínka: $|x_{k+1}-x_{k}| < \epsilon$, pak $x = x_{k+1}$ + - vzdálenost dvou po sobě jdoucích iterací + - neříká nic o tom, jak jsme daleko od kořenu + +Volba $\varphi(x)$ +- závisí na ní konvergence a rychlost metody +- je vhodné, aby se fce $\varphi(x)$ co nejvíce blížila konstantní funkci + - rada: začít s největší možnou odmocninou + - u polynomu to bude fungovat vždy, u jiných fcí dobrá rada + +**Postačující podmínky konvergence MPI** +- Předpokládejme, že fce $\varphi$ je na intervalu $I = \langle a,b\rangle$ spojitá a platí: + 1. $\forall x \in I : \varphi(x) \in I$ ... fce $\varphi$ zobrazuje $I$ do sebe + 2. $\exists \, q \in (0,1) : |\varphi(x)-\varphi(y)| \leq q|x-y| \quad \forall x,y \in I$ ... fce $\varphi$ je kontrakce + - tím si zajistíme, že každý další dílek je menší než ten předchozí + - 2 po sobě jdoucí iterace jsou si k sobě čím dál blíž a blíž +- $\implies$ + 1. v intervalu $I$ existuje právě jeden kořen $\alpha$ rovnice $x = \varphi(x)$ + 2. posloupnost $\{x_{k}\}^\infty_{k=1}$ určená formulí $x_{k} = \varphi(x_{k-1})$ konverguje pro každé $x_{0} \in I$ a $\lim_{ k \to \infty } x_{k} = \alpha$ (konverguje k přesnému řešení) +- pozn: pokud by nebyla fce spojitá, vůbec by nemusela projít skrz $y = x$ + +**Odhad chyby MPI** +- chyba = vzdálenost mezi přesným a získaným řešením ... $|x_{k} - \alpha|$ +- $\displaystyle|x_{k}-\alpha| < \frac{q}{1-q}\epsilon$ + - $|x_{k} - x_{k-1}| = \epsilon$ + - kvůli absolutní hodnotě nevíme z jaké strany od přesného řešení jsme +- čím menší $q$, tím menší bude chyba +- chceme, aby chyba byla rovna zastavovací podmínce nebo menší + +**Rychlost konvergence** +- Posloupnost $x_{k}$ konverguje k číslu $\alpha$ rychlostí $r$, jestliže pro $k\to \infty$: + - $|x_{k+1}-\alpha| = c|x_{k}-\alpha|^r+O(|x_{k}-\alpha|^{r+1})$ +- pokud + - $\varphi(\alpha) \neq 0 \implies$ rychlost konvergence je řádu 1 + - $\varphi(\alpha) = 0$ a $\varphi''(\alpha) \neq 0 \implies$ rychlost konvergence je řádu 2 + +### Newtonova metoda + +Předpoklady +- v intervalu $I = \langle a,b\rangle$ leží právě 1 jednoduchý kořen $\hat{x}$ rovnice $f(x) = 0$ +- máme zadáno $x_{0} \in I$ (relativně blízko hledanému řešení - zpřesňující metoda) +- existuje příslušná derivace funkce $f$ + +Princip +- uděláme Taylorův rozvoj fce $f$ v $x_{0}$ + - $f(x) = f(x_{0}) + f'(x_{0})\cdot(x-x_{0}) + f''(\xi)$ +- dosadíme do $f(x) = 0$ + - $f(x_{0}) + f'(x_{0})\cdot(x-x_{0}) = 0$ + - $(x-x_{0})$ - předpis pro tečnu +- vyjádříme $x$ + - $\displaystyle x_{1} = x_{0} - \frac{f(x_{0})}{f'(x_{0})}$ + - $\displaystyle x_{k+1} = k_{k} - \frac{f(x_{k})}{f'(x_{k})}$ ... iterační formule + +Zastavovací podmínka +- vzdálenost 2 po sobě jdoucích iterací (na ose x) + - $|x_{k+1}-x_{k}| < \epsilon$ +- velikost funkční hodnoty (na ose y) + - $|f(x_{k})| < \delta$ + +Geometrický význam (metoda tečen) +- křivky $y = f(x)$ nahradíme tečnou procházející bodem $x_{k}$ +- hodnota $x_{k+1}$ - průsečík tečny s osou $x$ + +**Postačující podmínka konvergence** +- $f'(x) \neq 0$ +- $f''$ nemění znaménko v $I = \langle a,b\rangle$ +- $f(a)\cdot f(b) < 0$ +- $\displaystyle\left| \frac{f(a)}{f'(a)} \right| < b-a, \left| \frac{f(b)}{f'(b)} \right| < b-a$ +- $\implies$ Newtonova metoda konverguje, pokud $\forall \, x_{0} \in I$ + +Rychlost konvergence +- $\displaystyle\varphi(x) = x - \frac{f(x)}{f'(x)}$ +- rychlost konvergence závisí na $\varphi'(\alpha)$ resp. $\varphi''(\alpha)$ +- platí $\varphi'(\alpha) = 0$ a obecně $\varphi''(\alpha) \neq 0 \implies$ rychlost konvergence je řádu 2 \ No newline at end of file