Metody numeryczne. Wersja robocza, 19 czerwca 2009
|
|
- Karol Urbaniak
- 6 lat temu
- Przeglądów:
Transkrypt
1 Metody numeryczne Piotr Krzyżanowski Leszek Plaskota Wersja robocza, 19 czerwca 2009 Spis treści 1 Wielkie układy równań liniowych Reprezentacja macierzy rzadkich Format współrzędnych Format spakowanych kolumn (wierszy) Format diagonalny Uwagi praktyczne Macierze specjalne Macierze taśmowe Macierze trójdiagonalne Metody bezpośrednie Stacjonarne metody iteracyjne Metoda Jacobiego Metoda Gaussa-Seidela Złożoność stacjonarnych metod iteracyjnych Metody przestrzeni Kryłowa CG GMRES Ściskanie macierzy Literatura Ćwiczenia. Układy liniowe z macierzami rzadkimi Wielkie układy równań liniowych Wraz z coraz większymi modelami pojawiającymi się w praktyce obliczeniowej, coraz częściej zachodzi potrzeba rozwiązywania zadań algebry liniowej, w której macierze są co prawda wielkiego wymiaru, ale najczęściej rozrzedzone, to 1
2 znaczy jest w nich bardzo dużo zer. Bardzo często zdarza się, że macierz wymiaru N ma tylko O(N) niezerowych elementów. Wykorzytanie tej specyficznej własności macierzy nie tylko prowadzi do algorytmów istotnie szybszych od ich analogów dla macierzy gęstych (to znaczy takich, które (w założeniu) mają N 2 elementów), ale wręcz są jedynym sposobem na to, by niektóre zadania w ogóle stały się rozwiązywalne przy obecnym stanie techniki obliczeniowej! Jednym ze szczególnie ważnych źródeł układów równań z macierzami rozrzedzonymi są np. równania różniczkowe cząstkowe (a więc np. modele pogody, naprężeń w konstrukcji samochodu, przenikania kosmetyków do głębszych warstw skóry, itp.). Modele wielostanowych systemów kolejkowych (np. routera obsługującego wiele komputerów) także prowadzą do gigantycznych układów równań z macierzami rozrzedzonymi o specyficznej strukturze. Z reguły zadania liniowe wielkiego wymiaru będą miały strukturę macierzy rozrzedzonej, gdyż najczęściej związki pomiędzy niewiadomymi w równaniu nie dotyczą wszystkich, tylko wybranej grupy. Przykład 1.1 (Macierz z kolekcji Boeinga) Spójrzmy na macierz sztywności dla modelu silnika lotniczego, wygenerowaną swego czasu w zakładach Boeinga i pochodzącą z dyskretyzacji pewnego równania różniczkowego cząstkowego. Pochodzi z kolekcji Tima Davisa. Jest to mała macierz, wymiaru 8032 (w kolekcji spotkasz równania z milionem i więcej niewiadomych). Rysunek 1.1. Struktura niezerowych elementów macierzy bcsstk38. Jej współczynnik wypełnienia (to znaczy, stosunek liczby niezerowych do wszystkich elementów macierzy) wynosi jedynie 0.006, a więc macierz jest bardzo rozrzedzona: w każdym wierszu są średnio tylko 44 niezerowe elementy. Ten fragment nie pojawi się na WIKI 2
3 Przykład 1.2 (Macierz MBEACXC) Dane pochodzą z serwisu MatrixMarket. Jest to niezbyt duża macierz, wymiaru , niesymetryczna, o elementach rzeczywistych. Źródłem tej macierzy jest pewien model ekonomiczny. Rysunek 1.2. Struktura niezerowych elementów macierzy MBEACXC Tylko pozornie macierz ta wydaje się dość gęsta, w rzeczywistości jej współczynnik wypełnienia wynosi około 20 procent. 1.1 Reprezentacja macierzy rzadkich Zacznijmy od sposobu przechowywania macierzy rozrzedzonych. Naturalnie, nie ma sensu przechowywać wszystkich zerowych jej elementów: wystarczy ograniczyć się do zachowania tych niezerowych! W ten sposób zmniejszamy zarówno wymagania pamięciowe, jak i liczbę operacji zmiennoprzecinkowych potrzebnych do prowadzenia działań na macierzy (np. w przypadku mnożenia macierzy przez wektor, nie będziemy mnożyć przez zera!) Format współrzędnych Do zapamiętania macierzy A wymiaru N M o NNZ niezerowych elementów wykorzystujemy trzy wektory: I, J oba typu int oraz V, typu double, wszystkie o długości NNZ, przy czym A I[k],J[k] = V [k], k = 0,..., NNZ 1. 3
4 Rysunek 1.3. Format AIJ W tym formacie wprowadzane są macierze rzadkie do Octave a i MATLABa: A = sparse(i,j,v,n,n); Jednak wewnętrznie przechowywane są w innym formacie, o którym poniżej. Przykład 1.3 Pokażemy jak w Octave wprowadzić macierz rozrzedzoną. octave:10> I = [1, 1, 1, 2, 3, 1, 4]; octave:11> J = [1, 3, 2, 2, 3, 4, 4]; octave:12> V = [1, 2, 3, 4, 5, 6, 7]; octave:13> N = 4; octave:14> A = sparse(i,j,v,n,n) A = Compressed Column Sparse (rows = 4, cols = 4, nnz = 7) (1, 1) > 1 (1, 2) > 3 (2, 2) > 4 (1, 3) > 2 (3, 3) > 5 (1, 4) > 6 (4, 4) > 7 octave:15> spy(a); Strukturę jej niezerowych elementów ukaże nam polecenie spy(a). Tak właśnie zostały wygenerowane obrazki macierzy w niniejszym wykładzie Format spakowanych kolumn (wierszy) Format współrzędnych nie narzucał żadnego uporządkowania elementów macierzy można było je umieszczać w dowolnej kolejności. Narzucenie sensownego porządku mogłoby wspomóc realizację wybranych istotnych operacji na macierzy, na przykład, aby wygodnie było realizować działanie (prawostronnego) mnożenia macierzy przez wektor, dobrze byłoby przechowywać elementy macierzy wierszami. Tak właśnie jest zorganizowany format spakowanych wierszy ((ang. Compressed Sparse Row, CSR)). Analogicznie jest zdefiniowany format spakowanych kolumn ((ang. Compressed Sparse Column, CSC)), którym zajmiemy się bliżej. 4
5 Podobnie jak w przypadku formatu współrzędnych, macierz w formacie CSC jest przechowywana w postaci trzech wektorów: AV jest wektorem typu double o długości N N Z, zawierającym kolejne niezerowe elementy macierzy A wpisywane kolumnami, AI jest wektorem typu int o długości NNZ, zawierającym numery wierszy macierzy A odpowiadających elementom z AV. Natomiast zamiast tablicy J, jak to było w formacie współrzędnych, mamy krótszy wektor typu int, AP, o długości M, zawierający na j-tym miejscu indeks pozycji w AV, od którego rozpoczynają się w AV elementy j-tej kolumny macierzy A. Rysunek 1.4. Format CSC Mamy więc zależność, przy założeniu, że AP [0] = 0, A AI[AP [j]+k],j+1 = AV [AP [j]+k], j = 0,..., M 1, k = 0,..., AP [j+1] 1. Taki (z drobnymi modyfikacjami) format macierzy wykorzystują np. pakiety ARPACK i UMFPACK (a także, wewnętrznie, Octave i MATLAB) Format diagonalny Znacznie mniej uniwersalny niż poprzednie i dlatego rzadziej spotykany. Kolejne diagonale macierzy przechowujemy w kolejnych wierszach macierzy P N, gdzie P jest liczbą niezerowych diagonal w A R N N. Szczególnie wygodny do reprezentacji macierzy taśmowych. Wykorzystywany m.in. przez funkcję LAPACKa DGBSV służącą rozwiązywaniu równań z macierzami taśmowymi Uwagi praktyczne Mnożenie macierzy w formacie AIJ przez wektor jest kilka razy wolniejsze w porównaniu do macierzy w formacie CSC/CSR (z tych dwóch oczywiście (dlaczego?) CSR jest najszybszy). Co więcej, okazuje się, że w typowych implementacjach, mnożenie macierzy rozrzedzonej (reprezentowanej np. w formacie CSC) przez wektor jest mało efektywne, mniej więcej na poziomie dziesięciu procent możliwości obliczeniowych procesora. Jeśli już poważnie myśleć o przyspieszeniu mnożenia macierzy przez wektor (np. gdy chcemy stosować iteracyjną metodę rozwiązywania układu równań z tą macierzą), warto rozważyć inne formaty łączące w sobie podział macierzy na bloki (tak, jak w algorytmach BLAS) i przechowywanie (w zasadzie) tylko niezerowych elementów macierzy. 5
6 1.2 Macierze specjalne Zajmiemy się teraz zadaniem rozwiązywania układu równań liniowych Ax = b, ale w sytuacji, gdy macierz A jest rozrzedzona i dużego wymiaru. Dokonamy przeglądu kilku rodzajów algorytmów mających na celu wykorzystanie rozrzedzenia macierzy dla obniżenia kosztu wyznaczenia rozwiązania układu. Należy pamiętać, że z reguły najlepsze wyniki uzyskuje się, gdy konkretny algorytm dobierze się do konkretnej macierzy. W zastosowaniach pojawiają się m.in. macierze rzadkie o bardzo szczególnej strukturze, dla nich warto stosować wyspecjalizowane algorytmy Macierze taśmowe Macierz A taka, że dla i j d, a ij = 0, nazywamy macierzą taśmową z rozstępem d, o szerokości pasma 2d + 1. Łatwo sprawdzić, że algorytm eliminacji Gaussa (bez wyboru elementu głównego) nie spowoduje dodatkowego wypełnienia w takiej macierzy (a więc da się wykonać w miejscu). W przypadku konieczności wyboru elementu głównego, pesymistyczne oszacowanie rozstępu macierzy rozkładu LU jest równe max{2d, N} tak więc, dla niezbyt dużych d wciąż wynikowa macierz jest taśmowa. W szczególności, gdy macierz jest taśmowa z pasmem o rozstępie d i jednocześnie diagonalnie dominująca, wtedy rozkład LU takiej macierzy da się wykonać w miejscu kosztem O(d 2 N), czyli liniowym. W LAPACKu zaimplementowano szybki solver równań z macierzami taśmowymi, DGBSV, ale wymagający specjalnego sposobu przechowywania macierzy, wykorzystującego format diagonalny Macierze trójdiagonalne Szczególnym przypadkiem macierzy taśmowych są macierze trójdiagonalne, tzn. taśmowe o rozstępie d = 1: a 1 c 1 b 2 a 2 c 2 A =. b 3 a cn 1 b N a N Zadanie rozwiązywania równań z taką macierzą Ax = e jest bardzo często spotykane, więc warto przytoczyć algorytm w całej okazałości popularnie zwany algorytmem przeganiania (niektóre źródła nazywają go algorytmem Thomasa). 6
7 Zacznijmy jednak od stwierdzenia, kiedy macierz trójdiagonalna nie wymaga wyboru elementu głównego: Stwierdzenie 1.4 Jeśli macierz A ma słabo dominującą diagonalę, tzn. a i b i + c i, 1 i N, (b 1 = 0 = c N ) i przynajmniej dla jednego indeksu i mamy powyżej ostrą nierówność >, to algorytm przeganiania jest wykonalny bez przestawień wierszy. Ponadto wymaga on 7N operacji arytmetycznych, a więc jest prawie optymalny. d 1 = a 1; f 1 = e 1; for (i = 2; i <= N; i++) { l = b i/a i 1; d i = a i l c i 1; f i = e i l f i 1; } x 1 = f N ; for (i = N 1; i >= 1; i ) x i = f i c i x i+1; Metoda przeganiania 1.3 Metody bezpośrednie Przykład 1.5 (Strzałka Wilkinsona) Rozważmy układ równań z macierzą diagonalnie dominującą postaci A =.... gdzie oznacza jakiś niezerowy element. Łatwo sprawdzić, że chociaż wyjściowa macierz jest rozrzedzona, to zastosowanie do niej eliminacji Gaussa powoduje, że w wyniku dostajemy gęste czynniki rozkładu. Tymczasem wystarczy odwrócić kolejność równań i numerację niewiadomych (co dla macierzy jest równoznaczne z odwróceniem porządku wierszy i kolumn, korzystając z pewnej (jakiej?) macierzy permutacji P ):... Ã = P AP T. = Wtedy okazuje się, że rozkład naszej macierzy nie powoduje już wypełnienia czynników rozkładu! 7
8 Właśnie na tym polega główny problem w rozwiązywaniu układów z macierzami rzadkimi metodami bezpośrednimi: jak maksymalnie wykorzystać rozrzedzenie macierzy tak, by czynniki rozkładu były możliwie mało wypełnione. Albowiem wiedząc to będziemy mogli ograniczyć się jedynie do fizycznego wyznaczenia wartości niezerowych elementów macierzy rozkładu. Ponadto wymagania pamięciowe algorytmu nie będą istotnie wykraczać ponad ilość pamięci potrzebnej na przechowanie danych (tzn. macierzy). W ogólnym przypadku rozwiązanie takiego zadania jest trudne i większość algorytmów opiera się na pewnych heurystykach, które jednak w praktyce warto wspomóc wcześniejszą analizą konkretnego układu równań jaki mamy rozwiązać. Najczęściej dąży się do takiego przenumerowania równań i niewiadomych, by w efekcie z góry przewidzieć, gdzie wystąpią zera w macierzach rozkładu i, by takich zer było jak najwięcej (by wypełnienie było jak najmniejsze)! Na architekturach z pamięcią hierarchiczną dąży się także do tego, by w trakcie rozkładu można było korzystać z BLAS Level 3, a więc permutacje wierszy i kolumn macierzy muszą to także brać pod uwagę. Stosuje się kilka strategii wyznaczania korzystnych permutacji ((ang. reorderingu)), z których warto wymienić przybliżone algorytmy minimalnego stopnia ((ang. approximate minimum degree, AMD)), np. AMD; techniki podziału grafów na (prawie) rozłączne składowe (ang. nested dissection, ND), np. METIS. Używają ich biblioteki takie jak UMFPACK, czy HSL. W Octave mamy do dyspozycji także kilka procedur generujących takie permutacje, w tym: colamd (AMD dla macierzy niesymetrycznych) oraz symamd (AMD dla macierzy symetrycznych). Większy wybór oferuje MATLAB, jednak należy bezwzględnie pamiętać o jednym: nie ma uniwersalnej metody reorderingu i dla konkretnej macierzy może istnieć specjalna metoda, która da oszałamiające rezultaty, podczas gdy standardowe podejścia nie dadzą efektu. Przykład 1.6 (Rozwiązywanie układu z macierzą rozrzedzoną w Octave) Najprostszy sposób na wykorzystanie metody bezpośredniego rozwiązywania układu z macierzą rzadką to zastosowanie znanego nam operatora do macierzy typu rozrzedzonego: A = sparse(...); x = A \ b; Octave domyślnie przyłoży do A reordering colamd i następnie skorzysta z biblioteki UMFPACK, by rozwiązać taki układ. Dodatkowo, badane jest wcześniej, czy macierz nie jest przypadkiem taśmowa o wąskiej wstędze: jeśli jest, to korzysta się z LAPACKa. (Jak widzisz, operator rozwiązywania układu równań jest mocno przeciążony: działa i na macierzach kwadratowych, i na prostokątnych, i na rozrzedzonych na każdym rodzaju w inny sposób. Nie dziwi Cię chyba, dlaczego wygodnie było napisać Octave w C++?) 8
9 Przykład 1.7 (Wypełnienie pewnej macierzy w zależności od użytego reorderingu) Rozważmy ponownie macierz pochodzącą z kolekcji Tima Davisa. Jest to macierz symetryczna, dodatnio określona, wymiaru 8032, o elementach niezerowych i, w konsekwencji, o wypełnieniu około 0.6 procent. Rysunek 1.5. Struktura niezerowych elementów macierzy. Zobaczymy, jak w zależności od użytego algorytmu permutacji kolumn i wierszy poradzi sobie algorytm rozkładu Cholesky ego. Rysunek 1.6. Czynnik rozkładu Cholesky ego L wykonanego standardowym algorytmem. Czas rozkładu:
10 Rysunek 1.7. Czynnik rozkładu Cholesky ego L z reorderingiem COLAMD. Czas rozkładu: Rysunek 1.8. Czynnik rozkładu Cholesky ego L z reorderingiem SYMAMD. Czas rozkładu: s. Prawie dwa razy szybciej niż bez reorderingu, chociaż i tak wskutek wzrostu wypełnienia macierzy w dolnym trójkącie mamy aż 2 procent niezerowych elementów. 10
11 Rysunek 1.9. Czynnik rozkładu Cholesky ego L z odwrotnym reorderingiem Cuthill-McKee. Czas rozkładu: Rysunek Czynnik rozkładu Cholesky ego L z jeszcze innym (bardzo tanim, ale jak widać czasem zupełnie złym) reorderingiem. Czas rozkładu: Na zakończenie popatrzmy, jak ważne jest spostrzeżenie symetrii macierzy: 11
12 Rysunek Rozkład LU, czynnik L (bez reorderingu). Czas rozkładu LU: s. Nieakceptowalny, podobnie jak drastyczne wypełnienie macierzy. Rysunek Rozkład LU, czynnik U (bez reorderingu) Jak widać, w naszym przypadku standardowe algorytmy (COLAMD i SY- MAMD) poradziły sobie całkiem nieźle, chociaż wypełnienie i tak znacząco wzrosło. Zapewne, dla tej macierzy, która jest specyficznego typu pochodzi z dyskretyzacji równania różniczkowego algorytm ND mógłby tu jeszcze lepiej zadziałać. 12
13 1.4 Stacjonarne metody iteracyjne Gdy macierz jest rozrzedzona, mnożenie takiej macierzy przez wektor jest bardzo tanie (koszt jest proporcjonalny do liczby niezerowych elementów macierzy). Dlatego, jeśli możemy zadowolić się rozwiązaniem przybliżonym układu, a w zamian osiągnąć je tanim kosztem, warto rozważyć metody iteracyjne. Najprostsze metody iteracyjne (najprostsze w analizie i implementacji, ale jak można się domyślić w praktyce najmniej efektywne) polegają na rozkładzie macierzy na część łatwo odwracalną, M, i resztę, Z. Dokładniej, jeśli M jest nieosobliwa, to równanie Ax = b można zapisać jako zadanie punktu stałego gdzie Z = M A. Inaczej: Mx = Nx + b, x = M 1 (Zx + b), i zastosować doń metodę iteracji prostej Banacha: x k+1 = M 1 (Zx k + b). Takie metody nazywamy stacjonarnymi metodami iteracyjnymi. Aby przeanalizować zbieżność takiej metody, warto rozpatrzyć przypadek ogólniejszy x k = Bx k 1 + c, (1) dla pewnej macierzy B oraz wektora c. (Dla stacjonarnej metody iteracyjnej, B = M 1 Z oraz c = M 1 b.) W tym przypadku x k x = B k (x 0 x ), a stąd i z nierówności B k B k, mamy x k x B k x 0 x. Warunkiem dostatecznym zbieżności iteracji prostych jest więc B < 1. Okazuje się, że warunkiem koniecznym i dostatecznym zbieżności tej iteracji dla dowolnego wektora startowego x 0 jest ρ = max{ λ : λ jest wartością własną B} < 1. Tak więc, metody oparte na iteracji prostej będą zbieżne liniowo z ilorazem ρ. Zaletą stacjonarnych metod iteracyjnych jest również ich prostota, przez co są one łatwe do zaprogramowania, co łatwo zobaczyć na przykładach metod: Jacobiego i Gaussa Seidela, które teraz omówimy Metoda Jacobiego Biorąc M = diag(a), gdzie diag(a) jest macierzą diagonalną składającą się z wyrazów stojących na głównej przekątnej macierzy A, układ Ax = b jest równoważny układowi Mx = Zx + b, 13
14 a stąd (o ile na przekątnej macierzy A nie mamy zera) otrzymujemy metodę iteracyjną x k = Bx k 1 + c, gdzie B = M 1 Z i c = M 1 b, zwaną metodą Jacobiego. Rozpisując ją po współrzędnych dostajemy (numer iteracji wyjątkowo zaznaczamy w postaci górnego indeksu) układ rozszczepionych równań: x (k) i = 1 b i a ij x (k 1) j, a ii j i co znaczy dokładnie tyle, że w i-tym równaniu wyjściowego układu przyjmujemy za współrzędne x wartości z poprzedniej iteracji i na tej podstawie wyznaczamy wartość x i. Twierdzenie 1.8 (O zbieżności metody Jacobiego) W metodzie Jacobiego warunek dostateczny zbieżności, B < 1, jest spełniony np. wtedy, gdy macierz A ma dominującą przekątną, tzn. gdy a i,i > j i a i,j, i = 1,..., N. (2) Dowód. Rzeczywiście, ponieważ wyraz (i, j) macierzy M 1 Z wynosi 0 dla i = j oraz a i,j /a i,i dla i j, a więc M 1 Z = max = max 1 i N N 1 i N j=1,j i a i,j / a i,i N a i,j / a i,i 1 < 1, j=1 przy czym ostatnia nierówność wynika z warunku diagonalnej dominacji. Przykład 1.9 (Macierz laplasjanu) Macierz N N, zwana macierzą jednowymiarowego laplasjanu 2 1. L = pojawia się w bardzo wielu zastosowaniach, także jako podzadanie w algorytmach numerycznych. Ta macierz jest macierzą taśmową, symetryczną i dodatnio określoną, więc układ równań z tą macierzą można bez trudu rozwiązać metodami bezpośrednimi, kosztem O(N). Stosując do niej metodę Jacobiego mamy M = 2I oraz Z = L M. Obliczając normę macierzy iteracji Jacobiego dostajemy M 1 Z = 1, co nie rozstrzyga jeszcze o jej zbieżności lub niezbieżności. Potrzebna będzie bardziej subtelna analiza. Okazuje się, że są znane wzory na wartości własne macierzy L: 14
15 ( ) λ j = 4 sin 2 jπ, 2(N + 1) dla 1 j N. W konsekwencji, wartościami własnymi M 1 Z = 1 2 Z = 1 2 L I są liczby µ i = 1 2 λ i 1. Ponieważ 0 < µ i < 1, znaczy to, że metoda Jacobiego jest zbieżna dla macierzy L. Z drugiej strony, nie dajmy się zwieść optymizmowi matematyka ( nie martw się, jest zbieżny... ): nietrudno sprawdzić, że Z 2 = 1 O(N 2 ) < 1, co oznacza, że metoda Jacobiego choć zbieżna dla dużych N staje się zbieżna tak wolno, że w praktyce bezużyteczna! Metoda Gaussa-Seidela Ten fragment nie pojawi się na WIKI Ciekawostką jest, że Gauss nie miał z nią nic wspólnego, a Seidel był podobno jej przeciwnikiem... Heurystyka tej metody opiera się na zmodyfikowaniu metody Jacobiego tak, by w każdym momencie iteracji korzystać z najbardziej aktualnych współrzędnych przybliżenia rozwiązania x. Rzeczywiście, przecież rozwiązując równanie metody Jacobiego: x (k) i = 1 b i a ij x (k 1) j, a ii j i nietrudno zauważyć, że w części sumy moglibyśmy odwoływać się do dokładniejszych wartości x (k) j : dla j < i, tzn. x (k) i = 1 b i a ij x (k) j a ii j<i j>i a ij x (k 1). j W języku rozkładu macierzy A = M Z i iteracji x k+1 = M 1 (Zx k + b) mamy więc M = tril(a) (dolny trójkąt macierzy A). Twierdzenie 1.10 (O zbieżności metody Gaussa-Seidela) Jeśli macierz A jest diagonalnie dominująca, to metoda Gaussa Seidela jest zbieżna dla dowolnego wektora startowego x 0. Inny wariant tej metody dostalibyśmy, biorąc za M górny trójkąt macierzy A. Metoda Gaussa Seidela jest w wielu przypadkach rzeczywiście szybciej zbieżna od metody Jacobiego, np. tak jest w przypadku macierzy jednowymiarowego Laplasjanu. Wciąż jednak, dodajmy, dla zadań bardzo źle uwarunkowanych jej zbieżność jest zbyt wolna by ją stosować jako samodzielną metodę. 15
16 Uwaga 1.11 Obie metody, Jacobiego i (zwłaszcza) Gaussa Seidela stosuje się także czasem w prostych algorytmach rozwiązywania układów równań nieliniowych: ich zaletą jest to, że głównym składnikiem iteracji jest rozwiązywanie skalarnego równania nieliniowego na każdym kroku metody Złożoność stacjonarnych metod iteracyjnych Zastanówmy się teraz nad złożonością metod iteracyjnych. Ponieważ możemy jedynie znaleźć pewne przybliżenie rozwiązania dokładnego x, przez złożoność metody będziemy rozumieli koszt kombinatoryczny obliczenia x k z zadaną dokładnością ɛ > 0. Dla uproszczenia założymy, że medoda jest zbieżna liniowo z ilorazem ρ. Zauważmy, że aby zredukować błąd początkowy do ɛ > 0, wystarczy wykonać k = k(ɛ) iteracji, gdzie k spełnia czyli ρ k x 0 x ɛ, k log(1/ɛ) log(1/ x 0 x ). log(1/ρ) Liczba ta zależy więc w istotny sposób od błędu początkowego i (przede wszystkim) od współczynnika redukcji błędu ρ, natomiast zależność od dokładności ɛ i wymiaru N układu jest dużo mniej istotna (w zadaniach praktycznych takich jak jednowymiarowy laplasjan jednak często okazuje się, że... ρ zależy od N!). Zakładając, że koszt jednej iteracji wynosi c = c(n) (c(n) jest tym mniejszy, im mniejsza jest liczba niezerowych elementów macierzy A), złożoność metody jest proporcjonalna do c(n) log(1/ɛ) log(1/ρ). Stąd oczywisty wniosek (prawdziwy nie tylko dla metod stacjonarnych), że metody iteracyjne warto stosować zamiast metod bezpośrednich w przypadku, gdy wymiar N układu Ax = b jest duży, oraz macierz A układu jest rozrzedzona, tzn. ma stosunkowo niewielką liczbę elementów niezerowych, np. proporcjonalną do N. Układy o tych własnościach powstają często przy numerycznym rozwiązywaniu równań różniczkowych cząstkowych. 1.5 Metody przestrzeni Kryłowa Zupełnie inny pomysł na realizację metody iteracyjnej przedstawiają metody przestrzeni Kryłowa, gdzie kolejne przybliżenie x k dobiera się w taki sposób, by minimalizowało pewną miarę błędu na podprzestrzeni Kryłowa K k = span{r, A r,..., A k 1 r}, 16
17 gdzie r = b Ax 0 jest residuum na początku iteracji. (Zwróć uwagę, że przestrzeń Kryłowa jest rozpięta przez kolejne wektory metody potęgowej to nie przypadek!). W zależności od wyboru sposobu miary błędu, dostajemy inną metodę iteracyjną, takie jak CG, GMRES, PCR, BiCG, i inne. Tutaj omówimy pokrótce tylko najpopularniejszą: CG CG Metoda gradientów sprzężonych, w skrócie CG ((ang. conjugate gradients)), działa przy założeniu, że A jest symetryczna i dodatnio określona. Kolejne przybliżenie x k ma minimalizować błąd w normie energetycznej indukowanej przez A, x k x A = (x k x) T A(x k x) na przestrzeni afinicznej x 0 + K k. Okazuje się (co nie jest oczywiste trzeba skorzystać z rozmaitych własności ortogonalności generowanych wektorów), że takie zadanie minimalizacji daje się bardzo efektywnie rozwiązać, skąd dostajemy bardzo zwarty algorytm: r = b A x; ρ 0 = r 2 2; β = 0; k = 1; while (!stop) { p = r + β p; w = A p; α = ρ k 1 /p T w; x = x + α p; r = r α w; ρ k = r 2 2; β = k++; } ρ k ρ k 1 ; Metoda CG Jak widać, całą iterację da się wykonać przechowując w pamięci tylko kilka wektorów (a nie, jak możnaby się obawiać, całą przestrzeń K k ), a najdroższym jej elementem jest mnożenie macierzy przez wektor. Twierdzenie 1.12 (O zbieżności CG jako metody bezpośredniej) Niech A R N N będzie symetryczna i dodatnio określona. Algorytm CG znajdzie dokładne rozwiązanie po co najwyżej N iteracjach. Powyższe twierdzenie, choć teoretycznie interesujące, ma małą wartość praktyczną z dwóch powodów: dla bardzo dużych N, wykonanie N iteracji może być wciąż zbyt kosztownym zadaniem; 17
18 ponieważ w arytmetyce skończonej precyzji ortogonalność z której w bardzo istotny sposób korzysta się przy wyprowadzeniu algorytmu pogarsza się z iteracji na iterację i w konsekwencji, po wielu iteracjach, jakość x k przestaje się poprawiać. Dlatego wygodniej potraktować CG jako metodę iteracyjną. Zachodzi bowiem Twierdzenie 1.13 (O zbieżności CG jako metody iteracyjnej) Po k iteracjach metody CG, x k x A 2 ( cond(a) 1 cond(a) + 1 ) k x 0 x A, gdzie cond(a) = A 2 A GMRES Metoda GMRES ((ang. Generalized Minimum RESidual)) nie wymaga ani symetrii, ani dodatniej określoności macierzy, jest więc bardziej uniwersalna, choć też bardziej kosztowna od CG. Jej szczegółowe omówienie, w tym oszacowania szybkości zbieżności wykracza niestety poza ramy niniejszego wykładu Ściskanie macierzy Zbieżność wszystkich poznanych metod iteracyjnych zależy od własności spektralnych macierzy układu. Pojawiające się w zastosowaniach macierze często mają niekorzystne własności spektralne (np. bardzo duży wskaźnik uwarunkowania), przez co metody iteracyjne zbiegają na nich bardzo wolno. Dlatego bardzo korzystne może być wstępne przetransformowanie układu Ax = b z macierzą o niekorzystnych własnościach, do układu MAx = Mb, gdzie macierz M A ma znacznie korzystniejsze własności z punktu widzenia używanej metody iteracyjnej. W przypadku macierzy symetrycznych widzieliśmy, że kluczowe znaczenie dla zbieżności metody miał rozkład wartości własnych: jeśli wartości własne były bardzo rozrzucone po prostej, to uwarunkowanie było bardzo duże i w konsekwencji zbieżność powolna. Aby zbieżność była szybsza, kluczowe jest, by: wartości własne M A były upakowane w klastrach najlepiej wszystkie w (małym) otoczeniu wartości 1 18
19 Jeśli więc chcielibyśmy przekształcić macierz tak, by metoda iteracyjna dla M A zbiegała szybko, musimy w jakiś sposób ścisnąć spektrum macierzy A w okolice jedności. Taką operację nazywamy ściskaniem ((ang. preconditioning)), a macierz M imadłem. Aby całość miała sens, macierz ściskająca M powinna: być łatwa w konstrukcji, być tania w mnożeniu przez wektor (głównym elementem każdej metody iteracyjnej jest mnożenie macierzy przez wektor: M (A x)), macierz M A powinna mieć znacznie korzystniejsze własności z punktu widzenia używanej metody iteracyjnej. Kilka ekstremalnych propozycji na macierz imadła to M = I (łatwa w konstrukcji i tania w mnożeniu, ale niestety nic nie polepsza...) oraz M = A 1 (rewelacyjnie poprawia zbieżność metody iteracyjnej, dając zbieżność w jednej iteracji, ale bardzo droga w konstrukcji i mnożeniu). Widać więc, że należy poszukiwać czegoś pośredniego, co niskim kosztem przybliża działanie macierzy odwrotnej. Dlatego jednym z powszechniej stosowanych (aczkolwiek wciąż nie najbardziej skutecznych) sposobów ściskania są te oparte na zastosowaniu jednego kroku klasycznej metody iteracyjnej. Rysunek Zbieżność metody CG bez żadnego ściskania oraz ściśniętej imadłem opartym na jednej iteracji (blokowej) metody Jacobiego. Inne sposoby ściśnięcia macierzy wykorzystują np. techniki tzw. niepełnego rozkładu macierzy, albo w specyficznych przypadkach tzw. metody wielosiatkowe. Okazuje się, że zarówno CG jak i GMRES da się zaimplementować tak, by w jednej iteracji było konieczne tylko jedno mnożenie przez macierz imadła. 19
20 1.6 Literatura W celu dogłębnego zapoznania się z omawianym materiałem, przeczytaj rozdział 4.6 i 4.7 w D. Kincaid, W. Cheney, Analiza numeryczna, Wydawnictwa Naukowo- Techniczne, Warszawa, Tym razem wymienione rozdziały nie wystarczą do dogłębnego zrozumienia omawianych treści. Warto więc sięgnąć po jeden z podręczników C. T. Kelley, Iterative Solution of Systems of Linear and Nonlinear Equations, SIAM, 1995, Y. Saad, Iterative Methods for Sparse Linear Systems, PWS, Ćwiczenia. Układy liniowe z macierzami rzadkimi Zadanie 1.1. [Metoda Richardsona] Jedną z najprostszych klasycznych metod iteracyjnych dla równania Ax = b jest metoda Richardsona, zadana wzorem x k+1 = x k + τ(b Ax k ), gdzie τ jest pewnym parametrem. Gdy τ = 1, mamy do czynienia ze zwykłą metodą iteracji prostej, która najczęściej nie będzie zbieżna, dlatego wybór parametru τ jest kluczowy dla skuteczności metody. Dla A symetrycznej, dodatnio określonej sprawdź, przy jakich założeniach o τ metoda będzie zbieżna do rozwiązania x z dowolnego wektora startowego x 0 i oceń szybkość tej zbieżności. Testuj na macierzy jednowymiarowego laplasjanu L różnych wymiarów. Jak najefektywniej zaimplementować mnożenie przez L? Wskazówka: Zadanie można rozwiązać przez analogię do opisywanego w wykładzie przypadku zastosowania metody Jacobiego do macierzy jednowymiarowego laplasjanu: wystarczy uogólnić! Rozwiązanie: Niech ekstremalnymi wartościami własnymi macierzy A będą 0 < λ min λ max. Ponieważ macierz iteracji metody Richardsona B = I τa, to jej wartości własne muszą leżeć w przedziale [1 τλ max, 1 τλ min] i oczywiście aby iteracja miała sens, τ > 0 (dlaczego?). Co więcej, B 2 < 1 wtedy i tylko wtedy, gdy 0 < τ < 2 λ max, a najmniejszą normę spektralną macierzy B uzyskamy, gdy τ = i wówczas x k x 2 2 λ max+λ min λmax λmin λ max + λ min x k 1 x 2. (Przy okazji zauważ, że gdyby macierz A nie była określona, tzn. miałaby zarówno dodatnie, jak i ujemne wartości własne, to metoda Richardsona mogłaby w ogóle nie być zbieżna (dla pewnych wektorów startowych)) Jeśli chodzi o mnożenie przez macierz jednowymiarowego laplasjanu, to najprościej wcale nie używać struktury macierzy! Rzeczywiście, jedyne, czego potrzebujemy to operacja mnożenia wektora przez macierz L, a to realizuje pętla: 20
21 Listing: void LapMult(double x, int N, double y) / Mnożenie wektora przez macierz 1 wym laplasjanu L wymiaru N Wejście: x wektor, który mnożymy przez L N jego długość Wyjście: y wynik: y = Lx / { int i; for (i = 1; i < N 1; i++) y[i] = x[i 1] x[i] x[i+1]; y[0] = 2.0 x[0] x[1]; y[n 1] = x[n 2] x[n 1]; } Zadanie 1.2. Zaimplementuj operacje: mnożenia macierzy A przez wektor x, wyłuskania wartości elementu A ij, zmiany wartości pewnego zerowego wyrazu macierzy na niezerową, jeśli macierz jest zadana w formacie AIJ, CSC, CSR. Przetestuj dla kilku macierzy z kolekcji MatrixMarket. Rozwiązanie: Dodawanie nowego elementu w formacie AIJ jest bardzo łatwe. W przeciwieństwie do pozostałych, w których trzeba zachowywać uporządkowanie. Mnożenie przez wektor najwygodniejsze jest w CSR, bo dodatkowo narzuca zasadę lokalności w przestrzeni. Wyłuskanie wartości jest najmniej efektywne w formacie AIJ. Szczegóły opisane są w rozdziale 3.5 książki Y. Saad, Iterative methods for sparse linear systems, PWS, Zobacz także implementacje w Fortranie, w pakiecie SPARSKIT, będącym czymś w rodzaju odpowiednika BLAS dla macierzy rozrzedzonych. Zadanie 1.3. [Konwersja formatu macierzy rzadkiej] Napisz procedurę aij2csr, konwertującą macierz w formacie AIJ do CSR i csr2aij, działającą w drugą stronę. 21
22 Rozwiązanie: Zobacz, jak to zrobiono w pakiecie SPARSKIT. Zadanie 1.4. Jak tanio rozwiązywać układ równań z macierzą cykliczną trójdiagonalną, tzn. a 1 c 1 b 1 b 2 a 2 c 2 A =. b 3 a cn 1 c N b N a N Dla uproszczenia załóżmy, że macierz jest dodatnio określona i symetryczna. Zaimplementuj opracowaną metodę, korzystając z BLASów i LAPACKa. Wskazówka: Rozwiązanie: Dziel i rządź! (Tylko: jak?) Gdyby pominąć ostatni wiersz i kolumnę, macierz byłaby trójdiagonalna, a my już wiemy, co z nią zrobić... Jak więc sprytnie pozbyć się ostatniej niewiadomej i ostatniego równania? W naszej macierzy wyróżnijmy ostatni wiersz i kolumnę: ( ) T v A = w T, a N gdzie T jest N 1 podmacierzą główną A, a 1 c 1 b 2 a 2 c 2. T = b 3 a.. 3, cn 2 b N 1 a N 1 natomiast w T = [c N, 0,..., 0, b N ], v = [b 1, 0,..., 0, c N 1] T. Mając rozkład T = LU, łatwo stąd wygenerować rozkład A, gdyż ( ) ( ) ( ) T v L U u w T = a N l T, 1 u N gdzie spełnione są zależności T = LU (rozkład LU macierzy trójdiagonalnej T ) Ul = w (rozwiązanie układu równań z macierzą dwudiagonalną) Lu = v (jw.) l T u + u N = a N. Zadanie 1.5. [CGNE] Ktoś mógłby sugerować, że skoro CG działa tylko dla macierzy symetrycznych, to dowolny układ Ax = b z macierzą nieosobliwą można transformować do równoważnego mu układu równań normalnych A T Ax = A T b, 22
23 którego macierz A T A jest już oczywiście macierzą symetryczną i dodatnio określoną. Wskaż potencjalne wady tej metody i podaj sposób jej implementacji. Wskazówka: Jakie jest uwarunkowanie macierzy A T A? Rozwiązanie: Nietrudno sprawdzić, że dla normy spektralnej macierzy, cond(a T A) = (cond(a)) 2, a więc w przypadku macierzy źle uwarunkowanych należy spodziewać się patologicznie dużej liczby iteracji. Chociaż dobre (symetryczne, dodatnio określone) imadło M mogłoby pomóc, np. MA T MAx = MA T Mb, to jednak znacznie lepiej stosować metody opracowane specjalnie dla macierzy niesymetrycznych, np. GMRES (oczywiście z nieodzownym ściskaniem macierzy, gdy jest źle uwarunkowana...). Implementacja metody iteracyjnej to tylko decyzja, jak realizować mnożenie przez A T A. Niedobra metoda to B = A T A;... while... y = B x; end gdyż B będzie bardziej wypełniona niż A. Znacznie lepiej... while... y = A x; y = (y A) ; end co realizuje się kosztem równym dwukrotnemu mnożeniu przez macierz A (w formacie AIJ) i nie wymaga dodatkowej pamięci. 23
Egzamin z Metod Numerycznych ZSI, Egzamin, Gr. A
Egzamin z Metod Numerycznych ZSI, 06.2007. Egzamin, Gr. A Imię i nazwisko: Nr indeksu: Section 1. Test wyboru, max 33 pkt Zaznacz prawidziwe odpowiedzi literą T, a fałszywe N. Każda prawidłowa odpowiedź
UKŁADY ALGEBRAICZNYCH RÓWNAŃ LINIOWYCH
Transport, studia I stopnia rok akademicki 2011/2012 Instytut L-5, Wydział Inżynierii Lądowej, Politechnika Krakowska Ewa Pabisek Adam Wosatko Uwagi wstępne Układ liniowych równań algebraicznych można
UKŁADY ALGEBRAICZNYCH RÓWNAŃ LINIOWYCH
Transport, studia niestacjonarne I stopnia, semestr I Instytut L-5, Wydział Inżynierii Lądowej, Politechnika Krakowska Ewa Pabisek Adam Wosatko Postać układu równań liniowych Układ liniowych równań algebraicznych
Zaawansowane metody numeryczne
Wykład 11 Ogólna postać metody iteracyjnej Definicja 11.1. (metoda iteracyjna rozwiązywania układów równań) Metodą iteracyjną rozwiązywania { układów równań liniowych nazywamy ciąg wektorów zdefiniowany
Metody numeryczne. Janusz Szwabiński. Metody numeryczne I (C) 2004 Janusz Szwabiński p.1/50
Metody numeryczne Układy równań liniowych, część II Janusz Szwabiński szwabin@ift.uni.wroc.pl Metody numeryczne I (C) 2004 Janusz Szwabiński p.1/50 Układy równań liniowych, część II 1. Iteracyjne poprawianie
Numeryczna algebra liniowa. Krzysztof Banaś Obliczenia Wysokiej Wydajności 1
Numeryczna algebra liniowa Krzysztof Banaś Obliczenia Wysokiej Wydajności 1 Numeryczna algebra liniowa Numeryczna algebra liniowa obejmuje szereg algorytmów dotyczących wektorów i macierzy, takich jak
Układy równań liniowych. Krzysztof Patan
Układy równań liniowych Krzysztof Patan Motywacje Zagadnienie kluczowe dla przetwarzania numerycznego Wiele innych zadań redukuje się do problemu rozwiązania układu równań liniowych, często o bardzo dużych
Analiza numeryczna Lista nr 3 (ćwiczenia) x x 2 n x.
Analiza numeryczna Lista nr 3 (ćwiczenia) Sprawdzić że macierz ma wartości własne2+ 222 2 2 Niechx R n Udowodnić że 2 0 0 x x 2 n x 3 NiechA R n n będzie macierzą symetryczną Wiadomo że wówczas istnieje
Zaawansowane metody numeryczne
Wykład 10 Rozkład LU i rozwiązywanie układów równań liniowych Niech będzie dany układ równań liniowych postaci Ax = b Załóżmy, że istnieją macierze L (trójkątna dolna) i U (trójkątna górna), takie że macierz
5. Rozwiązywanie układów równań liniowych
5. Rozwiązywanie układów równań liniowych Wprowadzenie (5.1) Układ n równań z n niewiadomymi: a 11 +a 12 x 2 +...+a 1n x n =a 10, a 21 +a 22 x 2 +...+a 2n x n =a 20,..., a n1 +a n2 x 2 +...+a nn x n =a
Wstęp do metod numerycznych Uwarunkowanie Eliminacja Gaussa. P. F. Góra
Wstęp do metod numerycznych Uwarunkowanie Eliminacja Gaussa P. F. Góra http://th-www.if.uj.edu.pl/zfs/gora/ 2012 Uwarunkowanie zadania numerycznego Niech ϕ : R n R m będzie pewna funkcja odpowiednio wiele
Wstęp do metod numerycznych Algebraiczna metoda gradientów sprzężonych. P. F. Góra
Wstęp do metod numerycznych Algebraiczna metoda gradientów sprzężonych P. F. Góra http://th-www.if.uj.edu.pl/zfs/gora/ 2015 Metoda gradientów sprzężonych motywacja Rozważmy funcję f : R N R f(x) = 1 2
Metody numeryczne Wykład 4
Metody numeryczne Wykład 4 Dr inż. Michał Łanczont Instytut Elektrotechniki i Elektrotechnologii E419, tel. 4293, m.lanczont@pollub.pl, http://m.lanczont.pollub.pl Zakres wykładu Metody skończone rozwiązywania
Rozwiązywanie układów równań liniowych metody przybliżone Materiały pomocnicze do ćwiczeń z metod numerycznych
Rozwiązywanie układów równań liniowych metody przybliżone Materiały pomocnicze do ćwiczeń z metod numerycznych Piotr Modliński Wydział Geodezji i Kartografii PW 14 stycznia 2012 P. Modliński, GiK PW Rozw.
Analiza numeryczna Kurs INP002009W. Wykłady 6 i 7 Rozwiązywanie układów równań liniowych. Karol Tarnowski A-1 p.
Analiza numeryczna Kurs INP002009W Wykłady 6 i 7 Rozwiązywanie układów równań liniowych Karol Tarnowski karol.tarnowski@pwr.wroc.pl A-1 p.223 Plan wykładu Podstawowe pojęcia Własności macierzy Działania
Numeryczna algebra liniowa
Numeryczna algebra liniowa Numeryczna algebra liniowa obejmuje szereg algorytmów dotyczących wektorów i macierzy, takich jak podstawowe operacje na wektorach i macierzach, a także rozwiązywanie układów
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
Normy wektorów i macierzy (5.3.1) Niech 1 X =[x x Y y =[y1 x n], oznaczają wektory przestrzeni R n, a yn] niech oznacza liczbę rzeczywistą. Wyrażenie x i p 5.3.1.a X p = p n i =1 nosi nazwę p-tej normy
Optymalizacja ciągła
Optymalizacja ciągła 5. Metody kierunków poparwy (metoda Newtona-Raphsona, metoda gradientów sprzężonych) Wojciech Kotłowski Instytut Informatyki PP http://www.cs.put.poznan.pl/wkotlowski/ 28.03.2019 1
WEKTORY I WARTOŚCI WŁASNE MACIERZY. = λ c (*) problem przybliżonego rozwiązania zagadnienia własnego dla operatorów w mechanice kwantowej
WEKTORY I WARTOŚCI WŁASNE MACIERZY Ac λ c (*) ( A λi) c nietrywialne rozwiązanie gdy det A λi problem przybliżonego rozwiązania zagadnienia własnego dla operatorów w mechanice kwantowej A - macierzowa
Macierze. Rozdział Działania na macierzach
Rozdział 5 Macierze Funkcję, która każdej parze liczb naturalnych (i, j) (i 1,..., n; j 1,..., m) przyporządkowuje dokładnie jedną liczbę a ij F, gdzie F R lub F C, nazywamy macierzą (rzeczywistą, gdy
04 Układy równań i rozkłady macierzy - Ćwiczenia. Przykład 1 A =
04 Układy równań i rozkłady macierzy - Ćwiczenia 1. Wstęp Środowisko Matlab można z powodzeniem wykorzystać do rozwiązywania układów równań z wykorzystaniem rozkładów macierzy m.in. Rozkładu Choleskiego,
Metody numeryczne I Równania nieliniowe
Metody numeryczne I Równania nieliniowe Janusz Szwabiński szwabin@ift.uni.wroc.pl Metody numeryczne I (C) 2004 Janusz Szwabiński p.1/66 Równania nieliniowe 1. Równania nieliniowe z pojedynczym pierwiastkiem
1 Metody rozwiązywania równań nieliniowych. Postawienie problemu
1 Metody rozwiązywania równań nieliniowych. Postawienie problemu Dla danej funkcji ciągłej f znaleźć wartości x, dla których f(x) = 0. (1) 2 Przedział izolacji pierwiastka Będziemy zakładać, że równanie
Układy równań i nierówności liniowych
Układy równań i nierówności liniowych Wiesław Krakowiak 1 grudnia 2010 1 Układy równań liniowych DEFINICJA 11 Układem równań m liniowych o n niewiadomych X 1,, X n, nazywamy układ postaci: a 11 X 1 + +
Wykład 5. Metoda eliminacji Gaussa
1 Wykład 5 Metoda eliminacji Gaussa Rozwiązywanie układów równań liniowych Układ równań liniowych może mieć dokładnie jedno rozwiązanie, nieskończenie wiele rozwiązań lub nie mieć rozwiązania. Metody dokładne
Rozdział 5. Macierze. a 11 a a 1m a 21 a a 2m... a n1 a n2... a nm
Rozdział 5 Macierze Funkcję, która każdej parze liczb naturalnych (i,j) (i = 1,,n;j = 1,,m) przyporządkowuje dokładnie jedną liczbę a ij F, gdzie F = R lub F = C, nazywamy macierzą (rzeczywistą, gdy F
Rozwiązywanie algebraicznych układów równań liniowych metodami iteracyjnymi
Rozwiązywanie algebraicznych układów równań liniowych metodami iteracyjnymi Plan wykładu: 1. Przykłady macierzy rzadkich i formaty ich zapisu 2. Metody: Jacobiego, Gaussa-Seidla, nadrelaksacji 3. Zbieżność
Metoda eliminacji Gaussa. Autorzy: Michał Góra
Metoda eliminacji Gaussa Autorzy: Michał Góra 9 Metoda eliminacji Gaussa Autor: Michał Góra Przedstawiony poniżej sposób rozwiązywania układów równań liniowych jest pewnym uproszczeniem algorytmu zwanego
Wstęp do metod numerycznych Faktoryzacja QR i SVD. P. F. Góra
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
Modyfikacja schematu SCPF obliczeń energii polaryzacji
Modyfikacja schematu SCPF obliczeń energii polaryzacji Zakład Metod Obliczeniowych Chemii 11 kwietnia 2006 roku 1 Po co? Jak? 2 Algorytm Analiza zbieżności 3 dla układów symetrycznych 4 Fulleren 5 Po co?
macierze jednostkowe (identyczności) macierze diagonalne, które na przekątnej mają same
1 Macierz definicja i zapis Macierzą wymiaru m na n nazywamy tabelę a 11 a 1n A = a m1 a mn złożoną z liczb (rzeczywistych lub zespolonych) o m wierszach i n kolumnach (zamiennie będziemy też czasem mówili,
ROZWIĄZYWANIE RÓWNAŃ NIELINIOWYCH
Transport, studia I stopnia Instytut L-5, Wydział Inżynierii Lądowej, Politechnika Krakowska Ewa Pabisek Adam Wosatko Postać ogólna równania nieliniowego Często występującym, ważnym problemem obliczeniowym
Plan wykładu. Obliczenia równoległe w zagadnieniach inżynierskich. Wykład 6 p. Rozwiazywanie układów równań. metody bezpośrednie,
Plan wykładu Obliczenia równoległe w zagadnieniach inżynierskich Wykład 6 Dr inż. Tomasz Olas olas@icis.pcz.pl Układy równań liniowych i metody ich rozwiazywania Metoda sprzężonych gradientów Macierze
Egzamin z Metod Numerycznych ZSI, Grupa: A
Egzamin z Metod Numerycznych ZSI, 06.2005. Grupa: A Nazwisko: Imię: Numer indeksu: Ćwiczenia z: Data: Część 1. Test wyboru, max 36 pkt Zaznacz prawidziwe odpowiedzi literą T, a fałszywe N. Każda prawidłowa
Laboratorium 5 Przybliżone metody rozwiązywania równań nieliniowych
Uniwersytet Zielonogórski Wydział Informatyki, Elektrotechniki i Telekomunikacji Instytut Sterowania i Systemów Informatycznych Elektrotechnika niestacjonarne-zaoczne pierwszego stopnia z tyt. inżyniera
3. Macierze i Układy Równań Liniowych
3. Macierze i Układy Równań Liniowych Rozważamy równanie macierzowe z końcówki ostatniego wykładu ( ) 3 1 X = 4 1 ( ) 2 5 Podstawiając X = ( ) x y i wymnażając, otrzymujemy układ 2 równań liniowych 3x
x y
Przykłady pytań na egzamin końcowy: (Uwaga! Skreślone pytania nie obowiązują w tym roku.). Oblicz wartość interpolacji funkcjami sklejanymi (przypadek (case) a), dla danych i =[- 4 5], y i =[0 4 -]. Jaka
Wstęp do metod numerycznych Eliminacja Gaussa Równania macierzowe. P. F. Góra
Wstęp do metod numerycznych Eliminacja Gaussa Równania macierzowe P. F. Góra http://th-www.if.uj.edu.pl/zfs/gora/ 2015 Co można zrobić z układem równań... tak, aby jego rozwiazania się nie zmieniły? Rozważam
Obliczenia równoległe w zagadnieniach inżynierskich. Wykład 6
Wykład 6 p. 1/?? Obliczenia równoległe w zagadnieniach inżynierskich Wykład 6 Dr inż. Tomasz Olas olas@icis.pcz.pl Instytut Informatyki Teoretycznej i Stosowanej Politechnika Częstochowska Plan wykładu
Sposoby tworzenia uwarunkowania wstępnego dla metody gradientów sprzężonych
Sposoby tworzenia uwarunkowania wstępnego dla metody gradientów sprzężonych Ten fakt, że matematyka obliczeniowa nie daje żadnych przepisów dla tworzenia operatora uwarunkowania wstępnego B, doprowadzi
Optymalizacja ciągła
Optymalizacja ciągła 4. Metody kierunków poprawy (metoda spadku wzdłuż gradientu) Wojciech Kotłowski Instytut Informatyki PP http://www.cs.put.poznan.pl/wkotlowski/ 21.03.2019 1 / 41 Plan wykładu Minimalizacja
Wstęp do metod numerycznych Metody iteracyjne Algebraiczna metoda gradientów sprzężonych. P. F. Góra
Wstęp do metod numerycznych Metody iteracyjne Algebraiczna metoda gradientów sprzężonych P. F. Góra http://th-www.if.uj.edu.pl/zfs/gora/ 2017 Metody iteracyjne Rozwiazanie układu równań liniowych, uzyskane
Funkcja kwadratowa. f(x) = ax 2 + bx + c,
Funkcja kwadratowa. Funkcją kwadratową nazywamy funkcję f : R R określoną wzorem gdzie a, b, c R, a 0. f(x) = ax 2 + bx + c, Szczególnym przypadkiem funkcji kwadratowej jest funkcja f(x) = ax 2, a R \
Funkcje wymierne. Jerzy Rutkowski. Działania dodawania i mnożenia funkcji wymiernych określa się wzorami: g h + k l g h k.
Funkcje wymierne Jerzy Rutkowski Teoria Przypomnijmy, że przez R[x] oznaczamy zbiór wszystkich wielomianów zmiennej x i o współczynnikach rzeczywistych Definicja Funkcją wymierną jednej zmiennej nazywamy
Elementy metod numerycznych
Wykład nr 5 i jej modyfikacje. i zera wielomianów Założenia metody Newtona Niech będzie dane równanie f (x) = 0 oraz przedział a, b taki, że w jego wnętrzu znajduje się dokładnie jeden pierwiastek α badanego
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
Metody numeryczne Wykład 3 Dr inż. Michał Łanczont Instytut Elektrotechniki i Elektrotechnologii E419, tel. 4293, m.lanczont@pollub.pl, http://m.lanczont.pollub.pl Zakres wykładu Pojęcia podstawowe Algebra
a 11 a a 1n a 21 a a 2n... a m1 a m2... a mn x 1 x 2... x m ...
Wykład 15 Układy równań liniowych Niech K będzie ciałem i niech α 1, α 2,, α n, β K. Równanie: α 1 x 1 + α 2 x 2 + + α n x n = β z niewiadomymi x 1, x 2,, x n nazywamy równaniem liniowym. Układ: a 21 x
Optymalizacja ciągła
Optymalizacja ciągła 5. Metoda stochastycznego spadku wzdłuż gradientu Wojciech Kotłowski Instytut Informatyki PP http://www.cs.put.poznan.pl/wkotlowski/ 04.04.2019 1 / 20 Wprowadzenie Minimalizacja różniczkowalnej
Iteracyjne rozwiązywanie równań
Elementy metod numerycznych Plan wykładu 1 Wprowadzenie Plan wykładu 1 Wprowadzenie 2 Plan wykładu 1 Wprowadzenie 2 3 Wprowadzenie Metoda bisekcji Metoda siecznych Metoda stycznych Plan wykładu 1 Wprowadzenie
dr Mariusz Grządziel 15,29 kwietnia 2014 Przestrzeń R k R k = R R... R k razy Elementy R k wektory;
Wykłady 8 i 9 Pojęcia przestrzeni wektorowej i macierzy Układy równań liniowych Elementy algebry macierzy dodawanie, odejmowanie, mnożenie macierzy; macierz odwrotna dr Mariusz Grządziel 15,29 kwietnia
Funkcja kwadratowa. f(x) = ax 2 + bx + c = a
Funkcja kwadratowa. Funkcją kwadratową nazywamy funkcję f : R R określoną wzorem gdzie a, b, c R, a 0. f(x) = ax + bx + c, Szczególnym przypadkiem funkcji kwadratowej jest funkcja f(x) = ax, a R \ {0}.
Wstęp do metod numerycznych Metody iteracyjne i metoda gradientów. P. F. Góra
Wstęp do metod numerycznych Metody iteracyjne i metoda gradientów sprzężonych P. F. Góra http://th-www.if.uj.edu.pl/zfs/gora/ 2012 Metody iteracyjne W metodach dokładnych otrzymane rozwiazanie jest dokładne
Metody numeryczne II. Układy równań liniowych
Metody numeryczne II. Układy równań liniowych Oleksandr Sokolov Wydział Fizyki, Astronomii i Informatyki Stosowanej UMK (2016/17) http://fizyka.umk.pl/~osokolov/mnii/ Układ równań liniowych Układem równań
2. Układy równań liniowych
2. Układy równań liniowych Grzegorz Kosiorowski Uniwersytet Ekonomiczny w Krakowie zima 2017/2018 rzegorz Kosiorowski (Uniwersytet Ekonomiczny w Krakowie) 2. Układy równań liniowych zima 2017/2018 1 /
KADD Minimalizacja funkcji
Minimalizacja funkcji Poszukiwanie minimum funkcji Foma kwadratowa Metody przybliżania minimum minimalizacja Minimalizacja w n wymiarach Metody poszukiwania minimum Otaczanie minimum Podział obszaru zawierającego
13 Układy równań liniowych
13 Układy równań liniowych Definicja 13.1 Niech m, n N. Układem równań liniowych nad ciałem F m równaniach i n niewiadomych x 1, x 2,..., x n nazywamy koniunkcję równań postaci a 11 x 1 + a 12 x 2 +...
Matematyka stosowana i metody numeryczne
Ewa Pabisek Adam Wosatko Piotr Pluciński Matematyka stosowana i metody numeryczne Konspekt z wykładów Błędy obliczeń Błędy można podzielić na: modelu, metody, wejściowe (początkowe), obcięcia, zaokrągleń..
D. Miszczyńska, M.Miszczyński KBO UŁ 1 GRY KONFLIKTOWE GRY 2-OSOBOWE O SUMIE WYPŁAT ZERO
D. Miszczyńska, M.Miszczyński KBO UŁ GRY KONFLIKTOWE GRY 2-OSOBOWE O SUMIE WYPŁAT ZERO Gra w sensie niżej przedstawionym to zasady którymi kierują się decydenci. Zakładamy, że rezultatem gry jest wypłata,
Układy równań liniowych
Układy równań liniowych Niech K będzie ciałem. Niech n, m N. Równanie liniowe nad ciałem K z niewiadomymi (lub zmiennymi) x 1, x 2,..., x n K definiujemy jako formę zdaniową zmiennej (x 1,..., x n ) K
Rozwiązywanie układów równań liniowych
Rozwiązywanie układów równań liniowych Marcin Orchel 1 Wstęp Jeśli znamy macierz odwrotną A 1, to możęmy znaleźć rozwiązanie układu Ax = b w wyniku mnożenia x = A 1 b (1) 1.1 Metoda eliminacji Gaussa Pierwszy
1 Macierz odwrotna metoda operacji elementarnych
W tej części skupimy się na macierzach kwadratowych. Zakładać będziemy, że A M(n, n) dla pewnego n N. Definicja 1. Niech A M(n, n). Wtedy macierzą odwrotną macierzy A (ozn. A 1 ) nazywamy taką macierz
Wartości i wektory własne
Dość często przy rozwiązywaniu problemów naukowych czy technicznych pojawia się konieczność rozwiązania dość specyficznego układu równań: Zależnego od n nieznanych zmiennych i pewnego parametru. Rozwiązaniem
Wykład 14. Elementy algebry macierzy
Wykład 14 Elementy algebry macierzy dr Mariusz Grządziel 26 stycznia 2009 Układ równań z dwoma niewiadomymi Rozważmy układ równań z dwoma niewiadomymi: a 11 x + a 12 y = h 1 a 21 x + a 22 y = h 2 a 11,
Wektory i wartości własne
Treść wykładu Podprzestrzenie niezmiennicze... Twierdzenie Cayley Hamiltona Podprzestrzenie niezmiennicze Definicja Niech f : V V będzie przekształceniem liniowym. Podprzestrzeń W V nazywamy niezmienniczą
1 Układy równań liniowych
II Metoda Gaussa-Jordana Na wykładzie zajmujemy się układami równań liniowych, pojawi się też po raz pierwszy macierz Formalną (i porządną) teorią macierzy zajmiemy się na kolejnych wykładach Na razie
1 Zbiory i działania na zbiorach.
Matematyka notatki do wykładu 1 Zbiory i działania na zbiorach Pojęcie zbioru jest to pojęcie pierwotne (nie definiuje się tego pojęcia) Pojęciami pierwotnymi są: element zbioru i przynależność elementu
Obliczenia naukowe Wykład nr 8
Obliczenia naukowe Wykład nr 8 Paweł Zieliński Katedra Informatyki, Wydział Podstawowych Problemów Techniki, Politechnika Wrocławska Literatura Literatura podstawowa [] D. Kincaid, W. Cheney, Analiza numeryczna,
Treść wykładu. Układy równań i ich macierze. Rząd macierzy. Twierdzenie Kroneckera-Capellego.
. Metoda eliminacji. Treść wykładu i ich macierze... . Metoda eliminacji. Ogólna postać układu Układ m równań liniowych o n niewiadomych x 1, x 2,..., x n : a 11 x 1 + a 12 x 2 + + a 1n x n = b 1 a 21
Programowanie celowe #1
Programowanie celowe #1 Problem programowania celowego (PC) jest przykładem problemu programowania matematycznego nieliniowego, który można skutecznie zlinearyzować, tzn. zapisać (i rozwiązać) jako problem
METODY NUMERYCZNE. wykład. konsultacje: wtorek 10:00-11:30 środa 10:00-11:30. dr inż. Grażyna Kałuża pokój
METODY NUMERYCZNE wykład dr inż. Grażyna Kałuża pokój 103 konsultacje: wtorek 10:00-11:30 środa 10:00-11:30 www.kwmimkm.polsl.pl Program przedmiotu wykład: 15 godzin w semestrze laboratorium: 30 godzin
NUMERYCZNE ALGORYTMY PRZECHOWYWANIA MACIERZY RZADKICH
Scientific Bulletin of Che lm Section of Mathematics and Computer Science No 1/2008 NUMERYCZNE ALGORYTMY PRZECHOWYWANIA MACIERZY RZADKICH RADOSŁAW MATUSIK Katedra Analizy Matematycznej i Teorii Sterowania,
Programowanie liniowe
Programowanie liniowe Maciej Drwal maciej.drwal@pwr.wroc.pl 1 Problem programowania liniowego min x c T x (1) Ax b, (2) x 0. (3) gdzie A R m n, c R n, b R m. Oznaczmy przez x rozwiązanie optymalne, tzn.
Wektory i wartości własne
Treść wykładu Podprzestrzenie niezmiennicze Podprzestrzenie niezmiennicze... Twierdzenie Cayley Hamiltona Podprzestrzenie niezmiennicze Definicja Niech f : V V będzie przekształceniem liniowym. Podprzestrzeń
Rozwiązywanie algebraicznych układów równań liniowych metodami iteracyjnymi. Plan wykładu:
Rozwiązywanie algebraicznych układów równań liniowych metodami iteracynymi Plan wykładu: 1. Przykłady macierzy rzadkich i formaty ich zapisu 2. Metody: Jacobiego, Gaussa-Seidla, nadrelaksaci 3. Zbieżność
Rozwiązywanie układów równań liniowych metody dokładne Materiały pomocnicze do ćwiczeń z metod numerycznych
Rozwiązywanie układów równań liniowych metody dokładne Materiały pomocnicze do ćwiczeń z metod numerycznych Piotr Modliński Wydział Geodezji i Kartografii PW 13 stycznia 2012 P. Modliński, GiK PW Rozw.
, A T = A + B = [a ij + b ij ].
1 Macierze Jeżeli każdej uporządkowanej parze liczb naturalnych (i, j), 1 i m, 1 j n jest przyporządkowana dokładnie jedna liczba a ij, to mówimy, że jest określona macierz prostokątna A = a ij typu m
Przekształcanie równań stanu do postaci kanonicznej diagonalnej
Przekształcanie równań stanu do postaci kanonicznej diagonalnej Przygotowanie: Dariusz Pazderski Liniowe przekształcenie równania stanu Rozważmy liniowe równanie stanu i równanie wyjścia układu niesingularnego
Wstęp do metod numerycznych SVD, metody iteracyjne i metoda gradientów. P. F. Góra
Wstęp do metod numerycznych SVD, metody iteracyjne i metoda gradientów sprzężonych P. F. Góra http://th-www.if.uj.edu.pl/zfs/gora/ 2011 Współczynnik uwarunkowania macierzy symetrycznej Twierdzenie 1. Niech
Układy równań liniowych i metody ich rozwiązywania
Układy równań liniowych i metody ich rozwiązywania Łukasz Wojciechowski marca 00 Dany jest układ m równań o n niewiadomych postaci: a x + a x + + a n x n = b a x + a x + + a n x n = b. a m x + a m x +
A A A A A A A A A n n
DODTEK NR GEBR MCIERZY W dodatku tym podamy najważniejsze definicje rachunku macierzowego i omówimy niektóre funkcje i transformacje macierzy najbardziej przydatne w zastosowaniach numerycznych a w szczególności
SIMR 2016/2017, Analiza 2, wykład 1, Przestrzeń wektorowa
SIMR 06/07, Analiza, wykład, 07-0- Przestrzeń wektorowa Przestrzeń wektorowa (liniowa) - przestrzeń (zbiór) w której określone są działania (funkcje) dodawania elementów i mnożenia elementów przez liczbę
Szeregi o wyrazach dodatnich. Kryteria zbieżności d'alemberta i Cauchy'ego
Szeregi o wyrazach dodatnich. Kryteria zbieżności d'alemberta i Cauchy'ego Przy założeniu, że wszystkie składniki szeregu jest rosnący. Wynika stąd natychmiast stwierdzenie: są dodatnie, ciąg jego sum
Wstęp do metod numerycznych Zagadnienia wstępne Uwarunkowanie. P. F. Góra
Wstęp do metod numerycznych Zagadnienia wstępne Uwarunkowanie P. F. Góra http://th-www.if.uj.edu.pl/zfs/gora/ 2014 Sposoby reprezentacji liczb całkowitych i rzeczywistych patrz wykład z Teoretycznych Podstaw
Obliczenia iteracyjne
Lekcja Strona z Obliczenia iteracyjne Zmienne iteracyjne (wyliczeniowe) Obliczenia iteracyjne wymagają zdefiniowania specjalnej zmiennej nazywanej iteracyjną lub wyliczeniową. Zmienną iteracyjną od zwykłej
0 + 0 = 0, = 1, = 1, = 0.
5 Kody liniowe Jak już wiemy, w celu przesłania zakodowanego tekstu dzielimy go na bloki i do każdego z bloków dodajemy tak zwane bity sprawdzające. Bity te są w ścisłej zależności z bitami informacyjnymi,
PODSTAWY AUTOMATYKI. MATLAB - komputerowe środowisko obliczeń naukowoinżynierskich - podstawowe operacje na liczbach i macierzach.
WYDZIAŁ ELEKTROTECHNIKI I AUTOMATYKI Katedra Inżynierii Systemów Sterowania PODSTAWY AUTOMATYKI MATLAB - komputerowe środowisko obliczeń naukowoinżynierskich - podstawowe operacje na liczbach i macierzach.
Znaleźć wzór ogólny i zbadać istnienie granicy ciągu określonego rekurencyjnie:
Ciągi rekurencyjne Zadanie 1 Znaleźć wzór ogólny i zbadać istnienie granicy ciągu określonego rekurencyjnie: w dwóch przypadkach: dla i, oraz dla i. Wskazówka Należy poszukiwać rozwiązania w postaci, gdzie
10. Metody obliczeniowe najmniejszych kwadratów
10. Metody obliczeniowe najmniejszych kwadratów 1. Dowód twierdzenia o faktoryzacji macierzy Twierdzenie 1 Każdadodatniookreślon aisymetryczn amacierzm można przedstawíc wpostaci M = PP T gdzie P jest
W. Guzicki Próbna matura, grudzień 2014 r. poziom rozszerzony 1
W. Guzicki Próbna matura, grudzień 01 r. poziom rozszerzony 1 Próbna matura rozszerzona (jesień 01 r.) Zadanie 18 kilka innych rozwiązań Wojciech Guzicki Zadanie 18. Okno na poddaszu ma mieć kształt trapezu
1 Macierze i wyznaczniki
1 Macierze i wyznaczniki 11 Definicje, twierdzenia, wzory 1 Macierzą rzeczywistą (zespoloną) wymiaru m n, gdzie m N oraz n N, nazywamy prostokątną tablicę złożoną z mn liczb rzeczywistych (zespolonych)
Formy kwadratowe. Rozdział 10
Rozdział 10 Formy kwadratowe Rozważmy rzeczywistą macierz symetryczną A R n n Definicja 101 Funkcję h : R n R postaci h (x) = x T Ax (101) nazywamy formą kwadratową Macierz symetryczną A występującą w
Komputerowa analiza zagadnień różniczkowych 3. Numeryczne zagadnienie własne
Komputerowa analiza zagadnień różniczkowych 3. Numeryczne zagadnienie własne P. F. Góra http://th-www.if.uj.edu.pl/zfs/gora/ semestr letni 2007/08 Wektory i wartości własne definicje Niech A C N N. Jeżeli
Wykład z równań różnicowych
Wykład z równań różnicowych 1 Wiadomości wstępne Umówmy się, że na czas tego wykładu zrezygnujemy z oznaczania n-tego wyrazu ciągu symbolem typu x n, y n itp. Zamiast tego pisać będziemy x (n), y (n) itp.
ROZWIĄZYWANIE UKŁADÓW RÓWNAŃ NIELINIOWYCH PRZY POMOCY DODATKU SOLVER PROGRAMU MICROSOFT EXCEL. sin x2 (1)
ROZWIĄZYWANIE UKŁADÓW RÓWNAŃ NIELINIOWYCH PRZY POMOCY DODATKU SOLVER PROGRAMU MICROSOFT EXCEL 1. Problem Rozważmy układ dwóch równań z dwiema niewiadomymi (x 1, x 2 ): 1 x1 sin x2 x2 cos x1 (1) Nie jest
Wstęp do Informatyki zadania ze złożoności obliczeniowej z rozwiązaniami
Wstęp do Informatyki zadania ze złożoności obliczeniowej z rozwiązaniami Przykład 1. Napisz program, który dla podanej liczby n wypisze jej rozkład na czynniki pierwsze. Oblicz asymptotyczną złożoność
DB Algebra liniowa semestr zimowy 2018
DB Algebra liniowa semestr zimowy 2018 SPIS TREŚCI Teoria oraz większość zadań w niniejszym skrypcie zostały opracowane na podstawie książek: 1 G Banaszak, W Gajda, Elementy algebry liniowej cz I, Wydawnictwo
Dystrybucje, wiadomości wstępne (I)
Temat 8 Dystrybucje, wiadomości wstępne (I) Wielkości fizyczne opisujemy najczęściej przyporządkowując im funkcje (np. zależne od czasu). Inną drogą opisu tych wielkości jest przyporządkowanie im funkcjonałów
Metody dekompozycji macierzy stosowane w automatyce
Metody dekompozycji macierzy stosowane w automatyce Grzegorz Mzyk Politechnika Wrocławska, WydziałElektroniki 23 lutego 2015 Plan wykładu 1 Wprowadzenie 2 Rozkład LU 3 Rozkład spektralny 4 Rozkład Cholesky
Metoda eliminacji Gaussa
Metoda eliminacji Gaussa Rysunek 3. Rysunek 4. Rozpoczynamy od pierwszego wiersza macierzy opisującej nasz układ równań (patrz Rys.3). Zakładając, że element a 11 jest niezerowy (jeśli jest, to niezbędny
Wprowadzenie Metoda bisekcji Metoda regula falsi Metoda siecznych Metoda stycznych RÓWNANIA NIELINIOWE
Transport, studia niestacjonarne I stopnia, semestr I Instytut L-5, Wydział Inżynierii Lądowej, Politechnika Krakowska Ewa Pabisek Adam Wosatko Postać ogólna równania nieliniowego Zazwyczaj nie można znaleźć