% harjutustunni nr. 3 ülesanne 7

% lahendame võrrandi x^3-8x+2=0 hariliku iteratsioonimeetodiga
% leiame alglähendid, selleks teeme joonise
% defineerime funktsiooni y=f(x)
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 ja 2.7
% valime funktsiooni g(x)
% g(x)=1/8 * (x^3+2)
% uurime koondumise tingimust absoluutväärtus(g'(x))<1 alglähendite korral?
% kui <1, siis sobib
x=-3;
abs(3/8*x^2) % kuna g'(-3) ei ole <1, siis alglähendi -3 jaoks see g(x) ei sobi
% -3 jaoks tuleb leida uus g(x)
x=0;
abs(3/8*x^2) % abs<1, sobib g(x)
x=2.7;
abs(3/8*x^2) % ei sobi, kuna |g'(2.7)|>1

% leiame võrrandi ühe lahendi hariliku iteratsioonimeetodiga, kui
% alglähendiks on 0.
x=0;
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)-i
% uus g(x)=kuupjuur(8x-2)

% uurime koondumise tingimust alglähendite -3 ja 2.7 korral
x=-3;
abs(8/(3*nthroot((8*x-2)^2,3))) % sobib, kuna <1
x=2.7;
abs(8/(3*nthroot((8*x-2)^2,3))) % sobib, kuna <1

% leiame ette antud võrrandi ülejäänud lahendid
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