Transport, studia niestacjonarne I stopnia, semestr I Instytut L-5, Wydział Inżynierii Lądowej, Politechnika Krakowska Ewa Pabisek Adam Wosatko
Postać ogólna równania nieliniowego Zazwyczaj nie można znaleźć rozwiązania równania nieliniowego w sposób dokładny. Istotnym problemem obliczeniowym jest numeryczne poszukiwanie rozwiązań równań nieliniowych, które mają postać: f (x) = 0 lub g(x) = h(x). (1) Rozwiązaniem (pierwiastkiem równania, miejscem zerowym) nazywamy każdą liczbę x = x, która spełnia równanie (1). Równanie nieliniowe charakteryzuje się tym, że może nie mieć żadnego rozwiązania lub też może mieć wiele rozwiązań. Nie można sformułować ogólnych reguł prowadzących do wyznaczenia jakiegokolwiek pierwiastka. Przykładem równań nieliniowych mogą być równania algebraiczne (wielomiany) lub równania przestępne (funkcje trygonometryczne).
Warunki numerycznego rozwiązywania równań nieliniowych Do obliczeń numerycznych można przystąpić dopiero wtedy gdy wiemy, że poszukiwane rozwiązanie istnieje. Przy omawianiu algorytmów obliczania rozwiązań równań nieliniowych zakładamy, że równanie ma tylko pierwiastki odosobnione, tj. dla każdego pierwiastka równania istnieje otoczenie [a, b], które nie zawiera innych pierwiastków tego równania. Takie otoczenie [a, b] będzie nazywane przedziałem izolacji.
Warunki numerycznego rozwiązywania równań nieliniowych Równania nieliniowe (przy pomocy komputera) rozwiązywać będziemy metodami iteracyjnymi, które wymagają: 1 dokonania właściwego wyboru punktu startowego, 2 wybrania odpowiedniego algorytmu iteracyjnego zapewniającego zbieżność procesu obliczeniowego, 3 określenia kryterium stopu wynikającego z wymaganej dokładności obliczeń. Punkt startowy musi być położony dostatecznie blisko poszukiwanego rozwiązania i znajdować się w przedziale izolacji tego pierwiastka. Zakładamy, że poszukiwany pierwiastek istnieje, i że znany jest jego przedział izolacji.
Etapy numerycznego rozwiązywania równań nieliniowych Obliczanie przybliżone pierwiastków odosobnionych, rzeczywistych równania f (x) = 0 dzieli się na dwa etapy: 1 ustalenie możliwie małych przedziałów [a, b], tzw. przedziałów izolacji, które zawierają jeden i tylko jeden pierwiastek; 2 uściślenie pierwiastków przybliżonych, tj. określenie tych pierwiastków z żądaną dokładnością. Każdy algorytm iteracyjnego obliczania pierwiastka generuje pewien ciąg punktów x (k), k = 1, 2,..., charakteryzujący się tym, że odległości kolejnych punktów tego ciągu maleją, tzn. ɛ k = x (k+1) x (k) k 0, (2) O metodzie iteracyjnej mówimy, że jest szybkozbieżna i wtedy, gdy odległości ɛ k kolejnych punktów szybko maleją. W przeciwnym razie mówimy, że metoda jest wolnozbieżną.
Kryterium stopu procesu iteracyjnego Proces iteracyjny nie może trwać w nieskończoność, dlatego należy sformułować warunek stopu, który powinien polegać na spełnieniu dwóch nierówności ɛ k < ɛ x oraz f (x) (k) < ɛ f. (3) gdzie: ɛ x, ɛ f są małymi liczbami określającymi dokładność obliczeń. Ograniczymy się równań o jednej zmiennej niezależnej x.
Metoda połowienia (bisekcji) Metoda bisekcji jest najprostszą ze wszystkich możliwych metod i jest bardzo wolno zbieżna. Dane jest równanie f (x) = 0, przy czym funkcja f (x) jest ciągła w przedziale domkniętym < a, b > oraz zachodzi nierówność: f (a) f (b) < 0.
Metoda połowienia (bisekcji) Metoda bisekcji jest najprostszą ze wszystkich możliwych metod i jest bardzo wolno zbieżna. Dane jest równanie f (x) = 0, przy czym funkcja f (x) jest ciągła w przedziale domkniętym < a, b > oraz zachodzi nierówność: f (a) f (b) < 0.
Metoda połowienia (bisekcji) Metoda bisekcji jest najprostszą ze wszystkich możliwych metod i jest bardzo wolno zbieżna. Dane jest równanie f (x) = 0, przy czym funkcja f (x) jest ciągła w przedziale domkniętym < a, b > oraz zachodzi nierówność: f (a) f (b) < 0.
Metoda połowienia (bisekcji) Metoda bisekcji jest najprostszą ze wszystkich możliwych metod i jest bardzo wolno zbieżna. Dane jest równanie f (x) = 0, przy czym funkcja f (x) jest ciągła w przedziale domkniętym < a, b > oraz zachodzi nierówność: f (a) f (b) < 0.
Metoda połowienia (bisekcji) Metoda bisekcji jest najprostszą ze wszystkich możliwych metod i jest bardzo wolno zbieżna. Dane jest równanie f (x) = 0, przy czym funkcja f (x) jest ciągła w przedziale domkniętym < a, b > oraz zachodzi nierówność: f (a) f (b) < 0.
Metoda bisekcji przykład Przykład Znaleźć pierwiastki równania f (x) = (x 1)(x + 1) = 0 przyjmując a = 0, b = 1.5, ɛ x = ɛ f = 1 10 4 Rozwiązanie f a = 1 f b = 1.2500 f x = 1.2500 ɛ x = 1.500 ɛ f = 1.25 iter = 1 x = 0.75 f x = 0.4375 a = 0.75 f a = 0.4375 ɛ x = 0.75000 ɛ f = 0.43750 iter = 2 x = 1.125 f x = 0.26562 b = 1.125 f b = 0.26562 ɛ x = 0.375 ɛ f = 0.26562 iter = 3 x = 0.9375 f x = 0.12109 a = 0.9375 f a = 0.12109 ɛ x = 0.18750 ɛ f = 0.12109 iter = 14 x = 1.0 f x = 6.1036e 5 b = 1.0 f b = 6.1036e 5 ɛ x = 9.1553e 05 ɛ f = 6.1036e 5
Metoda interpolacji liniowej Równanie prostej przechodzącej przez dwa punkty f b = f (b) y B y = f (x) f a = f (a) A a b x (b a)(y f (a)) = (f (b) f (a))(x a) (4)
Metoda interpolacji liniowej Metoda interpolacji liniowej (regula falsi) Regula linia prosta (inne znaczenie: reguła). Falsi fałszywy. Metoda bazuje na fałszywym twierdzeniu, że w pewnym przedziale funkcja zawsze jest liniowa. Metoda ta jest szybciej zbieżna od metody bisekcji, a ponadto jej zbieżność jest również gwarantowana. W interpretacji geometrycznej metoda interpolacji liniowej oznacza zastąpienie krzywej f (x) cięciwą łączącą punkty A(a, f (a)) i B(b, f (b)) x a b a = y f (a) f (b) f (a). (5) Dla y = 0 mamy x k = a f b b f a f b f a (6)
Metoda interpolacji liniowej Metoda interpolacji liniowej (regula falsi) x k = a f b b f a f b f a
Metoda interpolacji liniowej Metoda regula falsi przykład Znaleźć pierwiastki równania f (x) = (x 1)(x + 1) = 0 przyjmując a = 0, b = 1.5, ɛ x = ɛ f = 1e 4. Rozwiązanie f a = 1 f b = 1.2500 x 0 = 0 iter = 1 x = 0.66667 f x = 0.55556 ɛ x = 0.66667 ɛ f = 0.55556 a = 0.66667 f a = 0.55556 x 0 = 0.66667 iter = 2 x = 0.92308 f x = 0.14793 ɛ x = 0.25641 ɛ f = 0.14793 a = 0.92308 f a = 0.14793 x 0 = 0.92308 iter = 3 x = 0.98413 f x = 0.031494 ɛ x = 0.06105 ɛ f = 0.031494 a = 0.98413 f a = 0.031494 x 0 = 0.98413 iter = 8 x = 0.99999 f x = 1.0240e 5 ɛ x = 2.0480e 05 ɛ f = 1.0240e 5
Metoda siecznych W tej metodzie generowanie ciągu kolejnych przybliżeń wartości poszukiwanego pierwiastka odbywa się także za pomocą interpolacji liniowej. Stosowana strategia interpolacji liniowej polega jednak na tym, że jest ona budowana na podstawie znanych wartości dwóch ostatnio obliczonych rzędnych funkcji f (x).
Metoda siecznych W tej metodzie, x (k+1) wyznacza się jako odciętą punktu przecięcia siecznej przechodzącej przez punkt A(x k 1, f (x k 1 )) oraz B(x k, f (x k )) z osią x ów: x k+1 = x k f (x k ) f (x k ) f (x k 1 ) (x k x k 1 ), k = 1, 2,..., n (7)
Metoda siecznych Posługiwanie się taką interpolacją może w pewnych przypadkach prowadzić do obliczenia pierwiastka x k+1 leżącego poza bieżącym przedziałem izolacji. Przykład: Znaleźć pierwiastek równania x 3 6 x 2 + 11 x 6 = 0 dla a = 0.9, b = 1.9. Uwaga! Jak widać znaleziony został pierwiastek x = 2.0 leżący poza przyjętym przedziałem izolacji.
Metoda stycznych (Newtona-Raphsona) Pochodna funkcji Analizujemy funkcję f zmiennej x w otoczeniu punktu x 0. Definiujemy iloraz (różnicowy) funkcji f w punkcie x 0 dla przyrostu x: f (x 0 + x) f (x 0 ) x Pochodna funkcji y = f (x) w punkcie x 0 jest to granica, do której dąży iloraz, gdy x dąży do 0, o ile taka granica istnieje: f f (x 0 + x) f (x 0 ) (x 0 ) = lim x 0 x (8) Obliczanie pochodnej f (x) to różniczkowanie funkcji f (x). Pochodna istnieje, jeśli: funkcja f (x) jest ciągła, istnieje granica określona w (8) funkcja f (x) jest różniczkowalna.
Metoda stycznych (Newtona-Raphsona) Pochodna funkcji Interpretacja geometryczna y f (x) y 0 + y y 0 A(x 0, y 0 ) x y f (x 0 ) = tg(α) α - kąt nachylenia stycznej α x 0 x 0 + x x
Metoda stycznych (Newtona-Raphsona) Metoda stycznych (Newtona-Raphsona) Podstawę metody stanowi interpolacja funkcji f (x) za pomocą stycznej prowadzonej w punkcie B(x 0, f 0 ). Kolejne przybliżenia poszukiwanego pierwiastka są odciętymi punktu przecięcia stycznej z osią x: x k+1 = x k f (x k) f (x k ). (9)
Metoda stycznych (Newtona-Raphsona) Metoda stycznych przyjęcie punktu startowego Jest to metoda najszybciej zbieżna o zbieżności kwadratowej. Oznacza to, że przy spełnionych założeniach jej błąd maleje kwadratowo wraz z liczbą iteracji. Wadą metody jest fakt, że zbieżność nie zawsze musi zachodzić. W wielu przypadkach metoda bywa rozbieżna przeważnie wtedy gdy punkt startowy jest zbyt daleko od szukanego pierwiastka równania. Jeżeli zachodzą cztery warunki: 1 funkcje f (x) jest określona i ciągła w przedziale < x < + ; 2 f (a)f (b) < 0; 3 f (x) 0 dla a x b; 4 f (x) istnieje w przedziale (, + ) i nie zmienia znaku; to przy zastosowaniu metody Newtona za początkowe przybliżenie x 0 można przyjąć dowolną wartość c < a, b >.
Metoda stycznych (Newtona-Raphsona) Metoda stycznych przykład Znaleźć pierwiastki równania f(x)= (x-1)(x+1)=0 przyjmując a = 0, b = 1.5, ɛ X = ɛ F = 1e 4. Rozwiązanie f a = 1 f b = 1.2500 x 0 = 1.5 iter = 1 x 1 = 1.0833, ɛ x = 0.41667, ɛ f = 0.17361 iter = 2 x 1 = 1.0032, ɛ x = 0.080128, ɛ f = 0.0064205 iter = 3 x 1 = 1.0000, ɛ x = 0.0032000, ɛ f = 1.0240e 5 iter = 4 x 1 = 1.0000, ɛ x = 5.1200e 06, ɛ f = 2.6215e 11
Metoda stycznych (Newtona-Raphsona) Zmodyfikowana metoda Newtona Jeżeli pochodna f (x) zmienia się w przedziale domkniętym < a, b > nieznacznie to we wzorze można przyjąć x k+1 = x k f (x k) f, k = 0, 1, 2,, n (x k ) f (x k ) f (x 0 ). Zatem kolejne przybliżenia pierwiastka x równania f (x) = 0 można obliczyć ze wzoru x k+1 = x k f (x k) f, k = 0, 1, 2,, n (10) (x 0 )
Metoda stycznych (Newtona-Raphsona) Zmodyfikowana metoda Newtona x k+1 = x k f (x k) f, k = 0, 1,..., n (x 0 ) W interpretacji geometrycznej metoda ta oznacza zamianę stycznych w punktach B k (x k, f (x k )) prostymi, równoległymi do stycznej, przeprowadzonej przez punkt B 0 (x 0, f (x 0 )).