dr hab. Piotr Fronczak
Metody numeryczne
Wykład nr 2
Przybliżone rozwiązywanie równań nieliniowych
Jedno równanie z jedną niewiadomą
Szukamy pierwiastków rzeczywistych równania f(x) = 0.
f(x) zwykle jest funkcją nieliniową, zatem korzystamy z metod iteracyjnych (poprawianie kolejnych przybliżeń pierwiastków)
Wykładnik zbieżności
• Określa szybkość zbieżności metod iteracyjnych
• Metoda jest rzędu p, jeżeli istnieje stała c taka, że dla dwóch kolejnych przybliżeń xk i xk+1 zachodzi
gdzie k = xk+1 - xk.
p c
k k k
1
lim
liniowa z C = 10-1 liniowa z C = 10-2 superliniowa
kwadratowa Przypadki specjalne
p=1 (metoda liniowa),
p>1 & p<2 (metoda superliniowa) p=2 (metoda kwadratowa),
p=3 (metoda kubiczna)
Kroki podstawowe
1. Przeanalizuj problem pod kątem
złożoności badanej funkcji
dokładności rozwiązań
szybkości obliczeń
3. Oceń problemy (np. rozbieżność funkcji) 4. Wybierz rozwiązanie początkowe
2. Jeśli to możliwe, narysuj funkcję
f(x) = cos(x) - x
Metoda bisekcji (połowienia)
Wybieramy przedział domknięty a, b, wewnątrz którego znajduje się
pierwiastek i na którego końcach wartości funkcji f(x) mają przeciwne znaki
0 )
( )
( a f b f
UWAGA!
1. Wybieramy przedział
a, b
, tak byf(a) f(b)<0
Metoda bisekcji (połowienia)
0
2
a a b
x
2. Dzielimy przedział na połowy:
3. Mamy trzy przypadki:
) , (
) ( )
(
) , (
) ( )
(
, 0 )
(
0 0
0 0
0
x a przedziale w
jest
k pierwiaste zatem
b f co znak sam
ten ma
x f
b x przedziale w
jest
k pierwiaste zatem
a f co znak sam
ten ma
x f
k pierwiaste znaleziono
x
f
4. Wybieramy przedział zawierający pierwiastek jako nowy przedział
a; b
i wracamy do kroku 2.
Metoda bisekcji: przykład
-10 -5 0 5 10
0 0.5 1 1.5 2 2.5 3 3.5 4
x
f(x)
Metoda bisekcji (połowienia): uwagi
• Metoda zawsze zbieżna, jeśli tylko dobrze wybrano przedział początkowy.
• Metoda zawiedzie, gdy
f(x)
styczne z osiąx
dlaf(x)=0
.• Wolna zbieżność
p=1
(metoda liniowa)• Po
k
iteracjach rozmiar przedziału zmalał do:k
a b
2
0 0
0
• Zatem liczba iteracji konieczna do uzyskania tolerancji błędu 0:
0 0 0
log
2
a
k b
Metoda Regula Falsi
• Opisana w hinduskim tekście Vaishali Ganit (III w. p.n.e.)
• Dziewięć rozdziałów sztuki matematycznej (九章算術) (200 p.n.e. – 100 n.e.) wykorzystuje algorytm do rozwiązywania równań liniowych
• regula – linia, falsus - fałszywy
1. Wybierz przedział
a, b
, tak byf(a) f(b)<0
2. Przybliżenie pierwiastka: punkt, w którym prosta łącząca punkty
a
ib
przecina ośx
.3. Mamy trzy przypadki:
) ,
(
) ( )
(
) , (
) ( )
(
, 0 ) (
app app
app app
app
x a przedziale w
jest
k pierwiaste zatem
b f co znak sam
ten ma x
f
b x przedziale w
jest
k pierwiaste zatem
a f co znak sam
ten ma x
f
k pierwiaste znaleziono
x
f
4. Wybierz przedział zawierający pierwiastek jako nowy przedział a, b i wróć do kroku 2.
Metoda Regula Falsi
) ( )
) ( ( )
( x b f b
a b
a f b
y f
równanie prostej:
Stąd, gdy
y=0
, mamy:) ( ) (
) ( )
(
a f b f
a bf b xapp af
-10 -5 0 5 10
0 0.5 1 1.5 2 2.5 3 3.5 4
x
f(x)
Metoda Regula Falsi: przykład
Metoda Regula Falsi: uwagi
• Metoda zawsze zbieżna, jeśli tylko dobrze wybrano przedział początkowy.
• Metoda zawiedzie, gdy
f(x)
styczne z osiąx
dlaf(x)=0
.• Wolna zbieżność
p=1
(metoda liniowa)prawidłowe rozwiązanie
x
1x
2a
1a
2a
3x
f(x)
f(a )
1f(a )
2f(b )
1b
1Metoda Newtona
Wybierzmy pewien punkt początkowy
x
k i rozwińmy funkcjęf(x)
w szereg TayloraPodstawmy i weźmy tylko dwa wyrazy rozwinięcia:
Niech . Wtedy
rozwiązanie
x1
x
y y=f(x)
f(x )3
x2 x3
x4
f(x )2
f(x )1 f’(x )1
f’(x )2 f’(x )3
styczna
-10 -5 0 5 10
0 0.5 1 1.5 2 2.5 3 3.5 4
x
f(x)
Metoda Newtona: przykład
Metoda Newtona: przykład c.d.
Szukamy pierwiastków
Liczymy pochodną
Równanie iteracyjne
Metoda Newtona: uwagi
• Szybka zbieżność
p=2
(metoda kwadratowa)• Wymaga analitycznej znajomości
f’(x)
• Metoda zbieżna, gdy
f(x), f’(x), f’’(x)
ciągłe,f’(x)<>0
w pobliżu rozwiązania, początkowa wartośćx
1 leży blisko rozwiązaniaFraktale
• mają nietrywialną strukturę w każdej skali,
• struktura ta nie daje się łatwo opisać w języku tradycyjnej geometrii euklidesowej,
• są samo-podobny,
• mają wymiar wymierny (fractional) a nie całkowity
obraz Lichtenberga:
wyładowanie elektryczne w dielektryku.
Brokuł romanesco
Drzewo
Liście
Linia brzegowa
Fraktale Netwona
Weźmy równanie
f(z) = 0, z C,
np.z
3– 1 = 0
Równanie zespolone stopnia
n
man
pierwiastków.W zależności od wyboru punktu warunku początkowego
(x + iy)
metoda Newtona doprowadzi nas do jednego zn
pierwiastków.Punkty te następnie oznacza się różnym kolorem w zależności od:
rozwiązania, do którego dąży dany punkt: prędkości znalezienia rozwiązania:
… lub oba warunki naraz:
Metoda siecznych
Do wyznaczenia
k+1
przybliżenia korzystamy z punktówk-1
ik
.Korzystając z podobieństwa trójkątów:
3 2
2 2
1
2
1
) ( ) ( ) 0
(
x x
x f x
x
x f x
f
Stąd
) ( )
(
) )(
(
2 1
2 1
2 2
3
f x f x
x x
x x f
x
) ( )
(
) )(
(
1 1 1
k k
k k
k k
k
f x f x
x x
x x f
x
Ogólnie
Metoda siecznych: przykład
-10 -5 0 5 10
0 0.5 1 1.5 2 2.5 3 3.5 4
x
f(x)
Metoda między Regula falsi a Newtona
Zbieżność szybsza niż liniowa
1 . 618 2
5
1
Metoda siecznych: uwagi
) ( )
(
) )(
(
1 1 1
k k
k k
k k
k
f x f x
x x
x x f
x
) (
) ( )
(
) (
1 1 1
k k
k k
k k
k
x x
x f x
f
x x f
x
Przybliżenie pochodnej
Newton Nie musimy znać analitycznej postaci f’(x) !
Ale te same problemy ze zbieżnością co w metodzie Newtona.
Najpierw wolna ale pewna bisekcja, potem szybka metoda siecznych.
Metoda szukania punktu stałego
Równanie
f(x) = 0
zastępujemy równaniemx - g(x) = 0
, czylix = g(x)
Rozwiązania szukamy iteracyjnie:
x
k1 g ( x
k)
Metoda szukania punktu stałego
Metoda szukania punktu stałego: przykład
0
3
2
/
1
x x
3 2
1
( ) ( 2 )
k k
k
g x x
x
3 / 2
3 / 1 3
1
3
2 ) 6
(
k k k
k
x
x x g
x
2 )
(
1/31
1
k k
k
g x x
x
Trzy sposoby zapisu:
Czy jest jakaś różnica?
zbieżność rozbieżność szybka zbieżność
Metoda szukania punktu stałego: zbieżność
Twierdzenie:
Jeśli funkcja 𝑔 jest ciągła w pewnym przedziale wokół punktu x* takiego, że 𝑔 𝑥∗ =𝑥∗, to mówimy, że x* jest punktem stałym odwzorowania g.
Jeśli ponadto 𝑔′(𝑥) jest ciągła w tym przedziale i spełniona jest nierówność:
𝑔′ 𝑥∗ ≤ 𝑐 < 1, to ciąg iteracji 𝑥𝑛+1 = 𝑔(𝑥𝑛) jest zbieżny do punktu stałego.
Dla opornych: jeśli
g(x)
jest gładka i ograniczona i niezbyt stroma, to proces iteracyjny jest zbieżny.Metoda szukania punktu stałego: zbieżność
Metoda szukania punktu stałego: przykład
0
3
2
/
1
x x
2 )
( 1/3
1
1
k k
k g x x
x
3 2
1 ( ) ( 2)
k k
k g x x
x
3 / 2
3 / 1 3
1 3
2 ) 6
(
k k k
k x
x x g x
Trzy sposoby zapisu:
Czy jest jakaś różnica?
zbieżność rozbieżność szybka zbieżność
3 / 2 '
1 3
) 1
(x x
g
2.5 3.0 3.5 4.0 0.16
0.18 0.20
2 '
2(x) 3(x2) g
2.5 3.0 3.5 4.0
2 4 6 8 10 12
2 3 / 2 3
/ 1
3 / 1 '
3 (1 3 )
) 2 (
) 2
( x x
x x x
g
2.5 3.0 3.5 4.0
0.14 0.12 0.10 0.08 0.06 0.04 0.02
Równania z wieloma pierwiastkami
krok = 1; //<--- szerokość przedziału
a = 0; //<--- lewa granica pierwszego przedziału b = a + krok; //<--- prawa granica pierwszego przedziału while(b < bmax)
{
if(f(a)*f(b) < 0) //<-- sprawdź, czy funkcja zmienia znak {
root[i] = FindRoots(f,a,b); //<-- np. bisekcja i = i + 1;
}
a = b; //<--- lewa granica nowego przedziału b = a + krok; //<---- prawa granica nowego przedziału };
Układy równań nieliniowych
Metoda Newtona
0 ) , (
0 )
, (
2 1
y x f
y x
Dla układu dwóch równań:
f
Wybieramy rozwiązania początkowe
x
1 iy
1. Jeśli są one blisko rozwiązań prawdziwychx
2 iy
2, to rozwinięcie Taylora funkcjif
1 if
2wokółx
1 iy
1:...
) (
) (
) , ( )
, (
...
) (
) (
) , ( )
, (
1 1 1
1
1 1 1
1
, 2 1
2 ,
2 1
2 1
1 2 2
2 2
, 1 1 2
, 1 1
2 1
1 1 2
2 1
y y x
x
y y x
x
y y f
x y x f
x y
x f y
x f
y y f
x y x f
x y
x f y
x f
0
0
) , (
) , (
1 1 2 ,
2 ,
2
1 1 1 ,
1 ,
1
1 1 1
1
1 1 1
1
y x f y y
x f x
f
y x f y y
x f x
f
y y x
x
y y x
x
)) , ( ), , ( (
) , ( )
, (
)) , ( ), , ( (
) , ( )
, (
1 1 2 1 1 1
, 2 1 1 1 ,
1 1 1 2
1 1 2 1 1 1
, 1 1 1 2 ,
2 1 1 1
1 1 1
1
1 1 1
1
y x f y x f J
x y f x x f
y f x f y
y x f y x f J
y y f x y f
y f x f x
y x y
x
y x y
x
Czyli układ dwóch równań liniowych. Korzystając z reguły Cramera:
gdzie
J
– jakobian:
y f x
f
y f x
f f
f J
2 2
1 1
2
1, ) det
(
y y
y
x x
x
1 2
1
Zatem nowe przybliżenie rozwiązań: 2
Układy równań nieliniowych: przykład
-6 -4 -2 0 2 4 6
-4 -2 0 2 4 6
y
x
0 225 25
9 ) , (
0 )
, (
2 2
2
2 / 2
/ 2 1 1
y x
y x f
e e
y y
x
f
x x
e e
y xy x
e e
y f x
f
y f x
f f
f
J x x
x x
18 50 50
18 det 1
det )
,
( 14 /2 /2
2 / 2
/ 4 1
2 2
1 1
2
1
F1(x,y) = function { y -0.5*(exp(x/2)+exp(-x/2)) } F2(x,y) = function { 9*x^2+25*y^2-225 }
F1x(x,y) = function { -(exp(x/2)+exp(-x/2))/4 } F1y(x,y) = function { 1 }
F2x(x,y) = function { 18*x } F2y(x,y) = function { 50*y }
Jacob(x,y) = function { -(exp(x/2) + exp(-x/2))/4*50*y-18*x } xi = 2.5; yi = 2; Err = 0.001;
while(1) {
Delx = (-F1(xi,yi)*F2y(xi,yi)+F2(xi,yi)*F1y(xi,yi)) / Jacob(xi,yi);
Dely = (-F2(xi,yi)*F1x(xi,yi)+F1(xi,yi)*F2x(xi,yi)) / Jacob(xi,yi);
xip1 = xi + Delx;
yip1 = yi + Dely;
Errx = abs((xip1 - xi)/xi);
Erry = abs((yip1 - yi)/yi);
if(Errx<Err && Erry<Err) break;
xi = xip1; yi = yip1;
};
Warunki początkowe i dopuszczalny błąd
x i y xk+1 i yk+1
Błąd względny rozwiązania
i x y Errx Erry
1 3.0731 2.4296 0.22926 0.21479 2 3.0345 2.3849 0.01258 0.01840 3 3.0314 2.3858 0.00102 0.00037 4 3.0312 2.3859 0.00007 0.00004
Układy równań nieliniowych: uwagi
n x n
f x
f x
f
x f x
f x
f
x f x
f x
f
f f f
x x x
n n n
n
n n
2 1 2
1
2 1
2 2
2 1
2
1 2
1 1
1
W ogólności:
1. Zbieżność nie jest gwarantowana.
2. Funkcje
f
1, … , f
n i ich pochodne muszą być ciągłe i ograniczone w pobliżu rozwiązania3. J(f
1, … , f
n) <> 0
w pobliżu rozwiązania4. Warunki początkowe wystarczająco blisko prawdziwego rozwiązania
5. Dla układu