Zaawansowane metody numeryczne Komputerowa analiza
Transkrypt
Zaawansowane metody numeryczne Komputerowa analiza
Zaawansowane metody numeryczne Komputerowa analiza zagadnień różniczkowych 1. Układy równań liniowych P. F. Góra http://th-www.if.uj.edu.pl/zfs/gora/ semestr letni 2006/07 Podstawowe fakty • Równanie Ax = b , x, b ∈ RN , A ∈ RN ×N (1) ma jednoznaczne rozwiazanie ˛ gdy det A 6= 0. • W praktyce numerycznej nigdy nie rozwiazuje ˛ sie˛ układu (1) “metoda˛ wyznacznikowa”, ˛ bo jest ona niesłychanie kosztowna. • Koszt numeryczny metod dokładnych ∼ O(N 3) dla macierzy pełnych, (znacznie) mniej dla macierzy rzadkich. • Należy unikać jawnego obliczania odwrotności A−1, tym bardziej, że jest to konieczność egzotyczna. Dlatego zawsze zapis typu x = A−1b rozumieć bedziemy ˛ w ten sposób, że x spełnia równanie (1). 1. Układy równań liniowych 2 Metody dokładne • Eliminacja Gaussa, koniecznie z wyborem elementu podstawowego (“pivotingiem”), cz˛eściowym lub pełnym. • Rozkład LU : A = LU, gdzie L jest trójkatna ˛ dolna, U trójkatna ˛ górna, koniecznie z cz˛eściowym wyborem elementu podstawowego (algorytm Crouta) — zalecana metoda dla niewielkich macierzy dobrze uwarunkowanych, bez jakichś szczególnych symetrii. Koszt numeryczny rozkładu LU wynosi O(N 3). • Jeśli mamy rozkład LU A = LU, równanie (1) rozwiazujemy ˛ jako Uy = b Lx = y (2a) (2b) Równanie (2a) rozwiazujemy ˛ zaczynajac ˛ od ostatniego wiersza idac ˛ do góry (backsubstitution), równanie (2b) rozwiazujemy ˛ zaczynajac ˛ od pierwszego wiersza idac ˛ w dół (forward substitution) — w ten sposób za każdym razem rozwiazujemy ˛ równanie z jedna˛ niewiadoma. ˛ 1. Układy równań liniowych 3 Rozkład Cholesky’ego Jeżeli macierz A jest symetryczna i dodatnio określona, zamiast rozkładu LU można (i należy) używać rozkładu Cholesky’ego: A = LLT , gdzie L jest trójkatna ˛ dolna. Koszt rozkładu Cholesky’ego jest mniej wiecej ˛ o połowe˛ mniejszy od kosztu rozkładu LU . Wersja Gaxpy: for j = 1 : n if j > 1 A(j : n, j) = A(j : n, j) − A(j : n, 1 : j − 1)A(j, 1 : j − 1)T end q A(j : n, j) = A(j : n, j)/ A(j, j) end 1. Układy równań liniowych 4 Wersja Outer product: for k = 1 : n q A(k, k) = A(k, k) A(k + 1 : n, k) = A(k + 1 : n, k)/A(k, k) for j = k + 1 : n A(j : n, j) = A(j : n, j) − A(j : n, k)A(j, k) end end Uwagi: • Przy rozkładzie można nadpisywać macierz • Nie da sie˛ robić pivotingu • Jeśli A pasmowa, także L jest pasmowa, o takiej samej szerokości pasma • Jeśli wewnatrz ˛ pasma wystepuj ˛ a˛ dziury w A, w L moga˛ one być wypełnione. 1. Układy równań liniowych 5 Norma macierzy Niech || · || oznacza norme˛ w przestrzeni RN : Definicja: Niech A ∈ RN ×N bedzie ˛ operatorem liniowym nad przestrzenia˛ RN . Wielkość ||Ax|| ||A|| = sup ||x||6=0 ||x|| (3a) nazywam norma˛ macierzy A indukowana˛ przez norme˛ wektorów. 1. Układy równań liniowych 6 Po prawej stronie powyższego wyrażenia wystepuje ˛ norma wektorów; to tłumaczy zastosowanie przymiotnika “indukowana”. Obserwacja. Widać, iż kAk = sup kAxk . (3b) kxk=1 Twierdzenie 1. Norma indukowana jest norma˛ w przestrzeni operatorów liniowych nad RN . 1. Układy równań liniowych 7 Współczynnik uwarunkowania Rozważmy równanie (1). Z własności normy (3) widać, że kAxk 6 kAk kxk . Z drugiej strony, na mocy (1), jeślidet A 6= 0, −1 −1 kxk = A b 6 A kbk , (4a) (4b) a zatem −1 kAxk 6 A · A kbk . −1 Widać, że jeżeli wielkość A · A jest duża, małe zmiany (4c) b moga˛ numerycznie (w arytmetyce ze skończona˛ dokładnościa) ˛ spowodować duże zmieny rozwiazania. ˛ 1. Układy równań liniowych 8 Definicja. Niech A ∈ RN ×N i det A 6= 0. Wielkość −1 κ = A A (5) nazywam współczynnikiem uwarunkowania macierzy A. Jeżeli det A = 0, przyjmuje˛ κ = ∞. Twierdzenie 2. Niech A ∈ RN ×N bedzie ˛ macierza˛ symetryczna, ˛ A = AT , ˛ a˛ jej wartościami własnymi. Jeżeli det A 6= 0, współi niech liczby {λi}N i=1 bed czynnik uwarunkowania tej macierzy spełnia max |λi| κ= i min |λi| . (6) i 1. Układy równań liniowych 9 Dowód. W celu udowodnienia tego twierdzenia obliczmy norme˛ macierzy A. Ponieważ jest to macierz symetryczna i rzeczywista, jej wartości własne sa˛ rzeczywiste, natomiast jej unormowane wektory własne tworza˛ baz˛e w RN . Oznaczmy przez yi jej i-ty wektor własny, Ayi = λiyi. Każdy wektor x ∈ RN , kxk = 1, można przedstawić jako kombinacje˛ liniowa˛ x= N X αiyi , (7) i=1 przy czym warunek unormowania prowadzi do nastepuj ˛ ace ˛ wiezu ˛ na współczynniki tej kombinacji: N X α2 i = 1. (8) i=1 1. Układy równań liniowych 10 Obliczmy teraz 2 2 2 X N N N X X αiyi = kAxk2 = A αiAyi = αiλiyi i=1 i=1 i=1 N N N X X X 2 2 ||αiλiyi||2 = α2 α2 6 i λi 6 i max λi i i=1 i=1 i=1 2 N X α2 = max λ2 i = max |λi| i i i i=1 1. Układy równań liniowych (9) 11 Widzimy zatem, iż ∀ x ∈ RN , kxk2 = 1, zachodzi kAxk 6 max |λi|, a zatem i na mocy definicji (3) kAk = max |λi|. i Ponieważ det A 6= 0, macierz A−1 istnieje, jest symetryczna i rzeczywista, a jej N . Zupełnie analogicznie dowodzimy, wartościami własnymi sa˛ liczby {1/λ } i i=1 iż kA−1k = max (1/|λi|) = 1/ min |λi| , skad ˛ natychmiast wynika teza (6). i 1. Układy równań liniowych i 12 Singular Value Decomposition Twierdzenie 3. Dla każdej macierzy A ∈ RM ×N , M > N , istnieje rozkład A = U [diag(wi)] VT , (10) gdzie U ∈ RM ×N jest macierza˛ kolumnowo ortogonalna, ˛ V ∈ RN ×N jest macierza˛ ortogonalna˛ oraz wi ∈ R, i = 1, . . . , N . Rozkład ten nazywamy rozkładem wzgledem ˛ wartości osobliwych (Singular Value Decomposition, SVD). Jeżeli M = N , macierz U jest macierza˛ ortogonalna. ˛ 1. Układy równań liniowych 13 Jadro ˛ i zasieg ˛ operatora Niech A ∈ RM ×N . Jadrem ˛ operatora A nazywam Ker A = {x ∈ RN : Ax = 0} . (11) Zasiegiem ˛ operatora A nazywam Range A = {y ∈ RM : ∃x ∈ RN : Ax = y} . (12) Jadro ˛ i zasieg ˛ operatora sa˛ przestrzeniami liniowymi. Jeśli M = N < ∞, dim (Ker A) + dim (Range A) = N . 1. Układy równań liniowych 14 Sens SVD Sens SVD najlepiej widać w przypadku, w którym co najmniej jedna z wartości wi = 0. Dla ustalenia uwagi przyjmijmy w1 = 0, wi6=1 6= 0. Po pierwsze, co to jest z = [z1 , z2 , . . . , zn]T = VT x? Ponieważ V jest macierza˛ ortogonalna, ˛ z jest rozkładem wektora x w bazie kolumn macierzy V. Korzystajac ˛ z (10), dostajemy 0 w 2 z2 T . (13) Ax = U [diag(wi)] V x = U [diag(0, w2, . . . , wN )] z = U ... w N zN Wynikiem ostatniego mnożenia bedzie ˛ pewien wektor z przestrzeni RM . Ponieważ pierwszym elementem wektora [0, w2 z2 , . . . , wN zN ]T jest zero, wynik ten nie zależy od pierwszej kolumny macierzy U. Widzimy zatem, że kolumny macierzy U, odpowiadajace ˛ niezerowym współczynnikom wi, stanowia˛ baz˛e w zasiegu ˛ operatora A. Co by zaś sie˛ stało, gdyby x był równoległy do wektora stanowiacego ˛ pierwsza˛ kolumne˛ V? Wówczas z = 0, a wobec tego Ax = 0. Ostatecznie wiec ˛ widzimy, że kolumny macierzy V, odpowiadajace ˛ zerowym współczynnikom wi, stanowia˛ baz˛e w jadrze ˛ operatora A. 1. Układy równań liniowych 15 SVD i odwrotność macierzy Niech A ∈ RN ×N . Zauważmy, że |det A| = N Q wi, a zatem det A = 0 wtedy i tylko wtedy, i=1 gdy co najmniej jeden wi = 0. Niech det A 6= 0. Wówczas równanie Ax = b ma rozwiazanie ˛ postaci T −1 −1 x = A b = V diag(wi ) U b . (14) Niech teraz det A = 0. Równanie Ax = b także ma rozwiazanie, ˛ o ile tylko b ∈ Range A. Rozwiazanie ˛ to dane jest wzorem x = Ã−1b = V diag(w̃i−1) UT b . (15a) gdzie w̃i−1 1. Układy równań liniowych = wi−1 0 gdy wi = 6 0, gdy wi = 0 . (15b) 16 SVD i współczynnik uwarunkowania Twierdzenie 4. Jeżeli macierz A ∈ RN ×N posiada rozkład (10) oraz det A 6= 0, jej współczynnik uwarunkowania spełnia max |wi| . (16) κ= i min |wi| 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˛esto zamiast (bezużytecznego!) rozwiazania ˛ dokładnego (14), używa sie˛ przybliżonego (i użytecznego!) rozwiazania ˛ w postaci (15) z nastepuj ˛ ac ˛ a˛ modyfikacja˛ −1 wi gdy |wi| > τ , w̃i−1 = (17) 0 gdy |wi| 6 τ , gdzie τ jest pewna˛ zadana˛ tolerancja. ˛ 1. Układy równań liniowych 17