% Harjutustund nr. 3, ülesanne 7

% lahendame võrrandi hariliku iteratsioonimeetodiga (HIM)
% leiame kõigepealt alglähendi(d)
% alglähendid leiame jooniselt

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.25 ja 2.7
% esitame funktsiooni x=g(x)
g=@(x) 1/8*(x^3+2);
% kontrollime koondumise tingimust |g'(x)|<1. Kui kehtib, siis valitud g(x)
% sobib
x=-3;
gtuletis=@(x) 3/8*x^2;
abs(gtuletis(x)) % kuna abs(gtuletis) ei ole <1, siis valitud g(x) ei sobi
% alglähendi -3 jaoks. Peame valima uue g(x)
% uurime, kas teiste alglähendite korral valitud g(x) sobib
x=0.25;
abs(gtuletis(x)) % kuna abs(gtuletis)<1, sobib 0.25 jaoks
x=2.7;
abs(gtuletis(x)) % ei sobi alglähendi 2.7 jaoks

% lahendame võrrandi HIMga alglähendi 0.25 korral
x=0.25;
i=0;
while abs(f(x))>10^-3
    x=1/8*(x^3+2);
    i=i+1;
end
lahend1=x
sammud1=i

% valime uue g(x)
uuegtuletis=@(x)  8/(3*nthroot((8*x-2)^2,3));
x=-3;
abs(uuegtuletis(x)) % sobib, kuna <1
x=2.7;
abs(uuegtuletis(x)) % sobib, kuna <1

% leiame võrrandi ülejäänud lahendid HIMga
x=-3;
i=0;
while abs(f(x))>10^-3
    x=nthroot(8*x-2,3);
    i=i+1;
end
lahend2=x
sammud2=i

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