clear
%Alglähendi leidmine

fplot(@(x)x.^5-x.^2-2,[-2,2])
grid on
title('Joonis alglähendi leidmiseks')
legend
%Jooniselt on näha, et võrrandil on 1 reaalarvuline lahend, mis
%asub 1,2 juures. Valime alglähendiks 1.2.

%Kontrollime HIM jaoks koonduvust: kas sobib g1 või g2. Selleks arvutame
%nende funktsioonide tuletise väärtuse, kui x=1.2. Tuletise väärtus peab
%olema absoluutväärtuse poolest väiksem kui 1.
%x=1.2;
%g1tuletis=2*x/(5*nthroot((x^2+2)^4,5))=0.1786 SOBIB

%Võrrandi lahendamine
f=@(x)x^5-x^2-2;

%1) HIM
x=1.2; %alglähend jooniselt
i=0; %sammude loendur
while abs(f(x))>10^-6
    x=nthroot(x^2+2,5);
    i=i+1;
end
lahendHIM=x
sammudHIM=i

%2) NM
ftuletis=@(x)5*x^4-2*x; %võrrandi vasaku poole tuletis
%kasutame x kui vektorit, mille moodustavad järjestikused lähendid
x(1)=1.2; %alglähend jooniselt
i=1; %vektori elementide arv
while abs(f(x(i)))>10^-6
    i=i+1;
    x(i)=x(i-1)-f(x(i-1))/ftuletis(x(i-1));
end
lahendNM=x(i)
sammudNM=i-1 %üks element vektoris oli juba antud, 
%meid huvitab arvutatud liikmete arv

%3) LM
%kasutame x(1) ja x(2) NM arvutustest
i=2; %kasutame ainult 2 NM abil arvutatud vektori elementidest
while abs(f(x(i)))>10^-6
    i=i+1;
    x(i)=x(i-1)-(x(i-1)-x(i-2))/(f(x(i-1))-f(x(i-2)))*f(x(i-1));
end
lahendLM=x(i)
sammudLM=i-2 %2 esimest elementi oli defineeritud, meil vaja arvutatud
%elementide arvu

%teeme lahenditest ja sammude arvudest vektorid, et oleks ülevaatlikum
format long
lahend=[lahendHIM lahendNM lahendLM]
format short
sammud=[sammudHIM sammudNM sammudLM]