% Harjutustund nr. 3, ülesanne 7

% lahendame võrrandi x^3-8x+2=0 hariliku iteratsioonimeetodiga
% avaldame võrrandist x-i.
% saame kuju x=g(x)

% g(x)=1/8 * (x^3+2)
% g'(x)=3/8 * x^2

% ette antud võrrandi korral võime alglähenditeks võtta 
% (vt ül 4) -3, 0 ja 2.5

% uurime koondumise tingimust |g'(x)|<1.
x=-3;
abs(3/8*x^2) % kas on <1 
% g(x) ei sobi
x=0;
abs(3/8*x^2) % kas on <1 
% sobib
x=2.5;
abs(3/8*x^2) % kas on <1
% ei sobi

% leiame ette antud võrrandi lahendi, kui alglähendiks on 0.
x=0;
i=0;
% määrame täpsuse
epsilon=10^-5;
% defineerime funktsiooni
f=@(x) x^3-8*x+2;
while (abs(f(x)))>10^-5
    x=1/8*(x^3+2);
    i=i+1;
end
lahend1=x
sammudHIMga1=i

% alglähendite -3 ja 2.5 jaoks leiame uue g(x)
% uus g(x)=kuupjuur(8x-2)
x=-3;
% uurime koondumise tingimust
abs(8/(3*nthroot((8*x-2)^2,3))) 
% kuna abs(g'(x))=0.3038<1, seega g(x) sobib
x=2.5;
abs(8/(3*nthroot((8*x-2)^2,3)))  % sobib

% leiame ülejäänud kaks võrrandi lahendit hariliku iteratsioonimeetodiga
% alglähendi -3 korral
x=-3;
while (abs(f(x)))>10^-5
    x=nthroot(8*x-2,3);
    i=i+1;
end
lahend2=x
sammudHIMga2=i

x=2.5;
while (abs(f(x)))>10^-5
    x=nthroot(8*x-2,3);
    i=i+1;
end
lahend3=x
sammudHIMga3=i