Transport, studia I stopnia Instytut L-5, Wydział Inżynierii Lądowej, Politechnika Krakowska Ewa Pabisek Adam Wosatko
Postać ogólna równania nieliniowego Często występującym, ważnym problemem obliczeniowym jest numeryczne poszukiwanie rozwiazań równań nieliniowych, np. algebraicznych, trygonometrycznych, przestępnych, które przybierają postać: f (x) = 0 lub g(x) = h(x). (1) Rozwiązaniem lub pierwiastkiem równania (1) nazywamy każdą liczbę x = x, która spełnia to równanie. Równanie nieliniowe charakteryzuje się tym, że może nie mieć żadnego rozwiązania lub też może mieć wiele rozwiązań. Dlatego nie można sformułować ogólnych reguł postępowania prowadzących do obliczenia jakiegokolwiek pierwiastka.
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.
Warunki numerycznego rozwiązywania równań nieliniowych Równania nieliniowe 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 lokalizacja pierwiastków, a więc 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 polega na generowaniu ciągu punktów x (1), x (2), x (3), x (4),... Po wykonaniu odpowiednio dużej liczby obliczeń proces jest zbieżny do x.
Kryterium stopu procesu iteracyjnego Proces iteracyjny nie może trwać w nieskończoność, dlatego należy sformułować warunki stopu: tempo zbieżności: residuum: liczba iteracji: ɛ 1 = x n+1 x n, x n+1 ɛ 2 = f (x n + 1), f (x 0 ) n =? Obliczenia zostaną zakończone po spełnieniu warunków: ɛ 1 ɛ dop 1, ɛ 2 ɛ dop 2 spełnione równocześnie n n max alternatywa gdzie: ɛ dop 1, ɛ dop 2, n max zadane wielkości dopuszczalne.
Metoda połowienia (bisekcji) To najprostsza metoda ze wszystkich możliwych metod lecz bardzo wolno zbieżna. Dane jest równanie f (x) = 0, (2) 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) To najprostsza metoda ze wszystkich możliwych metod lecz bardzo wolno zbieżna. Dane jest równanie f (x) = 0, (3) 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) To najprostsza metoda ze wszystkich możliwych metod lecz bardzo wolno zbieżna. Dane jest równanie f (x) = 0, (4) 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) To najprostsza metoda ze wszystkich możliwych metod lecz bardzo wolno zbieżna. Dane jest równanie f (x) = 0, (5) 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) To najprostsza metoda ze wszystkich możliwych metod lecz bardzo wolno zbieżna. Dane jest równanie f (x) = 0, (6) 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 x 1 = 0.75, x 2 = 1.125, x 3 = 0.9375,..., x 14 = 1.0
Metoda interpolacji liniowej Metoda interpolacji liniowej (regula falsi) 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). (7) Dla y = 0 mamy x k = a f b b f a f b f a (8)
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 x k = a f b b f a f b f a x 1 = 0.66667, x 2 = 0.92308, x 3 = 0.98413,..., x 8 = 0.99999
Metoda siecznych W tej metodzie generowanie ciągu kolejnych przybliżeń wartości poszukiwanego pierwiastka odbywa sie 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 (9)
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) 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 ). (10)
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 x 0 = 1.5, ɛ x = ɛ f = 1e 4, n = 100. x k+1 = x k f (x k) f, k = 0, 1, 2, 3,... (x k ) Rozwiązanie x 1 = 1.0833, x 2 = 1.0032, x 3 = 1.0000, x 4 = 1.0000, ɛ x = 5 10 6, ɛ f = 2.6 10 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 (11) (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 )).
Metoda iteracji prostej Dane jest równanie f (x) = 0, (12) gdzie f (x) jest funkcją ciągłą. Należy wyznaczyć pierwiastki rzeczywiste tego równania. W tym celu równanie (12) sprowadzamy do równoważnego x = g(x). (13) Algorytm metody polega na wykorzystaniu schematu rekurencyjnego: x k+1 = g(x k ), k = 0, 1, 2,... (14) do generowania ciągu kolejnych przybliżeń poszukiwanego rozwiązania x. Wygenerowany ciąg liczbowy x 0, x 1, x 2,... może okazać się zbieżny do rozwiązania x, ale też może nie być zbieżny i wykazywać niestabilność.
Metoda iteracji prostej przykład 1 Rozważmy równanie x 2 = 2. Przy założeniu, że x 0 można napisać: x = g(x) = 2/x, a następnie skorzystać z reguły rekurencyjnej: Przyjmując punkt startowy: x k+1 = g(x) = 2 x k. a) x 0 = 0.5, x 1 = 2/0.5 = 4.0, x 2 = 2/4 = 0.5, x 3 = 2/0.5 = 4,... b) x 0 = 1.0, x 1 = 2/1.0 = 2.0, x 2 = 2/2 = 1.0, x 3 = 2/1.0 = 2,... c) x 0 = 2.0, x 1 = 2/2.0 = 1.0, x 2 = 2/1 = 2.0, x 3 = 2/2.0 = 1,... Pokazane elementy wygenerowanych ciągów oscylują. Takie zachowanie się algorytmu świadczy, że nie nadaje się on do rozwiązywania równania x 2 = 2.
Metoda iteracji prostej przykład 1 (c.d.) Można jednak zaproponować inną postać algorytmu, dokonując przekształceń: x 2 = 2 x = 2 x x+x = x+ 2 x 2x = x+ 2 x x = 1 2 (x+ 2 x ) Teraz formuła rekurencyjna przyjmie postać: x k+1 = g(x k ) = 1 2 (x k + 2 x k ) (15) Jeżeli teraz przyjmiemy x 0 = 0.5 to otrzymamy: x 1 = 2.25000 x 3 = 1.56944 x 4 = 1.42189 x 5 = 1.41423 x 6 = 1.41421 która dobrze przybliża liczbę x = 2 1.41421356.
Metoda iteracji prostej przykład 1 (c.d.)
Metoda iteracji prostej z relaksacją f (x) = 0 x = g(x) Relaksacja zamienia początkowy schemat rozbieżny na zbieżny. Polega ona na obróceniu wykresu funkcji f (x) względem początku układu o kąt α wpływając na przyspieszenie zbieżności procesu iteracyjnego. Wartość kąta α obliczamy ze wzoru: α = g (x 0 ). a końcowa postać schematu iteracyjnego: gdzie: x 0 jest punktem startowym. x n+1 = g(x n) 1 g (x 0 ) x g (x 0 ) n 1 g (x 0 )
Metoda iteracji prostej przykład 2 Znależć pierwiastki równania f (x) = x 2 1 = 0. Po przekształceniu mamy: Schemat iteracyjny I: x = g(x) x = 1 x x k+1 = g(x k) 1 α x α k 1 α Dla: x 0 = 2 α = g (x 0 ) = 1 Schemat iteracyjny II: Wyniki: x 2 0 = 1 4. x k+1 = 4 5 x k + 1 5 x k x 1 = 1.70000 x 2 = 1.47764 x 3 = 1.31746 x 5 = 1.13049 x 6 = 1.08130 x 7 = 1.05000 x 23 = 1.00001
Postać układu równań nieliniowych Układ równań nieliniowych ma następującą postać: f 1 (x 1, x 2,..., x n ) = 0, f 2 (x 1, x 2,..., x n ) = 0,.......... f n (x 1, x 2,..., x n ) = 0 (16) lub f(x) = 0. (17)
Metoda Newtona-Raphsona Układy równań nieliniowych Metoda Newtona-Raphsona Uogólnienie metody Newtona-Raphsona (metoda stycznej w punkcie) na przypadek wielowymiarowy można zapisać wektorowo w następujący sposób: x k+1 = x k f(x k), k = 0, 1,... (18) J(x k ) wektor zmiennych wektor funkcji macierz Jakobianu f 1 x x 1 f 1 1 x = x 2. f = f 2 f 2. J = fi x j = x 1...... x n f n lub x k+1 = x k + x k, k = 0, 1,..., ( 1 gdzie x k+1 = J(x k )) f(xk ). f n x 1 W celu uniknięcia odwracania Jakobianu, rozwiązywany jest układ równań J(x k ) x k+1 = f(x k ) do określenia x k+1. f 1 x n f 2 x n f 1 x n
Metoda Newtona-Raphsona Układy równań nieliniowych przykład Metoda Newtona-Raphsona Rozwiąż układ równań: x 1 + (x 2 1) 2 2 = 0 (x 1 + 2) 3 x 2 + 1 = 0. przyjmując wektor startowy x0 = [1, 0].
Metoda Newtona-Raphsona Układy równań nieliniowych Tok postępowania zgodnie z metodą Newtona-Raphsona Dla k = 0, 1,... wykonaj 1. Oblicz wartość funkcji i Jakobianu w punkcie : f(x k ), J(x k ) 2. Rozwiąż układ równań liniowych ze względu na x : J x = f 3. Wyznacz następne oszacowanie x : x k+1 = x k + x Rozwiązanie k = 0 f(x 0 ) = [ 2 28 ] [ 1 2, J(x 0 ) = 27 1 ], [ ] [ 1.05455 0.054545 x 1 =, x 0.47273 1 = 0.472727...................... ],
Metoda Newtona-Raphsona Układy równań nieliniowych Rozwiązanie przykładu (c.d.) k = 1 f(x 1 ) = [ 0.22347 8.83587 [ 0.7491 x 2 = 0.3302 k = 9 [ f(x 8 ) = x 9 = ] [ 1.0000 2.9455, J(x 1 ) = 11.3544 1.0000 ] [ 0.80366, x 2 = 0.14253 ],.............................................................. 0.0000e + 00 5.3395e 12 [ 5.7021e 23 5.3395e 12 ], ] [ 1.0000 0.0000, J(x 8 ) = 0.0000 1.0000 ] [ 2.0000, x 9 = 1.0000 ]. ],