%lahendame x^3-8x+2=0

%Alglähendite leidmiseks teeme graafiku
%joonisel on ka x-telg ehk joon y=0
fplot(@(x)[x.^3-8*x+2,0])
grid on
legend('y=x^3-8x+2')
title('Joonis alglähendite leidmiseks')
%Jooniselt on näha, et joonel on 3 nullkohta. Valime need 
%alglähenditeks. Meile sobib -3 ja 0.25 ja 2.6.

%Defineerime võrrandi vasaku poole funktsioonina ning selle tuletise
f=@(x)x^3-8*x+2;
ftuletis=@(x)3*x^2-8;

%Lahendame võrrandi x^3-8x+2=0 HIM ja NM abil

%Esimene lahend
%HIM
x=-3; %alglähend jooniselt
n=0; %sammude arv
while abs(f(x))>10^-6
    %10^-6 on meie valitud täpsus, tsüklit tehakse seni, kuni |f(x)|
    %väärtus muutub väiksemaks kui 10^-6
    x=nthroot(8*x-2,3);
    n=n+1; %suurendame sammude arvu 1 võrra
end
lahend1HIM=x
sammud1HIM=n

%NM
y=-3; %alglähend jooniselt
n=0; %sammude arv
while abs(f(y))>10^-6
    y=y-f(y)/(3*y^2-8); %3x^2-8 on f'(x)
    n=n+1; %suurendame sammude arvu 1 võrra
end
lahend1NM=y
sammud1NM=n

%esitame vastuse vektorina
vastus1=[lahend1HIM lahend1NM sammud1HIM sammud1NM]

%teine lahend
%HIM
x=0.25; %alglähend jooniselt
n=0; %sammude arv
while abs(f(x))>10^-6
    x=1/8*(x^3+2);
    n=n+1;
end
lahend2HIM=x
sammud2HIM=n

%NM
y=0.25; %alglähend jooniselt
n=0; %sammude arv
while abs(f(y))>10^-6
    y=y-f(y)/(3*y^2-8); %3x^2-8 on f'(x)
    n=n+1; %suurendame sammude arvu 1 võrra
end
lahend2NM=y
sammud2NM=n

%esitame vastuse vektorina
vastus2=[lahend2HIM lahend2NM sammud2HIM sammud2NM]

%kolmas lahend
%HIM
x=2.6; %alglähend jooniselt
n=0; %sammude arv
while abs(f(x))>10^-6
    x=nthroot(8*x-2,3);
    n=n+1;
end
lahend3HIM=x
sammud3HIM=n

%NM
y=2.6; %alglähend jooniselt
n=0; %sammude arv
while abs(f(y))>10^-6
    y=y-f(y)/(3*y^2-8); %3x^2-8 on f'(x)
    n=n+1; %suurendame sammude arvu 1 võrra
end
lahend3NM=y
sammud3NM=n

%esitame vastuse vektorina
vastus3=[lahend3HIM lahend3NM sammud3HIM sammud3NM]
