%Lahendame 4. ülesande harilikku iteratsionimeetodit (HIM) kasutades. Teeme
%joonise alglähendite leidmiseks
fplot(@(x)x.^3-8*x+2)
legend()
grid on
title('Joonis alglähendite leidmiseks')

%Jooniselt on näha, et võrrandil on 3 lahendit. Valime alglähenditeks
%x0=-3, teiseks x0=0.25 ja viimaseks x0=2.6.

%Otsime koonduvat kuju, avaldame võrrandist x väärtuse. Meile sobib
%1) x=1/8*(x^3+2)
%siis g(x)=1/8*(x^3+2) ja g'(x)=3*x^2/8
%Kontrollime koonduvust
x0=-3; 
tuletis=abs(3*x0^2/8) %ei sobi, sest on suurem kui 1
x0=0.25; 
tuletis=abs(3*x0^2/8) %SOBIB
x0=2.6; 
tuletis=abs(3*x0^2/8) %ei sobi
%2) x=(8x-2)^(1/3) avaldasime x kuubiga liikmest
%Meil g(x)=(8x-2)^(1/3) ja g'(x)=1/3*(8x-2)^(-2/3)*8=8/(3*(8x-2)^(2/3))
%Kontrollime koonduvust
x0=-3
tuletis1=abs(8/(3*nthroot((8*x0-2)^2,3))) %SOBIB
x0=2.6
tuletis1=abs(8/(3*nthroot((8*x0-2)^2,3))) %SOBIB

%Kasutame HIM ja Newtoni meetodit
%defineerime f(x)
f=@(x)x^3-8*x+2;
i=0; %sammude loendur
x=-3; %alglähend jooniselt
while abs(f(x))>10^-6 %10^-6 on meie valitud täpsus
   x=nthroot(8*x-2,3);
   i=i+1;
end
vastus1=x
sammude_arv=i
x=-3;
j=0; %sammude loend
while abs(f(x))>10^-6
    x=x-(x^3-8*x+2)/(3*x^2-8); %Newtoni meetodi eeskiri x=x-f(x)/f'(x)
    j=j+1;
end
vastus1NM=x
sammude_arvNM1=j

%Teine lahend
x=0.25; %alglähend jooniselt
i=0; %sammude loendur
while abs(f(x))>10^-6
    x=1/8*(x^3+2);
    i=i+1;
end
vastus2=x
sammude_arv2=i

x=0.25;
j=0; %sammude loend
while abs(f(x))>10^-6
    x=x-(x^3-8*x+2)/(3*x^2-8); %Newtoni meetodi eeskiri x=x-f(x)/f'(x)
    j=j+1;
end
vastus2NM=x
sammude_arvNM2=j

%Kolmas lahend
i=0; %sammude loendur
x=2.5; %alglähend jooniselt
while abs(f(x))>10^-6 %10^-6 on meie valitud täpsus
   x=nthroot(8*x-2,3);
   i=i+1;
end
vastus3=x
sammude_arv3=i

x=2.69;
j=0; %sammude loend
while abs(f(x))>10^-6
    x=x-(x^3-8*x+2)/(3*x^2-8); %Newtoni meetodi eeskiri x=x-f(x)/f'(x)
    j=j+1;
end
vastus3NM=x
sammude_arvNM3=j