C++ Bc. 2: Porovnání verzí

Z GeoWikiCZ
Bez shrnutí editace
Bez shrnutí editace
Řádek 1: Řádek 1:
'''Mocninná metoda'''
'''Mocninná metoda'''


Napište funkci, která pro zadanou čtvercovou diagonalizovatelnou matici <math>\mathbf{A}</math> vypočítá odhad jejího dominantního vlastního čísla <math>\lambda_\max</math>.
Napište funkci, která pro zadanou čtvercovou diagonalizovatelnou matici <math>\mathbf{A} \in R^{n\times n} </math> vypočítá odhad jejího dominantního vlastního čísla <math>\lambda_\max</math>.


'''Algoritmus:'''
'''Algoritmus:'''


# zvolíme libovolný nenulový vektor <math>v_0</math> stejné dimenze, jako je rozměr matice <math>\mathbf{A}</math>
# zvolíme libovolný nenulový, vektor <math>v_0 \in R^n</math>  
# vypočteme vektor <math>w_i = \mathbf{A}v_{i-1}</math> vypočteme vektor
# vypočteme vektor <math>w_i = \mathbf{A}v_{i-1}</math> vypočteme vektor
# vypočteme euklidovskou normu <math>\lambda_i = ||w_i||</math>
# vypočteme euklidovskou normu <math>\lambda_i = ||w_i||</math>
Řádek 14: Řádek 14:


Pro matici  
Pro matici  
  226  99 204  88 116
  -261 209 -49
  99 131 171  55  45
  -530 422 -98
  204 171  279  108  97
  -800 631 -144
  88  55  108  106  44
je <math>\lambda_\max = 10</math>
  116  45  97  44  71
je <math>\lambda_\max = 639.6488</math>

Verze z 25. 2. 2006, 10:54

Mocninná metoda

Napište funkci, která pro zadanou čtvercovou diagonalizovatelnou matici vypočítá odhad jejího dominantního vlastního čísla .

Algoritmus:

  1. zvolíme libovolný nenulový, vektor
  2. vypočteme vektor vypočteme vektor
  3. vypočteme euklidovskou normu
  4. vypočteme vektor   tj. normujeme wektor na velikost 1
  5. posloupnost konverguje k hodnotě Opakujeme krok 2, dokud neni dosažena požadovaná relativní přesnost odhadu (např. na 4 dekadické cifry).

Příklad:

Pro matici

-261 209  -49
-530 422  -98
-800 631 -144

je