:
Wyznaczenie trzech pierwszych przybliżeń miejsca zerowego:
Zaczynam z lewej strony przedziału w poszukiwaniu pierwszego miejsca zerowego:
Zaczynam z prawej strony przedziału:
function y=f(x)
y=x.^2-4*x.*sin(x)+4*sin(x).*sin(x);
function y=df(x)
y=(-2)*(x-2*sin(x)).*(2*cos(x)-1);
>> x=linspace(-1,3);
p0=-1; delta=0.001; tol=0.00000001; max1=20;
[k, p, err, P, GP] = newton('f','df', p0, delta, tol, max1)
k =
14
p =
1.8962
err =
6.5801e-004
P =
-1.0000
3.2364
2.6637
2.3496
2.1571
2.0405
1.9730
1.9358
1.9161
1.9059
1.9007
1.8981
1.8968
1.8962
GP =
0.4664
11.7350
3.0413
0.8577
0.2411
0.0661
0.0176
0.0046
0.0012
0.0003
0.0001
0.0000
0.0000
0.0000
>> x=linspace(-1,3);
p0=3; delta=0.001; tol=0.00000001; max1=20;
[k, p, err, P, GP] = newton('f','df', p0, delta, tol, max1)
k =
13
p =
1.8960
err =
5.2577e-004
P =
3.0000
2.5440
2.2767
2.1124
2.0143
1.9584
1.9280
1.9120
1.9038
1.8997
1.8976
1.8965
1.8960
GP =
7.3862
2.0127
0.5694
0.1590
0.0432
0.0114
0.0029
0.0007
0.0002
0.0000
0.0000
0.0000
0.0000
function y=g(x)
y=sqrt(4*x.*sin(x)-4*sin(x).*sin(x));
>> p0=-1; tol=0.001; max1=20;
[k,p,err,P] = fixpt('g',p0,tol,max1)
k =
7
p =
2.6990e-008
err =
1.8179e-004
P =
-1.0000
0.7305
0.4109
0.1353
0.0149
0.0002
0.0000
>> p0=3; tol=0.001; max1=20;
[k,p,err,P] = fixpt('g',p0,tol,max1)
k =
10
p =
6.9507e-012
err =
2.9177e-006
P =
3.0000
1.2703
1.0973
0.8591
0.5554
0.2436
0.0481
0.0019
0.0000
0.0000
x=linspace(-1,3);
y=x.^2-4*x.*sin(x)+4*sin(x).*sin(x);
plot(x,y);
grid on
legend('funkcja f(x)');
Wnioski
Z wyników powyżej wnioskuję że obie metody są dobre jeśli nie zależy nam na ilości iteracji i dokładności gdyż wynik wyjdzie podobny. Jednak gdy się temu bardziej przyjrzeć to metoda Newtona jest metodą gorszą od od metody Punktu Stałego ze względu na wynik uzyskanych iteracji (powtórzeń) oraz na wynik błędu bezwzględnego. Zauważyć można również że jeśli wybieramy punkt startowy bliżej miejsca zerowego tym ten błąd jest mniejszy jeśli chodzi o metodę Punktu Stałego. Natomiast w metodzie Newtona jest odwrotnie, im dalej od miejsca zerowego tym mniejszy błąd popełnimy.
Nowy punkt startowy to P0=-0.5