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.
M-file z funkcją f
function y=f(x);
y=(x-2).^2;
M-file z funkjcą df
function y=df(x);
y=2*x-4;
Kod programu:
xx=linspace(-4,4,200);
p0=2.2; p1=2.4;
delta=0.001; max1=30; tol=0.0000001;
[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
xx=linspace(-4,4,200);
p0=2.2;
delta=0.001; max1=30; tol=0.000001;
[k, p, err, P, GP] = newton('f', 'df', p0, delta, tol, max1)
yy=xx.^2-4*xx+4;
plot(xx,yy,'k-');
legend('funkcja');
grid on
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
Wykres
Wnioski
Z powyższych obliczeń widać, że metoda Newtona określania miejsc zerowych jest dokładniejsza ponieważ otrzymaliśmy miejsce zerowe z zakładaną dokładnością po czterech iteracjach natomiast korzystając z metody siecznych zakładaną dokładność otrzymamy po 7 iteracjach. Obie metody są zbieżne.
Marta Dul 157923
Metody numeryczne
Temat: Miejsca zerowe
Prowadzący: mgr inż. A. Kosior