Aleksandra Hupka 157929

gr. PT TN 13:15-15:00

Metody numeryczne

Zad. 12

„Miejsca zerowe”

  1. Treść zadania:

Miejsca zerowe- f(x)=(x-2)2. Wyznacz postać wzoru pk=g(pk-1) z metody siecznych. Startując z punktu p0=2.2 i p1=2.4 wyznacz ręcznie pierwsze trzy przybliżenia miejsca zerowego p1,p2,p3 metodą siecznych. Następnie wyznacz miejsca zerowe funkcji z dokładnością δ=0.001 (max1=30) używając odpowiedniego skryptu Matlaba dla tych punktów. Następnie użyj do wyznaczenia miejsca zerowego metody Newtona. Skomentuj wyniki i dokładność otrzymanych miejsc zerowych. Używając komendy plot zrób wykres funkcji f(x) na zadanym przedziale oraz zaznacz na nim ręcznie graficzną interpolację metody siecznych. Wydruk wykresu dołącz do sprawozdania.

  1. Obliczanie trzech pierwszych przybliżeń miejsca zerowego funkcji:

0x01 graphic

Punkty startowe:

0x01 graphic

Wartość funkcji w punktach startowych:

0x01 graphic

Kolejne przybliżenia miejsca zerowego funkcji:

0x01 graphic

Zatem

0x01 graphic

Rzeczywiste miejsce zerowe:

0x01 graphic

  1. Obliczanie miejsca zerowego metodą siecznych za pomocą MatLaba:

Kod Matlaba:

xx=linspace(-2,3,200);

p0=2.2; p1=2.4;

delta=0.001; max1=30; tol=0.001;

[k, p, err, P, GP] = sieczne('f', p0, p1, delta, tol, max1)

k =

13

p =

2.0012

err =

7.6781e-004

P =

2.2000

2.4000

2.1333

2.1000

2.0571

2.0364

2.0222

2.0138

2.0085

2.0053

2.0033

2.0020

2.0012

GP =

0.0400

0.1600

0.0178

0.0100

0.0033

0.0013

0.0005

0.0002

0.0001

0.0000

0.0000

0.0000

0.0000

4.Obliczanie miejsca zerowego metodą Newtona za pomocą MatLaba:

function y=f(x)

y=(x-2).^2;

function y=df(x)

y=2*x-4

xs=linspace(-2,3);

p0=2.2;

delta=0.001; max1=30; tol=0.0000001;

[k, p, err, P, GP] = newton('f', 'df', p0, delta, tol, max1)

fx=xs.^2-4*xs+4;

plot(xs,fx);

legend('fx');

grid on

xs=linspace(-2,3);

p0=2.2;

delta=0.001; max1=30; tol=0.0000001;

[k, p, err, P, GP] = newton('f', 'df', p0, delta, tol, max1)

fx=xs.^2-4*xs+4;

plot(xs,fx);

legend('fx');

grid on

>> xs=linspace(-2,3);

p0=2.2;

delta=0.001; max1=30; tol=0.0000001;

[k, p, err, P, GP] = newton('f', 'df', p0, delta, tol, max1)

k =

9

p =

2.0008

err =

7.8125e-004

P =

2.2000

2.1000

2.0500

2.0250

2.0125

2.0063

2.0031

2.0016

2.0008

GP =

0.0400

0.0100

0.0025

0.0006

0.0002

0.0000

0.0000

0.0000

0.0000

5.Wykres:

0x01 graphic

  1. Wnioski:

Z wyników powyżej wnioskuje, że obliczone ręcznie miejsca zerowe minimalnie różnią się od tych obliczonych w Matlabie. Wynika z obliczeń, że dla metody siecznych wynik iteracji wyniósł 13 a dla metody Newtona wyniósł 9. Zatem metoda „Newtona” jest dokładniejsza, ponieważ szybciej odnajduje miejsce zerowe.