Metody rozwiązywania układów równań liniowych
Metody skończone: Metoda Gaussa Metoda Gaussa-Jordana Metody Choleskiego Metoda Householdera Metoda sprzężonych gradientów Metody iteracyjne dla dużych układów równań: Metoda Jacobiego Metoda Gaussa-Seidla
Metoda eliminacji Gaussa z wyborem elementu głównego w kolumnie Układ równań sprowadzamy do postaci trójkątnej Układ z macierzą trójkątną można następnie łatwo rozwiązać zaczynając od obliczenia wartości xn z n-tego równania, następnie wstawić xn do równania n-1 i wyliczyć z niego xn-1, następnie wstawić xn oraz xn-1 do równania n-2 i wyliczyć xn-2 aż do dotarcia do równania pierwszego i wyznaczenia x1.
Wybieramy równanie i takie, że |ai1| jest największym elementem w pierwszej kolumnie po czym przestawiamy i-te równanie na początek i eliminujemy x1 z równań od 2 do n. Procedurę powtarzamy z macierzą A(1) o rozmiarach (n-1)x(n-1) i wektorem b(1) o rozmiarze n-1, eliminując z nich drugą zmienną i otrzymując macierz A(2) o rozmiarach (n-2)x(n-2) i wektor b(2) o rozmiarze n-2. W ten sam sposób postępujemy z kolejnymi macierzami A(2), A(3),..., A(n-1) oraz wektorami b(2), b(3),..., b(n-1).
Dla j-tego kroku Po zakończeniu operacji otrzymujemy układ równań z macierzą trójkątną p jest liczbą przestawień wierszy macierzy A podczas sprowadzania układu równań do postaci trójkątnej.
Z otrzymanego układu równań z macierzą trójkątną wyznaczamy po kolei xn, xn-1,..., x1. Wysiłek obliczeniowy (liczba mnożeń i dzieleń) w metodzie eliminacji Gaussa: Faktoryzacja macierzy A: n(n2-1)/3 operacji Przekształcenie wektora b: n(n-1)/2 operacji Obliczenie x: n(n+1)/2 operacji. Razem: n3/3+n2-n/3≈n3/3 operacji. Kod źródłowy metody eliminacji Gaussa.
Metody typu Choleskiego dla macierzy symetrycznych silnie nieosobliwych LT D L L klasyczna metoda Choleskiego tylko dla macierzy dodatnio określonych.
Postępowanie przy rozwiązywaniu układów równań metodą faktoryzacji Choleskiego. Wyznaczenie faktorów L i D. Układ przyjmuje postać LDLTx=b 2. Obliczenie pomocniczego wektora w. w=L-1b przez rozwiązanie układu równań Lw=b. Ponieważ L jest macierzą trójkątną dolną układ ten rozwiązuje się wyliczając kolejno w1, w2,…, wn podobnie jak w koncowym etapie eliminacji Gaussa. 3. Obliczenie z=D-1w (D jest macierzą diagonalną więc po prostu dzielimy wi przez dii. Ten etap nie występuje w klasycznej metodzie Choleskiego. 4. Obliczenie x poprzez rozwiązanie układu równań z macierzą trójkątną górną LTx=z Ten etap jest identyczny z ostatnim etapem metody eliminacji Gaussa. Metoda wymaga ok. n3/6 operacji (2 razy mniej niż metoda eliminacji Gaussa). Uwaga: klasyczna metoda Choleskiego wymaga ponadto n pierwiastkowań.
Klasyczna faktoryzacja Choleskiego (A=LLT)
Faktoryzacja “bezpierwiastkowa” kod źródłowy
Regresja nieliniowa f jest funkcją nieliniową względem parametrów p1, p2,…, pm.
Przykład problemu nieliniowego linearyzowalnego: kinetyka reakcji pierwszego rzędu
Przykład problemu nieliniowego nielinearyzowalngo: kinetyka reakcji pierwszego rzędu z produktem przejściowym
regresja nieważona regresja ważona
Metoda Newtona-Gaussa Rozwijamy funkcję f dla każdego punktu pomiarowego w otoczeniu arbitralnego przybliżenia parametrów p0 w szereg Taylora
W ten sposób dostajemy funkcję liniową względem przyrostów parametrów dp(0). Macierz J nazywa się macierzą Jacobiego zagadnienia a wektor r wektorem reziduów.
regresja nieważona regresja ważona
Algorytm Newtona-Gaussa Wybieramy przybliżenie parametrów p(0). Obliczamy wektor reziduów oraz sumę kwadratów odchyleń F(0). Obliczamy macierz Jacobiego a następnie macierz i wektor wyrazów wolnych układu równań. Obliczamy wektor przyrostów parametrów dp(0). Obliczamy p(1)=p(0)+dp(0) a następnie nową sumę kwadratów odchyleń. Jeżeli przyrosty parametrów są odpowiednio małe, zmiana sumy kwadratów odchyleń jest odpowiednio mała lub przekroczono dopuszczalną liczbę iteracji, kończymy procedurę. Jeżeli nie, przechodzimy do punktu 3 wstawiając p(1) za p(0) i F(1) za F(0). Zbieżność metody Gaussa jest na ogół rzędu pierwszego. Tylko jeżeli rezidua dla optymalnego rozwiązania są zerowe zbieżność jest kwadratowa. Szybkość zbieżności zależy bardzo silnie od wielkości końcowych reziduów.
Metoda Newtona-Gaussa może być niestabilna szczególnie jeżeli rezidua odpowiadające początkowym przybliżeniom parametrów są duże i wskaźnik uwarunkowania macierzy JTJ jest duży. Można ją jednak poprawić stosując skracanie przyrostów parametrów. Szukamy takiego a, że F(p(0)+adp(0))<F(p(0)). Teoretycznie takie a zawsze istnieje, ponieważ kierunek metody Newtona-Gaussa jest kierunkiem poprawy.
Wyznaczanie a: Metoda Hartleya: wyznaczamy a tak, żeby zminimalizować F jako funkcję a (minimalizacja kierunkowa) Metoda ta zwykle nie jest stosowana w takiej wersji ze względu na czasochłonność; zwykle kończy się jak tylko F(1)<F(0). Proste skracanie kroku: Zakładamy, że a=2-k gdzie k jest liczbą całkowitą dobraną tak, że F(1)<F(0). Jeżeli macierz JTJ jest źle uwarunkowana to zarówno metoda Hartleya jak i metoda skracania kroku działają bardzo wolno. Metodą sprawdzoną dla takich przypadków jest metoda Levenberga-Marquardta.
Metoda Levenberga-Marquardta (metoda Marquardta) Zamiast układu równań normalnych z metody Newtona-Gaussa rozwiązujemy układ następujący: Macierz D jest dodatnią macierzą diagonalną; zwykle D=I lub D=diag{(JTJ)11,…,(JTJ)mm}. l dobiera się tak aby uzyskać zmniejszenie sumy kwadratów odchyleń w stosunku do poprzedniej iteracji. Dowód, że metoda jest metodą kierunku poprawy przebiega jak w przypadku metody Newtona-Gaussa ze skracaniem kroku. W pierwotniej wersji Levenberga a było dobierane tak aby uzyskać minimum F w funkcji l (kosztowne).
Metoda Marquardta: Na początku przyjmujemy l=l0. W każdej kolejnej iteracji przyjmujemy najpierw l(p)=l(p-1)/V. Obliczamy F(p)(l). Jeżeli F(p)(l)<F(p-1) przechodzimy do następnej iteracji z nową wartością l. Jeżeli F(p)(l)>=F(p-1) i nie przekroczono maksymalnej dopuszczalnej wartości liczby krokow modyfikacji l wstawiamy l:=l*V i przechodzimy do punktu 3. Jeżeli przekroczono maksymalną liczbę kroków kończymy optymalizację. Metoda Marquardta jest jedną z “najodporniejszych” metod minimalizacji sum kwadratów. Niepowodzenie optymalizacji jest na ogół sygnałem błędu w programie (najczęściej błędnemu obliczeniu pochodnych).
Wariancja resztowa: Macierz wariancji-kowariancji parametrów: Odchylenia standardowe:
Metoda Newtona w rozwiązywaniu problemu regresji nieliniowej regresja nieważona regresja ważona Warunek konieczny minimum regresja nieważona regresja ważona
Otrzymujemy zatem układ m równań nieliniowych z m niewiadomymi, który można rozwiązać metodą Newtona. H – hesjan (Hessian) funkcji F. Macierz JTJ: dodatnio określona część hesjanu (występuje w metodzie Newtona-Gaussa.
Algorytm Newtona dla zagadnienia regresji nieliniowej: Wybrać początkowe przybliżenia parametrów p(0). Dla k-tej iteracji obliczyć rezidua, funkcję minimalizowaną, macierz Jacobiego oraz drugie pochodne wielkości mierzonych względem parametrów. Rozwiązać układ równań H(k)Dp(k)=JT(k)r(k) Jeżeli ||Dp(k)||<e zakończyć proces iteracyjny, w przeciwnym przypadku wstawić p(k+1)=p(k)+Dp(k) i przejść do punktu 2. Metoda Newtona jest zbieżna kwadratowo, jeżeli hesjan w minimum jest nieosobliwy. Metoda Newtona różni się od metody Newtona-Gaussa tym, że linearyzuje się tutaj gradient funkcji minimalizowanej a nie od razu teoretyczną zależność pomiędzy zmiennymi objaśniającymi i niezależnymi. Metoda Newtona-Gaussa „gubi” drugie pochodne tych wielkości względem parametrów.