Wstęp do metod numerycznych Wykład 6 Metody rozwiązywania układów równań nadokreślonych dr inż. Wojciech Bieniecki Instytut Matematyki i Informatyki http://wbieniec.kis.p.lodz.pl/pwsz
Układ nadokreślony W obliczeniach praktycznych często pojawia się problem rozwiązania nadokreślonego układu równań liniowych (1) gdzie: A - macierz m x n, m > n - wektor prawej strony równania, - szukane rozwiązanie,
Układ nadokreślony Układ równań w wyniku błędów pomiarowych może być również układem sprzecznym. Brak dokładnego rozwiązania w większości przypadków. Można poszukiwać co najwyżej „najlepszego” przybliżenia rozwiązania w sensie średniokwadratowym. Jednym ze sposobów rozwiązania takiego problemu jest znalezienie wektora x*, o możliwie małej normie euklidesowej, który dla zadanej macierzy A i wektora b minimalizuje normę euklidesową wektora residualnego r=b-Ax, tzn. (2) gdzie ostatnie minimum brane jest po wszystkich wektorach x spełniających poprzednią równość. Jest to tzw. liniowe zadanie najmniejszych kwadratów (LZNK). Do LZNK prowadzi wiele różnych problemów, przede wszystkim aproksymacyjnych.
Metoda SVD SVD – Singular value decomposition - Rozkład według wartości osobliwych Przy wyznaczaniu postaci analitycznej rozwiązania liniowego zadania najmniejszych kwadratów i badaniu jego własności, korzystamy z twierdzenia o rozkładzie dowolnej macierzy prostokątnej na iloczyn macierzy ortogonalnej, diagonalnej i ortogonalnej. Mówi ono, że dla dowolnej macierzy ARmn(mn) istnieją macierze ortogonalne URmm oraz VRnn takie że: (3) Ponieważ macierz A nie jest kwadratowa, nie istnieje macierz odwrotna. Możemy natomiast obliczyć macierz pseudoodwrotną, która posłuży do obliczenia rozwiązania układu równań. Wykorzystamy zależność Dla nieosobliwej macierzy kwadratowej zachodzi równość
Metoda SVD Pierwiastki są pierwiastkami wartości własnych macierzy ATA Wielkości i nazywamy wartościami szczególnymi (osobliwymi) macierzy A , a rozkład (3) rozkładem według wartości szczególnych ).
Metoda SVD Warunek ortogonalności: Kolumny macierzy V są odpowiadającymi im ortonormalnymi wektorami własnymi tej macierzy. Kolumny U są wektorami własnymi AAT. Widzimy stąd, że wartości szczególne są określone jednoznacznie, natomiast macierze U i V nie są.
Algorytm postępowania 1. Utworzyć macierz H = ATA i obliczyć jej wartości własne λj oraz związane z nimi wektory własne vj, j=1, 2, …, n. Przeprowadzić normalizację wektorów i utworzyć macierz V(n×n) = [v1, v2, … vn]. 2. Obliczyć wartości szczególne macierzy A: σj = λj > 0 , j=1, 2, …, r dla dodatnich wartości własnych λj, r – rząd macierzy A. 3. Określić wektory własne macierzy AAT: ui, i=1, 2, …, n. 4. utworzyć macierz U(m×n) = [u1, u2, … un] 5. Utworzyć macierz S (r×r) = Σ i odwrócić ją.
Metoda SVD - przykład Procedurę obliczania rozkładu według wartości szczególnych prowadzimy zgodnie z podanym algorytmem. obliczamy wartości własne i znormalizowaną macierz V
Przykład Pierwiastki elementów z przekątnej macierzy L są wartościami szczególnymi macierzy A, więc Widać, że rząd macierzy r = n = 3. Obliczamy wektory tworzące macierz U Ostatecznie, otrzymujemy macierz U
Algorytm Kaczmarza Matematyk polski, studiował na Wydziale Filozofii Uniwersytetu Jagiellońskiego w Krakowie. Od 1921r. pracował w charakterze asystenta Katedry Matematyki Akademii Górniczej w Krakowie. W roku 1932 podjął pracę na Politechnice Lwowskiej, a później na Uniwersytecie Lwowskim. W 1924 r. uzyskał stopień doktora, w 1929 habilitował się na Uniwersytecie Lwowskim. W 1932 r. przebywał jako stypendysta w Cambridge i Getyndze. Uczestniczył w I Kongresie Matematyków Polskich we Lwowie w 1927 r., a następnie w 1928 i 1936 w kolejnych Międzynarodowych Kongresach Matematyków w Bolonii i Oslo. Poległ podczas walk w kampanii wrześniowej. Był autorem 32 prac naukowych (z tego 12 opublikowano w Studia Mathematica). Jego zainteresowania dotyczyły głównie teorii szeregów ortogonalnych i funkcji ciągłych. Opublikował metodę przybliżonego rozwiązywania dużych układów równań liniowych. Zajmował się również historią matematyki. KACZMARZ Stefan (1895-1939)
Algorytm Kaczmarza Rozważmy układ równań postaci Ax=b Oznaczmy wiersze macierzy A odpowiednio a1,a2, … , am: Klasyczny algorytm Kaczmarza jest iteracyjną projekcją ortogonalną na hiperpłaszczyzny apx=bp Rys. 1 Interpretacja geometryczna podstawowego algorytmu Kaczmarza a) pojedyncza iteracja, b) kolejne projekcje na hiperpłaszczyzny W uogólnionym algorytmie, nowa iteracja może rozpoczynać się w dowolnym punkcie na linii rzutowania. Metoda jest zbieżna do punktu przecięcia hiperpłaszczyzn
Uogólniony algorytm klasyczny Kaczmarza Jeśli x(k) jest ostatnio aproksymowaną wartością x, to uogólniony algorytm Kaczmarza można przedstawić w postaci (6) gdzie: p - Rzeczywisty parametr relaksacji dla p-tego równania (0< p<2, gdy p=1 dla każdego p =1,2,...,m jest to klasyczna wersja algorytmu Kaczmarza), bp = b(p), p = k mod m + 1, (gdzie zapis k mod m oznacza resztę z dzielenia całkowitego k przez m, np.: 7 mod 5 = 2, 16 mod 5 = 1) norma euklidesowa wektora x (norma L2)
Przykład Iteracja 1 rozwiązać układ równań postaci Dla tego układu mamy h1 jest postaci: x1=1, a hiperpłaszczyzna h2: 2x1-x2=1. Poszukiwanie rozwiązania zaczynamy od punktu startowego x0= [0 1] Iteracja 1 k=0, p=k mod 2+1=0 reszty 0+1 (rzutujemy na płaszczyznę h1) (punkt jest rzutem prostopadłym x(0) na h1).
Przykład Iteracja 2 Iteracja 3 k=1, p=k mod 2 + 1 = 2 (rzutujemy na płaszczyznę h2) (punkt jest rzutem prostopadłym x(1) na h2). Iteracja 3 k=2, p=k mod 2 + 1 = 1 (rzutujemy na płaszczyznę h1) (punkt jest rzutem prostopadłym x(2) na h2).
Przykład Iteracja 4 k=3, p=2 (rzutujemy na płaszczyznę h2) punkt jest rzutem prostopadłym x(3) na h2
Uogólniona metoda Kaczmarza Podstawiając do wzoru (6) (7) algorytm Kaczmarza można zapisać w postaci: (8) lub (9) gdzie: wp - wagi wskazujące na ważność pewnych pomiarów, mogą być użyte do reprezentacji ograniczeń na bieżącym równaniu poprzez dobór odpowiednio dużej wagi.
Uogólniona metoda Kaczmarza Uogólniony algorytm Kaczmarza jest zbieżny dla dowolnych wartości początkowych x(0),jeśli: Metoda jest zbieżna nawet wtedy, gdy macierz A jest osobliwa lub prostokątna, jednak jak w przypadku każdego procesu liniowego, zbieżność może być bardzo wolna. Dla układu równań sprzecznych musi być małe, w przeciwnym razie algorytm może być niestabilny i rozbieżny. Małe daje jednak wolną zbieżność. Przy użyciu stałego (k) = algorytm może nie zachowywać się dobrze i lepsze rezultaty można otrzymać, jeśli (k) maleje do zera we właściwy sposób (np. proporcjonalnie do 1/k).
Implementacja Oznaczając przez dokładność, z jaką ma być spełnione każde równanie układu oraz przy założeniu, że istnieje rozwiązanie układu równań (1), algorytm (8) można przedstawić w postaci: x(0) := 0 //początkowe przybliżenie rozwiązania k:=0 //liczba iteracji r(0): = 1 //wektor dokładności kolejnych równań powtarzaj p:= k mod m + 1 x(k):=x(k+1) k:=k+1 dopóki r(i)< , dla każdego i=1,...,m. Jeden krok algorytmu wymaga wykonania kolejno operacji mnożenia dwóch wektorów, mnożenia wektora przez liczbę i dodawania dwóch wektorów, przy czym wektory x(k) i x(k+1) mogą wykorzystywać to samo miejsce w pamięci operacyjnej komputera. Na uwagę zasługuje fakt przetwarzania w pojedynczej iteracji tylko jednego wiersza macierzy A, co ma istotne znaczenie w przypadku dużych macierzy.
Metody wykorzystujące rozkład QR Dla macierzy A o rozmiarach mxn, w której kolumny są niezależne liniowo istnieje jednoznaczny rozkład w postaci A = QR Q jest macierzą o rozmiarach mxn taką że: QTQ = D = diag(d1, d2, … , dn) dk > 0; k = 1, … , n R jest macierzą trójkątną górną z elementami rkk = 1; k = 1, … , n Warunek minimalizacji normy wektora reszt w sensie średniokwadratowym przyjmuje postać Jak wyznaczyć macierze Q i R?
Zmodyfikowana metoda Grama-Schmidta wyznaczania rozkładu QR Wyznaczamy ciąg macierzy Założenia k-1 pierwszych kolumn w A(k) to także k-1 pierwszych kolumn w Q kolumny są ortogonalne do kolumn
Metoda Grama Schmidta Proces ortogonalizacji polega na rekurencyjnej ortogonalizacji kolumn o indeksie od k do n w k-tej iteracji względem kolumny qk w ten sposób wyznaczamy k-tą kolumnę R (elementy rkj) oraz kolumnę k+1 macierzy Q (elementy aj(k+1)).
Literatura http://www.algorytm.org/procedury-numeryczne/