Metody_12popr.doc

(45 KB) Pobierz
1

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.

 

 

 

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

 

 

Punkty startowe:

 

 

Wartość funkcji w punktach startowych:

 

 

Kolejne przybliżenia miejsca zerowego funkcji:

 

 

 

 

 

 

 

 

 

 

 

 

 

Zatem

 

 

 

 

 

 

 

Rzeczywiste miejsce zerowe:

 

 

3.      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:

 

 

 

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.

 

Zgłoś jeśli naruszono regulamin