Wstęp do metod numerycznych 9a. Układy równań algebraicznych P. F. Góra http://th-www.if.uj.edu.pl/zfs/gora/ 2012
Układy równań algebraicznych Niech g:r N równanie R N będzie funkcja klasy co najmniej C 1. Rozważamy formalnie równoważne układowi równań g(x) = 0, (1) g 1 (x 1, x 2,..., x N ) = 0, (2a) g 2 (x 1, x 2,..., x N ) = 0, (2b)... g N (x 1, x 2,..., x N ) = 0. (2c) Rozwiazywanie układów równań algebraicznych jest trudne, gdyż geometrycznie oznacza znalezienie punktu (badź punktów) przecięcia krzywych (2). O tych funkcjach na ogół nic nie wiemy, zmiana jednej nie wpływa na zmianę innej itd. Copyright c 2009-12 P. F. Góra 9a 2
Przykład W zależności od parametrów, układ równań (x x 0 ) 2 + (y x 0 ) 2 r 2 = 0 (3a) x 2 y 2 b 2 = 0 (3b) może mieć 0, 1, 2, 3 lub 4 rozwiazania, co wiemy z zainwestowania do analizy układu (3) naszej wiedzy z zakresu krzywych stożkowych. Copyright c 2009-12 P. F. Góra 9a 3
2 1.5 1 0.5 0-0.5-1 -1.5-2 -2-1.5-1 -0.5 0 0.5 1 1.5 2 Interpretacja geometryczna układu równań x 2 + ( y 1 4 y 2 x 2 = 2 ) 2 = 5 2 Punkt leżacy pomiędzy dolna gałęzia czerwonej hiperboli a niebieskim okręgiem odpowiada minimum lokalnemu funkcji G (patrz niżej). Copyright c 2009-12 P. F. Góra 9a 4
Metoda Newtona Rozwijajac funkcję g w szereg Taylora do pierwszego rzędu otrzymamy gdzie J jest jakobianem funkcji g: g(x + δx) g(x) + Jδx, (4) J(x) ij = g i x j x. (5) Jaki krok δx musimy wykonać, aby znaleźć się w punkcie spełniajacym równanie (1)? Żadamy aby g(x + δx) = 0, skad otrzymujemy δx = J 1 g(x). (6) Copyright c 2009-12 P. F. Góra 9a 5
Prowadzi to do następujacej iteracji: x k+1 = x k J 1 (x k )g(x k ). (7) Oczywiście zapis z = J 1 g należy rozumieć w ten sposób, że z spełnia równanie Jz = g. Nie należy konstruować jawnej odwrotności jakobianu. Uwaga: W metodzie (7) jakobian trzeba obliczać w każdym kroku. Oznacza to, że w każdym kroku trzeba rozwiazywać inny układ równań liniowych, co czyni metodę dość kosztowna, zwłaszcza jeśli N (wymiar problemu) jest znaczne. Często dla przyspieszenia obliczeń macierz J zmieniamy nie co krok, ale co kilka kroków pozwala to użyć tej samej faktoryzacji J do rozwiazania kilku kolejnych równań Jz = g(x k ). Jest to dodatkowe uproszczenie, ale jest ono bardzo wydajne przy N 1. Copyright c 2009-12 P. F. Góra 9a 6
Rozwiazywanie równań nieliniowych a minimalizacja Metoda Newtona czasami zawodzi. Ponieważ rozwiazywanie równań algebraicznych jest trudne, natomiast minimalizacja jest łatwa, niektórzy skłonni sa rozważać funkcję G:R N R G(x) = 1 2 g(x) 2 = 1 2 (g(x))t g(x) (8) i szukać jej minimum zamiast rozwiazywać (1). Globalne minimum G = 0 odpowiada co prawda rozwiazaniu (1), jednak G może mieć wiele minimów lokalnych, nie mamy także gwarancji, że globalne minimum G = 0 istnieje. Nie jest to więc dobry pomysł. Copyright c 2009-12 P. F. Góra 9a 7
Metoda globalnie zbieżna Rozwiazaniem jest połaczenie idei minimalizacji funkcji (8) i metody Newtona. Przypuśćmy, iż chcemy rozwiazywać równanie (1) metoda Newtona. Krok iteracji wynosi δx = J 1 g. (9) Z drugiej strony mamy G = 1 x i 2 a zatem G = J T g. j ( ) gj g j g j + g j x i x i = j J ji g j (10) Copyright c 2009-12 P. F. Góra 9a 8
Jak zmienia się funkcja G (8) po wykonaniu kroku Newtona (9)? ( G) T δx = g T J ( J 1) g = g T g < 0, (11) a zatem kierunek kroku Newtona jest lokalnym kierunkiem spadku G. Jednak przesunięcie się o pełna długość kroku Newtona nie musi prowadzić do spadku G. Postępujemy wobec tego jak następuje: 1. w = 1. Oblicz δx. 2. x test = x i + w δx. 3. Jeśli G(x test ) < G(x i ), to (a) x i+1 = x test (b) goto 1 4. Jeśli G(x test ) > G(x i ), to (a) w w/2 (b) goto 2 Jest to zatem forma tłumionej (damped) metody Newtona. Zamiast połowienia kroku, można używać innych strategii poszukiwania w prowadzacych do zmniejszenia się wartości G. Jeśli wartość w spadnie poniżej pewnego akceptowalnego progu, obliczenia należy przerwać, jednak (11) gwarantuje, że istnieje takie w, iż w δx prowadzi do zmniejszenia się G. Copyright c 2009-12 P. F. Góra 9a 9
Powyższa metoda jest zawsze zbieżna do jakiegoś minimum funkcji G, ale niekoniecznie do jej minimum globalnego, czyli do rozwiazania równania (1). Jeżeli znajdziemy minimum lokalne G min > ε, gdzie ε > 0 jest pożadan a tolerancja, należy spróbować rozpoczać z innym warunkiem poczatkowym. Jeżeli kilka różnych warunków poczatkowych nie daje rezultatu, należy się poddać. Szansa na znalezienie numerycznego rozwiazania układu równań (1) jest tym większa, im lepszy jest warunek poczatkowy. Należy wobec tego zainwestować cała nasza wiedzę o funkcji g w znalezienie warunku poczat- kowego; analogiczna uwaga obowiazuje w wypadku stosowania wielowy- miarowej metody Newtona (7). Copyright c 2009-12 P. F. Góra 9a 10
Bardzo ważna uwaga Wszystkie przedstawione tu metody wymagaja znajomości analitycznych wzorów na pochodne odpowiednich funkcji. Używanie powyższych metod w sytuacji, w których pochodne należy aproksymować numerycznie, na ogół nie ma sensu. Copyright c 2009-12 P. F. Góra 9a 11
Wielowymiarowa metoda siecznych metoda Broydena Niekiedy analityczne wzory na pochodne sa nieznane, niekiedy samo obliczanie jakobianu, wymagajace obliczenia N 2 pochodnych czastkowych, jest numerycznie zbyt kosztowne. W takich sytuacjach czasami używa się metody zwanej niezbyt ściśle wielowymiarowa metoda siecznych. Podobnie jak w przypadku jednowymiarowym, gdzie pochodna zastępuje się ilorazem różnicowym g (x i+1 ) g(x i+1) g(x i ) x i+1 x i, (12) jakobian w kroku Newtona zastępujemy wyrażeniem przybliżonym: Zamiast J δx = g(x) bierzemy B x = g. Macierz B jest przybliżeniem jakobianu, poprawianym w każdym kroku iteracji. Otrzymujemy zatem Copyright c 2009-12 P. F. Góra 9a 12
natomiast poprawki B obliczamy jako x i+1 = x i B 1 i g(x i ), (13) B i+1 = B i + ( g i B i x i ) ( x i ) T ( x i ) T x i, (14) gdzie x i = x i+1 x i, g i = g(x i+1 ) g(x i ). Ponieważ poprawka do B i ma postać iloczynu diadycznego dwu wektorów, do obliczania B 1 i+1 g(x i+1) można skorzystać ze wzoru Shermana-Morrisona. Metoda ta wymaga inicjalizacji poprzez podanie B 1 oraz wektora x 1. To drugie nie jest niczym dziwnym; co do pierwszego, jeśli to tylko możliwe, można przyjać B 1 = J(x 1 ). Czyli tak naprawdę do rozwiazywania pewnego układu równań liniowych! Copyright c 2009-12 P. F. Góra 9a 13