Zdrojový kód
% \wikiskriptum{NME01}
\section{Chyby}
\begin{itemize}
\item zdroje chyb:
\begin{enumerate}
\item \underline{chyby vstupních dat} = chyby měření, chyby modelu\ldots
\item \underline{chyby metody} = chyba v důsledku převodu matematické úlohy na numerickou
\item \underline{zaokrouhlovací} = při výpočtech s čísly konečné délky a jejich zaokrouhlením
\end{enumerate}
\item nechť \( x= \)(přesná hodnota), \( \tilde{x}= \)(přibližná hodnota), definujeme:
\begin{itemize}
\item \underline{absolutní chyba} \( \boxed{A(x) = |\tilde{x} - x| \le a(x)} \) \ldots odhad absolutní chyby
\item \underline{relativní chyba} \( \boxed{R(x) = \frac{A(x)}{|x|} \le r(x)} \) \ldots odhad relativní chyby \hspace{5 em} \( \boxed{r(x)\cong \frac{a(x)}{|\tilde{x}|}} \)
\item hodnoty \( x \) pak přibližně určíme jako \( \boxed{x = \tilde{x} \pm a(x) = \tilde{x}(1 \pm r(x))} \)\\
\underline{pozn.:}
\begin{itemize}
\item v praxi hlavně relativní chyba a vždy bereme nejhorší "scénář"
\item relativní chyba \( \rightarrow \) počet platných číslic
\end{itemize}
\end{itemize}
\item \underline{šíření chyb ve výpočtech}:
\begin{itemize}
\item některé operace mohou výrazně zvýšit relativní chybu
\item \underline{sčítání a odečítání}: \( a(x\pm y) = a(x) + a(y) \implies r(x\pm y) = \frac{a(x) + a(y)}{|x\pm y|} \)
\begin{itemize}
\item pokud \( |x \pm y| \) je velmi malý \( \implies \) silně roste relativní chyba \( r \) !
\item snažíme se vyhnout odečítání dvou blízkých čísel
\end{itemize}
\item [\underline{př.:}] čísla \( \tunderbrace{1,32483726}_{x\coloneqq} \) a \( \tunderbrace{ 1,32483357 }_{y\coloneqq} \rightarrow x-y = 0,00000369 \rightarrow \) přesnost na 3 cifry
\item \underline{násobení a dělení:}
\begin{itemize}
\item \( a(x\cdot y ) = a(x)\cdot |y| + a(y)\cdot |x| \rightarrow r(x\cdot y)=\frac{a(x\cdot y)}{|x\cdot y|} = \frac{a(x)\cdot |y|}{|x|\cdot |y|}+ \frac{a(y)\cdot|x|}{|x|\cdot|y|} = r(x) + r(y) \)
\item \( a(\frac{x}{y}) = \frac{a(x)}{|y|} + |\frac{\tilde{x}}{y}-\frac{\tilde{x}}{\tilde{y}}|\le \frac{a(x)}{|y|} + \frac{|x|a(y)}{|y|^2} = \frac{a(x)|y| + |x|a(y)}{|x|\cdot|y|} \rightarrow r(\frac{x}{y}) = r(x)+r(y) \)
\item \underline{násobení a dělení nezvyšují} podstatně chybu!
\end{itemize}
\item \underline{kvadratická rovnice} \( a x^2+bx+c=0 \) : \( x_{1,2}=\frac{-b\pm\sqrt{b^2-4ac}}{2a}\leftarrow \) pokud \( (b^2 \gg ac) \land (b > 0) \implies x_1 = \tunderbrace{\frac{-b+\tilde{b}}{2a}}_{\text{\underline{problém!}}} \)
\vspace{-2 em}
\begin{itemize}
\item pro \( b<0 \) pak získáme lepší výsledky z \( \boxed{x_1 = \frac{-b+\sqrt{b^2-4ac}}{2a},x_2=\frac{c}{a\cdot x_1}} \)
\end{itemize}
\item \underline{chyby metody:}
\begin{itemize}
\item souvisí s převedením matematické úlohy do numerické - např. nekonečně malou délku kroku \( \textnormal{d}h \) \\ \underline{nahradíme konečným krokem \( h \) }
\item nijak \underline{nesouvisí se zaokrouhlováním}
\item \underline{řád metody}: je-li chyba \( \delta x \) veličiny \( x \) úměrná \( \delta x \sim h^{\alpha} \sim \mathcal{O}(h^{\alpha}) \implies \) \underline{číslo \( \alpha \) nazýváme řádem metody}
\item k odvození řádu metody užíváme \underline{Taylorův rozvoj}
\item [\underline{např.:}] \[ f'(x) \cong \frac{f(x+h)-f(x)}{h} = \frac{1}{h} [f(x) + f'(x)\cdot h + f''(x) \frac{h^2}{2} - f(x)] = f'(x) + \text{\stackengine{\stackgap}{\( \underbrace{\frac{f''(x)}{2}\cdot h} \)}{\scriptsize\( \delta x \rightarrow \) \underline{metoda 1. řádu}}{U}{c}{F}{T}{S}}\]
\end{itemize}
\vspace{-1em}
\item \underline{korektnost úlohy:}
\begin{itemize}
\item úloha je \underline{korektní} \( \Leftrightarrow \) \underline{pro libovolné \( \vec{x} \) existuje} právě jedno \underline{řešení \( \vec{y} \)} \( \land \) řešení "spojitě"\ závisí na vstupních datech
\begin{itemize}
\item nechť pro posloupnost \( \vec{x}_n \exists \vec{y}_n , \forall n \in \N \), nechť \( \sigma , \rho \) jsou normy \( \implies \vec{x}_n \to^\sigma \vec{x} \land \vec{y}_n \to^\rho \vec{y} \) a pro \( \vec{x}_n \exists_1 \vec{y}_n \Leftarrow \) spojitá závislost řešení na na vstupních datech
\item [\underline{pozn.:}] v praxi má smysl řešit i nekorektní úlohu a poté korektně vybrat řešení
\end{itemize}
\item \underline{podmíněnost úlohy:} \( C_p \)
\begin{itemize}
\item[=]určuje, za jakých podmínek vzhledem k vstupním datům ještě dostaneme vypovídající výsledek \( \rightarrow C_p \) udává poměr mezi relativní změnou výsledku ku relativní změně dat(vstupních), tj.
\[
C_p = \frac{\frac{\|\delta \vec{y}\|}{\|\vec{y}\|}}{\frac{\|\delta \vec{x}\|}{\|\vec{x}\|}} \cong \frac{r(y)}{r(x)}
\]
\vspace{-5 em}
\item \( C_p \sim 1 \)\ldots úloha je dobře podmíněná\\
\( C_p > 100 \)\ldots úloha je špatně podmíněná
\item podmíněnost \underline{neznamená} chybu metody!
\item [\underline{př.:}] soustava lineárních rovnic s \underline{maticí blízkou singulární} je \underline{špatně podmíněná}
\[
\begin{aligned}
\left.\begin{aligned} x + \alpha y =& 1 \\ \alpha x + y =& 0 \end{aligned} \right\} \,\rightarrow & \text{ řešením dostaneme } x = \frac{1}{1 - \alpha^2}\,\text{, vstup je hodnota } \alpha \text{ a výstup } x \\ & \implies C_p = \frac{\frac{\|\delta x\|}{\|x\|}}{\frac{\|\delta \alpha\|}{\|\alpha\|}} = \left\| \frac{\alpha}{x} \cdot \frac{\delta x }{\delta \alpha}\right\| \cong \left\| \frac{\alpha}{x}\cdot \frac{\textnormal{d}x}{\textnormal{d}\alpha}\right\| = \left| \frac{\alpha}{\frac{1}{1-\alpha^2}}\cdot \frac{2\alpha}{(1-\alpha^2)^2}\right| = \frac{2\alpha^2}{|1-\alpha^2|}\\
& \rightarrow \text{\scriptsize závěr: pro \( \alpha^2 \to 1 \) je úloha špatně podmíněná!}
\end{aligned}
\]
\end{itemize}
\end{itemize}
\vspace{-1em}
\item \underline{stabilita metody:}
\begin{itemize}
\item u některých metod se chyby při vyšších iteracích znásobí \\
\( \implies \) ztráta přesnosti a výsledek k ničemu
\item vzniká v důsledku zaokrouhlovacích chyb nebo chyb metody
\item typicky nestabilní úlohy:
\begin{itemize}
\item \underline{rekurzivní algoritmy} (počítání mocnin zlatého řezu \( \Phi^{n+1} = \Phi^{n-1} - \Phi^{n} \))
\item \underline{výpočet ODR} - např. Eulerova metoda po chvíli "ustřelí"
\end{itemize}
\item při volbě metody je třeba dbát na několik faktorů:
\begin{itemize}
\item řešení s \underline{požadovanou přesností} \( \rightarrow \) sledujeme pro velikost kroku \( h \) \underline{konvergenci} k reálné hodnotě
\item \underline{složitost algoritmu} - počet operací \( N \), úměra složitosti \( \sim N^k \)
\item \underline{paměťové nároky}
\end{itemize}
\end{itemize}
\end{itemize}
\end{itemize}