Wstęp do metod numerycznych Faktoryzacja QR i SVD P. F. Góra http://th-www.if.uj.edu.pl/zfs/gora/ 2012
Transformacja Householdera Niech u R N, u 0. Tworzymy macierz W sposób oczywisty P T = P. Obliczmy P 2 = ( P = I 2 uut u 2. (1) I 2 uut u 2 ) ( I 2 uut u 2 u 2 {}}{ = I 2 uut u 2 2 uut u 2 + 4u u T u u T u 4 = I 4 uut u 2 + 4 uut u 2 = I Copyright c 2010-12 P. F. Góra 4 2 ) (2)
Skoro P T = P oraz P 2 = I, P T = P 1 : macierz (1) jest macierza symetryczna, rzeczywista oraz ortogonalna. Macierz taka nazywamy ortogonalna macierza rzutowa. Niech teraz w (1) u = x x ê 1, (3) gdzie ê 1 jest pierwszym wektorem jednostkowym. Macierz (1) wraz z (3) nazywam macierza Householdera. Obliczam Px = x 2uuT x u 2. (4a) Zauważmy, że u T x = x T x x ê T 1 x = x 2 x x 1, gdzie x 1 jest pierwsza składowa wektora x. Copyright c 2010-12 P. F. Góra 4 3
Analogicznie u 2 = (x x ê 1 ) T (x x ê 1 ) = x T x x x 1 x x 1 + x 2 = 2 ( x 2 x x 1 ). Wobec tego ) Px = x 2u ( x 2 x x 1 2 ( x 2 ) = x u = ± x ê 1. (4b) x x 1 Efektem działania macierzy Householdera na wskazany wektor jest wyzerowanie wszystkich jego składowych, poza pierwsza, i przelanie całej jego długości na pierwsza składowa. Złożoność obliczeniowa tej procedury wynosi O(N). Copyright c 2010-12 P. F. Góra 4 4
Faktoryzacja QR Niech A R N N. Niech P 1 oznacza transformację Householdera zbudowana na pierwszej kolumnie macierzy A. Otrzymuję P 1....... P 1 A = A 1 (5) =...... Transformacja Householdera P 1 wyzerowała pierwsza kolumnę macierzy A, za wyjatkiem elementu diagonalnego. Złożoność obliczeniowa tego kroku wynosi O(N 2 ) (transformacja Householdera działa na N kolumn). Copyright c 2010-12 P. F. Góra 4 5
Niech teraz P 2 = 1 0 0... 0 0 0 0 (N 1) P 2 0 (6) gdzie (N 1) P 2 R (N 1) (N 1) jest transformacja Householdera, zbudowana na drugiej kolumnie macierzy A 1, poczynajac od elementu diagonalnego w dół. Otrzymujemy P 2 P 1 A = P 2 A 1 = A 2 =..... (7) Copyright c 2010-12 P. F. Góra 4 6
Następnie definiuję P 2 = 1 0 0 0... 0 0 1 0 0... 0 0 0 0 0 0 0 (N 2) P 3 0 0 (8) gdzie (N 2) P 3 R (N 2) (N 2) jest transformacja Householdera, zbudowana na trzeciej kolumnie macierzy A 2, poczynajac od elementu diagonalnego w dół. Stojaca w lewym górnym rogu macierz jednostkowa służy do tego, żeby nie zepsuć struktury, która osiagnęlimy w poprzednich kro- Copyright c 2010-12 P. F. Góra 4 7
kach. Otrzymujemy P 3 P 2 P 1 A = P 3 A 2 = A 3 = Widać, że po N 1 krokach osiagnę R =........ (9) = P N 1 P N 2 P }{{ 1 } A (10) Q T R jest macierza trójkatn a górna. Ponieważ macierze P i sa ortogonalne, ich iloczyn, oznaczony przez Q T także jest macierza ortogonalna. Nie Copyright c 2010-12 P. F. Góra 4 8
musimy zapamiętywać poszczególnych macierzy P i, wystarczy zapamiętać ich iloczyn. Otrzymaliśmy zatem dla dowolnej macierzy kwadratowej faktoryzację na macierz ortogonalna i trójkatn a górna: A = QR. (11) Złożoność obliczeniowa faktoryzacji QR wynosi dla macierzy pełnych O(N 3 ), czyli tyle samo, co faktoryzacji LU, jednak współczynnik przy wyrazie wiodacym jest gorszy niż dla LU. QR nie jest więc metoda z wyboru rozwiazywania układów równań liniowych. Jeśli jednak z jakichś względów faktoryzację QR możemy łatwo (lub musimy) obliczyć, układ równań linio- Copyright c 2010-12 P. F. Góra 4 9
wych rozwiazujemy jak następuje: Ax = b (12a) QRx = b (12b) Rx = Q T b (12c) Koszt obliczeniowy przejścia od (12b) do (12c) wynosi O(N 2 ). Równanie (12c) rozwiazujemy metoda backubstitution, co także kosztuje O(N 2 ). Jest to więc koszt mały w porównaniu z dokonaniem samej faktoryzacji. Copyright c 2010-12 P. F. Góra 4 10
Singular Value Decomposition Twierdzenie 1. Dla każdej macierzy A R M N, M N, istnieje rozkład A = U [diag(w i )] V T, (13) gdzie U R M N jest macierza kolumnowo ortogonalna, V R N N jest macierza ortogonalna oraz w i R, i = 1,..., N. Rozkład ten nazywamy rozkładem względem wartości osobliwych (Singular Value Decomposition, SVD). Jeżeli M = N, macierz U jest macierza ortogonalna. Copyright c 2010-12 P. F. Góra 4 11
Jadro i zasięg operatora Niech A R M N. Jadrem operatora A nazywam Ker A = {x R N : Ax = 0}. (14) Zasięgiem operatora A nazywam Range A = {y R M : x R N : Ax = y}. (15) Jadro i zasięg operatora sa przestrzeniami liniowymi. Jeśli M = N <, dim (Ker A) + dim (Range A) = N. Copyright c 2010-12 P. F. Góra 4 12
Sens SVD Sens SVD najlepiej widać w przypadku, w którym co najmniej jedna z wartości w i = 0. Dla ustalenia uwagi przyjmijmy w 1 = 0, w i 1 0. Po pierwsze, co to jest z = [z 1, z 2,..., z n ] T = V T x? Ponieważ V jest macierza ortogonalna, z jest rozkładem wektora x w bazie kolumn macierzy V. Korzystajac z (13), dostajemy 0 Ax = U [diag(w i )] V T x = U [diag(0, w 2,..., w N )] z = U w 2 z 2.. (16) w N z N Wynikiem ostatniego mnożenia będzie pewien wektor z przestrzeni R M. Ponieważ pierwszym elementem wektora [0, w 2 z 2,..., w N z N ] T jest zero, wynik ten nie zależy od pierwszej kolumny macierzy U. Widzimy zatem, że kolumny macierzy U, odpowiadajace niezerowym współczynnikom w i, stanowia bazę w zasięgu operatora A. Co by zaś się stało, gdyby x był równoległy do wektora stanowiacego pierwsza kolumnę V? Wówczas z = 0, a wobec tego Ax = 0. Ostatecznie więc widzimy, że kolumny macierzy V, odpowiadajace zerowym współczynnikom w i, stanowia bazę w jadrze operatora A. Copyright c 2010-12 P. F. Góra 4 13
SVD i odwrotność macierzy Niech A R N N. Zauważmy, że det A = N i=1 w i, a zatem det A = 0 wtedy i tylko wtedy, gdy co najmniej jeden w i = 0. Niech det A 0. Wówczas równanie Ax = b ma rozwiazanie postaci x = A 1 b = V [ diag(w 1 i ) ] U T b. (17) Niech teraz det A = 0. Równanie Ax = b także ma rozwiazanie, o ile tylko b Range A. Rozwiazanie to ma postać x = à 1 b, gdzie gdzie à 1 = V [ diag( w 1 i ) ] U T. (18a) w 1 i = { w 1 i gdy w i 0, 0 gdy w i = 0. (18b) Copyright c 2010-12 P. F. Góra 4 14
SVD i macierze osobliwe Wróćmy jeszcze raz do problemu osobliwych (z zerowym wyznacznikiem głównym) układów równań, wspomnianego już na stronie 14. Jeżeli det A = 0, układ równań z cała pewnościa nie ma jednoznacznego rozwiazania. Może jednak mieć rozwiazanie (a nawet nieskończenie wiele rozwiazań), jeżeli prawa strona należy do zasięgu A. Jest to równoważne warunkowi, że wszystkie wyznaczniki poboczne we wzorach Cramera zeruja się. Wówczas rozwiazaniem układu równań jest każdy wektor postaci x = à 1 b + x 0, (19) gdzie à 1 jest pseudoodwrotnościa dana przez (18), zaś x 0 KerA jest dowolnym wektorem należacym do jadra. Rozwiazanie z x 0 = 0 ma spośród nich najmniejsza normę. Zauważmy, że na wektory należace do zasięgu, pseudoodwrotność działa jak zwykła odwrotność macierzy. Copyright c 2010-12 P. F. Góra 4 15
Jeżeli b nie należy do zasięgu, wyrażenie (19) z x 0 = 0 daje rozwiazanie przybliżone i najlepsze w sensie najmniejszych kwadratów, co niekiedy jest bardzo użyteczne. Copyright c 2010-12 P. F. Góra 4 16
SVD i współczynnik uwarunkowania Twierdzenie 2. Jeżeli macierz A R N N posiada rozkład (13) oraz det A 0, jej współczynnik uwarunkowania spełnia κ = max w i i min w i. (20) i Jeśli macierz jest źle uwarunkowana, ale formalnie odwracalna, numeryczne rozwiazanie równania Ax = b może być zdominowane przez wzmocniony bład zaokraglenia. Aby tego uniknać, często zamiast (bezużytecznego!) rozwiazania dokładnego (17), używa się przybliżonego (i użytecznego!) rozwiazania w postaci (18) z następujac a modyfikacja w 1 i = gdzie τ jest pewna zadana tolerancja. { w 1 i gdy w i > τ, 0 gdy w i τ, (21) Copyright c 2010-12 P. F. Góra 4 17
Nadokreślone układy równań Niech A R M N, M > N, b R M, x R N. Wówczas układ równań Ax = b (22) ma więcej równań, niż niewiadomych. Układ taki, zwany nadokreślonym, w ogólności nie ma rozwiazań. Za pomoca SVD można jednak znaleźć jego rozwiazanie przybliżone. Mianowicie A ( à 1 b ) b 2 = minimum, (23) gdzie à 1 jest pseudoodwrotnościa (18). Widzimy, że à 1 b jest przybliżonym, najlepszym w sensie najmniejszych kwadratów rozwiazaniem układu (22). Metoda ta jest powszechnie używana w liniowym zagadnieniu najmniejszych kwadratów. Copyright c 2010-12 P. F. Góra 4 18
Wzór Shermana-Morrisona Twierdzenie: Niech A R N N, det A 0 oraz u, v R N. Niech A 1 = A + uv T. Wówczas A 1 1 = A 1 A 1 uv T A 1 1 + v T A 1 u. (24) Zauważmy, że ponieważ det A 0, macierz A 1 istnieje. Ponadto wyrażenie v T A 1 u jest liczba (skalarem). Copyright c 2010-12 P. F. Góra 4 19
Przykład Niech u = v = [1, 0, 0, 0, 1] T. Wówczas uv T = 1 0 0 0 1 [1 0 0 0 1] = 1 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 1 (25) Niech teraz A = 3 1 0 0 0 1 4 1 0 0 0 1 4 1 0 0 0 1 4 1 0 0 0 1 3, A 1 = A + uv T = 4 1 0 0 1 1 4 1 0 0 0 1 4 1 0 0 0 1 4 1 1 0 0 1 4. (26) Copyright c 2010-12 P. F. Góra 4 20
Dowód. = I = I + ( A + uv T ) ( A 1 A 1 uv T A 1 1 + v T A 1 u = AA 1 1 1 + v T A 1 u AA 1 uv T A 1 + uv T A 1 1 1 + v T A 1 u u } vt A{{ 1 u} v T A 1 to jest liczba! 1 1 + v T A 1 u uvt A 1 + uv T A 1 vt A 1 u 1 + v T A 1 u uvt A 1 ( 1 1 1 + v T A 1 u vt A 1 u 1 + v T A 1 u ) ) uv T A 1 = I. (27) Copyright c 2010-12 P. F. Góra 4 21
Algorytm Shermana-Morrisona Wzór Shermana-Morrisona (24) pozwala zkonstruować odwrotność macierzy A 1 jeśli znamy odwrotność A. Jednak w praktyce prawie nigdy nie konstruujemy jawnej odwrotności macierzy! Jak więc zastosować ten wzór? Zauważmy, że zapewne chcemy obliczyć jakieś A 1 1 b, gdzie b jest znanym wektorem, przy założeniu, że łatwo potrafimy obliczyć A 1 b. Interesuje nas znalezienie ( w = A 1 1 b = A 1 A 1 uv T A 1 ) 1 + v T A 1 b (28) u Copyright c 2010-12 P. F. Góra 4 22
Algortym wyglada następujaco: (a) Rozwiaż równanie (b) Rozwiaż równanie Az = b Aq = u (29a) (29b) (c) Oblicz w = z vt z 1 + v T q q. (29c) Problem sprowadza się więc do rozwiazania dwu równań (29a),(29b) z taka sama macierza, które umiemy szybko rozwiazać, gdyż na przykład znamy faktoryzację macierzy A. Zauważmy, że v T A 1 b = v T z jest liczba. Copyright c 2010-12 P. F. Góra 4 23
Przykład (c.d.) Pierwsza z macierzy (26) jest macierza symetryczna, dodatnio określona i trójdiagonalna, a więc jej czynnik Cholesky ego ma tylko dwie niezerowe diagonale, a koszt jego wyliczenia jest rzędu O(N). Czynnik Cholesky ego drugiej z tych macierzy jest pełna macierza trójkatn a (nastapi wypełnienie) i koszt jego wyliczenia jest rzędu O(N 3 ) (wyobraźmy sobie, że zamiast o macierzach 5 5, mówimy o macierzach 1000 1000). Zastosowanie algorytmu (29) redukuje problem do znalezienia i dwukrotnego zastosowania rzadkiego czynnika Cholesky ego pierwszej z macierzy (26). Da się to zrobić w czasie liniowym. Copyright c 2010-12 P. F. Góra 4 24