%Joonis alglähendite leidmiseks
fplot(@(x)x.^6-x-1,[-1,1.5])
grid on
legend()
title('Joonis alglähendite leidmiseks')
%Jooniselt on näha, et funktsioonil on 2 nullkohta. Need valime
%alglähenditeks. Meile sobivad -0.75 ja 1.2.

%Kontrollime koonduvust. 
%Meil g(x)=x^6-1 ja g'(x)=6*x^5.
x=-0.75; %esimene alglähend
tuletis1=abs(6*x^5) %=1.4238>1 ei sobi
x=1.2; %teine alglähend
tuletis2=abs(6*x^5) %=14.9299>1 ei sobi
%Kui g(x)=(x+1)^(1/8), siis g'(x)=1/6*(x+1)^(-5/6)
x=-0.75; %esimene alglähend
tuletis1=abs(1/(6*nthroot((x+1)^5,6))) %=0.5291<1 sobib
x=1.2; %teine alglähend
tuletis2=abs(1/(6*nthroot((x+1)^5,6))) %=0.0864<1 sobib

%Defineerime võrrandi vasaku poole funktsioonina
f=@(x)x^6-x-1; %vajame while-tsükli lõpetamiseks

%Lahendame HIM kasutades
x=-0.75; %alglähend jooniselt
i=0; %sammude arv
while abs(f(x))>10^-6
    x=-nthroot(x+1,6);
    i=i+1;
end
lahend1HIM=x
sammud1HIM=i
kontroll1=f(lahend1HIM)

x=1.2; %teine alglähend
i=0; %sammude arv
while abs(f(x))>10^-6
    x=nthroot(x+1,6);
    i=i+1;
end
lahend2HIM=x
sammud2HIM=i

%Lahendame Newtoni meetodi abil
%Defineerime f(x) tuletise
ftuletis=@(x)6*x^5-1;

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

x=1.2; %teine alglähend
i=0;
while abs(f(x))>10^-6
    x=x-f(x)/ftuletis(x);
    i=i+1;
end
lahend2NM=x
sammud2NM=i
   
 %Lahend vektorina
 lahend1=[lahend1HIM lahend1NM sammud1HIM sammud1NM]
 lahend2=[lahend2HIM lahend2NM sammud2HIM sammud2NM]