Metody numeryczne – Wykład 5 – Metody rozwiązywania równań nieliniowych
jednej zmiennej
Marek Bazan
III rok - Elektornika
Semestr zimowy 2020/2021
Plan zajęć
1. Sformułowanie problemu 2. Zbieżność metod iteracyjnych 3. Metoda bisekcji
4. Metoda siecznych 5. Meoda stycznych
6. Szukanie miejsc zerowych wielomianu
Sformułowanie problemu
Dla funkcji ciągłej f : R → R znaleźć x, które jest jednym z rozwiązań lub x -y, które stanowią wszystkie rozwiązania problemu:
f (x ) = 0 przy czym f ∈ C0 ew. f ∈ C1.
Na tym wykładzie powiemy o dwóch iteracyjnych metodach stacjonarnych - czyli takich dla których, każde przybliżenie xk konstruowane jest wg tej samej reguły. Czyli
xk+1 = ϕ(xk, xk−1, . . . , xk−n; R(xk, xk−1, . . . , xk−n, f )) dla k = n, n + 1, . . . , gdzie ϕ jst pewny operatorem, R oznacza zbiór informacji o funkcji f , z którego w każdym kroku korzysta ϕ.
Powiemy rónież o jednej metodzie nie stacjonarnej.
Zbieżność i złożoność obliczeniowa metod iteracyjnych
Definicja 1 (kula zbieżności) Jeżeli dla każdej funkcji f należącej do pewnej klasy F o zerze α ∈ Dx(f ) (dziedzina funkcji f ) istnieje liczba dodatnia Γ = Γ(ϕ; f ) taka, że dla każdego układu różnych przybliżeń początkowych należących do kuli
S = S (ϕ; f ) = {x ∈ CN : ||x − α|| < Γ} ciąg {xk} generowany metodą ϕ jest zbieżny do α, to mówimy, że metoda ϕ jest zbieżna w klasie F a S nazywamy kulą zbieżności ϕ dla funkcji f .
Zbieżność i złożoność obliczeniowa metod iteracyjnych (2)
Definicja 2 (wykładnik zbieżności) Wykładnikiem zbieżności metody iteracyjnej ϕ nazywamy najwększą liczbę p = p(ϕ) 1 taką, że dla każdej dostatecznie regularnej funkcji f o zerze prostym α ∈ Dx zachodzi równość
k→∞lim
||ek+1||
||ek||p < ∞, (1)
gdzie ek = xk − α, a xk jest ciągiem generowanym przez metodę ϕ dla funkcji f .
Nierówność (1) z definicji jest równoważna następującym zależnościom:
||ek+1|| = Ak||ek||p, Ak = Ak(ϕ; f ) (2) oraz limk→∞sup Ak < ∞.
Zbieżność i złożoność obliczeniowa metod iteracyjnych (2)
Z (2) otrzymujemy nierówność
||ek+1|| = A||ek||p, A = A(ϕ, f )def= sup Ak. (3) W przypadku p = 1 z nierówności (3) wynika dla każdego k następująca zależność
||ek|| ¬ Ak||e0||. (4)
Jeżli A ∈ [0, 1), to mówimy, że metoda jest zbieżna liniowo z ilorazem A.
Zbieżność i złożoność obliczeniowa metod iteracyjnych (3)
Jeżeli natomiast p > 1, to mówimy, że zbieżność jest ponadliniowa.
Wówczas z nierówności (1) otrzymujemy
||ek|| ¬ A1+p+···+pk−1||e0||pk = (A1/(p−1)||e0||)pk−1||e0|| (5) Porównując nierówności (4) i (5) widzimy, że jeżeli tylko
A1/(1−p)||e0|| nie jest zbyt bliskie 1 to redukcja błędu w przypadku p > 1 jest znacznie szybsza niż dla przypadku p = 1.
Metoda bisekcji
Niech f ∈ C0[a, b]. Załóżmy, że f (a)f (b) < 0. W metodzie bisekcji konstruujemy ciągłej {xk} zdefniowany algorytmem
Dane: > 0 oraz a, b ∈ R takie, że f (a)f (b) < 0;
z0= a;
y0 = b;
dla k = 0, 1, . . .
xk = (zk+ yk)/2
Jeśli |f (xk)| < to xk jest rozwiązaniem. KONIEC.
Jeśli f (xk) · f (zk) > 0 to zk+1= xk; yk+1 = yk w przeciwnym przypadku zk+1 = zk; yk+1 = xk
Metoda bisekcji (2)
Zachodzą następujące zależności yk − zk = yk−1− zk−1
2 = · · · = 1
2k(y0− z0) z których wynika, że metoda jest zbieżna lioniwo tzn.
p = 1 z ilorazem
A = 1 2.
Metoda siecznych
Metoda siecznych korzysta ze standardowej informacji
R(xk, xk−1) = {f (xk), f (xk−1)} i jest metodą interpolacyjną. Jeśli xk−1 i xk są kolejnymi przybliżeniami miejsca zerowego α to k + 1 przybliżenie równe jest zeru wielomianu Wk stopnia pierwszego interpolującego funkcję f w punktach xk−1 i xk tzn
Wk(xk−j) = f (xk−j) gdzie j = {0, 1}
Wielomian Wk(x ) zapisujemy
Wk(x ) = f (xk) − f (xk−1)
xk − xk−1 (x − xk) + f (xk). (6)
Metoda siecznych (2)
Metoda przyjmuje więc postać:
xk+1 = xk − xk − xk−1
f (xk) − f (xk−1)f (xk), (7) przy założeniu, że f (xk) − f (xk−1) 6= 0.
Ponadto wykładnik zbieżności tej metody to p = 1 +√
5 2 natomiast promień kuli zbieżności to
A = 2f0(α) f00(α).
Metoda stycznych (Newtona)
Metoda stycznych korzysta ze standardowej informacji
R(xk, xk−1) = {f (xk), f0(xk)} i jest metodą interpolacyjną (użyta jest interpolacja Hermite’a). Jeśli xk jest kolejnym przybliżeniem miejsca zerowego α to k + 1 przybliżenie równie jest zeru wielomianu Hermite’a Wk stopnia pierwszego interpolującego funkcję f i jej pochodną w punkci xk tzn
Wk(j )(xk) = f(j )(xk) gdzie j = {0, 1}
Wielomian Wk(x ) zapisujemy
Wk(x ) = f0(xk)(x − xk) + f (xk). (8)
Metoda stycznych (2)
Metoda przyjmuje więc postać:
xk+1= xk − f (xk)
f0(xk). (9)
przy założeniu, że f0(xk) 6= 0.
Ponadto wykładnik zbieżności tej metody to p = 2
natomiast promień kuli zbieżności to A = 2f0(α)
f00(α).
Zera wielomianów - lokalizacja zer rzeczywistych
Problem lokalizacji zer wielomianu
f (x ) = a0xn+ a1xn−1+ · · · + an−1x + an, a06= 0. (10) można ograniczyć do znalezienia kresu górnego R dodatnich zer tego wielomianu.
Mając taką metodę możemy wprowadzić trzy pomocnicze równania f1(x ) = xnf
1 x
= 0, (11)
f2(x ) = f (−x ) = 0, (12)
f3(x ) = xnf
−1 x
= 0, (13)
dla których kresy górne zer dodatnich są odpowiednio równe R1, R2, R3, to wszystkie zera wielomianu (10) będą leżały w przedziale (1/R1, R) a ujemne w przedziale (−R2, −1/R3)
Zera wielomianów - lokalizacja zer rzeczywistych (2)
Twierdzenie (Lagrange’a) Niech a06= 0 i ak (k 1) będzie pierwszym ujemnym współczynnikiem wielomianu (10). Wszystkie dodatnie zera tego wielomianu są mniejsze niż
R = 1 + k s A
|a0|
gdzie A oznacza maksimum modułu ujemnych współczynników wielomianu. Jeśli wszystkie współczynniki wielomianu są nieujemne, to nie ma on zer dodatnich.m
Zera wielomianów - liczba zer rzeczywistych w przedziale
Liczbę zer rzeczywistych wielomianu
f (x ) = a0xn+ a1xn−1+ · · · + an−1x + an, a06= 0. (14) w danym przedziale [a, b] wyznaczamy budując ciąg Sturma f0(x ) ≡ f (x )
f1(x ) = f0(x )
f2(x ) - jest resztą z dzialania f0(x ) przez f1(x ) f3(x ) - jest resztą z dzialania f1(x ) przez f2(x ) f4(x ) - jest resztą z dzialania f2(x ) przez f3(x ) . . .
Zakładamy, że fp+1(x ) ≡ 0, a fp(x ) jest ostatnią resztą różną od zera.
Przykłady można znaleźć w http://www.algorytm.org/
procedury-numeryczne/ciag-sturma.html.
Jak dzielić wielomian przez wielomian
(https://en.wikipedia.org/wiki/Polynomial_greatest_
common_divisor#Euclidean_division)
Zera wielomianów - liczba zer rzeczywistych w przedziale (2)
Oznaczmy przez N(x0) liczbę zmian znaku w ciągu Sturma w punkcie x = x0, w którym opuszczamy zera.
Twierdzenie (Sturma). Jeżeli ciąg (fi(x )), i = 0, 1, . . . , p, jest ciągiem Sturma na przedziale (a, b) i f0(a) · f0(b) 6= 0, to liczba różnych zer rzeczywistych wielomianu f (x ) leżących w tym przedziale jest równa N(a) − N(b).