2.1 KiB
2.1 KiB
Vlastní čísla
Částečný problém
Hledáme dominantní vlastní číslo (pouze jedno, s největší absolutní hodnotou).
Mocninná metoda
Vstup: matice A
, sloupcový vektor y^{(0)}
Předpoklady:
- matice
A
má $n$-lineárně nezávislých vlastních vektorů - existuje jediné dominantní vlastní číslo
- vlastní čísla lze seřadit:
|\lambda_{1}| > |\lambda_{2}| \geq |\lambda_{3}| \geq \dots \geq |\lambda_{n}|
Postup:
- pomocí iterační formule
y^{(k+1)} = A\cdot y^{(k)}
počítáme dalšíy^{(k+1)}
(k = 0, 1, \dots
) - z vektoru
y^{(k+1)}
vybereme indexi
, kde|y^{(k+1)}_{i}|
je největší - vypočítáme přibližné vl. číslo
\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
- použijeme hodnoty na $i$-tém indexu v aktuálním a předchozím vektoru
- opakujeme, pokud neplatí zastavovací podmínka
- zastavovací podmínka:
|\lambda^{(k+1)} - \lambda^{(k)}| < \epsilon
Poznámky:
- v Matlabu ověříme vl. čísla pomocí funkce
eig(A)
- kvůli přetečení/podtečení je vhodné vektor
y^{(k+1)}
v každém kroku normovat
Rayleigho metoda
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)}}
Poznámky:
- vhodné pouze pro matice blízce symetrické (hodnoty jsou téměř symetrické)
- konverguje k nule zhruba dvakrát rychleji
Úplný problém
Tímto způsobem nalezneme všechna vlastní čísla matice.
LU rozklad
Postup:
A_{0} = A, k = 0
- provedeme LU rozklad matice
A_{k} = L_{k}U_{k}
- sestrojíme matici
A_{k+1} = U_{k}L_{k}
(matice prohodíme) - pokud je
A_{k+1}
horní trojúhelníková -> konec, jinakk = k+1
a jdeme na 2. krok
Pokud je matice A_{k+1}
horní trojúhelníková (nebo jsou hodnoty pod diagonálou blízko nule), poté máme na diagonále všechna vlastní čísla matice A
.
QR transformace
Podobné LU rozkladu, ale rozdílný vzoreček:
A_{k+1} = Q^T_{k}A_{k}Q_{k}, k = 0, 1, 2, \dots