RÓWNANIA NIELINIOWE Maciej Patan Uniwersytet Zielonogórski
Przykład 1 Prędkość v spadającego spadochroniarza wyraża się zależnością v = mg ( 1 e c t) m c gdzie g = 9.81 m/s 2. 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 36 v [m/s] 34 32 30 28 26 24 40 50 60 70 80 90 100 m [kg] v 63.5379 kg Uniwersytet Zielonogórski 1
Postawienie problemu Ogólne sformułowanie: Znaleźć x, takie że f(x) = 0 gdzie x 1 x 2 x =, f(x) =. x n f 1 (x 1, x 2,..., x n ) f 2 (x 1, x 2,..., x n ). f n (x 1, x 2,..., x n ) 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. Uniwersytet Zielonogórski 2
Rozważania ogólne Jaka jest klasa funkcji? Czy są to wielomiany? Czy są ciągłe oraz gładkie? Jaka jest potrzebna precyzja obliczeń? 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!!! Uniwersytet Zielonogórski 3
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ę gdzie f(α) = 0. {x i } n i=0 : lim n (x n α) = 0 Uniwersytet Zielonogórski 4
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 b a 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. Uniwersytet Zielonogórski 5
Prosty algorytm izolowania dane: f(x), x min, x max, n dx = (x max x min )/n x left = x min i = 0 while i < n i = i + 1 x right = x left + dx if f(x left )f(x right ) < 0 zapisz [x left, x right ] do dalszego poszukiwania pierwiastków end x left = x right end Uniwersytet Zielonogórski 6
Algorytmy poszukiwania pierwiastków Metoda punktu ustalonego Bisekcja Metoda Newtona-Raphsona Metoda cięciw Metoda siecznych Reguła falsi (metoda fałszywej pozycji) Uniwersytet Zielonogórski 7
Metoda punktu ustalonego (1) Żeby rozwiązać f(x) = 0 trzeba równanie przekształcić do postaci x = g(x). Wtedy x i+1 = g(x i ) 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 x 1/3 2 = 0 z użyciem metody punktu ustalonego. Można przekształcić pierwotne równanie do postaci x i+1 = g 1 (x i ) = x 1/3 i + 2 albo x i+1 = g 2 (x i ) = (x i 2) 3 Pytanie dodatkowe: Czy obie funkcje są jednakowo efektywne? Uniwersytet Zielonogórski 8
Metoda punktu ustalonego (2) k g 1 (x i ) g 2 (x i ) 0 3 3 0.5 1 3.4422495703 1 0 2 3.5098974493 1 0.5 3 3.5197243050 27 4 3.5211412691 24389 1 5 3.5213453678 1.451 10 13 1.5 6 3.5213747615 3.055 10 39 2 7 3.5213789946 2.852 10 118 8 3.5213796042 2.5 0 1 2 3 4 Podsumowanie: g 1 (x) zbiega, g 2 (x) jest rozbieżna. Dla zapewnienia zbieżności g (x) < 1. Uniwersytet Zielonogórski 9
Bisekcja Główna idea: Dla danego wyizolowanego pierwiastka, dzielić iteracyjnie przedział na połowy kontynuując proces izolowania pierwiastka. f( x 1 ) f( b) a x 2 x 1 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: x m = a + b 2 x m = a + b a 2 albo Uniwersytet Zielonogórski 10
Algorytm bisekcji inicjalizacja: a =..., b =... for k = 1, 2,... x m = a + (b a)/2 if sign(f(x m )) = sign(f(a)) a = x m else b = x m end if a b < ɛ, STOP end Analiza bisekcji Niech δ i będzie rozmiarem przedziału w i-tym kroku. Wtedy δ 0 = b a δ 1 = 1 2 δ 0, δ 2 = 1 4 δ 0,..., δ i = 1 2 i δ 0 = 2 i δ 0...... = i = log 2 ( δi δ 0 ) Uniwersytet Zielonogórski 11
Przykład 3 Rozwiąż metodą bisekcji równanie x x 1/3 2 = 0 i a b x m f(x m ) 0 3 4 1 3 4 3.5 0.01829449 2 3.5 4 3.75 0.19638375 3 3.5 3.75 3.625 0.08884159 4 3.5 3.625 3.5625 0.03522131 5 3.5 3.5625 3.53125 0.00845016 6 3.5 3.53125 3.515625 0.00492550 7 3.51625 3.53125 3.5234375 0.00176150 8 3.51625 3.5234375 3.51953125 0.00158221 9 3.51953125 3.5234375 3.52148438 0.00008959 10 3.51953125 3.52148438 3.52050781 0.00074632 stosunkowo wolna zbieżność, zbieżność niemonotoniczna, Uniwersytet Zielonogórski 12
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) x i x i 1 < δ x Kryterium odległości f(x) od zera (kryterium na f(x)) f(x i ) < δ f Uniwersytet Zielonogórski 13
Metody oparte na linearyzacji Rozwijając f(x) w szereg Taylora względem x i mamy f(x) = f(x i ) + (x x i ) df dx + (x x i) 2 d 2 f x=xi 2 dx 2 +... x=xi Podstawiając q(x i ) = df dx oraz x = x i+1 i obcinając wyrazy x=xi wyższych rzędów f(x i+1 ) f(x i ) + (x i+1 x i )q(x i ) Celem jest znalezienie x takiego, że f(x) = 0. Ustalając f(x i+1 ) = 0 oraz rozwiązując dla x i+1 mamy x i+1 = x i f(x i) q(x i ) Uniwersytet Zielonogórski 14
Metoda Współczynnik q(x i ) Newtona-Raphsona f (x i ) Cięciw Siecznych Reguła falsi f(x 1 ) f(x 0 ) x 1 x 0 f(x i ) f(x i 1 ) x i x i 1 f(x i ) f(x k ) x i x k Uniwersytet Zielonogórski 15
Metoda Newtona-Raphsona f( x 1 ) x 3 x 2 x 1 f( x 2 ) Dla aktualnego oszacowania x i, użyć f(x i ) i współczynnika nachylenia q(x i ) = f (x i ) do przewidzenia gdzie f(x) przetnie oś x. Uniwersytet Zielonogórski 16
Przykład 4 Rozwiązać metodą Newtona: x x 1/3 2 = 0. Pierwsza pochodna to: f (x) = 1 1 3 x 2/3 i formuła iteracyjna ma postać x i+1 = x i x i x 1/3 i 2 1 1 3 x 2/3 i i x i f (x i ) f(x i ) 0 3 0.83975005 0.44224957 1 3.52664429 0.85612976 0.00450679 2 3.52138015 0.85598641 3.771 10 7 3 3.52137971 0.85598640 2.664 10 15 4 3.52137971 0.85598640 0.0 bardzo szybka zbieżność, wymaga analitycznej postaci pochodnej f (x), algorytm jest bardzo prosty o ile tylko f (x) jest dostępna, iteracja nie zapewnia pozostania w przedziale izolacji pierwiastka. Uniwersytet Zielonogórski 17
Rozbieżność metody Newtona f( x ) 1 f x ( 1)=0 x 1 Ponieważ x i+1 = x i f(x i) f (x i ) to nowe oszacowanie, x i+1, będzie daleko od poprzedniego jeżeli f (x i ) 0 Uniwersytet Zielonogórski 18
Metoda siecznych f( x 1 ) x 1 x 3 x 2 x 0 f( x 2 ) Dla danych dwóch oszacowań x i 1 i x i, następne przybliżenie pierwiastka leży tam, gdzie prosta utworzona przez punkty f(x i 1 ) oraz f(x k ) przetnie oś x. Uniwersytet Zielonogórski 19
Przykład 5 Rozwiązać metodą siecznych: x x 1/3 2 = 0. i x i 1 x i f(x i ) 0 4 3 0.44224957 1 3 3.51734262 0.00345547 2 3.51734262 3.52141665 0.00003163 3 3.52141665 3.52137970 2.034 10 9 4 3.52137959 3.52137971 1.332 10 15 5 3.52137971 3.52137971 0.0 zbiega prawie tak szybko jak metoda Newtona, nie ma potrzeby wyznaczania f (x), prosty algorytm, niezbędne dwa oszacowania początkowe, iteracja nie zapewnia pozostania w przedziale izolacji pierwiastka. Uniwersytet Zielonogórski 20
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) = f 1 f 1 f 1... x 1 x 2 x n f 2 f 2 f 2... x 1 x 2 x n...... f n f n f n... x 1 x 2 x n Uniwersytet Zielonogórski 21