Rozwiązywanie równań nieliniowych Marcin Orchel 1 Wstęp Przykłady wyznaczania miejsc zerowych funkcji f : f(ξ) = 0. Wyszukiwanie miejsc zerowych wielomianu n-tego stopnia. Wymiar tej przestrzeni wektorowej to n + 1. Przykład 2: dowolna funkcja f : R n R n, gdzie x T = (x 1,..., x n ), f (x) = f 1 (x 1,..., x n ). f n (x 1,..., x n ) Rozwiązanie zadania f(x) = 0 oznacza rozwiązanie układu równań (1) f i (x 1,..., x n ) = 0 (2) dla i = 1,..., n. Możemy również zapisać zagadnienie brzegowe jako zagadnienie wyznaczania zer. Gdy funkcja f : E F jest zdefiniowana tak, że E to przestrzeń wektorowa funkcji x(t) C 2 (a, b), a F to przestrzeń wektorowa funkcji i skalar E := C 2 (a, b) (3) F := C (a, b) R (4) f (x) = [ f1 (x) f 2 (x) ] (5) gdzie f 1 (x (t)) := x (t) g ( x (t), x (t), t ) (6) f 2 (x) := R (x (a), x (b)) (7) gdzie R : R 2 R, g : R 3 R. Zauważmy, że ξ E takie, że f(ξ) = 0 jest rozwiązaniem zagadnienia brzegowego x (t) = g ( x (t), x (t), t ) (8) R (x (a), x (b)) = 0 (9) 1
1.1 Metody iteracyjne Mamy funkcję f : E F oraz iteracyjną φ : E E, wartość początkową x 0 E, x i+1 := φ (x i ) (10) dla i = 0, 1, 2,.... Wartości x i są kolejnymi przybliżeniami wartości ξ takiej, że f(ξ) = 0. Jeśli ξ jest punktem stałym funkcji φ, tzn. φ(ξ) = ξ i wszystkie punkty stałe funkcji φ są także zerami funkcji f, jak również φ jest funkcją ciągłą (w otoczeniu punktu stałego ξ), to każdy punkt skupienia ξ ciągu x i jest punktem stałym funkcji φ, a stąd także miejscem zerowym funkcji f. 1.2 Metoda stycznych (iteracyjna Newtona) Dla równań postaci wzór jest następujący f (x) = 0 (11) x n+1 = x n f (x n) f (x n ). Konieczna jest więc znajomość wartości funkcji oraz pochodnych. Dowód. Wyprowadzenie wzoru, ze wzoru Taylora f (x) = f (x 0 ) + (x x 0 ) y (x 0 ) + (x x 0) 2 y (x 0 ) +... + (x x 0) n y (n) (x 0 ) +... 2 n! lub inaczej zapisany n=0 1 n! f (n) (x 0 ) (x x 0 ) n Szukamy zera ξ funkcji f. Gdy weźmiemy pod uwagę tylko dwa pierwsze składniki oraz fakt, że wartość w poszukiwanym punkcie wynosi 0 otrzymujemy równanie ) f (ξ) = 0 = f (x 0 ) + ( ξ x0 f (x 0 ) gdzie ξ jest pewnym przybliżeniem zera funkcji f. Po przekształceniu ξ x 0 = f (x 0) f (x 0 ) i ξ = x 0 f (x 0) f (x 0 ) 2
Jeśli x jest przybliżeniem ξ (zostawienie tylko jednego składnika we wzorze Taylora), to wzięcie dwóch składników ze wzoru Taylora powinno być lepszym przybliżeniem ξ ξ = x 0 f (x 0 ) ± (f (x 0 )) 2 2f (x 0 ) f (x 0 ) f (12) (x 0 ) Warunek konieczny zbieżności metody Newtona: Warunek wystarczający zbieżności: f (x) f (x) f 2 (x) K < 1, f (x) 0. (13) gdzie K jest stałe. Warunki muszą być spełnione w otoczeniu rozwiązania x zawierającym wszystkie punkty x n oraz x. Interpretacja geometryczna: styczne do f (x) w punktach x i wyznaczają kolejne punkty iteracji w miejscu przecięcia stycznej z osią Ox. Inaczej funkcja f zostaje zastąpiona wielomianem pierwszego stopnia P 1 (x), który ma taką samą pochodną jak funkcja f w punkcie x 0. Czyli wielomianem pierwszego stopnia będzie f (x 0 ) + (x x 0 ) f (x 0 ) = 0 (14) Widzimy, że współczynnik kierunkowy jest rzeczywiście równy pochodnej funkcji f w punkcie x 0. Dla wzoru Taylora z dwoma składnikami funkcja f zostaje zastąpiona wielomianem drugiego stopnia P 2 (x), który ma taką samą pierwszą i drugą pochodną w punkcie x 0 co funkcja f. Widzimy, że metoda Newtona sprowadza się do odpowiedniego układu równań (przechodzenie przez dany punkt i równość pochodnych). Przykład 1. Przykład. Narysować dwie funkcje wraz z punktami początkowymi tak, aby dla pierwszej z nich metoda Newtona była zbieżna, a dla drugiej nie. Przykład 2. Przykład: f(x) = x 2 a (15) x n+1 = x n x2 n a (16) 2x n x n+1 = 1 2 x n + a (17) 2x n x n+1 = 1 (x n + a ) (18) 2 xn Wzór może służyć do obliczenia pierwiastków, np. 7 2.65, a = 7. Przykładowo zaczynamy od x 0 = 2, x 1 = 1 ( 2 + 7 ) = 2.75 2 2 x 2 = 1 ( 2.75 + 7 ) = 2.65 2 2.75 Metodę tą można stosować również dla układu równań nieliniowych. 3
1.3 Zbieżność metody iteracyjnej Jeśli równanie f(x) = 0 można sprowadzić do postaci to kolejne przybliżenia rozwiązania dostajemy ze wzoru: x = F (x) (19) x n+1 = F (x n ), (20) gdzie x 0 jest dane. Metoda ta jest zbieżna do rozwiązania x, jeśli istnieje otoczenie punktu x takie, że: F (x) F (x ) x x K < 1, gdzie K jest stałe i jeśli punkt startowy należy do tego otoczenia. Jeśli funkcja F (x) jest różniczkowalna to metoda ta jest zbieżna, jeśli w otoczeniu rozwiązania zachodzi: F (x) K < 1 (21) Zbieżność metody jest tym lepsza im mniejsza jest liczba K. Bardziej formalnie. Twierdzenie 1. Niech funkcja φ : R n R n ma jeden punkt stały ξ : φ(ξ) = ξ. Dalej niech S r (ξ) := {z z ξ < r} będzie takim otoczeniem punktu ξ, że φ jest odwzorowaniem zwężającym w S r (ξ), tzn. że φ (x) φ (y) K x y (22) gdzie 0 K < 1 dla wszystkich x, y S r (ξ). Wtedy dla wszystkich x 0 S r (ξ), x i+1 := φ(x i ), i = 0, 1, 2,... ciąg {x i } ma następujące własności: x i S r (ξ) dla wszystkich i = 0, 1,... x i ξ K i x 0 ξ tzn. ciąg {x i } jest zbieżny co najmniej liniowo do ξ. Znaleźć dwie funkcje, dla których metoda iteracji jest zbieżna dla pierwszej z nich i nie jest zbieżna dla drugiej z nich, zaznaczyć na rysunku funkcję x oraz F (x), szukamy x dla którego te funkcję się przecinają. Zobrazować procedurę wyszukiwania kolejnych rozwiązań. Na początku zaznaczamy x 0, szukamy przecięcia z funkcją F (x), wartość tego przecięcia będzie kolejnym przybliżeniem, zaznaczamy go na osi OY, a następnie zaznaczamy na osi OX w tej samej odległości od początku układu współrzędnych. Przykład: Rozwiązać równanie x 2 7 = 0 podaną metodą. Przekształcamy równanie do postaci x = 7/x i stosujemy równanie iteracyjne x n+1 = 7/x n 4
Przykład: Po sprowadzeniu do postaci (19): x 0 = 2 x 1 = 3.5 x 2 = 2 x 2 sin x = 0 (23) x = (sin x) (24) 1.4 Metoda siecznych (reguła falsi) Metoda Newtona wymaga policzenia pochodnych dla funkcji. Reguła falsi. W każdym kroku konstruujemy dwie liczby x i i a i takie że f (x i ) f (a i ) < 0 (25) i ciąg x i jest zbieżny do zera funkcji f. Jeśli jest spełniona ta równość, to przedział [x i, a i ] zawiera co najmniej jedno zero funkcji f. Niech µ 1 będzie zerem interpolacyjnej funkcji liniowej p (x) := f (x i ) + (x x i ) f (x i) f (a i ) x i a i (26) Zauważmy, że p(x i ) = f(x i ) oraz p(a i ) = f(a i ). Możemy z tego wyznaczyć x x x i = f (x i) (x i a i ) f (x i ) f (a i ) (27) µ i = x i f (x i ) x i a i f (x i ) f (a i ) = a if (x i ) x i f (a i ) f (x i ) f (a i ) Ponieważ f(x i )f(a i ) < 0 więc µ jest dobrze określone i albo x i < µ < a i albo a i < µ < x i. Liczby x i+1 i a i+1 są określone jako: jeśli f (µ i ) f (x i ) > 0 oraz jeśli f(µ i )f(x i ) < 0 (28) x i+1 := µ i (29) a i+1 := a i (30) x i+1 := µ i (31) a i+1 := x i (32) Jeśli f(µ i ) = 0 to przerywamy obliczenia. Przyjmujemy dla uproszczenia, że istnieje f i że dla i jest spełnione x i < a i (33) 5
dla wszystkich x [x i, a i ]. f (x i ) < 0, f (a i ) > 0 (34) f (x) 0 (35) Wtedy albo f(µ i ) = 0, albo i stąd Przy tych założeniach reguła falsi jest następująca: f (µ i ) f (x i ) > 0 (36) x i < x i+1 = µ i < a i+1 = a i (37) φ (x) := x i+1 = φ (x i ) (38) af (x) xf (a) f (x) f (a) Wykorzystuje ona tylko wzory (29) i (30). Metoda siecznych wykorzystuje tylko wzory (31) i (32) i jest następująca: (39) x i+1 = x i 1f (x i ) x i f (x i 1 ) f (x i ) f (x i 1 ) (40) od i = 0, 1,.... Metoda siecznych określona jest również wzorem: x n+1 = x n x n x m f (x n ) f (x m ) f (x n), gdzie m < n, x 0 oraz x 1 dane. Różni się tym od metody Newtona, że pochodna została zastąpiona ilorazem różnicowym przykładowo z poprzednim punktem aproksymującym, czyli f (x n ) f (x n) f (x n 1 ) x n x n 1 Postać szczególna wzoru x n+1 = x n x n x n 1 f (x n ) f (x n 1 ) f (x n), Na początku musimy wyznaczyć dwa punkty. Interpretacja geometryczna: aproksymacja funkcji f (x) sieczną. Punkt x n+1 jest przecięciem osi OX z sieczną przechodzącą przez punkty x n i x n 1. Metoda ta jest zbieżna jeśli f (x m ) i f (x n ) mają różne znaki. Obliczyć kilka pierwszych iteracji dla funkcji f(x) = x 2 7. Początkowy przedział możemy wziąść [0,3]. 6
1.5 Metoda połowienia przedziału (bisekcji) Po angielsku bisection method, http://en.wikipedia.org/wiki/bisection_method. Kolejne przybliżenia są środkami przedziału: x n+1 = x n + x n 1 2. (41) W każdym kroku wybierany jest odpowiedni przedział. Na początku wybieramy takie punkty, dla których zachodzi f(a) < 0 < f(b). Następnie obliczamy punkt c = 0.5(a + b) i sprawdzamy czy f(a)f(c) < 0, wtedy f ma zero w przedziale [a, c]. Przykład: wyznaczyć tą metodą zera funkcji f(x) = x 2 7. Wartość przybliżona 2.65. Na początku wybieramy dwa punkty a oraz b, np. [0, 3]. Otrzymujemy 2 Zadania 2.1 Zadania na 3.0 x 2 = (0 + 3) /2 = 1.5 x 3 = (1.5 + 3) /2 = 2.25 Znaleźć pierwiastki przybliżone metodą bisekcji, siecznych i stycznych dla 3 przybliżeń równań: grupa 1 i 2 grupa 3 i 4 x 3 + 2x 2 4x 8 = 0 (42) x 4 x 10 = 0 (43) x 3 2x 2 7x 4 = 0 (44) x 4 2x 2 + 4x 8 = 0 (45) Naszkicować wykresy lewych stron tych równań wraz z kolejnymi punktami przybliżenia. Wyliczyć błędy względne procentowe dla kolejnych przybliżeń. Dodatkowo można sprawdzić czy metody są zbieżne. 2.2 Zadania na 4.0 Rozwiązać równania metodą iteracji dla 3 przybliżeń: dla grup 1 i 2: dla grup 3 i 4: x 4 x 10 = 0 (46) x 3 + x 5 = 0 (47) Naszkicować wykresy lewych stron tych równań, oraz wykres z dwoma funkcjami y = x oraz y = f (x) z metody iteracji wraz z kolejnymi punktami przybliżenia. Wyliczyć błędy dla kolejnych przybliżeń. Sprawdzić czy metoda jest zbieżna. 7
2.3 Zadania na 5.0 Znaleźć pierwiastki wielomianu x 5 6x 4 +10x 3 +13x 2 15x 16 metodą siecznych, stycznych i połowienia. Dokonać 4 przybliżenia wymienionymi metodami. Naszkicować wykres tego wielomianu wraz z kolejnymi punktami przybliżenia. Wyliczyć błędy dla kolejnych przybliżeń. Sprawdzić czy metoda jest zbieżna. 8