% Tund 5, ülesanne 2
f=@(x) x^3-6*x^2+3*atan(x)+3;
ftuletis=@(x) 3*x^2-12*x+3/(1+x^2);
fplot(f,[-2,6])
grid on
yline(0)
% alglähendid -0.5, 1 ja 5.8
% 1) Newtoni meetodiga
x=-0.5;
i=0;
while abs(f(x))>10^(-8)
   x=x-f(x)/ftuletis(x);
   i=i+1;
end
lahend1newton=x
sammud1newton=i
x=1;
i=0;
while abs(f(x))>10^(-8)
   x=x-f(x)/ftuletis(x);
   i=i+1;
end
lahend2newton=x
sammud2newton=i
x=5.8;
i=0;
while abs(f(x))>10^(-8)
   x=x-f(x)/ftuletis(x);
   i=i+1;
end
lahend3newton=x
sammud3newton=i
% 2) modifitseeritud Newtoni meetodiga
x=-0.5;
i=0;
while abs(f(x))>10^(-8)
   x=x-f(x)/ftuletis(-0.5); % modifitseeritud, tuletise juures alglähend
   i=i+1;
end
lahend1newtonmod=x
sammud1newtonmod=i
[sammud1newton,sammud1newtonmod]
x=1;
i=0;
while abs(f(x))>10^(-8)
   x=x-f(x)/ftuletis(1); % modifitseeritud, tuletise juures alglähend
   i=i+1;
end
lahend2newtonmod=x
sammud2newtonmod=i
[sammud2newton,sammud2newtonmod]
x=5.8;
i=0;
while abs(f(x))>10^(-8)
   x=x-f(x)/ftuletis(5.8); % modifitseeritud, tuletise juures alglähend
   i=i+1;
end
lahend3newtonmod=x
sammud3newtonmod=i
[sammud3newton,sammud3newtonmod]
% 3) hariliku it. meetod
x=-0.5;
gtuletis=1/3*(6*x^2-3*atan(x)-3)^(-2/3)*(12*x-3/(1+x^2));
abs(gtuletis) % ei sobi, sest > 1
x=1;
gtuletis=1/3*(6*x^2-3*atan(x)-3)^(-2/3)*(12*x-3/(1+x^2));
abs(gtuletis) % ei sobi
x=5.8;
gtuletis=1/3*(6*x^2-3*atan(x)-3)^(-2/3)*(12*x-3/(1+x^2));
abs(gtuletis) % sobib
% leiame alglähendile 5.8 vastava lahendi
x=5.8;
i=0;
while abs(f(x))>10^(-8)
   x=nthroot(6*x^2-3*atan(x)-3,3);
   i=i+1;
end
lahend3harilik=x
sammud3harilik=i
[sammud3harilik,sammud3newton,sammud3newtonmod]

% uus g
x=-0.5;
uusgtuletis=1/(2*sqrt(1/6*(x^3+3*atan(x)+3)))*1/6*(3*x^2+3/(1+x^2));
abs(uusgtuletis) % sobib
x=1;
uusgtuletis=1/(2*sqrt(1/6*(x^3+3*atan(x)+3)))*1/6*(3*x^2+3/(1+x^2));
abs(uusgtuletis) % sobib

x=-0.5;
i=0;
while abs(f(x))>10^(-8)
   x=-sqrt(1/6*(x^3+3*atan(x)+3));
   i=i+1;
end
lahend1harilik=x
sammud1harilik=i
[sammud1harilik,sammud1newton,sammud1newtonmod]

x=1;
i=0;
while abs(f(x))>10^(-8)
   x=sqrt(1/6*(x^3+3*atan(x)+3));
   i=i+1;
end
lahend2harilik=x
sammud2harilik=i
[sammud2harilik,sammud2newton,sammud2newtonmod]