FAV-ZCU/KMA NM/Zkouška/06. okruh.md

89 lines
3.8 KiB
Markdown
Raw Blame History

This file contains invisible Unicode characters

This file contains invisible Unicode characters that are indistinguishable to humans but may be processed differently by a computer. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

**Numerické metody pro řešení úloh na vlastní čísla. ƒČástečný problém a úplný problém. Mocninná metoda a metoda Rayleighova podílu. Ortogonální transformace. Singulární rozklad matice. Využití pro rešení obecných soustav lineárních algebraických rovnic.**
### Vlastní čísla
Je dána čtvercová matice $A$ řádu $n$. Vlastní vektor $v$ je nenulový vektor, pro který platí $Av = \lambda v$. Číslo $\lambda$ se nazývá vlastním číslem matice $A$.
- $Av = \lambda x$
- $\lambda$ ... vlastní číslo
- $x$ ... vlastní vektor (nenulový)
- charakteristická rovnice ... $\det(A - \lambda I) = 0$
- kořeny jsou vlastní čísla
- spektrální matice ... $A = \text{diag}(\lambda_{1}, \lambda_{2}, \dots, \lambda_{n})$
Typy problémů
- **úplný problém**: úlohou je najít všechna vlastní čísla
- **částečný problém**: úlohou je najít pouze některá vlastní čísla (obvykle s největší absolutní hodnotou)
### Mocninná metoda
Řeší částečný problém - vlastní číslo matice $A$ s největší absolutní hodnotou.
**Předpoklady**
- matice $A$ má $n$ LN vlastních vektorů
- existuje právě jedno dominantní vlastní číslo
- vlastní čísla lze seřadit: $|\lambda_{1}| > |\lambda_{2}| \geq |\lambda_{3}| \geq \dots \geq |\lambda_{n}|$
**Algoritmus**
- **vstup**: čtvercová matice $A$ a sloupcový vektor $y^{(0)}$ (např. samé jedničky)
- **zastavovací podmínka**: $|\lambda^{(k+1)} - \lambda^{(k)}| < \epsilon$
1. pomocí iterační formule $y^{(k+1)} = A\cdot y^{(k)}$ počítáme další $y^{(k+1)}$ pro $k = 0, 1, \dots$
2. z vektoru $y^{(k+1)}$ vybereme index $i$, kde je absolutní hodnota $|y^{(k+1)}_{i}|$ největší
3. vypočítáme přibližné vl. číslo $\displaystyle\lambda^{(k+1)} = \frac{y^{(k+1)}_{i}}{y^{(k)}_{i}}$
- použijeme hodnoty na $i$-tém indexu v aktuálním a předchozím vektoru $y$
4. opakujeme, pokud neplatí zastavovací podmínka
**Poznámky**
- kvůli přetečení/podtečení je vhodné vektor $y^{(k+1)}$ v každém kroku normovat
- $\displaystyle y^{(k)} = \frac{y^{(k)}}{\Vert y^{(k)}\Vert}$
### Metoda Rayleighova podílu
Tato metoda je velice podobná mocninné metodě, ale pro výpočet lambdy použijeme **jiný vzorec** níže.
$\displaystyle\lambda_{k} = \frac{y^{(k-1)^T} \cdot y^{(k)}}{y^{(k-1)^T} \cdot y^{(k-1)}}$
**Předpoklady**
- stejné jako u mocninné metody
- **navíc**: matice $A$ je **blízce symetrická** (hodnoty jsou téměř symetrické)
- vlastní vektory jsou díky tomu ortonormální
- $v_{i}^Tv_{j} = 0; \quad i\neq j$
- $v_{i}^Tv_{i} = 1$
**Poznámky**
- konverguje k nule zhruba dvakrát rychleji
### Ortogonální transformace
**Podobnost matic**
- matice $A$ a $B$ jsou si podobné, pokud existuje matice $P$, pro kterou platí $P^{-1}AP = B$ nebo $A = PBP^{-1}$
- podobné matice mají **stejná vlastní čísla**
**Princip**
- využijeme podobnosti matic
- konstruujeme posloupnost vzájemně podobných matic, která konverguje k matici, jejíž vlastní čísla se dají snadno určit
- posloupnost vzájemně podobných matic: $A_{k+1} = Q_{k}^TA_{k}Q_{k}, \quad k = 0,1,2,\dots$
**Metoda QU-rozkladu**
- používáme pro obecnou matici
- $A = QU$
- $Q$ ... ortogonální matice - $QQ^T = I$, tedy $Q^T = Q^{-1}$
- $U$ ... horní trojúhelníková matice
- $B = UQ$
Příkladem ortogonální matice je matice rovinné rotace o úhel $\alpha$.
- pro dostatečně velké $k$ je $A^k$ horní trojúhelníková matice
$$
\begin{bmatrix}
\cos \alpha & -\sin \alpha \\
\sin \alpha & \cos \alpha
\end{bmatrix}
$$
**Metoda Jacobiovy diagonalizace**
- používáme, když $A$ je reálná symetrická matice
- poté existuje ortogonální matice $Q$ taková, že platí $Q^TAQ = A$
- $A$ ... spektrální matice = matice s vlastními čísly na diagonále
- **postupné nulování** prvků mimo diagonálu (iteračně konvergují k nulám)