Tomasz Sewruk 151345
Zadanie1:
2) "Miejsca zerowe"
Dana jest funkcja f(x)=x2-4x sin(x)+4 sin2(x),
dla której zachodzi f(P)=0, P=(-1,3). Wyznacz ręcznie pierwsze
trzy przybliżenia miejsca zerowego P1,P2,P3
metodą Newtona startując z obu krańców przedzialu. Następnie
wyznacz miejsca zerowe funkcji z dokładnością δ=0.001
używając odpowiedniego skryptu Octava (Matlaba). Porównaj
wynik iteracji z metodą punktu stalego. Skomentuj liczbę
potrzebnych iteracji dla każdego z podanych punktów startowych.
Zaproponuj nowy punkt startowy P0 tak, aby wyznaczyć
miejsce zerowe w P=0. Używając komeny plot zrób wykres funkcji
f(x) na zadanym przedziale oraz zaznacz na nim ręcznie graficzną
interpretację metody Newtona i punktu stałego. Wydruk wykresu
(wraz z kodem) dołącz do sprawozdania.
Student: Tomasz Sewruk SR TN 9.15
Postać funkcji:
Postać pochodnej funkcji:
Wyznaczenie trzech pierwszych przybliżeń miejsca zerowego:
Zaczynam z lewej strony przedziału w poszukiwaniu pierwszego
miejsca zerowego:
Sprawdzenie:
Sprawdzenie:
Sprawdzenie:
Widać że pierwszym miejscem zerowym jest wartość: 0
Zaczynam z prawej strony przedziału:
Sprawdzenie:
Sprawdzenie:
Sprawdzenie:
Widać że drugim miejscem zerowym jest wartość: 1.895
Przyjąłem przy obliczeniach dokładność: 0.001
Zatem wynika że miejscem zerowym wyżej napisanej funkcji f(x) jest
wartość: 0 i 1.895
Wykres funkcji f(x):
Kod z Matlaba:
>> xpom=linspace(-1,3);
>> p0=-1; delta=0.001; tol=0.001; max1=20;
>> [k, p, err, P, GP] = newton('f','df', p0, delta, tol, max1)
k =
10
p =
1.9059
err =
0.0102
P =
-1.0000
3.2364
2.6637
2.3496
2.1571
2.0405
1.9730
1.9358
1.9161
1.9059
GP =
0.4664
11.7350
3.0413
0.8577
0.2411
0.0661
0.0176
0.0046
0.0012
0.0003
>> p0=-1; tol=0.001; max1=20;
>> [k,p,err,P] = fixpt('g',p0,tol,max1)
Przekroczono maksymalna liczbe iteracji
k =
20
p =
NaN
err =
NaN
P =
1.0e+180 *
-0.0000
0.0000
0.0000
0.0000
0.0000
0.0000
0.0000
0.0000
0.0000
0.0000
4.1541
Inf
NaN
NaN
NaN
NaN
NaN
NaN
NaN
NaN
>> ypom=4*xpom.*sin(xpom)-4*sin(xpom).*sin(xpom); %postać funkcji w pliku g
>> y=(-2)*(xpom-2*sin(xpom)).*(2*cos(xpom)-1); %pochodna z pliku df
>> funkcja=xpom.^2-4*xpom.*sin(xpom)+4*sin(xpom).*sin(xpom); %postać funkcji z pliku f
>> plot(xpom,y,'r-',xpom,ypom,'k-',xpom,funkcja,'b');
>> grid on
>> legend('pochodna df(x)','met.punktu stalego','funkcja f(x)');
Wynik iteracji dla metody Newtona jest wartość 10 a dla metody Punktu Stałego wartość ta wynosi 20, zatem wynika z tego iż metoda Newtona jest metodą dokładniejszą
Kod z Matlaba dla Nowego Punktu startowego który wynosi: -0,5
>> xpom=linspace(-1,3);
>> p0=-1; delta=0.001; tol=0.001; max1=20;
>> [k, p, err, P, GP] = newton('f','df', p0, delta, tol, max1)
k =
10
p =
1.9059
err =
0.0102
P =
-1.0000
3.2364
2.6637
2.3496
2.1571
2.0405
1.9730
1.9358
1.9161
1.9059
GP =
0.4664
11.7350
3.0413
0.8577
0.2411
0.0661
0.0176
0.0046
0.0012
0.0003
>> p0=-0,5; tol=0.001; max1=20;
>> [k,p,err,P] = fixpt('g',p0,tol,max1)
p0 =
0
k =
3
p =
4
err =
0
P =
0
4
4
>> ypom=4*xpom.*sin(xpom)-4*sin(xpom).*sin(xpom); %postać funkcji w pliku g
>> y=(-2)*(xpom-2*sin(xpom)).*(2*cos(xpom)-1); %pochodna z pliku df
>> funkcja=xpom.^2-4*xpom.*sin(xpom)+4*sin(xpom).*sin(xpom);
>> % postać funkcji z pliku f
>> plot(xpom,y,'r-',xpom,ypom,'k-',xpom,funkcja,'b');
>> grid on
>> legend('pochodna df(x)','met.punktu stalego','funkcja f(x)');
Wnioski: