% Tund 4, ülesanne 1
% lahendame võrrandi x^3-8x+2=0 hariliku iteratsioonimeetodiga

% 1) määrame jooniselt alglähendi(d)
f=@(x) x^3-8*x+2;
fplot(f)
grid on
yline(0)
% jooniselt on näha, et alglähenditeks võime võtta
% -3, 0.2 ja 2.7
% 2) täpsus epsilon olgu = 10^{-4}  ehk (x_n miinus x_{n-1})<10^{-4}
epsilon=10^(-4);

% 3) avaldame esialgsest võrrandist suuruse x
% saame kuju x=g(x)
% saime g(x)=1/8*(x^3+2)

% 4) uurime hariliku iteratsioonimeetodi koondumise tingimust
% st kas |g'(x)|<1. Kontrollime iga alglähendi korral

gtuletis=@(x) 3/8*x^2;
abs(gtuletis(-3)) % saime 3.3750, ei sobi, kuna >1
abs(gtuletis(0.2)) % 0.0150<1, sobib, sest <1
abs(gtuletis(2.7)) % ei sobi, sest 2.7338>1

% 5) leiame alglähendile 0.2 vastava lahendi hariliku
% iteratsioonimeetodiga
x=0.2;
i=0;
while abs(f(x))>10^(-4)
   x=1/8*(x^3+2);
   i=i+1;
end
lahend2=x
sammud2=i
kontroll=f(lahend2)

% 6) leiame uue g(x)-i, uurime koondumise tingimust
uusgtuletis=@(x) (8*nthroot(8*x - 2, 3))/(3*(8*x - 2));
abs(uusgtuletis(-3)) % sobib, <1
abs(uusgtuletis(2.7)) % sobib, <1

% 7) leiame alglähenditele -3 ja 2.7 vastavad lahendid
x=-3;
i=0;
while abs(f(x))>10^(-4)
   x=nthroot(8*x-2,3);
   i=i+1;
end
lahend1=x
sammud1=i
kontroll=f(lahend1)

x=2.7;
i=0;
while abs(f(x))>10^(-4)
   x=nthroot(8*x-2,3);
   i=i+1;
end
lahend3=x
sammud3=i
kontroll=f(lahend3)