14 KiB
title | description |
---|---|
Numerické metody | TODO |
Note
Iterativní metody pro řešení nelineárních rovnic (Newtonova metoda a její modifikace). Přímé metody pro řešení systému lineárních rovnic (Gaussova eliminace, Jacobi, Gauss-Seidel, relaxační metody). Numerická diferenciace, diferenciační schémata.
MA018
-
Numerická analýza / numerical analysis
Oblast matematiky / informatiky zabývající se tvorbou numerických metod a algoritmů, které řeší problémy matematické analýzy (např. derivace, integrály a podobný symbolický balast) pomocí numerické aproximace. 1Je výhodná v situacích, kdy problém nelze řešit analyticky nebo je to příliš složité a není to (výpočetní) čas.
-
Notace chyb
x
je přesná hodnota,\tilde{x}
je aproximacex
,x - \tilde{x}
je absolutní chyba\tilde{x}
,\lvert x - \tilde{x} \rvert \leq \alpha
je odhad absolutní chyby,\frac{x - \tilde{x}}{x}
je relativní chyba,\left\lvert \frac{x - \tilde{x}}{x} \right\rvert \leq \alpha
je odhad relativní chyby.
-
Numerická stabilita
Schopnost numerické metody zpracovat chyby vstupních dat a výpočetních operací.Desetinná čísla jsou v počítačích nevyhnutelně reprezentována nepřesně. Numericky stabilní metody jsou takové, které tyto nepřesnosti nezhoršují. 2
-
Řád metody / order of accuracy / order of approximation
Hodnota reprezentující, jak rychle metoda konverguje k výsledku, resp. jak přesný je její odhad.Numerická metoda obvykle konverguje snižováním nějakého kroku
h
. Pokud ho lze zvolit libovolně malý, a lze-li prohlásit, že pro chybu aproximaceE
platí: 3 4 5\begin{aligned} E(h) &\leq C \cdot h^p \\ E(h) &\in \mathcal{O}(h^p) \end{aligned}
kde
C
je konstanta. Pakp
je řád metody.
Iterativní metody pro řešení nelineárních rovnic
-
Root-finding problem
Problém nalezení kořenů (root) funkcef
. T.j. takových parametrůx, ...
, kde funkce vrací 0: 6f(x, ...) = 0
-
Iterative methods for root-finding problem
Metody pro řešení root-finding problemu, které využívají iterativního přístupu. Tedy opakují nějaký výpočet a zpřesňují svůj odhad, dokud nedosáhnou požadované přesnosti. 7 6 -
Řád metody / rate of convergence
Hodnota reprezentující, jak rychle metoda konverguje k výsledku. 3 -
Prostá iterační metoda / metoda pevného bodu / fixed-point iteration
Používá se pro rovnice typux = g(x)
. -
Newtonova metoda / metoda tečen
Používá k odhadu kořene funkcef
její tečnu v boděx_n
. Iterační funkce je:g(x_{k+1}) = x_k - \frac{f(x_k)}{f'(x_k)}
-
Metoda sečen / secant method
Používá k odhadu kořene funkcef
sečny, resp. finite difference, které aproximují derivaci funkcef
. Díky tomu není potřeba znát derivaci funkcef
. Iterační funkce je:g(x_{k+1}) = x_k - \frac{f(x_k)(x_k - x_{k-1})}{f(x_k) - f(x_{k-1})}
-
Metoda regula falsi
Je bracketing metoda, tedy metoda, která využívá intervalu, ve kterém se nachází kořen. Nemusí se použít iterativně, ale v iterativní podobě tento interval postupně zmenšuje. 8x_{k+1} = x_k - \frac{x_k - x_s}{f(x_k) - f(x_s)} f(x_k)
kde
s
je největší index takový, žef(x_k)f(x_s) < 0
.
Přímé metody pro řešení systému lineárních rovnic
Gaussova eliminace
Systém rovnice je přepsán do matice. Gaussova eliminace je posloupnost operací, jejichž cílem je převést matici do horní trojúhelníkové matice (row echelon form). 9 Povoleny jsou následující operace:
- výměna dvou řádků,
- vynásobení řádku nenulovou konstantou,
- přičtení násobku jednoho řádku k jinému.
Jacobiho iterační metoda
Iterativní algoritmus pro řešení soustavy lineárních rovnic. Rozděluje vstupní matici lineárních rovnic na matici diagonál D
, dolní trojúhelníkovou matici L
a horní trojúhelníkovou matici U
. 10
Nechť A\mathbf{x} = \mathbf{b}
je systém n
lineárních rovnic. Tedy:
A = \begin{bmatrix}
a_{11} & a_{12} & \cdots & a_{1n} \\
a_{21} & a_{22} & \cdots & a_{2n} \\
\vdots & \vdots & \ddots & \vdots \\
a_{n1} & a_{n2} & \cdots & a_{nn}
\end{bmatrix}, \qquad
\mathbf{x} = \begin{bmatrix}
x_{1} \\ x_2 \\ \vdots \\ x_n
\end{bmatrix} , \qquad
\mathbf{b} = \begin{bmatrix}
b_{1} \\ b_2 \\ \vdots \\ b_n
\end{bmatrix}.
Algoritmus vypadá takto:
-
Zvolíme počáteční odhad
\mathbf{x}^{(0)}
, nejčastěji\vec{0}
. -
Nový odhad získáme ze vztahu:
\mathbf{x}^{(k+1)} = D^{-1}(\mathbf{b} - (L + U)\mathbf{x}^{(k)})
Jelikož L + U = A - D
, dá to zapsat i jako:
\mathbf{x}^{(k+1)} = D^{-1}\mathbf{b} + (I - D^{-1} A) \mathbf{x}^{(k)}
-
Spektrální poloměr
Spektrální poloměr\rho
maticeA
je největší absolutní hodnota vlastního čísla maticeA
.\rho(A) = \max_{i=1,\ldots,n} |\lambda_i|
-
(Řádková) diagonální dominance
MaticeA
je diagonálně dominantní, pokud platí:|a_{ii}| > \sum_{j=1, j \neq i}^n |a_{ij}|
Tedy absolutní hodnota prvku na diagonále je větší než součet absolutních hodnot všech ostatních prvků v řádku.
- Striktní: nerovnost je ostrá (
>
). - Slabá: nerovnost je neostá (
\ge
).
Analogicky se definuje sloupcová diagonální dominance.
- Striktní: nerovnost je ostrá (
-
Konvergence Jacobiho metody
Jacobiho metoda konveguje pokud všechny následující podmínky:-
Nechť
T_j = I - D^{-1} A
je matice iterace Jacobiho metody. Pak Jacobiho metoda konverguje, pokud:\rho(T_j) < 1
-
Jacobiho metoda konverguje pro libovolný počáteční odhad
\mathbf{x}^{(0)}
, pokudA
je diagonálně dominantní (sloupcově nebo řádkově).
-
Gaussova-Seidelova iterační metoda
Iterativní metoda pro řešení soustavy lineárních rovnic. Dělí vstupní matici na spodní trojúhelníkovou matici L_*
(včetně diagonály, tedy L_* = D + L
) a striktně horní trojúhelníkovou matici U
(diagonála je nulová). Algoritmus vypadá takto: 11
-
Zvolíme počáteční odhad
\mathbf{x}^{(0)}
. -
Nový odhad získáme ze vztahu:
\mathbf{x}^{(k+1)} = L_*^{-1}(\mathbf{b} - U\mathbf{x}^{(k)}).
Alternativně:
\begin{aligned}
T_{gs} &= (D + L)^{-1} U = L_*^{-1} U \\
\mathbf{x}^{(k+1)} &= T_{gs} \mathbf{x}^{(k)} + g,\quad g = L_*^{-1} \mathbf{b}
\end{aligned}
- Konvergence Gaussovy-Seidelovy metody
Analogicky jako u Jacobiho metody, ale místo maticeT_j
se použije maticeT_{gs} = (D + L)^{-1} U
.
Relaxační iterativní metody
Modifikace Gauss-Seidelovy metody. Využívá parametr \omega
, který určuje, jak moc se má nový odhad lišit od předchozího. Vztah pro další iteraci se mění na: 12
\begin{align*}
\mathbf{x}^{(k+1)} &= (D - \omega L)^{-1} [(1-\omega)D + \omega U]\mathbf{x}^{(k)} + \omega(D - \omega L)^{-1}\mathbf{b} \\
T_\omega &= (D - \omega L)^{-1} [(1-\omega)D + \omega U]
\end{align*}
- Pro
0 < \omega < 1
se názývá metodou dolní relaxace. Je vhodná v případě, kdy Gauss-Seidel nekonverguje. - Pro
\omega = 1
je totožná s Gauss-Seidelem. - Pro
\omega > 1
se názývá metodou horní relaxace / SOR metodou. Zrychluje konvergenci Gauss-Seidela.
Dekompozice matic
Metody podobné Gaussově eliminaci, ale s vlastnostmi, které mohou být vyhodné.
-
LU dekompozice
Rozdělení maticeA
na horní dolní trojúhelníkovou maticiL
a horní trojúhelníkovou maticiU
, tak žeA = LU
.Je to v podstatě Gaussova eliminace. Matice
P
je permutační matice, která prohazuje řádky:P \cdot A = L \cdot U
Platí, že:
\begin{aligned} A \cdot x &= b \\ A &= LU \\ LU \cdot x &= b \end{aligned}
Původní problém řešení soustavy linárních rovnic se tedy převede na dva problémy:
\begin{aligned} y &= U \cdot x \\ L \cdot y &= b \\ \end{aligned}
Řešíme tedy dva systémy rovnic s trojúhelníkovými maticemi.
Oproti Gaussovi je výhodnější pro:
- Opakované řešení soustav s maticí
A
a různými pravými stranamib
. - Inverzi matice
A
. - Výpočet determinantu matice
A
.
- Opakované řešení soustav s maticí
-
QR dekompozice
Rozdělení maticeA
na ortogonální maticiQ
a horní trojúhelníkovou maticiR
(už neU
), tak žeA = QR
.\begin{aligned} A \cdot x &= b \\ A = QR \Rightarrow U \cdot x &= Q^T \cdot b \\ \end{aligned}
Protože je ortogonální a tedy
Q^{-1} = Q^T
.Má lepší numerickou stabilitu než LU dekompozice.
Numerická diferenciace
Algoritmy numerické diferenciace (derivace) počítají odhady derivace reálných funkcí -- aproximují f'(x)
. Využívají při tom známé hodnoty této funkce a jiné znalosti a předpoklady. 13
Numerická diferenciace se využívá pro aproximaci differenciálních rovnic (převodem na diferenční rovnice).
-
Langrangeova interpolace
Pokud známe hodnotyf
můžeme mezi nimi interpolovat pomocí Lagrangeova polynomu a derivovat ten, protože derivovat polynomy je jednoduché.Important
Lagrangeovu interpolaci řeší část otázky Křivky a povrchy.
-
Finite difference method
Rodina metod numerické diferenciace, které využívají konečné diference. Tedy approximují limitu v definici derivace malými posuny ve vstupních hodnotách diferenciovaných funkcí. 14Jednotlivým "odstínům" -- konkrétním výpočetním vzorcům -- téhle metody se říká diferenciační schémata.
Tip
Abych pravdu řekl, nepodařilo se mi najít zdroj pro konkrétní definici pojmu "diferenciační schéma".
-
(Konečné) diference prvního řádu / first-order (finite) differences
Nejjednodušší schéma numerické diferenciace. Vychází z definice derivace. 15-
Dopředná diference / forward (finite) difference
\frac{\partial f}{\partial x} \approx \frac{f(x+h) - f(x)}{h}
-
Zpětná diference / backward (finite) difference
\frac{\partial f}{\partial x} \approx \frac{f(x) - f(x-h)}{h}
-
Centrální diference / central (finite) difference
\frac{\partial f}{\partial x} \approx \frac{f(x+h) - f(x-h)}{2h}
kde
h
je kladné číslo napodobující nekonečně malou změnu (limitu) v definici derivace. Může to být konstanta, může ale být i zvoleno adaptivně.Tip
Tečna je tak napodobena sečnou.
-
-
Richardson extrapolation
Způsob zlepšení rate of convergence iterativních metod. 16