równania nieliniowe - Uniwersytet Zielonogórski
Transkrypt
równania nieliniowe - Uniwersytet Zielonogórski
RÓWNANIA NIELINIOWE Maciej Patan Instytut Sterowania i Systemów Informatycznych Uniwersytet Zielonogórski Metody numeryczne Równania nieliniowe Przykład 1 Prędkość v spadającego spadochroniarza wyraża się zależnością c mg v= 1 − e− m t c gdzie g = 9.81 m/s2 . Dla współczynnika oporu c = 14 kg/s, obliczyć masę skoczka m tak, żeby prędkość w chwili t = 7 s wynosiła v = 35 m/s. 44 42 40 38 v [m/s] 36 34 32 30 28 26 24 40 50 60 70 80 90 100 m [kg] v ≈ 63.5379 kg Instytut Sterowania i Systemów Informatycznych Uniwersytet Zielonogórski 1 Metody numeryczne Równania nieliniowe Postawienie problemu Ogólne sformułowanie: Znaleźć x, takie że f (x) = 0 gdzie x1 f1 (x1 , x2 , . . . , xn ) x2 f2 (x1 , x2 , . . . , xn ) x = . , f (x) = .. .. . xn fn (x1 , x2 , . . . , xn ) Uwaga: Każde równanie może zostać przekształcone do postaci f (x) = 0. Motywacje Często, istniejące rozwiązania nie mogą zostać znalezione analitycznie, nawet dla prostych równań, np. f (x) = e−x − x Nawet jeżeli problem posiada rozwiązanie analityczne, złożoność obliczeń czyni go niemożliwym do zastosowania. Instytut Sterowania i Systemów Informatycznych Uniwersytet Zielonogórski 2 Metody numeryczne Równania nieliniowe Rozważania ogólne B Jaka jest klasa funkcji? I Czy są to wielomiany? I Czy są ciągłe oraz gładkie? B Jaka jest potrzebna precyzja obliczeń? B Jak szybka i odporna powinna być metoda? Wniosek: Dla układów równań nieliniowych nie istnieje pojedyncza metoda szukania pierwiastków, która byłaby odpowiednia we wszystkich sytuacjach!!! Instytut Sterowania i Systemów Informatycznych Uniwersytet Zielonogórski 3 Metody numeryczne Równania nieliniowe Strategia szukania pierwiastków równania ¶ Naszkicować wykres funkcji (dostarcza on początkowego oszacowania i wskazuje potencjalne problemy). · Wyizolować pojedyncze pierwiastki w oddzielnych przedziałach (ang. bracketing). ¸ Wybrać oszacowanie początkowe rozwiązania. ¹ Iteracyjnie polepszać oszacowanie początkowe zgodnie z wybranym algorytmem szukania pierwiastków, tzn. wygenerować sekwencję {xi }ni=0 : lim (xn − α) = 0 n→∞ gdzie f (α) = 0. Instytut Sterowania i Systemów Informatycznych Uniwersytet Zielonogórski 4 Metody numeryczne Równania nieliniowe Izolacja pierwiastków (ang. Bracketing) Pierwiastek jest wyizolowany w przedziale [a, b] jeżeli f (a) oraz f (b) mają przeciwne znaki. Ale zmiana znaku zachodzi także dla osobliwości. f(b) f(b) a a b b f(a) f(a ) Uwaga: Izolowanie służy do wstępnego, zgrubnego określenia pierwiastków, nie do znalezienia ich dokładnej wartości. Instytut Sterowania i Systemów Informatycznych Uniwersytet Zielonogórski 5 Metody numeryczne Równania nieliniowe Prosty algorytm izolowania dane: f (x), xmin , xmax , n dx = (xmax − xmin )/n xleft = xmin i=0 while i < n i=i+1 xright = xleft + dx if f (xleft )f (xright ) < 0 zapisz [xleft , xright ] do dalszego poszukiwania pierwiastków end xleft = xright end Instytut Sterowania i Systemów Informatycznych Uniwersytet Zielonogórski 6 Metody numeryczne Równania nieliniowe Algorytmy poszukiwania pierwiastków B B B B B B Metoda punktu ustalonego Bisekcja Metoda Newtona-Raphsona Metoda cięciw Metoda siecznych Reguła falsi (metoda fałszywej pozycji) Instytut Sterowania i Systemów Informatycznych Uniwersytet Zielonogórski 7 Metody numeryczne Równania nieliniowe Metoda punktu ustalonego (1) Żeby rozwiązać f (x) = 0 trzeba równanie przekształcić do postaci x = g(x). Wtedy xi+1 = g(xi ) Jest to bardzo prosta metoda. Będzie działać jednak tylko gdy funkcja iteracyjna g(x) jest zbieżna. Przykład 2 Rozwiązać x − x1/3 − 2 = 0 z użyciem metody punktu ustalonego. Można przekształcić pierwotne równanie do postaci 1/3 xi+1 = g1 (xi ) = xi +2 albo xi+1 = g2 (xi ) = (xi − 2)3 Pytanie dodatkowe: Czy obie funkcje są jednakowo efektywne? Instytut Sterowania i Systemów Informatycznych Uniwersytet Zielonogórski 8 Metody numeryczne Równania nieliniowe Metoda punktu ustalonego (2) k 0 1 2 3 4 5 6 7 8 g1 (xi ) 3 3.4422495703 3.5098974493 3.5197243050 3.5211412691 3.5213453678 3.5213747615 3.5213789946 3.5213796042 g2 (xi ) 3 1 −1 −27 −24389 −1.451 · 1013 −3.055 · 1039 −2.852 · 10118 ∞ 0.5 0 −0.5 −1 −1.5 −2 −2.5 0 1 2 3 4 Podsumowanie: g1 (x) zbiega, g2 (x) jest rozbieżna. Dla zapewnienia zbieżności |g 0 (x)| < 1. Instytut Sterowania i Systemów Informatycznych Uniwersytet Zielonogórski 9 Metody numeryczne Równania nieliniowe Bisekcja Główna idea: Dla danego wyizolowanego pierwiastka, dzielić iteracyjnie przedział na połowy kontynuując proces izolowania pierwiastka. f(x1 ) f ( b) a x2 x1 b f(a) Założenia: funkcja jest ciągła w [a, b] i f (a)f (b) < 0 Dla przedziału izolacji [a, b] punkt środkowy to: xm = b−a xm = a + 2 Instytut Sterowania i Systemów Informatycznych Uniwersytet Zielonogórski a+b albo 2 10 Metody numeryczne Równania nieliniowe Algorytm bisekcji inicjalizacja: a = . . . , b = . . . for k = 1, 2, . . . xm = a + (b − a)/2 if sign(f (xm )) = sign(f (a)) a = xm else b = xm end if a − b < , STOP end Analiza bisekcji Niech δi będzie rozmiarem przedziału w i-tym kroku. Wtedy 1 1 1 δ0 = b − a ⇒ δ1 = δ0 , δ2 = δ0 , . . . , δi = i δ0 = 2−i δ0 ⇒ . . . 2 4 2 δ i . . . =⇒ i = log2 δ0 Instytut Sterowania i Systemów Informatycznych Uniwersytet Zielonogórski 11 Metody numeryczne Równania nieliniowe Przykład 3 Rozwiąż metodą bisekcji równanie x − x1/3 − 2 = 0 i 0 1 2 3 4 5 6 7 8 9 10 a 3 3 3.5 3.5 3.5 3.5 3.5 3.51625 3.51625 3.51953125 3.51953125 b 4 4 4 3.75 3.625 3.5625 3.53125 3.53125 3.5234375 3.5234375 3.52148438 xm 3.5 3.75 3.625 3.5625 3.53125 3.515625 3.5234375 3.51953125 3.52148438 3.52050781 f (xm ) −0.01829449 0.19638375 0.08884159 0.03522131 0.00845016 −0.00492550 0.00176150 −0.00158221 0.00008959 −0.00074632 stosunkowo wolna zbieżność, zbieżność niemonotoniczna, Instytut Sterowania i Systemów Informatycznych Uniwersytet Zielonogórski 12 Metody numeryczne Równania nieliniowe Kryteria zatrzymania algorytmu Automatyczna procedura poszukiwania pierwiastków potrzebuje monitorować progres w kierunku rozwiązania i zatrzymać proces, kiedy oszacowanie jest wystarczająco blisko wartości prawdziwej. Sprawdzanie zbieżności zapobiega poszukiwaniom do uzyskania nadmiernej precyzji. Kryterium dystansu pomiędzy kolejnymi przybliżeniami (kryterium na x) |xi − xi−1 | < δx Kryterium odległości f (x) od zera (kryterium na f (x)) |f (xi )| < δf Instytut Sterowania i Systemów Informatycznych Uniwersytet Zielonogórski 13 Metody numeryczne Równania nieliniowe Metody oparte na linearyzacji Rozwijając f (x) w szereg Taylora względem xi mamy df (x − xi )2 d2 f f (x) = f (xi ) + (x − xi ) + + ... dx x=xi 2 dx2 x=xi df Podstawiając q(xi ) = oraz x = xi+1 i obcinając wyrazy dx x=xi wyższych rzędów f (xi+1 ) ≈ f (xi ) + (xi+1 − xi )q(xi ) Celem jest znalezienie x takiego, że f (x) = 0. Ustalając f (xi+1 ) = 0 oraz rozwiązując dla xi+1 mamy xi+1 = xi − Instytut Sterowania i Systemów Informatycznych Uniwersytet Zielonogórski f (xi ) q(xi ) 14 Metody numeryczne Równania nieliniowe Metoda Newtona-Raphsona Cięciw Siecznych Reguła falsi Instytut Sterowania i Systemów Informatycznych Uniwersytet Zielonogórski Współczynnik q(xi ) f 0 (xi ) f (x1 ) − f (x0 ) x1 − x0 f (xi ) − f (xi−1 ) xi − xi−1 f (xi ) − f (xk ) xi − xk 15 Metody numeryczne Równania nieliniowe Metoda Newtona-Raphsona f(x1 ) x3 x2 x1 f(x2 ) Dla aktualnego oszacowania xi , użyć f (xi ) i współczynnika nachylenia q(xi ) = f 0 (xi ) do przewidzenia gdzie f (x) przetnie oś x. Instytut Sterowania i Systemów Informatycznych Uniwersytet Zielonogórski 16 Metody numeryczne Równania nieliniowe Przykład 4 Rozwiązać metodą Newtona: x − x1/3 − 2 = 0. Pierwsza pochodna to: f 0 (x) = 1 − 13 x−2/3 i formuła 1/3 xi − xi − 2 iteracyjna ma postać xi+1 = xi − −2/3 1 − 13 xi i 0 1 2 3 4 xi 3 3.52664429 3.52138015 3.52137971 3.52137971 f 0 (xi ) 0.83975005 0.85612976 0.85598641 0.85598640 0.85598640 f (xi ) −0.44224957 0.00450679 3.771 · 10−7 2.664 · 10−15 0.0 bardzo szybka zbieżność, wymaga analitycznej postaci pochodnej f 0 (x), algorytm jest bardzo prosty o ile tylko f 0 (x) jest dostępna, iteracja nie zapewnia pozostania w przedziale izolacji pierwiastka. Instytut Sterowania i Systemów Informatycznych Uniwersytet Zielonogórski 17 Metody numeryczne Równania nieliniowe Rozbieżność metody Newtona f ’(x1)=0 f(x1 ) x1 Ponieważ f (xi ) f 0 (xi ) to nowe oszacowanie, xi+1 , będzie daleko od poprzedniego jeżeli xi+1 = xi − f 0 (xi ) ≈ 0 Instytut Sterowania i Systemów Informatycznych Uniwersytet Zielonogórski 18 Metody numeryczne Równania nieliniowe Metoda siecznych f(x1) x1 x3 x2 x0 f(x2) Dla danych dwóch oszacowań xi−1 i xi , następne przybliżenie pierwiastka leży tam, gdzie prosta utworzona przez punkty f (xi−1 ) oraz f (xk ) przetnie oś x. Instytut Sterowania i Systemów Informatycznych Uniwersytet Zielonogórski 19 Metody numeryczne Równania nieliniowe Przykład 5 Rozwiązać metodą siecznych: x − x1/3 − 2 = 0. i 0 1 2 3 4 5 xi−1 xi 4 3 3 3.51734262 3.51734262 3.52141665 3.52141665 3.52137970 3.52137959 3.52137971 3.52137971 3.52137971 f (xi ) −0.44224957 −0.00345547 0.00003163 −2.034 · 10−9 −1.332 · 10−15 0.0 zbiega prawie tak szybko jak metoda Newtona, nie ma potrzeby wyznaczania f 0 (x), prosty algorytm, niezbędne dwa oszacowania początkowe, iteracja nie zapewnia pozostania w przedziale izolacji pierwiastka. Instytut Sterowania i Systemów Informatycznych Uniwersytet Zielonogórski 20 Metody numeryczne Równania nieliniowe Uogólnienie metody Newtona dla układów równań x(i+1) = x(i) − J −1 (x(i) )f (x(i) ) where J(x) = ∂f1 ∂x1 ∂f2 ∂x1 .. . ∂fn ∂x1 Instytut Sterowania i Systemów Informatycznych Uniwersytet Zielonogórski ∂f1 ... ∂x2 ∂f2 ... ∂x2 .. ... . ∂fn ... ∂x2 ∂f1 ∂xn ∂f2 ∂xn .. . ∂fn ∂xn 21