% Tund 4, ülesanne 1
% lahendame võrrandi hariliku iteratsioonimeetodiga
% 1) määrame alglähendi(d) xo jooniselt
f=@(x) x^3-8*x+2;
fplot(f)
grid on
yline(0)
% alglähenditeks võime võtta -3, 0.2 ja 2.7
% 2) määrame täpsuse epsilon=10^(-3)
% 3) avaldame võrrandist f(x)=0 suuruse x
% saame kuju x=g(x)=1/8*(x^3+2)

% 4) uurime koondumise tingimust iga alglähendi korral
% tingimus |g'(x)|<1
x=-3;
gtuletis=3/8*x^2;
abs(gtuletis) % saime 3.3750>1, ei sobi
% kas teiste alglähendite korral koondumise tingimus kehtib
x=0.2;
gtuletis=3/8*x^2;
abs(gtuletis) % sobib, kuna 0.0150<1
x=2.7;
gtuletis=3/8*x^2;
abs(gtuletis) % ei sobi, kuna 2.7338>1
% leiame alglähendile 0.2 vastava lahendi
x=0.2;
i=0;
while abs(f(x))>10^(-3)
   x=1/8*(x^3+2);
   i=i+1;
end
lahend2=x
sammud2=i
% leiame uue g(x)-i kahe ülejäänud alglähendi jaoks
% uurime koondumise tingimust
x=-3;
uusgtuletis=8/(3*nthroot((8*x-2)^2,3));
abs(uusgtuletis) % sobib
x=2.7;
uusgtuletis=8/(3*nthroot((8*x-2)^2,3));
abs(uusgtuletis) % sobib

% või funktsiooniga
% gtuletis=@(x) 8/(3*nthroot((8*x-2)^2,3));
% abs(gtuletis(-3))

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

x=2.7;
i=0;
while abs(f(x))>10^(-3)
   x=nthroot(8*x-2,3);   % x=g(x), siin uus g(x)
   i=i+1;
end
lahend3=x
sammud3=i
lahendid=[lahend1,lahend2,lahend3]
sammud=[sammud1,sammud2,sammud3]
