%Joonis alglähendite leidmiseks
fplot(@(x)[x.^3-8*x+2,0])
grid on
legend()
title('Joonis alglähendite leidmiseks')
%Jooniselt on näha, et funktsioonil on kolm nullkohta =>
%võrrandil on kolm lahendit. 
%Valime alglähenditeks -3 ja 0.2 ja 2.7.

%Kontrollime koonduvust.
%Kui g(x)=1/8*(x^3+2), siis g'(x)=3/8*x^2
x=-3; %alglähend jooniselt
tuletis=abs(3/8*x^2) %ei sobi, sest on suurem kui 1
x=0.2;
tuletis=abs(3/8*x^2) %SOBIB
x=2.7;
tuletis=abs(3/8*x^2) %ei sobi
%Kui g(x)=nthroot(8*x-2,3), siis g'(x)=8/(3*nthroot((8*x-2)^2,3)))
x=-3;
tuletis=8/(3*nthroot((8*x-2)^2,3)) %SOBIB
x=2.7;
tuletis=8/(3*nthroot((8*x-2)^2,3)) %SOBIB

%Lahendame HIM kasutades
f=@(x)x.^3-8*x+2; %võrrandi vasak pool funktsioonina
x=-3; %alglähend jooniselt
i=0; %sammude loendur
while abs(f(x))>10^-6 %10^-6 on meie valitud täpsus
    x=nthroot(8*x-2,3);
    i=i+1;
end
vastus1HIM=x
sammud1HIM=i

x=0.2; %alglähend jooniselt
i=0; %sammude loendur
while abs(f(x))>10^-6 %10^-6 on meie valitud täpsus
    x=1/8*(x^3+2);
    i=i+1;
end
vastus2HIM=x
sammud2HIM=i

x=2.7; %alglähend jooniselt
i=0; %sammude arv
while abs(f(x))>10^-6 %10^-6 on meie valitud täpsus
    x=nthroot(8*x-2,3);
    i=i+1;
end
vastus3HIM=x
sammud3HIM=i

%Lahendame ssama võrrandi Newtoni meetodiga. Selleks defineerime
%funktsiooni f(x)=x^3-8x+2 tuletise f'(x)=3x^2-8
ftuletis=@(x)3*x^2-8;

%esimene lahend
x=-3; %alglähend jooniselt
i=0; %sammude lugeja
while abs(f(x))>10^-6
    x=x-f(x)/ftuletis(x);
    i=i+1;
end
lahend1NM=x
sammud1NM=i

%teine lahend
x=0.2; %alglähend jooniselt
i=0; %sammude lugeja
while abs(f(x))>10^-6
    x=x-f(x)/ftuletis(x);
    i=i+1;
end
lahend2NM=x
sammud2NM=i

%kolmas lahend
x=2.7; %alglähend jooniselt
i=0; %sammude lugeja
while abs(f(x))>10^-6
    x=x-f(x)/ftuletis(x);
    i=i+1;
end
lahend3NM=x
sammud3NM=i