Differences
This shows you the differences between two versions of the page.
Both sides previous revisionPrevious revisionNext revision | Previous revision | ||
statnice:bakalar:b4b01num [2025/06/07 12:37] – mistrjirka | statnice:bakalar:b4b01num [2025/06/07 13:38] (current) – [Numerická integrace] mistrjirka | ||
---|---|---|---|
Line 142: | Line 142: | ||
===== Numerické metody řešení nelineárních rovnic ===== | ===== Numerické metody řešení nelineárních rovnic ===== | ||
- | ===== Numerické metody řešení nelineární rovnice ===== | + | |
**Numerické metody řešení rovnice $f(x) = 0$** slouží k nalezení kořenů, kdy analytické řešení není možné. Předpokladem je separace kořenů – nalezení intervalu $\langle a, b \rangle$ s $f(a) \cdot f(b) < 0$ a jediným kořenem. Metody se liší rychlostí konvergence, | **Numerické metody řešení rovnice $f(x) = 0$** slouží k nalezení kořenů, kdy analytické řešení není možné. Předpokladem je separace kořenů – nalezení intervalu $\langle a, b \rangle$ s $f(a) \cdot f(b) < 0$ a jediným kořenem. Metody se liší rychlostí konvergence, | ||
Line 181: | Line 181: | ||
\usetikzlibrary{automata, | \usetikzlibrary{automata, | ||
\begin{document} | \begin{document} | ||
+ | \begin{tikzpicture}[thick, | ||
+ | % Axes | ||
+ | \draw[-> | ||
+ | \draw[-> | ||
- | \begin{tikzpicture}[scale=1.0] | + | % Function |
- | \draw[-> | + | \draw[domain=0.5: |
- | \draw[blue, | + | plot ({\x},{0.1*(\x-3)^3 + 0.5}); |
- | \draw[red,dashed] (1,0) node[below] {$a_0$} -- (1,0.5); | + | |
- | \draw[red,dashed] | + | % Endpoints a=1, b=4 |
- | \draw[green!60!black, | + | \foreach \X/\lbl in {1/ |
- | \draw[red,dashed] (1.875,0) node[below] {$a_1$} -- (1.875, | + | |
- | \draw[red, | + | |
+ | \fill (\X,{0.1*(\X-3)^3+0.5}) circle | ||
+ | } | ||
+ | |||
+ | % Midpoint c = (a+b)/2 = 2.5 | ||
+ | \coordinate (C) at (2.5,{0.1*(2.5-3)^3+0.5}); | ||
+ | \draw[dashed] (2.5,0) node[below] {$c$} -- (C); | ||
+ | \fill (C) circle | ||
\end{tikzpicture} | \end{tikzpicture} | ||
Line 207: | Line 218: | ||
**Visualizace**: | **Visualizace**: | ||
- | < | + | {{:statnice: |
- | \usepackage{amsmath} | + | |
- | \usepackage{pgfplots} | + | |
- | \usetikzlibrary{automata, | + | |
- | \begin{document} | + | |
- | + | ||
- | \begin{tikzpicture}[scale=1.0] | + | |
- | \draw[-> | + | |
- | \draw[blue, | + | |
- | \draw[red, | + | |
- | \draw[orange, | + | |
- | \draw[red, | + | |
- | \draw[green!60!black, | + | |
- | \draw[red, | + | |
- | \end{tikzpicture} | + | |
- | + | ||
- | \end{document} | + | |
- | </ | + | |
Line 238: | Line 232: | ||
**Visualizace**: | **Visualizace**: | ||
- | < | + | {{: |
- | \usepackage{amsmath} | + | |
- | \usepackage{pgfplots} | + | |
- | \usetikzlibrary{automata, | + | |
- | \begin{document} | + | |
- | \begin{tikzpicture}[scale=1.0] | ||
- | \draw[-> | ||
- | \draw[blue, | ||
- | \draw[red, | ||
- | \draw[red, | ||
- | \draw[orange, | ||
- | \draw[red, | ||
- | \draw[green!60!black, | ||
- | \draw[red, | ||
- | \end{tikzpicture} | ||
- | |||
- | \end{document} | ||
- | </ | ||
Line 269: | Line 246: | ||
**Konvergence**: | **Konvergence**: | ||
**Visualizace**: | **Visualizace**: | ||
- | |||
- | < | ||
- | \usepackage{amsmath} | ||
- | \usepackage{pgfplots} | ||
- | \usetikzlibrary{automata, | ||
- | \begin{document} | ||
- | |||
- | \begin{tikzpicture}[scale=1.0] | ||
- | \draw[-> | ||
- | \draw[blue, | ||
- | \draw[red, | ||
- | \draw[red, | ||
- | \draw[orange, | ||
- | \draw[red, | ||
- | \draw[green!60!black, | ||
- | \draw[green!60!black, | ||
- | \draw[red, | ||
- | \end{tikzpicture} | ||
- | |||
- | \end{document} | ||
- | </ | ||
+ | {{: | ||
==== 5. Metoda prosté iterace ==== | ==== 5. Metoda prosté iterace ==== | ||
Line 302: | Line 259: | ||
**Konvergence**: | **Konvergence**: | ||
**Visualizace** (Cobweb diagram): | **Visualizace** (Cobweb diagram): | ||
- | |||
- | < | ||
- | \usepackage{amsmath} | ||
- | \usepackage{pgfplots} | ||
- | \usetikzlibrary{automata, | ||
- | \begin{document} | ||
- | |||
- | \begin{tikzpicture}[scale=1.0] | ||
- | \draw[-> | ||
- | \draw[-> | ||
- | \draw[blue, | ||
- | \draw[gray, | ||
- | \draw[red, | ||
- | \draw[red, | ||
- | \draw[red, | ||
- | \draw[red, | ||
- | \draw[red, | ||
- | \draw[fill=magenta] (2,2) circle (2pt) node[above] {Pevný bod}; | ||
- | \end{tikzpicture} | ||
- | |||
- | \end{document} | ||
- | </ | ||
- | |||
+ | {{: | ||
==== Problematika separace kořenů ==== | ==== Problematika separace kořenů ==== | ||
Line 342: | Line 277: | ||
* Nespojitosti, | * Nespojitosti, | ||
- | ===== Numerické řešení soustav lineárních rovnic | + | ==== Numerické řešení soustav lineárních rovnic ==== |
- | **Numerické | + | **Metody pro řešení soustav lineárních rovnic |
- | ==== 1. Finitní (přímé) metody | + | === Přímé |
- | | + | Poskytují teoreticky přesné řešení v konečném počtu kroků: 1. **Gaussova eliminace**:\\ |
+ | - Převádí matici $A$ na **horní trojúhelníkový tvar** pomocí ekvivalentních úprav.\\ | ||
+ | - **Algoritmus**:\\ | ||
+ | - Pro $k = 1$ až $n-1$:\\ | ||
+ | $a^{(k)}_{i,j} = a^{(k-1)}_{i,j} - \frac{a^{(k-1)}_{i, | ||
+ | - **Zpětná substituce**: | ||
+ | $x_i = \frac{1}{a^{(i-1)}_{i, | ||
+ | - Výběr hlavního prvku redukuje zaokrouhlovací chyby. | ||
- | * **Výhody**: | + | |
- | * Pro malé a střední matice | + | * Rozklad $A = LU$ na **dolní ($L$)** |
- | * Přesné řešení (do chyby zaokrouhlení) v konečném počtu kroků.\\ | + | * Řeší se dvě soustavy: |
+ | * $L\vec{y} = \vec{b}$ | ||
- | | + | |
- | * **Výpočetní náročnost**: | + | |
- | + | ||
- | * **Numerická nestabilita**: | + | |
- | * **Paměťové nároky**: Ukládání celé matice (i pro řídké matice).\\ | + | * Efektivní |
- | * **Pivotace**: | + | === Iterační metody === |
- | * **Příklady z materiálů**: | + | |
- | * **Normální rovnice** pro řešení přeurčených soustav (např. nejmenší čtverce): $A^T A x = A^T b$.\\ | + | |
- | | + | Generují posloupnost aproximací $\vec{x}^{(k)} \to \vec{x}$: 1. **Jacobiho metoda (JIM)**:\\ |
+ | - Rozklad $A = D + L + U$ ($D$ diagonální, | ||
+ | - **Iterační vzorec**:\\ | ||
+ | $\vec{x}^{(k+1)} | ||
+ | - Jednoduchá implementace, | ||
- | ==== 2. Iterační metody ==== | + | - **Gaussova-Seidelova metoda (GSM)**: |
+ | * Využívá již aktualizované hodnoty v aktuální iteraci: | ||
+ | $\vec{x}^{(k+1)} | ||
- | | + | |
+ | - **Superrelaxační metoda (SOR)**: | ||
+ | * Zavádí relaxační parametr $\omega$ pro urychlení konvergence: | ||
+ | $\vec{x}^{(k+1)} = (D + \omega L)^{-1} \left[ | ||
- | | + | |
- | * Efektivní pro **velké řídké matice** (např. $n > 10^4$), protože využívají jen operace s nenulovými prvky.\\ | + | |
- | * Nižší paměťové nároky (neukládá se celá matice, jen její struktura).\\ | + | === Problémy a kritéria volby metod === |
* **Problémy**: | * **Problémy**: | ||
- | * **Konvergence** není zaručena: Závisí na vlastnostech matice (např. diagonální dominance, pozitivní definitnost).\\ | + | * **Špatná podmíněnost**: Malé změny v $A$ nebo $\vec{b}$ vedou k velkým změnám |
- | * **Pomalá konvergence** bez předpodmínky (preconditioner).\\ | + | * **Zaokrouhlovací chyby**: Akumulují se v přímých metodách, zejména bez výběru hlavního prvku \\ |
- | * **Citlivost na volbu počátečního odhadu**. | + | * **Konvergence iterací**: Zajištěna pouze pokud $\rho(B) < 1$ (spektrální poloměr iterační matice) |
- | * **Příklady z materiálů**: | + | |
- | * **Nejmenší čtverce** pro přeurčené soustavy: Minimalizace | + | |
- | * **Pseudoinverze** pro matice bez plné hodnosti (např. SVD rozklad). | + | * **Řídké matice**: Přímé metody ztrácejí na efektivitě kvůli “zaplnění” (fill-in), iterační metody ji zachovávají |
+ | * **Volba metody**: | ||
- | ==== 3. Porovnání a výběr metody ==== | + | ^**Parametr** |
+ | |**Velikost matice** | ||
+ | |**Struktura matice** | ||
+ | |**Přesnost** | ||
+ | |**Vícenásobná $\vec{b}$**|Efektivní (jednorázový rozklad)|Výhodné s dobrým počátečním odhadem | ||
+ | |**Paměťová náročnost** | ||
- | ^**Kritérium** | + | === Odhady chyb a optimalizace === |
- | |**Rozměr matice** | + | |
- | |**Dostupnost paměti**|Vyžadují větší paměť | + | |
- | |**Přesnost** | + | |
- | |**Použití** | + | |
- | ==== 4. Typické problémy v numerice ==== | + | * **Reziduální odhad**: $\vec{r} |
- | * **Špatně podmíněné matice**: Malá nebo nulová determinant, | + | * **Složitost**: |
+ | * Přímé metody: $O(n^3)$ pro GEM, $O(n^2)$ pro zpětný chod.\\ | ||
- | * **Numerická nestabilita**: Např. v Gaussově eliminaci bez pivotace.\\ | + | |
- | * **Chyby zaokrouhlení**: | ||
- | * **Řídké matice**: Iterační metody výrazně převyšují přímé metody. | + | ===== Numerická integrace ===== |
- | ==== 5. Ukázkové | + | **Numerická integrace slouží k přibližnému výpočtu určitého integrálu, když analytické řešení není možné. Zahrnuje diskretizaci intervalu, výpočet ploch pod křivkou pomocí jednoduchých geometrických tvarů a řízení chyb.** |
- | * **Přeurčená soustava** $Ax = b$: Řešeno metodou nejmenších čtverců pomocí normálních rovnic nebo QR.\\ | + | ==== Metody numerické integrace ==== |
- | * **Příklad řídké matice**: Iterační metoda (např. CG) pro řešení $Ax = b$, kde $A$ má jen $O(n)$ nenulových prvků. | + | |
+ | | ||
- | ==== 6. Závěr ==== | + | * **Matematicky: |
+ | $$ | ||
+ | I_L = h \sum_{i=0}^{n-1} f(x_i), \quad x_i = a + i \cdot h. | ||
+ | $$\\ | ||
- | | + | |
+ | - **Metoda středních obdélníků** | ||
+ | * **Myšlenka:** Funkce se aproximuje hodnotou ve **středu** každého podintervalu.\\ | ||
- | | + | |
- | + | ||
- | * Výběr závisí na rozměru matice, její struktuře a požadované přesnosti. | + | |
- | ===== Numerická integrace ===== | + | |
- | + | ||
- | **Numerická integrace - princip, možné problémy, volba metody, problematika odhadu chyb.** | + | |
- | + | ||
- | ==== Princip numerické integrace ==== | + | |
- | + | ||
- | Numerická integrace je postup přibližného výpočtu **definitního integrálu**\\ | + | |
$$ | $$ | ||
- | \int_{a}^{b} f(x) \, dx | + | I_S = h \sum_{i=0}^{n-1} f\left(x_i + \frac{h}{2}\right). |
$$\\ | $$\\ | ||
- | pro případy, kdy analytická řešení (primitivní funkce) nelze získat nebo je výpočet složitý. Základní přístup spočívá v **discretizaci** intervalu $[a, b]$ a aproximaci integrálu pomocí **polynomů**, | ||
- | ==== Hlavní | + | * **Řád |
+ | - **Lichoběžníková metoda (Trapezoid)** | ||
+ | * **Myšlenka: | ||
- | === 1. Obdélníková metoda (Rectangle Rule) === | + | |
- | + | ||
- | | + | |
- | + | ||
- | * **Formule**: | + | |
$$ | $$ | ||
- | \int_{a}^{b} f(x) \, dx \approx \frac{b - a}{n} \sum_{i=1}^{n} f(x_i) | + | I_T = \frac{h}{2} \left[ |
$$\\ | $$\\ | ||
- | kde $x_i$ je bod v $i$-tém podintervalu (např. střed = **střední metoda**).\\ | ||
- | | + | |
+ | - **Simpsonova metoda** | ||
+ | * **Myšlenka: | ||
- | | + | |
- | + | ||
- | * **Nevýhody**: | + | |
- | + | ||
- | === 2. Lichoběžníková metoda (Trapezoidal Rule) === | + | |
- | + | ||
- | * **Princip**: | + | |
- | + | ||
- | | + | |
$$ | $$ | ||
- | \int_{a}^{b} f(x) \, dx \approx \frac{h}{2} \left[ | + | I_S = \frac{h}{3} \left[ |
$$\\ | $$\\ | ||
- | | + | |
- | + | | |
- | * **Výhody**: Lépe přesná než obdélníková, | + | * **Myšlenka:** Volí **optimální body a váhy** v intervalu $[-1, 1]$ pro maximální přesnost. Transformuje se na $[a, b]$.\\ |
- | + | ||
- | | + | |
- | + | ||
- | === 3. Simpsonova metoda (Simpson’s Rule) === | + | |
- | + | ||
- | | + | |
- | | + | |
$$ | $$ | ||
- | \int_{a}^{b} f(x) \, dx \approx \frac{h}{3} \left[ f(a) + 4\sum_{i=1}^{n/2} f(x_{2i-1}) + 2\sum_{i=1}^{(n/2)-1} f(x_{2i}) + f(b) \right] | + | I_G = \frac{b-a}{2} \sum_{i=1}^n |
$$\\ | $$\\ | ||
- | (vyžaduje sudé $n$).\\ | + | kde $t_i$ jsou kořeny Legendreových polynomů, $w_i$ odpovídající váhy.\\ |
- | | + | |
- | + | ||
- | * **Výhody**: | + | |
- | + | ||
- | * **Nevýhody**: | + | |
=== 4. Newton-Cotesovy vzorce === | === 4. Newton-Cotesovy vzorce === | ||
Line 491: | Line 414: | ||
==== Problémy a optimalizace ==== | ==== Problémy a optimalizace ==== | ||
+ | * **Problémy: | ||
- | === 1. Odhad chyby a kompozitní metody | + | === Metoda polovičního kroku a odhad chyby === |
- | * **Kompozice**: Rozdělení | + | * **Princip:** Integrál |
- | + | ||
- | * **Chyba trapezoidální metody**:\\ | + | |
$$ | $$ | ||
- | E \approx | + | E_h \approx \frac{I_h - I_{h/2}}{2^p - 1}. |
$$\\ | $$\\ | ||
- | * **Chyba Simpsonovy metody**:\\ | + | * **Vylepšení integrálu:**\\ |
- | $$ | + | |
- | E \approx -\frac{(b - a)^5}{180n^4} f^{(4)}(\xi) | + | |
$$ | $$ | ||
+ | I_{\text{lepšené}} = I_{h/2} + \frac{I_{h/ | ||
+ | $$\\ | ||
- | === 2. Richardsonova extrapolace === | + | * **Souvislost s Richardsonovou extrapolací: |
- | Sloučení dvou odhadů s různými kroky $h$ a $h/2$ pro odstranění vedení v chybě.\\ | + | === Řád metody === |
- | - **Příklad**: U trapezoidální | + | |
- | $$ | + | * **Význam: |
- | I(h/2) = I(h) + \frac{E(h)}{4} \Rightarrow \text{vyšší | + | |
- | $$ | + | |
- | === 3. Adaptivní kvadratura === | + | |
+ | ==== Řád chyby ==== | ||
+ | |||
+ | * **Definice: | ||
+ | * **Příklad: | ||
+ | |||
+ | === Adaptivní kvadratura === | ||
Metody jako **Gauss-Kronrod** automaticky rozdělují intervaly podle lokálního chybového odhadu (lepší efektivita pro funkcí s různými charakteristikami). | Metody jako **Gauss-Kronrod** automaticky rozdělují intervaly podle lokálního chybového odhadu (lepší efektivita pro funkcí s různými charakteristikami). | ||
Line 540: | Line 468: | ||
==== Kritéria volby metody ==== | ==== Kritéria volby metody ==== | ||
- | - **Hladkost funkce**: Pro funkce s velkými derivacemi preferovat metody s vysokým řádem (např. Simpsonova).\\ | + | - **Hladkost funkce**: Pro funkce s velkými derivacemi preferovat metody s vysokým řádem (např. Simpsonova). |
- | + | - **Interval délky**: Pro velké intervaly nebo singulární body použít adaptivní metody nebo substituci. | |
- | - **Interval délky**: Pro velké intervaly nebo singulární body použít adaptivní metody nebo substituci.\\ | + | |
- **Výpočetní náročnost**: | - **Výpočetní náročnost**: | ||