Wykład nr 2 - Warsaw University of Technologyif.pw.edu.pl/~agatka/numeryczne/wyklad_02.pdf ·...

38
dr hab. Piotr Fronczak Metody numeryczne Wykład nr 2

Transcript of Wykład nr 2 - Warsaw University of Technologyif.pw.edu.pl/~agatka/numeryczne/wyklad_02.pdf ·...

Page 1: Wykład nr 2 - Warsaw University of Technologyif.pw.edu.pl/~agatka/numeryczne/wyklad_02.pdf · Wykładnik zbieżności • Określa szybkość zbieżności metod iteracyjnych •

dr hab. Piotr Fronczak

Metody numeryczne

Wykład nr 2

Page 2: Wykład nr 2 - Warsaw University of Technologyif.pw.edu.pl/~agatka/numeryczne/wyklad_02.pdf · Wykładnik zbieżności • Określa szybkość zbieżności metod iteracyjnych •

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)

Page 3: Wykład nr 2 - Warsaw University of Technologyif.pw.edu.pl/~agatka/numeryczne/wyklad_02.pdf · Wykładnik zbieżności • Określa szybkość zbieżności metod iteracyjnych •

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 .

cp

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)

Page 4: Wykład nr 2 - Warsaw University of Technologyif.pw.edu.pl/~agatka/numeryczne/wyklad_02.pdf · Wykładnik zbieżności • Określa szybkość zbieżności metod iteracyjnych •

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

Page 5: Wykład nr 2 - Warsaw University of Technologyif.pw.edu.pl/~agatka/numeryczne/wyklad_02.pdf · Wykładnik zbieżności • Określa szybkość zbieżności metod iteracyjnych •

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)()( bfaf

UWAGA!

Page 6: Wykład nr 2 - Warsaw University of Technologyif.pw.edu.pl/~agatka/numeryczne/wyklad_02.pdf · Wykładnik zbieżności • Określa szybkość zbieżności metod iteracyjnych •

1. Wybieramy przedział a, b , tak by f(a) f(b)<0

Metoda bisekcji (połowienia)

20

abax

2. Dzielimy przedział na połowy:

3. Mamy trzy przypadki:

),(

)()(

),(

)()(

,0)(

0

0

0

0

0

xaprzedzialewjest

kpierwiastezatembfcoznaksamtenmaxf

bxprzedzialewjest

kpierwiastezatemafcoznaksamtenmaxf

kpierwiasteznalezionoxf

4. Wybieramy przedział zawierający pierwiastek jako nowy przedział a; b i wracamy do kroku 2.

Page 7: Wykład nr 2 - Warsaw University of Technologyif.pw.edu.pl/~agatka/numeryczne/wyklad_02.pdf · Wykładnik zbieżności • Określa szybkość zbieżności metod iteracyjnych •

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

)

Page 8: Wykład nr 2 - Warsaw University of Technologyif.pw.edu.pl/~agatka/numeryczne/wyklad_02.pdf · Wykładnik zbieżności • Określa szybkość zbieżności metod iteracyjnych •

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 dla f(x)=0.

• Wolna zbieżność p=1 (metoda liniowa)

• Po k iteracjach rozmiar przedziału zmalał do:

k

ab

200

0

• Zatem liczba iteracji konieczna do uzyskania tolerancji błędu 0:

0

002log

abk

Page 9: Wykład nr 2 - Warsaw University of Technologyif.pw.edu.pl/~agatka/numeryczne/wyklad_02.pdf · Wykładnik zbieżności • Określa szybkość zbieżności metod iteracyjnych •

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

Page 10: Wykład nr 2 - Warsaw University of Technologyif.pw.edu.pl/~agatka/numeryczne/wyklad_02.pdf · Wykładnik zbieżności • Określa szybkość zbieżności metod iteracyjnych •

1. Wybierz przedział a, b, tak by f(a) f(b)<0

2. Przybliżenie pierwiastka: punkt, w którym prosta łącząca punkty a i b

przecina oś x.

3. Mamy trzy przypadki:

),(

)()(

),(

)()(

,0)(

app

app

app

app

app

xaprzedzialewjest

kpierwiastezatembfcoznaksamtenmaxf

bxprzedzialewjest

kpierwiastezatemafcoznaksamtenmaxf

kpierwiasteznalezionoxf

4. Wybierz przedział zawierający pierwiastek jako nowy przedział a, b

i wróć do kroku 2.

Metoda Regula Falsi

)()()()(

bfbxab

afbfy

równanie prostej:

Stąd, gdy y=0, mamy: )()(

)()(

afbf

abfbafxapp

Page 11: Wykład nr 2 - Warsaw University of Technologyif.pw.edu.pl/~agatka/numeryczne/wyklad_02.pdf · Wykładnik zbieżności • Określa szybkość zbieżności metod iteracyjnych •

-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

Page 12: Wykład nr 2 - Warsaw University of Technologyif.pw.edu.pl/~agatka/numeryczne/wyklad_02.pdf · Wykładnik zbieżności • Określa szybkość zbieżności metod iteracyjnych •

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 dla f(x)=0.

• Wolna zbieżność p=1 (metoda liniowa)

prawidłowerozwiązanie

x1x2

a1a2 a3 x

f(x)

f(a )1

f(a )2

f(b )1

b1

Page 13: Wykład nr 2 - Warsaw University of Technologyif.pw.edu.pl/~agatka/numeryczne/wyklad_02.pdf · Wykładnik zbieżności • Określa szybkość zbieżności metod iteracyjnych •

Metoda Newtona

Wybierzmy pewien punkt początkowy xk i rozwińmy funkcję f(x) w szereg Taylora

Podstawmy i weźmy tylko dwa wyrazy rozwinięcia:

Niech . Wtedy

rozwiązanie

x1

x

y y=f(x)

f(x )3

x2x3x4

f(x )2

f(x )1 f’(x )1

f’(x )2f’(x )3

Page 14: Wykład nr 2 - Warsaw University of Technologyif.pw.edu.pl/~agatka/numeryczne/wyklad_02.pdf · Wykładnik zbieżności • Określa szybkość zbieżności metod iteracyjnych •

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

Page 15: Wykład nr 2 - Warsaw University of Technologyif.pw.edu.pl/~agatka/numeryczne/wyklad_02.pdf · Wykładnik zbieżności • Określa szybkość zbieżności metod iteracyjnych •

Metoda Newtona: przykład c.d.

Szukamy pierwiastków

Liczymy pochodną

Równanie iteracyjne

Page 16: Wykład nr 2 - Warsaw University of Technologyif.pw.edu.pl/~agatka/numeryczne/wyklad_02.pdf · Wykładnik zbieżności • Określa szybkość zbieżności metod iteracyjnych •

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ść x1 leży blisko rozwiązania

Page 17: Wykład nr 2 - Warsaw University of Technologyif.pw.edu.pl/~agatka/numeryczne/wyklad_02.pdf · Wykładnik zbieżności • Określa szybkość zbieżności metod iteracyjnych •
Page 18: Wykład nr 2 - Warsaw University of Technologyif.pw.edu.pl/~agatka/numeryczne/wyklad_02.pdf · Wykładnik zbieżności • Określa szybkość zbieżności metod iteracyjnych •

Fraktale

• 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.

Page 19: Wykład nr 2 - Warsaw University of Technologyif.pw.edu.pl/~agatka/numeryczne/wyklad_02.pdf · Wykładnik zbieżności • Określa szybkość zbieżności metod iteracyjnych •

Brokuł romanesco

Drzewo

Page 20: Wykład nr 2 - Warsaw University of Technologyif.pw.edu.pl/~agatka/numeryczne/wyklad_02.pdf · Wykładnik zbieżności • Określa szybkość zbieżności metod iteracyjnych •

Liście

Linia brzegowa

Page 21: Wykład nr 2 - Warsaw University of Technologyif.pw.edu.pl/~agatka/numeryczne/wyklad_02.pdf · Wykładnik zbieżności • Określa szybkość zbieżności metod iteracyjnych •

Fraktale Netwona

Weźmy równanie f(z) = 0, z C, np. z3 – 1 = 0

Równanie zespolone stopnia n ma n pierwiastków.

W zależności od wyboru punktu warunku początkowego (x + iy) metoda

Newtona doprowadzi nas do jednego z n 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:

Page 23: Wykład nr 2 - Warsaw University of Technologyif.pw.edu.pl/~agatka/numeryczne/wyklad_02.pdf · Wykładnik zbieżności • Określa szybkość zbieżności metod iteracyjnych •

Metoda siecznych

Do wyznaczenia k+1 przybliżenia

korzystamy z punktów k-1 i k.

Korzystając z podobieństwa trójkątów:

32

2

21

21 0)()()(

xx

xf

xx

xfxf

Stąd )()(

))((

21

21223

xfxf

xxxfxx

)()(

))((

1

11

kk

kkkkk

xfxf

xxxfxx

Ogólnie

Page 24: Wykład nr 2 - Warsaw University of Technologyif.pw.edu.pl/~agatka/numeryczne/wyklad_02.pdf · Wykładnik zbieżności • Określa szybkość zbieżności metod iteracyjnych •

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

)

Page 25: Wykład nr 2 - Warsaw University of Technologyif.pw.edu.pl/~agatka/numeryczne/wyklad_02.pdf · Wykładnik zbieżności • Określa szybkość zbieżności metod iteracyjnych •

Metoda między Regula falsi a Newtona

Zbieżność szybsza niż liniowa 618.12

51

Metoda siecznych: uwagi

)()(

))((

1

11

kk

kkkkk

xfxf

xxxfxx

)(

)()(

)(

1

11

kk

kk

kkk

xx

xfxf

xfxx

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.

Page 26: Wykład nr 2 - Warsaw University of Technologyif.pw.edu.pl/~agatka/numeryczne/wyklad_02.pdf · Wykładnik zbieżności • Określa szybkość zbieżności metod iteracyjnych •

Metoda szukania punktu stałego

Równanie f(x) = 0 zastępujemy równaniem x - g(x) = 0, czyli x = g(x)

Rozwiązania szukamy iteracyjnie: )(1 kk xgx

Page 27: Wykład nr 2 - Warsaw University of Technologyif.pw.edu.pl/~agatka/numeryczne/wyklad_02.pdf · Wykładnik zbieżności • Określa szybkość zbieżności metod iteracyjnych •

Metoda szukania punktu stałego

Page 28: Wykład nr 2 - Warsaw University of Technologyif.pw.edu.pl/~agatka/numeryczne/wyklad_02.pdf · Wykładnik zbieżności • Określa szybkość zbieżności metod iteracyjnych •

Metoda szukania punktu stałego: przykład

023/1 xx

3

21 )2()( kkk xxgx

3/2

3/1

313

26)(

k

kkk

x

xxgx

2)( 3/1

11 kkk xxgx

Trzy sposoby zapisu:

Czy jest jakaś różnica?

zbieżność rozbieżność szybka

zbieżność

Page 29: Wykład nr 2 - Warsaw University of Technologyif.pw.edu.pl/~agatka/numeryczne/wyklad_02.pdf · Wykładnik zbieżności • Określa szybkość zbieżności metod iteracyjnych •

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.

Page 30: Wykład nr 2 - Warsaw University of Technologyif.pw.edu.pl/~agatka/numeryczne/wyklad_02.pdf · Wykładnik zbieżności • Określa szybkość zbieżności metod iteracyjnych •

Metoda szukania punktu stałego: zbieżność

Page 31: Wykład nr 2 - Warsaw University of Technologyif.pw.edu.pl/~agatka/numeryczne/wyklad_02.pdf · Wykładnik zbieżności • Określa szybkość zbieżności metod iteracyjnych •

Metoda szukania punktu stałego: przykład

023/1 xx

2)( 3/1

11 kkk xxgx

3

21 )2()( kkk xxgx

3/2

3/1

313

26)(

k

kkk

x

xxgx

Trzy sposoby zapisu:

Czy jest jakaś różnica? zbieżność rozbieżność

szybka

zbieżność

3/2

'

13

1)(

xxg

2.5 3.0 3.5 4.0

0.16

0.18

0.20

2'

2 )2(3)( xxg

2.5 3.0 3.5 4.0

2

4

6

8

10

12

23/23/1

3/1'

3)31(

)2(2)(

xx

xxxg

2.5 3.0 3.5 4.0

0.14

0.12

0.10

0.08

0.06

0.04

0.02

Page 32: Wykład nr 2 - Warsaw University of Technologyif.pw.edu.pl/~agatka/numeryczne/wyklad_02.pdf · Wykładnik zbieżności • Określa szybkość zbieżności metod iteracyjnych •
Page 33: Wykład nr 2 - Warsaw University of Technologyif.pw.edu.pl/~agatka/numeryczne/wyklad_02.pdf · Wykładnik zbieżności • Określa szybkość zbieżności metod iteracyjnych •

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

};

Page 34: Wykład nr 2 - Warsaw University of Technologyif.pw.edu.pl/~agatka/numeryczne/wyklad_02.pdf · Wykładnik zbieżności • Określa szybkość zbieżności metod iteracyjnych •

Układy równań nieliniowych

Metoda Newtona

0),(

0),(

2

1

yxf

yxfDla układu dwóch równań:

Wybieramy rozwiązania początkowe x1 i y1. Jeśli są one blisko rozwiązań

prawdziwych x2 i y2, to rozwinięcie Taylora funkcji f1 i f2 wokół x1 i y1:

...)()(),(),(

...)()(),(),(

1111

1111

,

212

,

212112222

,

112

,

112111221

yxyx

yxyx

y

fyy

x

fxxyxfyxf

y

fyy

x

fxxyxfyxf

0

0

Page 35: Wykład nr 2 - Warsaw University of Technologyif.pw.edu.pl/~agatka/numeryczne/wyklad_02.pdf · Wykładnik zbieżności • Określa szybkość zbieżności metod iteracyjnych •

),(

),(

112

,

2

,

2

111

,

1

,

1

1111

1111

yxfyy

fx

x

f

yxfyy

fx

x

f

yxyx

yxyx

)),(),,((

),(),(

)),(),,((

),(),(

112111

,

2111

,

1112

112111

,

1112

,

2111

1111

1111

yxfyxfJ

x

fyxf

x

fyxf

y

yxfyxfJ

y

fyxf

y

fyxf

x

yxyx

yxyx

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

ffJ22

11

21 det),(

yyy

xxx

12

12

Zatem nowe przybliżenie rozwiązań:

Page 36: Wykład nr 2 - Warsaw University of Technologyif.pw.edu.pl/~agatka/numeryczne/wyklad_02.pdf · Wykładnik zbieżności • Określa szybkość zbieżności metod iteracyjnych •

Układy równań nieliniowych: przykład

-6 -4 -2 0 2 4 6-4

-2

0

2

4

6

y

x

0225259),(

0),(

22

2

2/2/

21

1

yxyxf

eeyyxf xx

xyeeyx

ee

y

f

x

f

y

f

x

f

ffJ xx

xx

18505018

1detdet),( 2/2/

41

2/2/

41

22

11

21

Page 37: Wykład nr 2 - Warsaw University of Technologyif.pw.edu.pl/~agatka/numeryczne/wyklad_02.pdf · Wykładnik zbieżności • Określa szybkość zbieżności metod iteracyjnych •

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

Page 38: Wykład nr 2 - Warsaw University of Technologyif.pw.edu.pl/~agatka/numeryczne/wyklad_02.pdf · Wykładnik zbieżności • Określa szybkość zbieżności metod iteracyjnych •

Układy równań nieliniowych: uwagi

nnx

f

x

f

x

f

x

f

x

f

x

f

x

f

x

f

x

f

f

f

f

x

x

x

n

nnn

n

n

2

1

2

1

21

2

2

2

1

2

1

2

1

1

1

W ogólności:

1. Zbieżność nie jest gwarantowana.

2. Funkcje f1, … , fn i ich pochodne muszą być ciągłe i ograniczone w pobliżu

rozwiązania

3. J(f1, … , fn) <> 0 w pobliżu rozwiązania

4. Warunki początkowe wystarczająco blisko prawdziwego rozwiązania

5. Dla układu n>3 równań powyższe równanie trzeba rozwiązać numerycznie.