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

Z GeoWikiCZ
Bez shrnutí editace
Bez shrnutí editace
Řádek 1: Řádek 1:
Napište funkci, která pro zadanou čtvercovou matici <math>\mathbf{A}</math> vypočítá odhad jejího maximálního vlastního čísla <math>\lambda_\max</math>.
Napište funkci, která pro zadanou čtvercovou (pozitivně definitní) matici <math>\mathbf{A}</math> vypočítá odhad jejího maximálního vlastního čísla <math>\lambda_\max</math>.


'''Algoritmus:'''
'''Algoritmus:'''
Řádek 8: Řádek 8:
# vypočteme vektor <math>v_i = w_i \times (1/\lambda_i), </math> tj. normujeme wektor <math>w_i</math> na velikost 1
# vypočteme vektor <math>v_i = w_i \times (1/\lambda_i), </math> tj. normujeme wektor <math>w_i</math> na velikost 1
# posloupnost <math>\lambda_1, \lambda_2, \lambda_3, ... </math> konverguje k hodnotě <math>\lambda_\max.</math> Opakujeme krok 2, dokud neni dosažena požadovaná relativní přesnost odhadu (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 neni dosažena požadovaná relativní přesnost odhadu (např. na 4 dekadické cifry).
'''Příklad:'''  Pro matici
  226  99  204  88  116
  99  131  171  55  45
  204  171  279  108  97
  88  55  108  106  44
  116  45  97  44  71
je <math>\lambda_\max. = 639.6488</math>

Verze z 25. 2. 2006, 09:34

Napište funkci, která pro zadanou čtvercovou (pozitivně definitní) matici vypočítá odhad jejího maximálního vlastního čísla .

Algoritmus:

  1. zvolíme libovolný nenulový vektor stejné dimenze, jako je rozměr matice
  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

 226   99  204   88  116
  99  131  171   55   45
 204  171  279  108   97
  88   55  108  106   44
 116   45   97   44   71

je