Ewa Pabisek Adam Wosatko Piotr Pluciński Matematyka stosowana i metody numeryczne Konspekt z wykładu 6 Rozwiązywanie równań nieliniowych Rozwiązaniem lub pierwiastkiem równania f(x) = 0 lub g(x) = h(x) nazywamy każdą liczbę x = x która spełnia to równanie 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ń: 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 61 Metoda połowienia (bisekcji) Dla wyjściowego równania f(x) poszukuje się przybliżenia rozwiązania wewnątrz przedziału x (a b) Przy każdej iteracji oblicza się jego środek: x = a + b 2 (1) a następnie sprawdza się w którym podprzedziale (a x) lub (x b) znajduje się poszukiwany pierwiastek x i ten przedział podlega dalszemu podziałowi 1
Przykład: Znaleźć pierwiastek równania przyjmując a = 0 b = 15 i ɛ x = ɛ f = 1 10 4 f a = 1 f b = 12500 f x = 12500 ɛ x = 1500 ɛ f = 125 iter = 1 x = 075 f x = 04375 a = 075 f a = 04375 ɛ x = 075000 ɛ f = 043750 iter = 2 x = 1125 f x = 026562 b = 1125 f b = 026562 ɛ x = 0375 ɛ f = 026562 iter = 3 x = 09375 f x = 012109 a = 09375 f a = 012109 ɛ x = 018750 ɛ f = 012109 iter = 14 x = 10 f x = 61036e 5 b = 10 f b = 61036e 5 ɛ x = 91553e 05 ɛ f = 61036e 5 62 Metoda interpolacji liniowej (regula falsi) 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)): Przykład: Znaleźć pierwiastek równania przyjmując a = 0 b = 15 i ɛ x = ɛ f = 1 10 4 f a = 1 f b = 12500 x 0 = 0 iter = 1 x = 066667 f x = 055556 ɛ x = 066667 ɛ f = 055556 a = 066667 f a = 055556 x 0 = 066667 iter = 2 x = 092308 f x = 014793 ɛ x = 025641 ɛ f = 014793 a = 092308 f a = 014793 x 0 = 092308 iter = 3 x = 098413 f x = 0031494 ɛ x = 006105 ɛ f = 0031494 a = 098413 f a = 0031494 x 0 = 098413 iter = 8 x = 099999 f x = 10240e 5 ɛ x = 20480e 05 ɛ f = 10240e 5 x k = a f b b f a f b f a (2) 2
63 Metoda siecznych W tej metodzie generowanie ciągu kolejnych przybliżeń wartości poszukiwanego pierwiastka odbywa się na podstawie znanych wartości dwóch ostatnio obliczonych rzędnych funkcji f(x) Wartość kolejnego przybliżenia poszukiwanego pierwiastka 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 64 Metoda stycznych (Newtona-Raphsona) f(x k ) f(x k ) f(x k 1 ) (x k x k 1 ) k = 1 2 n (3) 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: f (x k ) (4) Przykład: Znaleźć pierwiastek równania przyjmując x 0 = 15 i ɛ x = ɛ f = 1 10 4 k = 0 x 1 = 10833 ɛ x = 041667 ɛ f = 017361 k = 1 x 2 = 10032 ɛ x = 0080128 ɛ f = 00064205 k = 2 x 1 = 10000 ɛ x = 00032000 ɛ f = 10240e 5 k = 3 x 1 = 10000 ɛ x = 51200e 06 ɛ f = 26215e 11 65 Zmodyfikowana metoda Newtona Jeżeli pochodna f (x) zmienia się w przedziale domkniętym < a b > nieznacznie to we wzorze: można przyjąć: k = 0 1 2 n f (x k ) f (x k ) f (x 0 ) Kolejne przybliżenia pierwiastka x równania f(x) = 0 można obliczyć ze wzoru: k = 0 1 2 n (5) f (x 0 ) 3
66 Metoda iteracji prostej W metodzie tej równanie f(x) = 0 przekształcamy do równoważnego: x = g(x) Algorytm metody polega na wykorzystaniu schematu rekurencyjnego: x k+1 = g(x k ) k = 0 1 2 (6) 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ść 67 Metoda iteracji prostej z relaksacją 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 α = g (x 0 ) wpływając na przyspieszenie zbieżności procesu iteracyjnego x k+1 = g(x k) 1 g (x 0 ) x g (x 0 ) k (7) 1 g (x 0 ) gdzie: x 0 jest punktem startowym Przykład: Znaleźć pierwiastek równania f(x) = x 2 1 = 0 Po przekształceniu mamy: Dla: x 0 = 2 α = g (x 0 ) = 1 = 1 x 2 0 4 Końcowy schemat iteracyjny: x = g(x) x = 1 x x k+1 = g(x k) 1 + α + x α k 1 + α x k+1 = 4 5 1 x k + 1 5 x k x 1 = 08 x 2 = 116 x 3 = 09217 x 4 = 10523 x 5 = 09707 x 6 = 10183 x 28 = 1000 4
7 Układy równań nieliniowych 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 ( J(x k ) ) 1 f(xk ) k = 0 1 (8) wektor zmiennych wektor funkcji macierz Jakobianu x = x 1 x 2 x n lub x k+1 = x k + x k k = 0 1 gdzie x k = ( J(x k ) ) 1 f(xk ) f = f 1 f 2 f n J= f i x j = Przykład: Rozwiąż poniższy układ równań metodą Newtona-Raphsona przyjmując wektor startowy x 0 = [1 0: x 1 + (x 2 1) 2 2 = 0 (x 1 + 2) 3 x 2 + 1 = 0 Rozwiązanie k = 0: k = 1: J(x) = f(x 1 ) = x 2 = f(x 0 ) = x 1 = [ f1 [ 2 28 [ 105455 047273 [ 022347 883587 [ 07491 03302 [ = 1 2(x 2 1) 3(x 1 + 2) 2 1 [ 1 2 J(x 0 ) = 27 1 [ 0054545 x 1 = 0472727 [ 10000 29455 J(x 1 ) = 113544 10000 [ 080366 x 2 = 014253 k = 9: [ f(x 8 ) = x 9 = 00000e + 00 53395e 12 [ 57021e 23 53395e 12 [ 10000 00000 J(x 8 ) = 00000 10000 [ 20000 x 9 = 10000 5