Rozwiązywanie algebraicznych układów równań liniowych metodami bezpośrednimi
Plan wykładu:. Definicje macierzy, norm etc.. Metoda eliminacji Gaussa, Jordana. Rozkład LU metodą Gaussa. Układy równań z macierzą symetryczną. Rozkłady: LDL T, LL T. Układy równań z macierzą trójdiagonalną. Iteracyjne poprawianie rozwiązań. Układy liniowe nadokreślone, układ normalny równań, metody ortogonalizacji
Pojęcia podstawowe Macierz jest uporządkowanym układem mxn liczb rzeczywistych lub zespolonych A=(a ij ) (i=,..,m; j=,...,n) A m n = a a : : : a n a a : : : a n : : : : : : : : : : : : a m a m : : : a mn Jeśli m=n to A jest kwadratowa stopnia n. Transpozycja - A=(a ij ) to A T =(a ji ) Ślad macierzy A=A nxn (A T ) T = A ( A) T = A T (A + B) T = A T + B T (AB) T = B T A T (Ax) T = x T A T Macierz diagonalna D=( ij d ij ) D = d 0 : : : 0 0 d : : : 0 : : : : : : : : : : : : 0 0 : : : d n Macierz jednostkowa I=( ij ) nx tr(a) = i= a ii tr(a T ) = tr(a)
Pojęcia podstawowe Macierz jest uporządkowanym układem mxn liczb rzeczywistych lub zespolonych A=(a ij ) (i=,..,m; j=,...,n) A m n = a a : : : a n a a : : : a n : : : : : : : : : : : : a m a m : : : a mn Jeśli m=n to A jest kwadratowa stopnia n. Transpozycja - A=(a ij ) to A T =(a ji ) Ślad macierzy A=A nxn (A T ) T = A ( A) T = A T (A + B) T = A T + B T (AB) T = B T A T (Ax) T = x T A T Macierz diagonalna D=( ij d ij ) D = d 0 : : : 0 0 d : : : 0 : : : : : : : : : : : : 0 0 : : : d n Macierz jednostkowa I=( ij ) nx tr(a) = i= a ii tr(a T ) = tr(a)
Macierz trójkątna lewa (dolna) L = Macierz trójkątna prawa (górna) R = l 0 : : : 0 l l : : : 0 : : : : : : : : : : : : l n l n : : : l nn r r : : : r n 0 r : : : r n : : : : : : : : : : : : 0 0 : : : r nn Sumy, iloczyny i odwrotności macierzy trójkątnych tego samego rodzaju są macierzami trójkątnymi. Wyznacznik macierzy trójkątnej det(l) = l l : : : l nn Jeśli det(a) = 0 to macierz jest nieosobliwa i dla takiej macierzy istnieje macierz odwrotna A - AA = A A = I (AB) = B A Macierz symetryczna A T = A Macierz ortogonalna Q=Q mxn Q T Q = I Q Q = I Q T = Q Macierz idempotentna det(r) = r r : : : r nn det(a) = det(a T ) det(ab) = det(a)det(b) A = A
Macierzą hermitowską nazywamy macierz, która po transpozycji i sprzężeniu zespolonemu jej elementów jest równa macierzy pierwotnej A H = A T Elementy diagonalne macierzy hermitowskiej są rzeczywiste (pozostałe mogą być zespolone lub rzeczywiste). Macierzą dodatniookreśloną nazywamy macierz rzeczywistą lub hermitowską o własności: x T Ax > 0; x R n ; x = 0 Macierz dodatnio określona jest zawsze odwracalna. Macierz odwrotna jest również dodatnio określona. Przestrzenią liniową (wektorową) nad ciałem liczb rzeczywistych (zespolonych) nazywamy zbiór obiektów (wektorów) z określonym działaniem dodawania elementów przestrzeni oraz mnożenia ich przez liczbę i oznaczamy R N (C N ). Aksjomaty: łączność, przemienność, element neutralny, element odwrotny,... Uporządkowany zbiór liczb rzeczywistych (zespolonych) tworzy wektor Przestrzeń wektorowa będąca zbiorem takich obiektów ma wymiar n. Dowolny zbiór n wektorów liniowo niezależnych w R N x = (x ; x ; x ; : : : ; x n ) y ; y ; : : : ; y n tworzy bazę przestrzeni. Każdy element przestrzeni można zapisać jako kombinację liniową elementów bazy x = y + y + : : : + n y n Podprzestrzeń linową R w R N tworzy zbiór wszystkich wektorów y ; y ; : : : ; y k ; k n Macierz możemy traktować jako obiekt zbudowany z wektorów ( wektory wierszowe lub kolumnowe). Rzędem macierzy A=A mxn r=rank(a) nazywamy największą liczbę niezależnych liniowo wektorów wierszowych lub kolumnowych. Jeśli r=m=n to macierz jest nieosobliwa.
Macierzą hermitowską nazywamy macierz, która po transpozycji i sprzężeniu zespolonemu jej elementów jest równa macierzy pierwotnej A H = A T Elementy diagonalne macierzy hermitowskiej są rzeczywiste (pozostałe mogą być zespolone lub rzeczywiste). Macierzą dodatniookreśloną nazywamy macierz rzeczywistą lub hermitowską o własności: x T Ax > 0; x R n ; x = 0 Macierz dodatnio określona jest zawsze odwracalna. Macierz odwrotna jest również dodatnio określona. Przestrzenią liniową (wektorową) nad ciałem liczb rzeczywistych (zespolonych) nazywamy zbiór obiektów (wektorów) z określonym działaniem dodawania elementów przestrzeni oraz mnożenia ich przez liczbę i oznaczamy R N (C N ). Aksjomaty: łączność, przemienność, element neutralny, element odwrotny,... Uporządkowany zbiór liczb rzeczywistych (zespolonych) tworzy wektor Przestrzeń wektorowa będąca zbiorem takich obiektów ma wymiar n. Dowolny zbiór n wektorów liniowo niezależnych w R N x = (x ; x ; x ; : : : ; x n ) y ; y ; : : : ; y n tworzy bazę przestrzeni. Każdy element przestrzeni można zapisać jako kombinację liniową elementów bazy x = y + y + : : : + n y n Podprzestrzeń linową R w R N tworzy zbiór wszystkich wektorów y ; y ; : : : ; y k ; k n Macierz możemy traktować jako obiekt zbudowany z wektorów ( wektory wierszowe lub kolumnowe). Rzędem macierzy A=A mxn r=rank(a) nazywamy największą liczbę niezależnych liniowo wektorów wierszowych lub kolumnowych. Jeśli r=m=n to macierz jest nieosobliwa.
Normy wektorów i macierzy Normy wprowadza się w celu ilościowego określania własności wektorów i macierzy. Normą wektora nazywamy funkcję, która każdemu elementowi w R N przyporządkowuje liczbę rzeczywistą. Dla dowolnych norma wektora musi spełniać następujące aksjomaty: Dla n-wymiarowego wektora najczęściej stosowane są normy z rodziny L P : - norma pierwsza x; y R n R jjxjj 0; jjxjj = 0 () x = 0 jj xjj = j j jjxjj jjx + yjj jjxjj + jjyjj x = [x ; x ; : : : ; x n ] T jjxjj p = (jx j p + jx j p + : : : jx n j p ) p p = ; kxk = jx j + jx j + : : : + jx n j Dla dowolnego wektora x w przestrzeni R n prawdziwe są poniższe relacje pomiędzy normami: kxk kxk kxk pnkxk nkxk Normy macierzy Własności norm macierzy jjajj 0; jjajj = 0 () A = 0 jj Aj = j j jjajj jja + Bjj jjajj + jjbjj jjabjj jjajj jjbjj jjaxjj jjajj jjxjj(normy zgodne) Normy zgodne norma macierzy indukowana przez normę wektora - norma druga (euklidesowa) p = ; kxk = (x + x + : : : + x n) = - norma maksymalna p = ; kxk = maxfjx j; jx j; : : : ; jx n jg 8
Macierz o m wierszach i n kolumnach można traktować jako operator liniowy przekształcający przestrzeń R m w R n. Normę takiej macierzy można określić przy użyciu wektorów: kak pq = sup xr n x=0 kaxk q kxk p - maksymalna suma modułów w wierszu kak = max i=;;:::;n nx ja ij j j= - maksymalny moduł elementu gdzie: p i q oznaczają normy wektorów w przestrzeniach R n i w R m. Mówimy, że norma A pq jest normą indukowaną przez normy. p oraz. q. Dla p=q oznaczając możemy określić następujące normy macierzy - maksymalna suma modułów w kolumnie - norma spektralna kak p = kak pq kak = max j=;;:::;n mx ja ij j i= kak = ( max i=;:::;n i(aa T )) = kak = max i;j ja ij j W przestrzeniach z normą często używa się euklidesowej (Frobeniusa) normy macierzy: kak E = v u t mx i= nx j= a ij która nie jest indukowana żadną normą ale spełnia ona z normą warunek zgodności: kak kak E kxk ; x R n Normy macierzy mają istotne znaczenie w analizie błędów (np. błędów rozwiązania układów równań liniowych). 9
Szukamy rozwiązania układu równań liniowych w postaci: a x + a x + : : : + a n x n = b a x + a x + : : : + a n x n = b : : : : : : : : : : : : : : : : : : : : : : : : : : : = : : : a n x + a n x + : : : + a nn x n = b n Powyższy układ równań można zapisać w postaci macierzowej: Ax = b gdzie: - macierz współczynników układu A = a a : : : a n a a : : : a n : : : : : : : : : : : : a n a n : : : a nn - szukany wektor - wektor wyrazów rozwiązań wolnych x = x x. x n b = b b. b n Warunek rozwiązywalności układu niejednorodnego: R(A) podprzestrzeń liniowa rozpięta na wektorach kolumnowych macierzy A Dla R(A) = R n b R(A) warunek rozwiązywalności układu jest spełniony dla każdego b i rozwiązanie ma postać x = A b Jeśli rank(a)=r<n to rozwiązania tworzą rozmaitość (n-r) wymiarową. 0
Układ równań z macierzą trójkątną Zakładamy, że elementy leżące na diagonali są niezerowe. Rozwiązanie układu można znaleźć posługując się wzorem rekurencyjnym, zaczynając od elementu x n : W celu wyznaczenia wszystkich składowych wektora rozwiązania x należy wykonać: - M operacji mnożenia i dzielenia a x + a x + : : : + a n x n = b x n = b n a nn - D operacji dodawania i odejmowania a x + : : : + a n x n = b : : : : : : : : : : : : : : : : : : M = n + n a nn x n = b n x i = b i a ii+ x i+ : : : a in x n a ii D = n n
Uwarunkowanie zadania - rozwiązania układu równań gdzie (A) = jjajj jja jj Wpływ błędów zaokrągleń na wynik można oszacować analizując zaburzenia danych: A,b a) zaburzamy wektor b: A(x + ±x) = b + ±b ±x = A ±b jj±xjj jja jj jj±bjj b) zaburzamy elementy macierzy A: (A + ±A)(x + ±x) = b A±x + ±A(x + ±x) = 0 ±x = A ±A(x + ±x) jj±xjj jja jj jj±ajj jjx + ±xjj jest wskaźnikiem uwarunkowania macierzy Korzystając z wyniku (a) oraz nierówności jjbjj = jjaxjj jjajj jjxjj dostajemy oszacowanie na błąd względny rozwiązania: jj±xjj jjxjj (A) jj±bjj jjbjj Wniosek - duży wskaźnik uwarunkowania macierzy może powodować duże względne zaburzenia rozwiązania nawet dla małych zaburzeń wektora danych. Zadanie jest wówczas źle uwarunkowane. ostatnią nierówność zapisujemy w postaci jj±xjj jjx + ±xjj (A) jj±ajj jjajj
Metoda eliminacji Gaussa rozwiązania układu równań liniowych. Metoda jest dwuetapowa: ) Eliminacja zmiennych. Układ pierwotny: A () x = b () a () x + a () x + : : : + a () n x n = b () a () x + a () x + : : : + a () n x n = b () : : : : : : : : : : : : : : : : : : : : : : : : : : : = : : : a () n x + a () n x + : : : + a () nnx n = b () n Odejmujemy od i-tego wiersza (i=,,...,n) wiersz pierwszy pomnożony przez współczynnik l i = a() i a () Z równań i=,,..,n wyeliminowana została zmienna x. A () x = b () a () x + a () x + : : : + a () n x n = b () a () x + : : : + a () n x n = b () : : : : : : : : : : : : : : : : : : : : : = : : : a () n x + : : : + a () nnx n = b () n Powtarzamy operację, ale odejmujemy od i-tego wiersza (i=,,...,n) wiersz drugi pomnożony przez współczynnik l i = a() i a () Postępując dalej w ten sposób eliminujemy z każdego następnego równania jedną zmienną. Eliminację kończymy po (n-) krokach, gdy uzyskamy trójkątny układ równań w postaci: a (n) x + a (n) x + : : : + a (n) n x n = b (n) a (n) x + : : : + a (n) n x n = b (n) : : : : : : : : : : : : = : : : A (n) x = b (n) a (n) nn x n = b (n) n
) Etap drugi nazywany jest postępowaniem odwrotnym. Rozwiązanie (kolejne składowe wektora x) znajdujemy stosując wzór rekurencyjny dla macierzy trójkątnej. Wyznaczenie rozwiązania metodą Gaussa wymaga wykonania: - M op. mnożenia i dzielenia M = n + n n k r - D op. dodawania i odejmowania D = n + n n Metoda eliminacji w tej postaci jest niestabilna numerycznie problem dzielenia przez 0 lub liczbę bliską zeru. Rozwiązanie: Pełny wybór elementów głównych W k-tym kroku szukamy elementu ja (k) rs j = max k i;j n; jak ij j i przestawiamy wiersze: k i r oraz kolumny: k i s a) częściowy wybór elementów głównych b) pełny wybór elementów głównych Częściowy wybór elementów głównych W k-tym kroku szukamy elementu k k s ja (k) rk j = max k i n jak ikj r i przestawiamy wiersze r oraz k.
Stosując wybór elementu głównego rozwiązanie otrzymujemy zawsze. W trakcie wyboru elementu głównego należy zmienić także kolejność w x i b. Modyfikacji tej można nie stosować dla: a) macierzy z dominującą przekątną ja ii j nx j=;j=i b) macierzy symetrycznej i jednocześnie dodatniookreślonej Metoda eliminacji Jordana (eliminacji zupełnej) W układzie równań: ja i;j j (i = ; : : : ; n) a () x + a () x + : : : + a () n x n = b () a () x + a () x + : : : + a () n x n = b () : : : : : : : : : : : : : : : : : : : : : : : : : : : = : : : a () n x + a () n x + : : : + a () nnx n = b () n Następnie odejmujemy od i-tego wiersza (i=,,...,n) wiersz pierwszy przemnożony przez i otrzymujemy w i = a () i A () x = b () x + a () x + : : : + a () n x n = b () a () x + : : : + a () n x n = b () : : : : : : : : : : : : : : : : : : : : : = : : : a () n x + : : : + a () nnx n = b () n Podobnie postępujemy z równaniem drugim. Dzielimy je przez A () x = b () w = a () Następnie od i-tego wiersza (i=,,,...,n) odejmujemy wiersz drugi pomnożony przez współczynnik: w i = a () i równanie pierwsze dzielimy obustronnie przez współczynnik: w = a ()
Otrzymujemy zmodyfikowany układ równań: A () x = b () x + 0 x + a () x + : : : + a () n x n = b () x + a () x + : : : + a () n x n = b () : : : : : : : : : : : : : : : : : : : : : = : : : a () n x + : : : + a () nnx n = b () n Po przeprowadzeniu (n-) eliminacji zmiennych układ równań ma poniższą postać: x = b (n) x = b (n) : : : = : : : x n = b (n) n czyli gotowe rozwiązanie. Liczba operacji: M = n + n Rozkład LU metodą Gaussa-Crouta(GCW) Metodę Gaussa można użyć do znalezienia takich macierzy L i U, które z macierzą A związane są relacją: A = L U Procedura wyznaczania elementów tych macierzy nosi nazwę rozkładu LU. Sposób postępowania (wykorzystujemy metodę eliminacji Gaussa): ) mnożenie wiersza pierwszego przez czynnik l i = a() i a i odjęcie go od i-tego wiersza (i=...n), zastępujemy mnożeniem przez macierz: L () = 0 : : : : : : 0 l 0 : : : 0 l 0 0 0 : : : : : : : : : 0 l n 0 0 : : : co można zapisać macierzowo: n n D = n n L () A () = A () L () b () = b ()
Eliminacja zmiennej z równań (i=,,...,n) wygląda podobnie. Mnożymy wiersze zmodyfikowanego układu równań o indeksach i=,,...,n przez czynnik l i = a() i a i odejmujemy od nich wiersz drugi. Operację tą można przeprowadzić mnożąc układ równań obustronnie przez macierz L () : L () = 0 : : : : : : 0 0 0 0 : : : 0 l 0 0 : : : : : : : : : 0 0 l n 0 0 Zapis macierzowy operacji: L () A () = A () L () b () = b () Po wykonaniu (n-) takich operacji dostajemy L (n ) L (n ) : : : L () A () = A (n) L (n ) L (n ) : : : L () b () = b (n) Macierze L (i) są nieosobliwe (można znaleźć dla każdej macierz odwrotną). Przemnażając obie strony powyższych równań przez (L (n-) ) -, (L (n-) ) -..., otrzymamy: A () = b () = ³L () ³L () ³ : : : L (n ) A (n) ³L () ³L () ³ : : : L (n ) b (n) wprowadzamy oznaczenia L = (L () ) (L () ) : : : (L (n ) ) U = A (n) = µl (n ) L (n ) : : : L () A () A = L U Jak znaleźć macierze (L (i) ) -? L () = ³ L () = 0 : : : 0 l : : : 0 : : : : : : 0 l n 0 : : : 0 : : : 0 l : : : 0 : : : : : : 0 l n 0 : : :
Sprawdzenie L (i) ³ L (i) = I macierz L jest macierzą dolną z jedynkami na diagonali: L = (L () ) (L () ) : : : (L (n ) ) 0 : : : : : : 0 l 0 : : : 0 L = l l 0 0 : : : : : : : : : 0 l n l n l n : : : Dysponując macierzami L i U można rozwiązać układ równań: Ax = b LUx = b poprzez rozwiązanie układów równań Ly = b Ux = y Rozwiązanie każdego z równań wiąże się z nakładem obliczeń jak dla układu z macierzą trójkątną (~n ). Rozkład LU (eliminacja Gaussa) to nakład rzędu ~0.n. macierz U jest macierzą górną z niezerowymi elementami na diagonali: U = u u u : : : u n 0 u u : : : u n 0 0 u : : : u nn : : : : : : : : : : : : : : : 0 0 0 : : : u nn 8
Jaki jest wektor reszt rozwiązania? Norma maksymalna wektora reszt może być mała nawet dla źle uwarunkowanych macierzy. Zalety: r = b A~x = (A + ±A)~x A~x = ±A~x jjrjj = jjb A~xjj k "jj±ajj jj~xjj ) Duża wydajność dla dużej liczby równań. Rozkład LU opłaca się stosować w przypadku rozwiązywania wielu układów równań z tą samą macierzą współczynników układu A. Każdy układ równań różni się wtedy tylko wektorem wyrazów wolnych. Rozkład LU wykonuje się w takim przypadku tylko raz (ilość operacji ~n ). Rozwiązanie pojedynczego układu równań można znaleźć przy zastosowaniu algorytmu postępowania odwrotnego (ilość operacji ~n ). ) Oszczędność zajmowanej pamięci. Elementy macierzy L i U mogą zostać zapisane w macierzy A. ) Jeśli macierz A jest symetryczna i dodatniookreślona to nie trzeba dokonywać wyboru elementów podstawowych. 9
Układy równań z macierzą symetryczną. Rozkład LDL T Oznaczmy rozkład LU jako: Szukamy rozkładu macierzy A w postaci: A = LDU gdzie: L macierz trójkątna dolna z jedynkami na diagonali, D macierz diagonalna z elementami diagonalnymi macierzy ¹U, U macierz trójkątna górna z jedynkami na diagonali Wykorzystujemy symetrię macierzy co prowadzi do rozkładu dla macierzy symetrycznych: A = LDL T Rozwiązanie układu Ax=b: A = LU U T DL T = A T = A ) U = L T Lz = b Dy = z L T x = y Elementy rozkładu wyznaczamy rekurencyjnie a dla i=,,...,n oblicza się na przemian: Nakład obliczeń: Zalety: - nakład obliczeń dwukrotnie mniejszy niż w GCW - dzięki symetrii macierzy wystarczy zapamiętać elementów d = a l ij = a ij P j k= c ikl jk d j c ij = d j l ij ; j = ; ; : : : ; i d i = a ii Xi k= c ik l ik M = n + n n D = n n N = n(n + ) 0
Rozkład LL T (Banachiewicza-Cholesky'ego) Jeśli macierz A jest macierzą symetryczną dodatnio określoną wówczas można dokonać następującego rozkładu: Macierz L jest macierzą trójkątną dolną z elementami na diagonali mogącymi się różnić od. Macierz spełnia warunek A = LL T A = ¹ L ¹ L T więc rozkład ten nie jest jednoznaczny. Jeśli jednak liczby na diagonali macierzy L są dodatnie wówczas rozkład jest jednoznaczny, a elementy macierzy wyznaczamy ze wzorów: l ii = v u t aii ¹L = L Xi k= lik ; i = ; ; : : : ; n l ji = a ji P i k= l jkl ik ; j = i + ; i + ; : : : ; n l ii Nakład obliczeń: Przykład n p M = n + n n D = n + n + n A = i = : l = ; l = ; l = i = : l = ; l = i = : l = A = = 0 0 0 0 0 0
Inne zastosowania rozkładu LU. Obliczanie wyznacznika Aby obliczyć wyznacznik macierzy A możemy posłużyć się rozkładem det(l) = A = LU det(a + E) = det(lu) Wyznacznik macierzy U jest iloczynem elementów stojących na diagonali tej macierzy (n- operacji mnożenia). Odwracanie macierzy = det(l)det(u) = det(u) Aby znaleźć przy pomocy macierzy L i U macierz odwrotną A - należy rozwiązać n układów równań: LUx (i) = e (i) ; i = ; ; : : : ; n e (i) = [0; 0; : : : ; ; : : : ; 0] T LUX = I! X = A Rozwiązania układów równań x (i) stanowią kolumny macierzy odwrotnej A - (po uwzględnieniu ewentualnych przestawień wierszy wynikających z wyboru elementu podstawowego). Przykład Znaleźć macierz A - jeśli macierz A jest zdefiniowana: 0 A = 0 0 0 0 0 L = 0 0 U = 0 0 0 x () = = = x () = = = = = P n = x () = = = = A =
Układy równań z macierzą trójdiagonalną Szukamy rozwiązania układu równań: Zdarza się że macierz układu równań ma postać (np. równania z ilorazami różnicowymi): T = T x = b d c a d c a d c............... c n a n d n Można wykonać rozkład LU macierzy T, macierze te mają postać: U = u c u c 0 u c...... 0 Elementy macierzy rozkładu obliczamy rekurencyjnie: u = d l i = a i u i u i = d i l i c i ;... c n u n i = ; ; : : : ; n L = l 0 l...... 0...... l n Rozwiązanie układu Tx=b: Ly = b Ux = y
Rozwiązanie: y = b y i = b i x n = y l i y i n u n x i = y i c i x i+ u i ; i = n ; n ; : : : ; gdzie: x jest poprawką, którą można łatwo wyznaczyć rozwiązując układ: A±x = r Należy jednak pamiętać, że wyznaczona poprawka do rozwiązania również jest przybliżeniem. Kolejne poprawione rozwiązanie, które uzyskamy będzie miało postać: ¹x = ~x + ±x + ±(±x) nakład obliczeń: M=n-, D=n- liczba zajętych komórek: P=n- Jeśli macierz jest dominująca kolumnowo to rozkład T=LU jest równoważny rozkładowi z częściowym wyborem elementu podstawowego (niezawodność metody). Iteracyjne poprawianie rozwiązania układu równań Błąd rozwiązania można sprawdzić obliczając wektor reszt: r = b A~x Zazwyczaj współrzędne wektora r są różne od zera. Oznacza to, że nie uzyskaliśmy dokładnego rozwiązania, ale przybliżone. Rozwiązanie to chcemy poprawić: ~x = x ±x Jeżeli wektor reszt r=b-ax jest obliczony dokładnie, poprawka x została wyznaczona metodą Gaussa- Crouta oraz zachodzi warunek: jjrjj "jjajj W (n)jj±xjj + jjaxjj " W (n) = 9 n + n 8n wówczas norma wektora reszt obliczona w kolejnych iteracjach maleje jjb A¹xjj jjb Axjj
Algorytm iteracyjnego poprawiania rozwiązania:. Rozwiązujemy układ Ax () =b metodą Gaussa. Obliczamy wektor reszt r () i sprawdzamy rozwiązanie. Sprawdzamy czy poniższy warunek jest prawdziwy jjr i jj > jjax () jj " jeśli nie to przerywamy obliczenia. Jeśli jest spełniony to kontynuujemy.. Obliczamy poprawkę i wyznaczamy ±x () x () = x () + ±x (). Wyznaczamy wektor reszt r () i sprawdzamy rozwiązanie. W razie konieczności powtarzamy kroki,, aż do skutku.
Rozwiązywanie układów liniowych nadokreślonych minimalizacja formy kwadratowej Jak rozwiązać poniższy problem? a : : : a n a : : : a n : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : a m : : : a mn dla warunku m > n x : : : : : : x n Brak dokładnego rozwiązania w większości przypadków. Można poszukiwać conajwyżej najlepszego przybliżenia rozwiązania w sensie średniokwadratowym. Dla r = b Ax rozwiązaniem średniokwadratowym problemu nadokreślonego (least square problem) jest taki wektor x, który minimalizuje normę: jjrjj = (r T r) = = b b : : : : : : : : : : : : b m Szukamy minimum funkcjonału F: (r T r) = = min! r T r = F = min F = (b Ax) T (b Ax) = (b T x T A T )(b Ax) = b T b b T Ax x T A T b + x T A T Ax Minimum znajdziemy jeśli narzucimy warunek: @F @~x = ~0 @F @~x = bt A A T b + A T Ax + x T A T A = 0 Dwa pierwsze wyrazy są identyczne, (podobnie i ) więc otrzymujemy warunek: A T Ax A T b = 0 A T Ax = A T b (A T A) = x = (A T A) A T b
Jeśli macierz A jest macierzą o rozmiarach mxn i elementach rzeczywistych, b jest wektorem m-elementowym, a x wektorem n elementowym spełniającym równanie A T (b Ax) = 0 wówczas dla dowolnego n-elementowego wektora y spełniona jest nierówność jjb Axjj jjb Ayjj Dla dowolnego wektora otrzymujemy warunek skąd wynika że wektor r jest ortogonalny do wszystkich wektorów z przestrzeni R(A) rozpiętej na wektorach kolumnowych macierzy A. Dlaczego? - bo macierz A jest prostokątna i nie generuje bazy zupełnej. Ponadto nadokreślony układ równań można przekształcić do postaci układu normalnego Macierz A T A jest symetryczna, dlatego układ normalny można rozwiązać metodą Cholesky'ego. Jeśli kolumny macierzy A są niezależne liniowo to macierz jest nieosobliwa. x = 0! Ax = 0 (Az) T (b Ax) = 0 (A T A)x = A T b x T (A T A)x = (Ax) T Ax = jjaxjj > 0! det(a T A) > 0
Gdy kolumny A są niezależne liniowo, wówczas rozwiązanie układu jest jednoznaczne gdzie macierz A I : x = A I b A I = (A T A) A T jest pseudoodwrotnością macierzy A. r = (I P A )b P A = AA I = A(A T A) A T P A jest operatorem rzutu ortogonalnego na przestrzeń rozpiętą na kolumnach macierzy A. Uwaga: jeśli kolumny A są zależne liniowo (bardzo często) to wówczas istnieje wiele rozwiązań (średniokwadratowych ) dających ten sam wektor reszt. Przykład wpływ uwarunkowania macierzy na rozwiązanie układu normalnego A = " 0 0 0 " 0 0 0 " ; b = 0 0 0 ; j"j Przekształcamy do układu normalnego A T A = A T b = Dla precyzji obliczeń rzędu i macierz A T A staje się osobliwa układ nie posiada rozwiązania. 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 Q jest macierzą o rozmiarach mxn taką że: D jest macierzą diagonalną + " + " + " " ¼ 0 A = QR Q T Q = D D = diag(d ; d ; : : : ; d n ) d k > 0; k = ; : : : ; n 8
R jest macierzą trójkątną górną z elementami r kk = ; k = ; : : : ; n Warunek minimalizacji normy wektora reszt w sensie średniokwadratowym przyjmuje postać Ax = b ) A T Ax = A T b R T Q T QRx = R T Q T b R T DRx = R T Q T b DRx = Q T b Rx = D Q T b = y Jak wyznaczyć macierze Q i R? Zmodyfikowana metoda Grama-Schmidta Wyznaczamy ciąg macierzy A = A () ; A () ; : : : ; A (n+) = Q ³ A (k) = q ; : : : ; q k ; a (k) k ; : : : ; a(k) n q ;i a (k) ;i q i = : : : : : : : : : a(k) i = : : : q m;i a (k) m;i Założenia ) k- pierwszych kolumn w A (k) to także k- pierwszych kolumn w Q ) kolumny są ortogonalne do kolumn Proces ortogonalizacji polega na rekurencyjnej ortogonalizacji kolumn o indeksie od k do n w k-tej iteracji względem kolumny q k (usuwamy z nich przyczynki od q k ) w ten sposób wyznaczamy k-tą kolumnę R (elementy r kj ) oraz kolumnę k+ macierzy Q (elementy a j (k+) ). Klasyczna met. GS: a (k) k ; : : : ; a(k) n q ; : : : ; q k q k = a (k) k ; d k = q T k q k ; r kk = a (k+) j = a (k) j r kj a (k) k r kj = qt k a(k) j d k j = k + ; : : : ; n 9
klasyczna met. GS różni się kolejnością obliczeń: Jednocześnie przekształcamy wektor b tj.: b = b () ; b () ; : : : ; b (n+) b (k+) = b (k) y k q k ; d Po n+ krokach b (n+) jest to część wektora k pierwotnego ortogonalna do R(A) i stanowi wektor reszt. Po przeprowadzeniu procesu ortogonalizacji do końca (jeśli kolumny macierzy A są liniowo niezależne) dostajemy Q = (q ; : : : ; q n ) R = (r kj ) y = (y ; y ; : : : ; y n ) T A = QR b = Qy + r Rx = y q k = a k k X i= r ik q i r ik = qt i a k ; i = ; ; : : : ; k d i y k = qt k b(k) Wyznaczenie R i y wymaga wykonania mn(n+) operacji a rozwiązanie układu n(n+)/. Metoda Grama-Schmidta dla macierzy o liniowo zależnych kolumnach A = QR! AR = Q! Q = AS S=R - jest macierzą trójkątną górną. Stąd wynika q k = s k a + s k a + : : : + s kk a k Może się okazać że a, a,...,a k- są niezależne liniowo, ale a k jest już ich kombinacją (oraz wektorów q, q,...). Wtedy a (k) k = 0 (w macierzy Q) i powinniśmy przerwać proces ortogonalizacji. Jeśli jednak to istnieje wektor rank(a) > k a (k) j = 0; k j n Można więc przestawić kolumny j i k oraz prowadzić proces ortogonalizacji do momentu gdy pozostałe wektory a j (k) nie będą liniowo zależne. Szukamy wektora o największej normie: jja k sjj = max k j n jja(k) j jj a następnie za kolumnę k podstawiamy kolumnę s. 0
Dla rank(a)=r A <n rozkład QR ma postać Q = (q ; q ; : : : ; q ra ) A = Q(R; S) b = Qy + r Przykład zakładamy " ; " ¼ 0 gdzie: R rxr -macierz trójkątna górna (r kk =) S- macierz o rozmiarach r A x(n-r A ) Rozwiązania szukamy rozwiązując układ (R; S)x = y x = (x ; x ) T x = R y R Sx gdzie: x - ma r składowych, x jest dowolnym wektorem o n-r składowych (np. x =0). Q = R = x = 0 0 " " "= 0 " "= 0 0 "= 0 = 0 0 = = = ; r = " ; y = ; x dok = = = =( + " ) =( + " ) =( + " ) 0