Rozwiązywanie równań nieliniowych
Marcin Orchel
1 Wstęp
Przykłady wyznaczania miejsc zerowych funkcji f : f (ξ) = 0. Wyszukiwanie miejsc zero- wych wielomianu n-tego stopnia. Wymiar tej przestrzeni wektorowej to n + 1. Przykład 2: dowolna funkcja f : Rn→ Rn, gdzie xT = (x1, . . . , xn),
f (x) =
f1(x1, . . . , xn) ... fn(x1, . . . , xn)
(1)
Rozwiązanie zadania f (x) = 0 oznacza rozwiązanie układu równań
fi(x1, . . . , xn) = 0 (2)
dla i = 1, . . . , n. Możemy również zapisać zagadnienie brzegowe jako zagadnienie wyzna- czania zer. Gdy funkcja f : E → F jest zdefiniowana tak, że E to przestrzeń wektorowa funkcji x(t) ∈ C2(a, b), a F to przestrzeń wektorowa funkcji i skalar
E := C2(a, b) (3)
F := C (a, b) × R (4)
f (x) =
"
f1(x) f2(x)
#
(5) gdzie
f1(x (t)) := x00(t) − g x0(t) , x (t) , t (6)
f2(x) := R (x (a) , x (b)) (7)
gdzie R : R2→ R, g : R3 → R. Zauważmy, że ξ ∈ E takie, że f (ξ) = 0 jest rozwiązaniem zagadnienia brzegowego
x00(t) = g x0(t) , x (t) , t (8)
R (x (a) , x (b)) = 0 (9)
1.1 Metody iteracyjne
Mamy funkcję f : E → F oraz iteracyjną φ : E → E, wartość początkową x0 ∈ E,
xi+1:= φ (xi) (10)
dla i = 0, 1, 2, . . .. Wartości xi 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 xi jest punktem stałym funkcji φ, a stąd także miejscem zerowym funkcji f .
1.2 Metoda stycznych (iteracyjna Newtona) Dla równań postaci
f (x) = 0 (11)
wzór jest następujący
xn+1= xn− f (xn) f0(xn) .
Konieczna jest więc znajomość wartości funkcji oraz pochodnych.
Dowód. Wyprowadzenie wzoru, ze wzoru Taylora
f (x) = f (x0) + (x − x0) y0(x0) +(x − x0)2
2 y00(x0) + . . . +(x − x0)n
n! y(n)(x0) + . . . lub inaczej zapisany
∞
X
n=0
1
n!f(n)(x0) (x − x0)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 (x0) +ξ − x¯ 0f0(x0)
gdzie ¯ξ jest pewnym przybliżeniem zera funkcji f . Po przekształceniu ξ − x¯ 0= −f (x0)
f0(x0) i
ξ = x0− f (x0) f0(x0)
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 ξ
¯¯
ξ = x0−f0(x0) ± q
(f0(x0))2− 2f (x0) f00(x0)
f00(x0) (12)
Warunek konieczny zbieżności metody Newtona:
f0(x) 6= 0 . (13)
Warunek wystarczający zbieżności:
f (x) f00(x) f02(x)
≤ K < 1 ,
gdzie K jest stałe. Warunki muszą być spełnione w otoczeniu rozwiązania x∗ zawierają- cym wszystkie punkty xn oraz x∗.
Interpretacja geometryczna: styczne do f (x) w punktach xi wyznaczają kolejne punkty iteracji w miejscu przecięcia stycznej z osią Ox. Inaczej funkcja f zostaje za- stąpiona wielomianem pierwszego stopnia P1(x), który ma taką samą pochodną jak funkcja f w punkcie x0. Czyli wielomianem pierwszego stopnia będzie
f (x0) + (x − x0) f0(x0) = 0 (14) Widzimy, że współczynnik kierunkowy jest rzeczywiście równy pochodnej funkcji f w punkcie x0. Dla wzoru Taylora z dwoma składnikami funkcja f zostaje zastąpiona wie- lomianem drugiego stopnia P2(x), który ma taką samą pierwszą i drugą pochodną w punkcie x0 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) = x2− a (15)
xn+1= xn−x2n− a
2xn (16)
xn+1 = 1
2xn+ a
2xn (17)
xn+1= 1 2
xn+ a xn
(18) Wzór może służyć do obliczenia pierwiastków, np. √
7 ≈ 2.65, a = 7. Przykładowo zaczynamy od x0 = 2,
x1 = 1 2
2 +7
2
= 2.75 x2 = 1
2
2.75 + 7 2.75
= 2.65
Metodę tą można stosować również dla układu równań nieliniowych.
1.3 Zbieżność metody iteracyjnej
Jeśli równanie f (x) = 0 można sprowadzić do postaci
x = F (x) (19)
to kolejne przybliżenia rozwiązania dostajemy ze wzoru:
xn+1= F (xn) , (20)
gdzie x0 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)0≤ K < 1 (21)
Zbieżność metody jest tym lepsza im mniejsza jest liczba K.
Bardziej formalnie.
Twierdzenie 1. Niech funkcja φ : Rn → Rn ma jeden punkt stały ξ : φ(ξ) = ξ.
Dalej niech Sr(ξ) := {z | kz − ξk < r} będzie takim otoczeniem punktu ξ, że φ jest odwzorowaniem zwężającym w Sr(ξ), tzn. że
kφ (x) − φ (y)k ≤ K kx − yk (22)
gdzie 0 ≤ K < 1 dla wszystkich x, y ∈ Sr(ξ). Wtedy dla wszystkich x0 ∈ Sr(ξ), xi+1 :=
φ(xi), i = 0, 1, 2, . . . ciąg {xi} ma następujące własności:
• xi ∈ Sr(ξ) dla wszystkich i = 0, 1, . . .
• kxi− ξk ≤ Kikx0− ξk
tzn. ciąg {xi} 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 x0, 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 x2− 7 = 0 podaną metodą. Przekształcamy równanie do postaci x = 7/x i stosujemy równanie iteracyjne
xn+1= 7/xn
x0= 2 x1 = 3.5
x2= 2 Przykład:
x2− sin x = 0 (23)
Po sprowadzeniu do postaci (19):
x =q(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 xi i ai takie że
f (xi) f (ai) < 0 (25)
i ciąg xijest zbieżny do zera funkcji f . Jeśli jest spełniona ta równość, to przedział [xi, ai] zawiera co najmniej jedno zero funkcji f . Niech µ1 będzie zerem interpolacyjnej funkcji liniowej
p (x) := f (xi) + (x − xi)f (xi) − f (ai)
xi− ai (26)
Zauważmy, że p(xi) = f (xi) oraz p(ai) = f (ai). Możemy z tego wyznaczyć x x − xi= −f (xi) (xi− ai)
f (xi) − f (ai) (27)
µi = xi− f (xi) xi− ai
f (xi) − f (ai) = aif (xi) − xif (ai)
f (xi) − f (ai) (28) Ponieważ f (xi)f (ai) < 0 więc µ jest dobrze określone i albo xi < µ < aialbo ai < µ < xi. Liczby xi+1 i ai+1są określone jako: jeśli f (µi) f (xi) > 0
xi+1:= µi (29)
ai+1:= ai (30)
oraz jeśli f (µi)f (xi) < 0
xi+1:= µi (31)
ai+1:= xi (32)
Jeśli f (µi) = 0 to przerywamy obliczenia. Przyjmujemy dla uproszczenia, że istnieje f00 i że dla i jest spełnione
•
xi < ai (33)
•
f (xi) < 0, f (ai) > 0 (34)
•
f00(x) ≥ 0 (35)
dla wszystkich x ∈ [xi, ai].
Wtedy albo f (µi) = 0, albo
f (µi) f (xi) > 0 (36)
i stąd
xi < xi+1= µi< ai+1= ai (37) Przy tych założeniach reguła falsi jest następująca:
xi+1= φ (xi) (38)
φ (x) := af (x) − xf (a)
f (x) − f (a) (39)
Wykorzystuje ona tylko wzory (29) i (30). Metoda siecznych wykorzystuje tylko wzory (31) i (32) i jest następująca:
xi+1= xi−1f (xi) − xif (xi−1)
f (xi) − f (xi−1) (40)
od i = 0, 1, . . ..
Metoda siecznych określona jest również wzorem:
xn+1= xn− xn− xm
f (xn) − f (xm)f (xn) ,
gdzie m < n, x0 oraz x1 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
f0(xn) ≈ f (xn) − f (xn−1) xn− xn−1 Postać szczególna wzoru
xn+1= xn− xn− xn−1
f (xn) − f (xn−1)f (xn) , Na początku musimy wyznaczyć dwa punkty.
Interpretacja geometryczna: aproksymacja funkcji f (x) sieczną. Punkt xn+1 jest przecięciem osi OX z sieczną przechodzącą przez punkty xn i xn−1.
Metoda ta jest zbieżna jeśli f (xm) i f (xn) mają różne znaki.
Obliczyć kilka pierwszych iteracji dla funkcji f (x) = x2− 7. Początkowy przedział możemy wziąść [0,3].
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:
xn+1= xn+ xn−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) = x2 − 7. Wartość przybliżona 2.65. Na początku wybieramy dwa punkty a oraz b, np. [0, 3]. Otrzymujemy
x2 = (0 + 3) /2 = 1.5 x3= (1.5 + 3) /2 = 2.25
2 Zadania
2.1 Zadania na 3.0
• Znaleźć pierwiastki przybliżone metodą bisekcji, siecznych i stycznych dla 3 przy- bliżeń równań: grupa 1 i 2
x3+ 2x2− 4x − 8 = 0 (42)
x4− x − 10 = 0 (43)
grupa 3 i 4
x3− 2x2− 7x − 4 = 0 (44)
x4− 2x2+ 4x − 8 = 0 (45)
Naszkicować wykresy lewych stron tych równań wraz z kolejnymi punktami przy- bliż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:
x4− x − 10 = 0 (46)
dla grup 3 i 4:
x3+ 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.
2.3 Zadania na 5.0
• Znaleźć pierwiastki wielomianu x5−6x4+10x3+13x2−15x−16 metodą siecznych, stycznych i połowienia. Dokonać 4 przybliżenia wymienionymi metodami. Naszki- cować wykres tego wielomianu wraz z kolejnymi punktami przybliżenia. Wyliczyć błędy dla kolejnych przybliżeń. Sprawdzić czy metoda jest zbieżna.