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

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

% 2) määrame alglähendi(d) graafiliselt
f=@(x) x^3-8*x+2;
fplot(f)
yline(0)
grid on
% jooniselt on näha, et alglähenditeks võime võtta -3, 0.4 ja 2.7

% 3) uurime koondumise tingimust |g'(x)|<1
% iga alglähendi korral uurime
x=-3;
gtuletis=3/8*x^2;
abs(gtuletis) % saime 3.3750, ei sobi, kuna >1

% teistmoodi
% gtuletis=@(x) 3/8*x^2;
% abs(gtuletis(-3))

x=0.4;
gtuletis=3/8*x^2;
abs(gtuletis) % 0.0600 sobib, kuna <1

x=2.7;
gtuletis=3/8*x^2;
abs(gtuletis) % ei sobi, kuna >1

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

% 5) leiame ülejäänud alglähendite jaoks sobiva g(x)-i
% uus g(x)=kuupjuur(8x-2)
% uurime koondumise tingimust alglähendite -3 ja 2.7 korral
x=-3;
uusgtuletis=8/(3*(8*x-2)^(2/3));
abs(uusgtuletis) % sobib, kuna <1
x=2.7;
uusgtuletis=8/(3*(8*x-2)^(2/3));
abs(uusgtuletis) % sobib

% lahendame HIMiga
x=-3;
i=0;
while abs(f(x))>10^-3
  x=nthroot(8*x-2,3);   % x=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)
  i=i+1;
end
lahend3=x
sammud3=i
lahendid=[lahend1,lahend2,lahend3]
sammud=[sammud1,sammud2,sammud3]