Zestaw 7
Transkrypt
Zestaw 7
Metody Numeryczne Notatka 7 Jakub Olczyk Koło Naukowe Wolnego Oprogramowania Zestaw 7 Tym razem rozwiązujemy problem szukania wartości własnych. Ax = λx Jeśli x 6= 0 spełnia to równanie to wtedy: • λ jest wartością własną A • x jest wektorem własnym odpowiadającym wartości własnej λ Zadanie 1 a) Wykonać 2 kroki metody potęgowej. Przypomnienie teorii Metoda potęgowa: Założenia: 1. ∃ liniowy porządek ze względu na moduł wśród wartości własnych =⇒ ∃! największa wartość własna |λ1 | > |λ2 | |λ3 | · · · |λn | 2. Macierz musi mieć prostą strukturę tzn. mamy n wektorów własnych niezależnych liniowo, które stworzą bazę przestrzeni własnej. u1 , u2 , u3 , . . . , un ← wektory własne xk = Ak x(0) (1) 1 Intuicja stojąca za metodą Teraz nasza metoda będzie się opierać o przedstawianie wektora początkowego w bazie własnej naszej macierzy A. Intuicja za tą metodą jest taka, że skoro istnieje największy wektor własny, to w jego kierunku będą ciążyć wszelkie wektory, które będziemy przez tę macierz przemnażać. x(0) ← wektor startowy x(1) = Ax(0) x(2) = Ax(1) .. . xk = Ak x(0) Algorytm metody potęgowej x0 = wektor startowy ; 0 y 0 = ||xx0 || ; k = 1; while k ¬ n do zrobimy n iteracji metody x(k) = Ax(k−1) ; φ(x(k−1) ) ; φ(y (k−1) ) (k) y (k) = ||xx(k) || ; rk = ++k; end Algorithm 1: Metoda potęgowa Z każdą iteracją r → λ1 oraz y → u1 . Natomiast φ(x) to operator liniowy (dowolny). Przykładowo φ(x) = x1 , φ(x) = x2 , które mogą wybitnie ułatwić obliczenia Jednak najczęściej spotykanym operatorem liniowym jest φ(x) =< x, xk >, ponieważ w jego wypadku nie dochodzi do momentu, w którym jest możliwe dzielenie przez zero. Przejdzmy do przykładu Wektor początkowy x0 = (0, 1, 1). I krok: x0 1 · x0 = y = 0 =√ ||x || 0+1+1 0 0 1 1 √ ,√ ,√ 2 2 2 ! 5 −1 0 0 x1 = Ax0 = 1 30 −5 1 = (−1, 25, 0) 0 −1 1 1 r1 = √ φ(x1 ) x12 25 = = 1 = 25 2 (bieżemy φ(x) = x2 ) 0 0 √ φ(y ) y2 2 x1 1 y = 1 =q ||x || (−1)(−1) + 25 1 0 1 1 √ ,√ ,√ 2 2 2 2 ! 1 1 = 0, √ √ , √ √ 26 2 26 2 ! II krok: 5 −1 0 −1 2 1 1 30 −5 x = Ax = 25 = (−30, 749, −25) 0 −1 1 0 r2 = y2 = 749 √1 52 √ = 749 52 x2 1 1 1 =q · x2 = √ · x2 = (−30, 749, −25) 2 ||x || 750.01733 562526 90 + 7492 + (−25)2 b) Pokazać na płaszczyźnie zespolonej oszaczowania na wartości własne wynikające z twierdzenia Gerszgorina. Przypomnienie Twierdzenie Gerszgorina Założenia: Niech A będzie kwadratową macierzą zespoloną o rozmiarze n × n z elementami (aij ). Dla i ∈ P {1, . . . , n} niech Ri = j6=i |aij |, gdzie |aij | oznacza moduł z liczby aij . Niech D(aii , Ri ) będzie domkniętym kołem o środku w aii i promieniu Ri . Takie koła są nazywane kołami Gerszgorina. Teza: Każda wartość własna macierzy A leży wewnątrz lub na brzegu przynajmniej jednego z kół D(aii , Ri ). Jak wyznaczyć koła? Macierz dla przypomnienia wygląda tak, pogrubione są wyszstkie elemnety na przekątnej (czyli aii ): 5 −1 0 A = 1 30 −5 0 −1 1 K1 (5, R1 ) to jest nasze koło o promieniu R1 R1 = |−1| + |0| = 1 K2 (30, R2 ) K3 (1, R3 ) R2 = 6 R3 = 1 Zadanie 2 Wykonać 2 iteracje odwrotnej metody potęgowej. Jakie oszacowania na najmniejszą wartość własną wynikają z tych rachunków. 3 Przypomnienie Chcemy rozwiązać następujące równanie: x(k+1) = A−1 x(k) ale jest tutaj żmudne odwracanie macierzy. Nie warto. Zróbmy to prościej: Ax(k+1) = x(k) I teraz możemy skorzystać z rokładu LU , który nam jeszcze bardziej uprości sprawę. x0 = wektor startowy; k = 0; while k ¬ n do aż nie zrobimy n kroków Rozwiąż układ równań Ayk = xk−1 ; xk = ||yykk || ; k + +; end Algorithm 2: Odwrotna Metoda Potęgowa I krok: x0 = (0, 1, 1) 0 5 −1 0 y1 Ay 1 = x0 =⇒ 1 30 −5 y2 = 1 y3 1 0 −1 1 A = LU, gdzie L - dolnotrójkątna i U - górnotrójkątna 5 −1 0 w −= 1 w 5 −1 0 w −=− 1 w 5 −1 0 1 2 3 30.2 2 U = 1 30 −5 −→5 0 30.2 −5 −→ 0 30.2 −5 126 0 −1 1 0 −1 1 0 0 151 Odczytując współczynniki z eliminacji Gaussa dostajemy L 1 0 1 1 L= 5 1 0 − 30.2 ( 1 LU y = b =⇒ 0 0 1 U y1 = z Lz = b Zaczynamy od drugiego równania ! 1 1 5 0 1 1 0 − 30.2 0 0 z1 = 0 0 1 z2 = 1 z = =⇒ 1 1 z3 = 1 + 5 151 4 = 156 151 0 5 −1 0 y1 = y2 = 0 30.2 −5 y = 1 =⇒ 156 126 y3 = 0 0 151 151 1 21 5 21 26 21 Teraz zgodnie z algorytmem liczymy normę y 1 . s 1 ky k2 = q < y1, y1 >= 1 21 2 5 + 21 2 26 + 21 s 2 = 1 25 676 + + = 441 441 441 s 78 = 49 √ 78 7 Zadanie 3 Jeden krok metody QR wyznaczania wartości własnych. Przypomnienie Aby uzyskać przybliżenia na wartości własne za pomocą metody QR będziemy korzystać z następującego algorytmu. k = 0; while k ¬ n do nie wykonamy n iteracji Ak = Qk Rk dokonaj ortonormalnego rozkładu QR; Ak+1 = Rk Qk ; end Algorithm 3: Metoda QR Zadanie 4 Zredukować macierz do postaci Hassenberga. 5