Wybrane zagadnienia algebry liniowej teoria i algorytmy numeryczne
Transkrypt
Wybrane zagadnienia algebry liniowej teoria i algorytmy numeryczne
Wybrane zagadnienia algebry liniowej teoria i algorytmy numeryczne lista 4 - 15 listopada 2003 Temat 1: Liniowe zadanie najmniejszych kwadratów 1. Wyznaczyć rozwiązania w sensie najmniejszych kwadratów nadokreślonego układu równań liniowych Ax = b, A ∈ Rm×n , następującymi metodami: • Householder z wyborem kolumny - przekształcenia stosować na bieżąco do A i b, • Householder bez wyboru kolumny i z zapamiętaniem informacji o przekształceniach, plus iteracyjne poprawianie rozwiązania za pomocą algorytmu Björcka, • ortogonalizacja Grama-Schmidta cgs i mgs zastosowana do rozszerzonej macierzy [A, b] plus iteracyjne poprawianie algorytmem Björcka, • rozkład Cholesky’ego zastosowany do układu normalnego AT Ax = AT b, • rozwiązanie układu seminormalnego RT Rx = AT b, gdzie R jest czynnikiem ortognalnym w rozkładu ortogonalnego macierzy A (Householder). • rozkład svd. 2. Testy wykonać dla macierzy kwadratowych i prostokątnych, w tym dla macierzy numerycznie prawie niepełnego rzędu (tak będzie w przypadku bardzo złego uwarunkowania, Hilbert, Vandermonde). Stosować macierze z gallery oraz generować własne macierze testowe A (kwadratowe, prostokątne) dwoma sposobami: (a) Niech B będzie macierzą losową. Wyznaczyć rozkład svd macierzy B = U ΣV T . Wybrać elementy diagonalne dj macierzy diagonalnej D i obliczyć A = U DV T . Elementy dj wybierać tak, by wskaźnik uwarunkowania zadania LS: κ2 (A) = ||A||2 ||A† ||2 był duży. (b) Niech B będzie macierzą losową. Wyznaczyć rozkład qr macierzy B = QR i utworzyć macierz A = U Rk , gdzie U jest macierzą ortogonalną z poprzedniego punktu, k jest liczbą naturalną z przedziału [1, 10]. 3. Wektory b wybierać: (a) losowo, (b) tak, by układ Ax = b był zgodny (zadać jego dokładne rozwiązanie x), (c) b = Ax + c, gdzie x zadane, c-losowe małe. 4. Program powinien obliczać • wskaźniki uwarunkowania zadania LS i układu normalnego, • normy || · ||2 residuów: r = b − Ax(obl) i s = AT (b − Ax(obl) ), • badać, czy rozwiązanie zadania LS jest wrażliwe na zaburzenia elementów macierzy A - wprowadzać małe sztuczne zaburzenia. Temat 2: Zastosowania rozkładu SVD do aproksymacji zbiorów punktów na płaszczyźnie. Niech Pi = (xi , yi ) (i = 1, . . . , m) są danymi punktami na płaszczyźnie. Zadanie przybliżania na płaszczyźnie zbioru punktów za pomocą prostej w taki sposób, by suma kwadratów odległości tych punktów od prostej była minimalna, może być rozwiązane za pomocą rozkładu SVD. Jest to liniowe zadanie najmniejszych kwadratów z ograniczeniami. 1 Na płaszczyźnie prosta jest jednoznacznie reprezentowana przez równania c + n1 x + n2 y = 0, n21 + n22 = 1. (1) Wektor jednostkowy [n1 , n2 ] jest prostopadły do prostej. Odległość punktu P = (x̃, ỹ) od tej prostej jest równa |c + n1 x̃ + n2 ỹ|. Niech di = c + n2 xi + n2 yi . Wobec tego mamy zadanie najmniejszych kwadratów ||d||22 = m X d2i = minc,n1 ,n2 , d = [d1 , . . . , dm ]T i=1 z ograniczeniami 1 x1 y1 1 x2 y2 · · · · · · · · · 1 xm ym c n1 = n2 d1 d2 · · · dm , (2) n21 + n22 = 1. Niech A oznacza macierz układu (2). Najpierw wyznaczamy rozkład QR macierzy A A = QR, Q − ortogonalna, R − trójkatna górna, prostokątna. Wówczas z (2) otrzymujemy c QT A n1 = n2 r11 r12 r13 0 r22 r23 0 0 r33 c T · · · n1 = Q d. · · · n2 · · · 0 0 0 (3) Ponieważ ||QT d||2 = ||d||2 i ograniczenia nieliniowe dotyczą tylko dwóch współczyników n1 i n2 prostej, mamy do rozwiązania tylko problem " r22 r23 0 r23 #" n1 n2 # ≈ " 0 0 # , przy ograniczeniu n21 + n22 = 1, (4) gdyż c można wyznaczyć przez przyrównanie do zera lewej strony pierwszego równania w układzie (3). Parametr c obliczamy z warunku r11 c + r12 n1 + r13 n2 = 0. Problem (4) ma postać ||Bv||2 = min przy ograniczeniu ||v||2 = 1. Wiadomo, że wartością tego minimum jest najmniejsza wartość szczególna macierzy B, a rozwiązaniem v jest kolumna macierzy ortogonalnej V z rozkładu SVD macierzy B = U ΣV T - odpowiadająca tej najmniejszej wartości wartości szczególnej. Zatem współczyniki n1 i n2 poszukiwanej prostej można otrzymać z rozkładu SVD macierz stopnia 2, występującej w (4). 2 W podobny sposób można aproksymować zbiory punktów za pomocą par prostych równoległych lub prostopadłych, Niech dane będą dwa zbiory punktów Pi (i = 1, . . . , m) i Qi (i = 1, . . . , n). Współczynniki prostych równoległych muszą spełniać równania (porównaj (1)) c1 + n1 x + n2 y = 0, c2 + n1 x + n2 y = 0, n21 + n22 = 1. Wzorując się na powyższej metodzie wyznaczania jednej prostej, zaproponować algorytm wyznaczania dwóch prostych równoległych takich,że sumy kwadratów odległości punktów pierwszego zbioru od pierwszej prostej i kwadratów odległości punktów drugiego zbioru od drugiej prostej są minimalne. To samo zrobić dla pary prostych prostopadłych. Dalszym uogólnieniem jest aproksymacja czterech zbiorów punktów za pomocą prostokąta (kwadratu). Opracować odpowiednie algorytmy. Działanie powyższych metod ilustrować rysunkami. Druga część tematu 2 - nieobowiązkowa. Dalszym uogólnieniem jest aproksymacja zbioru punktów na płaszczyźnie za pomocą okręgu lub elipsy w sensie geometrycznym i w sensie algebraicznym (zob. Gander, Golub, Strebel). Literatura W. Gander, G.H. Golub, R. Strebel, Least-squares fitting of circles and ellipses, BIT 34 (1994), 558–578. Temat 3 - Kompresja obrazu (zadanie nieobowiązkowe) Realizacja Tematu 3 polega na przetestowaniu algorytmu kompresji obrazów polegającego na zastąpieniu macierzy oryginalnego obrazu A ∈ Rm×n na macierz Ak rzędu k < n, będącą najlepszą aproksymacją A za pomocą macierzy rzędu k w normie spektralnej. W tym celu stosujemy SVD. Temat dla osób bardziej zaawansownaych w programowaniu. Temat 3 można zrealizować w dwóch wariantach: • wariant podstawowy: kompresja obrazu czarno-białego. • wariant rozszerzony: kompresja obrazu kolorowego - oddzielnie kompresujemy obrazy składowe: czerwony, zielony i niebieski, a następnie nakładamy na siebie obrazy wynikowe. Kolorowy obraz powstaje poprzez nałożenie na siebie trzech obrazów jednobarwnych: czerwonego, zielonego i niebieskiego. Innymi słowy, każdemu punktowi kolorowego obrazu odpowiadają trzy liczby, zwykle z zakresu od 0 do 255 (jeden bajt) – intensywności kolorów: czerwonego, zielonego, niebieskiego. Jest to tak zwany model RGB. Uwagi. • Obraz (macierz) wejściowy i wyjściowy ma być zapisany na dysku w postaci tekstowej w formacie PGM (obraz czarno-biały) lub PPM (obraz kolorowy); formaty PGM i PPM opisane są poniżej. • Można założyć, że wszystkie liczby opisujące obraz są z zakresu od 0 do 255. • Bardzo dobry program powinien zawierać możliwość konwersji z/do formatu BMP – bitmapy 24-bitowej. 3 • Rewelacyjny program potrafiłby wyświetlać obrazy na ekranie (jednocześnie oryginał i obraz skompresowany); program taki wymagałby zastosowania niestandardowych sterowników graficznych (dostępnych w sieci WWW). Formaty PGM i PPM. Plik zapisany w formacie PGM/PPM wygląda następująco: P? # Komentarz - to wiersz zaczynający się znakiem # ???? ???? ??? W1 W2 W3 W4 W5 W6 W7 W8 W9 ... .... ... ...., gdzie P? to znacznik pliku (P2 – PGM, P3 – PPM), ???? ???? to dwie liczby określające rozdzielczość poziomą i pionową obrazu, ??? to zakres (od 0 do ???) występujących dalej wartości, W1 W2 W3 ... to liczby opisujące barwę kolejnych punktów obrazu. W wypadku obrazów czarno-białych na każdy punkt przypada jedna liczba, w wypadku obrazów kolorowych – trzy (wartości poszczególnych składowych w modelu RGB – w takiej kolejności). Ilość liczb w każdym z wierszy jest nieustalona (ładnie jest, gdy cały wiersz mieści się na ekranie 80 kolumnowym, z małym zapasem). Na komputerach pracujących w systemie UNIX powinien być zainstalowany program xv umożliwiający zapisywanie (odczytywanie) plików graficznych w różnych formatach. . Krystyna Ziętak 4