QR Algorithm for the Computation of the Eigenvalues

Podobne dokumenty
Rozwiązywanie układów równań liniowych

UKŁADY ALGEBRAICZNYCH RÓWNAŃ LINIOWYCH

Macierze. Rozdział Działania na macierzach

Zaawansowane metody numeryczne

Wykład 5. Metoda eliminacji Gaussa

Wartości i wektory własne

UKŁADY ALGEBRAICZNYCH RÓWNAŃ LINIOWYCH

WEKTORY I WARTOŚCI WŁASNE MACIERZY. = λ c (*) problem przybliżonego rozwiązania zagadnienia własnego dla operatorów w mechanice kwantowej

Rozdział 5. Macierze. a 11 a a 1m a 21 a a 2m... a n1 a n2... a nm

Wstęp do metod numerycznych Faktoryzacja QR i SVD. P. F. Góra

Zaawansowane metody numeryczne

5. Rozwiązywanie układów równań liniowych

04 Układy równań i rozkłady macierzy - Ćwiczenia. Przykład 1 A =

3. Macierze i Układy Równań Liniowych

Met Me ody numer yczne Wykład ykład Dr inż. Mic hał ha Łanc Łan zon Instyt Ins ut Elektr Elektr echn iki echn i Elektrot Elektr echn olo echn

1 Macierze i wyznaczniki

Układy równań liniowych. Krzysztof Patan

Zadania egzaminacyjne

dr Mariusz Grządziel 15,29 kwietnia 2014 Przestrzeń R k R k = R R... R k razy Elementy R k wektory;

macierze jednostkowe (identyczności) macierze diagonalne, które na przekątnej mają same

Rozwiązywanie układów równań liniowych metody dokładne Materiały pomocnicze do ćwiczeń z metod numerycznych

1 Macierz odwrotna metoda operacji elementarnych

PODSTAWY AUTOMATYKI. MATLAB - komputerowe środowisko obliczeń naukowoinżynierskich - podstawowe operacje na liczbach i macierzach.

Własności wyznacznika

φ(x 1,..., x n ) = a i x 2 i +

Analiza matematyczna i algebra liniowa Macierze

a 11 a a 1n a 21 a a 2n... a m1 a m2... a mn x 1 x 2... x m ...

Układy równań liniowych i metody ich rozwiązywania

ALGEBRA LINIOWA Z ELEMENTAMI GEOMETRII ANALITYCZNEJ

= i Ponieważ pierwiastkami stopnia 3 z 1 są (jak łatwo wyliczyć) liczby 1, 1+i 3

ALGEBRA LINIOWA. Wykład 2. Analityka gospodarcza, sem. 1. Wydział Zarządzania i Ekonomii Politechnika Gdańska

Analiza numeryczna Kurs INP002009W. Wykłady 6 i 7 Rozwiązywanie układów równań liniowych. Karol Tarnowski A-1 p.

Komputerowa analiza zagadnień różniczkowych 3. Numeryczne zagadnienie własne

2 1 3 c c1. e 1, e 2,..., e n A= e 1 e 2...e n [ ] M. Przybycień Matematyczne Metody Fizyki I

Metody iteracyjne rozwiązywania układów równań liniowych (5.3) Normy wektorów i macierzy (5.3.1) Niech. x i. i =1

a 11 a a 1n a 21 a a 2n... a m1 a m2... a mn a 1j a 2j R i = , C j =

13 Układy równań liniowych

Wektory i wartości własne

Układy równań i nierówności liniowych

A,B M! v V ; A + v = B, (1.3) AB = v. (1.4)

3. FUNKCJA LINIOWA. gdzie ; ół,.

Wykład 14. Elementy algebry macierzy

O MACIERZACH I UKŁADACH RÓWNAŃ

Metoda eliminacji Gaussa. Autorzy: Michał Góra

Obliczenia naukowe Wykład nr 8

Wstęp do metod numerycznych Faktoryzacja Cholesky ego i QR. P. F. Góra

1. Liczby zespolone. Jacek Jędrzejewski 2011/2012

15. Macierze. Definicja Macierzy. Definicja Delty Kroneckera. Definicja Macierzy Kwadratowej. Definicja Macierzy Jednostkowej

Wektory i wartości własne

Zestaw 12- Macierz odwrotna, układy równań liniowych

DB Algebra liniowa semestr zimowy 2018

SIMR 2016/2017, Analiza 2, wykład 1, Przestrzeń wektorowa

Metody numeryczne I Równania nieliniowe

Przestrzeń unitarna. Jacek Kłopotowski. 23 października Katedra Matematyki i Ekonomii Matematycznej SGH

Układy równań liniowych

Metody dekompozycji macierzy stosowane w automatyce

Treść wykładu. Układy równań i ich macierze. Rząd macierzy. Twierdzenie Kroneckera-Capellego.

Iteracyjne rozwiązywanie równań

Funkcja kwadratowa. f(x) = ax 2 + bx + c = a

Wyk lad 5 W lasności wyznaczników. Macierz odwrotna

1 Układy równań liniowych

Zadania przygotowawcze, 3 kolokwium

Wprowadzenie do metod numerycznych Wykład 3 Metody algebry liniowej I Wektory i macierze

Algebra Liniowa 2 (INF, TIN), MAP1152 Lista zadań

MACIERZE I WYZNACZNIKI

Analiza numeryczna Lista nr 3 (ćwiczenia) x x 2 n x.

2. Układy równań liniowych

Baza w jądrze i baza obrazu ( )

1 Zbiory i działania na zbiorach.

A A A A A A A A A n n

Funkcja kwadratowa. f(x) = ax 2 + bx + c,

Algebra WYKŁAD 3 ALGEBRA 1

Rozwiazywanie układów równań liniowych. Ax = b

Algebra liniowa. 1. Macierze.

Liczby zespolone. Magdalena Nowak. 23 marca Uniwersytet Śląski

Algebra liniowa z geometrią

5 Wyznaczniki. 5.1 Definicja i podstawowe własności. MIMUW 5. Wyznaczniki 25

Wyk lad 4 Macierz odwrotna i twierdzenie Cramera

R n = {(x 1, x 2,..., x n ): x i R, i {1,2,...,n} },

10. Metody obliczeniowe najmniejszych kwadratów

III TUTORIAL Z METOD OBLICZENIOWYCH

METODY ROZWIĄZYWANIA RÓWNAŃ NIELINIOWYCH

; B = Wykonaj poniższe obliczenia: Mnożenia, transpozycje etc wykonuję programem i przepisuję wyniki. Mam nadzieję, że umiesz mnożyć macierze...

Postać Jordana macierzy

Stosowana Analiza Regresji

Obliczenia iteracyjne

Funkcje wymierne. Jerzy Rutkowski. Działania dodawania i mnożenia funkcji wymiernych określa się wzorami: g h + k l g h k.

Zadania z Algebry liniowej 4 Semestr letni 2009

Formy kwadratowe. Mirosław Sobolewski. Wydział Matematyki, Informatyki i Mechaniki UW. wykład z algebry liniowej Warszawa, styczeń 2009

Układy równań liniowych

1. PODSTAWY TEORETYCZNE

det[a 1,..., A i,..., A j,..., A n ] + det[a 1,..., ka j,..., A j,..., A n ] Dowód Udowodniliśmy, że: det[a 1,..., A i + ka j,..., A j,...

Wykład 6. Metoda eliminacji Gaussa: Eliminacja z wyborem częściowym Eliminacja z wyborem pełnym

Wykład 16. P 2 (x 2, y 2 ) P 1 (x 1, y 1 ) OX. Odległość tych punktów wyraża się wzorem: P 1 P 2 = (x 1 x 2 ) 2 + (y 1 y 2 ) 2

Metody i analiza danych

KADD Minimalizacja funkcji

MATEMATYKA I SEMESTR ALK (PwZ) 1. Sumy i sumy podwójne : Σ i ΣΣ

= Zapiszemy poniższy układ w postaci macierzy. 8+$+ 2&=4 " 5 3$ 7&=0 5$+7&=4

III. Układy liniowe równań różniczkowych. 1. Pojęcie stabilności rozwiązań.

Pochodne cząstkowe i ich zastosowanie. Ekstrema lokalne funkcji

Transkrypt:

QR Algorithm for the Computation of the Eigenvalues Maciej Kluczny Mateusz Kramarczyk AGH University of Science and Technology 26 marca 2006 Streszczenie W niniejszym dokumencie postaraliśmy się przedstawić opis iteracyjnej metody QR wyznaczania wartości własnych dużych macierzy kwadratowych. Przedstawiony został również cały aparat matematyczny (głównie algebraiczny) potrzebny do zrozumienia niniejszego dokumentu poczynając na macierzach i definicji wartości własnych na opisie właściwego algorytmu QR kończąc. W końcu przedstawiony też został prosty przykład praktycznego wykorzystania zdobytej po przeczytaniu tego dokumentu wiedzy oraz różne sposoby prowadzące do ulepszenia właściwej metody QR. Tekst dostępny również na stronie: http://www.nic-nac-project.de/~leoha/qralgorithm/ 1

Spis treści 1 Wstęp teoretyczny 3 1.1 Podstawy algebraiczne........................ 3 1.1.1 Macierz symetryczna..................... 3 1.1.2 Macierz transponowana................... 3 1.1.3 Macierz ortogonalna..................... 3 1.1.4 Macierz Hermite a...................... 3 1.1.5 Macierz unitarna....................... 4 1.1.6 Macierz normalna...................... 4 1.1.7 Macierz Hessenberga..................... 4 1.1.8 Wartości i wektory własne macierzy............ 4 1.2 Dekompozycja QR (QR factorization)............... 5 1.2.1 Refleksja Householdera................... 5 1.2.2 Ortogonalizacja Gram-Schmidt a.............. 7 1.2.3 Rotacja Givensa....................... 7 2 Algorytm właściwy 8 2.1 Algorytm podstawowy........................ 8 2.2 Algortym z wykorzystaniem macierzy Hessenberga........ 10 2.3 Algorytm z wykorzystaniem przesunięć wartości własnych.... 11 2.4 Porównanie różnych wariantów algorytmu QR........... 12 2

1 Wstęp teoretyczny 1.1 Podstawy algebraiczne W tym rozdziale umieścilismy niezbędne definicje twierdzenia etc. potrzebne do zrumienia poniższego tekstu. Podrozdział ten należy traktować jako pewnego rodzaju swoiste kompendium wiedzy, szczególnie dla tych, którzy z tą tematyką nie mieli wcześniej do czynienia. Oto ważniejsze definicje, określenia, które mogą być przydatne: 1.1.1 Macierz symetryczna Macierz A nazywamy macierzą symetryczną jeżeli spełnia ona następujący warunek: i,j (a ij = a ji ) A T = A 1.1.2 Macierz transponowana Macierz transponowana macierzy A = [a ij ] n,m to macierz powstała w wyniku zamiany odpowiednich wierszy i kolumn: A T = [a ij ] m,n 1.1.3 Macierz ortogonalna Macierz A jest macierzą ortogonalną jeżeli spełnia zależność: AA T = I gdzie I jest macierzą jednostkową. Innymi słowy iloczyn skalarny dowolnych dwóch wierszy (kolumn) jest równy zero, natomiast iloczyn skalarny dowolnego wiersza (kolumny) jest równy jeden. 1.1.4 Macierz Hermite a Mówimy, że macierz A jest macierzą Hermite a (hermitianem), jeżeli jest ona macierzą kwadratową, symetryczną oraz określoną na zbiorze liczb zespolonych, dla której: i,j (a ij = a ji ) gdzie a ji jest liczbą sprzężoną do liczby a ji. Macierz Hermite a oznaczamy zazwyczaj symbolami : A, A T, A, oraz A H Jeżeli elementy macierzy A należą do zbioru liczb rzeczywistych to macierz Hermite a odpowiada macierzy symetrycznej. Bardzo ważną własnością macierzy Hermite a jest to, że jej wartości własne sa zawsze liczbami rzeczywistymi oraz fakt, że wektory główne są ortogonalne. Jednakże ostatnia własność jest spełniona jedynie w przypadku gdy macierz jest macierzą diagonalizowalną. 3

1.1.5 Macierz unitarna Jest to macierz będąca macierzą kwadratową, określona na zbiorze liczb zespolonych oraz mająca własność: AA H = I W przypadku liczb rzeczywistych macierz unitarna sprowadza się do macierzy ortogonalnej. 1.1.6 Macierz normalna Macierz A jest macierzą normalną jeśli jest spełniona następująca zależność: 1.1.7 Macierz Hessenberga AA H = A H A Jest to macierz trójkątna górna (dolna), która bezpośrednio pod(nad) diagonalą posiada dodatkową przekątkną. X X X X X X X X X X 0 X X X X 0 0 X X X 0 0 0 X X 1.1.8 Wartości i wektory własne macierzy Mówimy, że dana macierz A n n ma wektor własny v i odpowiadającą mu wartość własną λ, jeżeli Av = λv aby obliczyć wartości własne macierzy A należy rozwiązać równanie det(a λi) = 0 Wartości własne są niezmiennikiem danej macierzy, dla każdej macierzy Q podobnej do macierzy A wartości własny tych macierzy bedą takie same. Jeżeli pomnożymy macierz A przez dowolną liczbę ϑ to wartości własne macierzy ϑa bedą równe wartością własnym macierzy A pomnożonymi przez liczbę ϑ: λ ϑa = [λ (1) ϑa, λ(2) ϑa,..., λ(n) ϑa ] = ϑλ A natomiast wektory własne obu macierzy nie zmieniają się, operacja ta nazywa sie przesuwaniem wartości własnych macierzy Reasumując, jeśli odejmniemy od macierzy A macierz A ϑi, to i-ta wartość własna λ macierzy A bedzie równa λ i ϑ. 4

1.2 Dekompozycja QR (QR factorization) Dekompozycja macierzy polega na przedstawieniu jej w postaci iloczynu dwóch innych specyficznych macierzy. Istnieje kilka takich dekompozycji, które znalazły szczególne zastosowania. Jedną z takich dekompozycji jest na przykład faktoryzacja LU: A = L U. Macierz A jest przedstawiona tutaj jako iloczyn dolnej macierzy trójkątnej L oraz górnej macierzy trójkątnej R. Dodatkowo jeśli macierz L ma na przekątnej tylko jedynki faktoryzacja ta zwana jest dekompozycją Doolittle a. Dodatkowo jeśli również macierz R ma na diagonali same jedynki jest to faktoryzacja Crout a. Ponadto jeśli L = U T jest to dekompozycja Cholesky iego. Jak łatwo zauważyć dekompozycji może być nieskończenie wiele jednak, mało które są do czegokolwiek przydatne, dlatego nawet drobne, subtelne różnice jak w tym przykladzie dekompozycji LU maja swoje zastosowania stąd też mają one nawet inne nazwy choć w rzeczywistości są prawie identyczne (implementacja zaś z koleji jest całkiem różna). Na przykład dekompozycja PA jest niczym innym jak dekompozycją LU jednakże z zastosowaniem pivotingu. Zainteresowanych bliżej zagadnieniami dekompozycji odsyłamy do odpowiedniej literatury. Istnieje inna bardzo przydatna dekompozycja, tak zwana faktoryzacja QR. Dekompozycja QR macierzy rzeczywistej A jest dekompozycją na dwie inne macierze oznaczone odpowiednio Q oraz R, gdzie macierz Q jest ortogonalna, natomiast R jest górną macierzą trójkątną, co można zapisać: A = Q R. Przy dodatkowym zalożeniu, że elementy na diagonali macierzy R powinny być dodatnie faktoryzacja QR jest jednoznaczna. Dekompozycja QR jest często używana do rozwiązywania liniowego problemu najmniejszych kwadratów, jest również podstawą do iteracyjnego liczenia wartości własnych macierzy. Istnieje kilka metod w jaki można rozłożyć macierz na odpowiednie macierze Q oraz R. Kolejno zostaną przedstawione najbardziej użyteczne. 1.2.1 Refleksja Householdera Metoda Householdera zwana również transformacją Householdera lub refleksją (odbiciem) Housoldera jest najczęściej używaną metodą dekompozycji QR. Kluczowym obiektem jest tutaj macierz oznaczona symbolicznie H - symetryczna i ortogonalna zwana macierzą Householdera. Jest to macierz przekształcenia wektora, które odbija go względem pewnej płaszczyzny. Macierz ma następującą postać: H = I 2xx T gdzie I jest macierzą jednostkową oraz x jest znormalizowanym wektorem spełniającym równanie: x 2 = x T x = 1. 5

Użyta tutaj norma jest normą euklidesową czyli po prostu długościa wektora (jeśli jego współrzędne są rzeczywiste). Transformacja Householdera zeruje m 1 ostatnich elementów w wektorze (kolumnie) poniżej pierwszego elementu: v 1 v 2.. v m c 0.. 0 gdzie: Łatwo sprawdzić, że: gdzie: c = ± v = ± m vi 2. i=1 v 1 c v 2 x = f. v m f = 1 2c(c v1 ). Aby zastosować dekompozycję dla macierzy A = QR o wymiarach m n (m n) kontruujemy macierz H (1) o wymiarach m m by zamienić m 1 ostatnich elementów pierwszej kolumny na zera. Podobnie skontruowana macierz G (2) o wymiarach (m 1) (m 1) zamieni m 2 elementów drugiej kolumny na zera. Za pomocą macierzy G (2) tworzymy macierz m m: 1 0... 0 0 H (2) =.. G (2) 0 Po n takich ortogonalnych przekształceniach (n 1 w przypadku, gdy m = n) otrzymamy: R = H (n)... H (2) H (1) A. R jest górną macierzą trójkątną; ortogonalną macierz Q otrzymamy z iloczynu: Z równości: Q = H (1) H (2)... H (n).. A = QR = H (1) H (2)... H (n) H (n)... H (2) H (1) wyraźnie widać dlaczego metoda zwana jest też refleksją. W praktyce macierze H (i) nigdy nie są jawnie liczone. 6

1.2.2 Ortogonalizacja Gram-Schmidt a Każdy zbiór liniowo niezależnych wektorów v 1,..., v n może zostać skonwertowany do zbioru ortogonalnych wektorów q 1,..., q n poprzez proces Gram- Schmidt a. Rozpatrzmy sytuacje dla trzech wymiarów; wektor v 1 wyznacza prostą; wektory v 1 i v 2 wyznaczają płaszczyznę. Wektor q 1 jest wektorem jednostkowym równoległym do wektora v 1. Wektor (jednostkowy) q 2 leży na płaszczyźnie wektorów v 1,v 2 i jest normalny do wektora v 1. Wektor (jednostkowy) q 3 jest normalny do płaszczyzny wektorów v 1, v 2 etc. W ogólnosci przyjmujemy, że u 1 = v 1, a każdy kolejny wektor u i jest ortogonalny do pozostałych u 1,..., u i 1 : i=1 u T j u i = v i u v i j u T j uj. j=1 Baza i wektorów u i generuje tą sama podprzestrzeń co baza wektorów v i. Wektory q i = ui u i sa ortonormalne. To prowadzi do następującego twierdzenia: Każda macierz A o wymiarach m n z liniowo niezależnymi kolumnami (wektorami) może być zdekomponowana w iloczyn A = QR, gdzie kolumny macierzy Q są ortonormalne, a macierz R jest górna trójkątna i odwracalna. 1.2.3 Rotacja Givensa Niech dana będzie macierz A o wymiarach m n (m n). Dekompozycja QR wymaga wyznaczenia ortogonalnej macierzy Q takiej, że: [ Q T R A = 0] a R jest górną macierzą trójkątną n n. A następnie rozwiązania układu Rx = P y, gdzie P jest macierzą n pierwszych wierszy Q. Transformacja Householdera czyści całe kolumny z wyjątkiem pierwszego elementu wektora. Jeśli chcemy wyczyścić część macierzy zerując naraz tylko jeden element kolumny możemy użyć rotacji Givensa, która jest szczególnie wdzięczna do równoległej implementacji. Macierz: 1... 0... 0... 0....... 0... c... s... 0 G =........... 0... s... c... 0....... 0... 0... 0... 1 z odpowiednio dobranym c = cos(ϕ) oraz s = sin(ϕ) dla pewnych kątów ϕ może zostać użyta do wyzerowania elementu a ki. 7

Elementy moga być zerowane kolumna po kolumnie od dołu w następującej kolejności: (m, 1), (m 1, 1),..., (2, 1), (m, 2),..., (3, 2),..., (m, n),..., (n + 1, n). Wtedy Q jest iloczynem g = (2m + n + 1)/2 macierzy Givensa Q = G 1 G 2... G g Na przykład do anihilacji dolnego elementu wektora 2 1: [ T [ ] [ c s a r = s c] b 0] z warunków sa + cb = 0 oraz c 2 + s 2 = 1 dostajemy: c = a a2 + b, s = b a a2 + b. 2 2 Algorytm właściwy 2.1 Algorytm podstawowy Algorytm znajdowania wartości własnych QR wymaga aby dana macierz A, była macierzą kwadratową n n określoną na liczbach rzeczywistych. Algorytm polega na iteracyjnym wykonywaniu określonych czynnosci aż do otrzymania macierzy trojkątniej górnej podobnej do macierzya która na diagonali zawiera wartości własne. W pierwszym kroku definiujemy macierz Q 0 równą macierzy jednostkowej oraz macierz D 1 równą macierzy A Q 0 = I D 1 = A następnie wykonujemy dekompozycję macierzy A za pomocą algorytmu dekompozycji QR, otrzymujemy A = Q 1 R 1 (1) gdzie macierz Q 1 jest macierzą ortogonalną, natomiast R 1 jest macierzą trójkątną górną. Mając daną macierz Q 1 oraz traktując ją jako macierz przejścia znajdujemy za pomocą transformacji macierzy podobnej macierz A 1 podobną do macierzy A. A 1 = Q 1 1 AQ 1 (2) mnożąc obustronnie (1) przez Q 1 1 otrzymujemy: Q 1 1 A = R 1 (3) łącząc (2) z (3) otrzymujemy A 1 = R 1 Q 1 8

Jeżeli otrzymana macierz A 1 nie jest macierzą trójkątną górną (z zadanym przybliżeniem) to musimy przejść do kolejnego kroku iteracyjnego, w którym przyjmujemy, że D 2 = AQ 1 Ponieważ macierz D 2 oraz A 1 są macierzami tego samego odwzorowana, różnią się jedynie bazami. w następnym kroku dokonujemy dekompozycji QR obu tych macierzy, w wyniku której otrzymujemy rownania D 2 = Q 2 R 2 A 1 = Q 2 R 2 gdzie macierz R 2 w obu przypadkach jest taka sama. Wykonując proste obliczenia otrzymujemy macierz A 2 Q 2 1 A 1 = R 2 A 2 = Q 2 1 A 1 Q 2 = R 2 Q 2 Jeżeli otrzymana macierz A 2 nie jest macierzą trójkątną górną kontynuujemy interacje. Przechodząc do m-tego kroku mamy daną macierz A m 1, a następnie wykonując te same operacje otrzymujemy równania A m 1 = Q m R m gdzie A m = R m Q m Q m = Q 1 Q 2 Q 3... Q m natomiast Q i reprezentuje zmianę współrzędnych w i-tym kroku. Cały algorytm można zapisać w postaci uproszczonej. Przyjmujemy sobie w kroku zerowym, macierz A 0 równą macierzy A, następnie otrzymujemy A 1 = Q 1 R 1 = Q 1 R 1 A 2 = Q 1 R 1 Q 1 R 1 = Q 1 Q 2 R 2 R 1 = Q 2 R 2... m 1 A m = ( Q i )( R k ) = Q m R m i=1 k=m Przedstawiony powyżej algorytm ma jedną poważną wadę - jest mało wydajny, algorytm ten wymaga O(n 3 ) operacji mnożenia, istnieje jednak kilka ulepszeń, które znacznie poprawiaja jego szybkość. Metody usprawniające działanie tego algorytmu są wyjaśnione w dalszej części pracy. 9

przykład: Mając dana macierz P wykonujemy kolejne kroki w algorytmie. 1 2 5 5 8 6, 8 6 7 dokonujemy dekompozycji QR macierzy A 0.1054 0.2673 0.9578 A = Q 1 R 1 = 0, 5270 0, 8018 0, 2817 0.8433 0.5345 0.0563 9, 4868 9, 4868 9, 5922 0 3, 7417 2, 4054 0 0 3, 4933 Następnie znajdujemy macierz A 1 podobną do macierzy A względem macierzy przejścia Q 1, powinna być ona równa macierzy otrzymanej z R 1 A 1. 14.0889 5.0146 6.9547 A 1 = Q 1 1 AQ 1 = 4.0004 1.7143 0.9186 R 1 Q 1 2.9458 1.8672 0.1968 Ponieważ macierz A 1 nie jest macierzą trójkątną górną przechodzimy do następnej iteracji. Rozdzielamy używając dekompozycji QR macierz A 1 na macierz unitarną Q 2 oraz macierz trójkątkną górną R 2 A 1 = Q 2 R 2 = 0.9431 0.1624 0.2902 0.2678 0.1467 0.9522 0.1972 0.9758 0.0949 14.9391 4.8200 6.3517 0 2.8877 0.8025 0 0 2.8744 następnie obliczamy macierz A 2 A 2 = Q 1 2 A 1Q 2 = R 2 Q 2 = 16.6321 3.0651 0.8568 0.9315 0.3594 2.8259 0.5668 2.8047 0.2727 Wykonując te same obliczenia za każdym krokiem iteracyjnym macierz A n dązy do macierzy trójkątnej górnej, która na diagonali posiada wartości własne. W powyższym przypadku wykonując 68 iteracji otrzmymamy wartości własne z dokladnością do 4 cyfry po przecinku. λ = [16.4536, 2.9814, 2.5278] 2.2 Algortym z wykorzystaniem macierzy Hessenberga Bardzo prostym ulepszeniem algorytmu podstawowego QR jest użycie w nim macierzy Hessenberg a. Ogromną zaletą macierzy Hessenberga jest fakt, iż ilość operacji mnożenia w pojedyńczej iteracji w algorytmie QR wynosi O(n 2 ) zamiast O(n 3 ), oraz to, że macierz Hessenberga zachowuje swoją postać podczas kolejnych iteracji QR. 10

Twierdzenie 1. Dla dowolnej macierzy A n n istnieje podobna unitarnie do niej macierz Hessenberga, która może być skonstruowana kosztem 5n 3 /3 operacji mnożenia. Jeżeli dodatkowo macierz A jest macierzą Hermite a to kosz maleje do poziomu 2n 3 /3 oraz ilość operacji mnożenia w jednej iteracji w algorytmie QR maleje o jeden rząd, czyli wynosi O(n). 2.3 Algorytm z wykorzystaniem przesunięć wartości własnych Chociaż algorytm bazujący na macierzach Hessenberga działa znacznie szybciej od algorytmu QR w formie podstawowej to mimo wszystko w niektórych przypadkach współczynnik zbiegania się elementów znajdujących się na poddiagonali jest zbyt wolne. Dla elementu a (k) i,i+1 w k-tym kroku ów współczynnik wynosi ( λi λ i 1 ) k, co w przypadku gdy wartości własne λ i oraz λ i 1 mają zbliżone wartości jest przyczyną powolnego zbiegania się algorytmu QR do szukanych wartości. Aby uniknąć powyższej sytuacji stosuje się w każdym kroku iteracyjnym przesunięcia wektorów własnych A k ϑ k I = Q k R k A k+1 = R k Q k + ϑ k I dzięki czemu współczynnik ψ (k) zbiegania się elementu a (k) i,i+1 pod diagonalą jest równy ψ (k) = λ i+1 ϑ k λ i ϑ k Łatwo można zauważyć, że jeżeli wartość współczynnika zbieżności ψ (k) dąży do 0 to ϑ k dąży do λ i. lim n ψ(k) = 0 lim ϑ k = λ i n Oczywistym wnioskiem, który można wyciągnąć z powyższej zależności jest możliwość osiągnięcia zbieżności liniowej, a nawet kwadratowej. Algorytm polega na tym, że najpierw skupiamy się na wartości własnej λ n i na jego podstawie obliczamy współczynnik ψ (k). Jeżeli λ n zostanie obliczona z zadowalającą nas precyzją to przechodzimy do obliczania wartości λ n 1, operacje powtarzamy aż do uzyskania wszystkich wartości własnych. Początkowo za element ψ (k) wybierano element a (k) nn macierzy, jednakże Wilkinson w 1965 roku zauważył, żę lepszym rozwiązaniem będzie wybranie wartości własnej z minora o wymiarach 2 2 zawierającego na diagonali wartości a (k) n 1,n 1 oraz a(k) n,n. Konsekwencją wyboru algorytmu z przesunięciami wartości własnych jest brak uporządkowania wartości własnych na diagonali, zazwyczaj największe wartości własne są na początku. [ ] a (k) n 1,n 1 a (k) n,n 1 11 a (k) n 1,n a (k) n,n

Algorytm QR z przesunięciami dla wcześniej zaprezentowanego przykładu oblicza wartości własne z precyzją do 4 miejsc po przecinku w 6 iteracjach co jest ponad 10 krotnym przyspieszeniem i to jedynie dla macierzy 4 wymiarowej. 2.4 Porównanie różnych wariantów algorytmu QR Aby zobrazować działanie przedstawionych algorytmów znajdowania wartości własnych opartych na algorytmie QR przeprowadziliśmy testy, w których obliczaliśmy wartości własne macierzy CAN 61 1, która jest macierzą o wymiarach 61 61. Miarą zbieżności algorytmu jest współczynnik zbieżności ψ równy: ψ = max k 1,...,n 1 ν(m) k gdzie ν (m) k jest k-tym elementem na poddiagonali, w m-tym kroku iteracyjnym. Widać gołym okiem, iż najstabilniej zachowującym się algorytmem jest algorytm QR z przesunięciami, również najszybciej, w sensie ilości iteracji, osiąga on określoną dokładność. Najmniej stabilnie zachowuje się algorytm z wykorzystaniem macierzy Hessenberga, jednak mimo tego, że wymaga on większej ilośći iteracji to i tak sam algorytm działa znacznie szybciej, co wynika z szybszego działania algorytmu dekompozycji dla macierzy Hessenberga. 4.5 4 3.5 Algorytm podstawowy Algorytm z macierzami Hessenberga Algorytm z przesunieciami 3 Zbieznosc 2.5 2 1.5 1 0.5 0 0 100 200 300 400 500 600 700 800 Kolejne iteracje algorytmu 1 http://math.nist.gov/matrixmarket/data/harwell-boeing/cannes/ 12

Literatura [1] William H. Press, Saul A. Teukolsky, William T. Vetterling, Brian P. Flannery, Numerical Recipies in C [2] J. Stoer, R. Bulirsch, Introduction to numerical analysis [3] David S. Watkins, Understanding the QR Algorithm, Society for Industrial and Applied Mathematics Review, Vol. 24, No. 4. (Oct., 1982), pp. 427-440. [4] Nicholas J. Higham, Accuracy and Stability of Numerical Algorithms [A] PlanetMath.org [B] Wikipedia.org 13