C++ Bc. 2: Porovnání verzí
m (odkaz na wikipedii) |
m (zjednodušeno) |
||
(Není zobrazena jedna mezilehlá verze od jednoho dalšího uživatele.) | |||
Řádek 4: | Řádek 4: | ||
double dominantni_vlastni_cislo_matice(const GNU_gama::Mat<>& A, double rel_chyba = 1e-5); | double dominantni_vlastni_cislo_matice(const GNU_gama::Mat<>& A, double rel_chyba = 1e-5); | ||
'''Algoritmus:''' | '''Algoritmus:''' | ||
# zvolíme libovolný jednotkový vektor <math>q_0 \in R^n</math> (můžeme zvolit libovolný nenulový vektor) | # zvolíme libovolný jednotkový vektor <math>q_0 \in R^n</math> (můžeme zvolit libovolný nenulový vektor) | ||
# vypočteme vektor <math>z_i = \mathbf{A}q_{i-1}</math> | # vypočteme vektor <math>z_i = \mathbf{A}q_{i-1}</math> | ||
# | # <math>\lambda_i = ||z_i||,\,</math> kde <math>||z_i||\,</math> označuje euklidovskou normu vektoru <math>z_i</math>. | ||
# vypočteme vektor <math>q_i = z_i / \lambda_i</math> (tj. <math>q_i</math> je normovaný vektor <math>z_i</math>) | |||
# posloupnost <math>\lambda_1,\,\lambda_2, \lambda_3, ... </math> konverguje k hodnotě <math>\lambda_\max.</math> Opakujeme krok 2, dokud není dosažena požadovaná relativní přesnost odhadu <math>\lambda_\max</math> (např. na 4 dekadické cifry). | # posloupnost <math>\lambda_1,\,\lambda_2, \lambda_3, ... </math> konverguje k hodnotě <math>\lambda_\max.</math> Opakujeme krok 2, dokud není dosažena požadovaná relativní přesnost odhadu <math>\lambda_\max</math> (např. na 4 dekadické cifry). | ||
Aktuální verze z 27. 11. 2006, 20:50
Napište funkci, která pro zadanou čtvercovou diagonalizovatelnou matici vypočítá odhad jejího dominantního vlastního čísla .
double dominantni_vlastni_cislo_matice(const GNU_gama::Mat<>& A, double rel_chyba = 1e-5);
Algoritmus:
- zvolíme libovolný jednotkový vektor (můžeme zvolit libovolný nenulový vektor)
- vypočteme vektor
- kde označuje euklidovskou normu vektoru .
- vypočteme vektor (tj. je normovaný vektor )
- posloupnost konverguje k hodnotě Opakujeme krok 2, dokud není dosažena požadovaná relativní přesnost odhadu (např. na 4 dekadické cifry).
Příklad:
Pro matici je
Pro matici je