% Tund 5, ülesanne 2
f=@(x) x^3-6*x^2+3*atan(x)+3;
ftuletis=@(x) 3*x^2-12*x+3*1/(1+x^2);
fplot(f,[-1,6])
yline(0)
grid on
% jooniselt on näha, et alglähenditeks võime võtta -0.5, 1 ja 5.7
% 1) lahendame hariliku iteratsioonimeetodiga
% x=g(x), koondumine |g'(x)|<1
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.7;
gtuletis=1/3*(6*x^2-3*atan(x)-3)^(-2/3)*(12*x-3/(1+x^2));
abs(gtuletis) % sobib, sest <1

% leiame 5.7le vastava lahendi
x=5.7;
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

% uurime koonduvust uuesti valitud g(x)-i korral
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

% leiame -0.5 ja 1 vastavad lahendid
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

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

% 2) Newtoni meetodiga
x=-0.5;
i=0;
while abs(f(x))>10^(-8)
  x=x-f(x)/ftuletis(x) % Newtoni meetodi eeskiri
  i=i+1;
end
lahend1newton=x
sammud1newton=i
x=1;
i=0;
while abs(f(x))>10^(-8)
  x=x-f(x)/ftuletis(x) % Newtoni meetodi eeskiri
  i=i+1;
end
lahend2newton=x
sammud2newton=i
x=5.7;
i=0;
while abs(f(x))>10^(-8)
  x=x-f(x)/ftuletis(x) % Newtoni meetodi eeskiri
  i=i+1;
end
lahend3newton=x
sammud3newton=i

% 3) modifitseeritud Newtoni meetod
x=-0.5;
i=0;
while abs(f(x))>10^(-8)
  x=x-f(x)/ftuletis(-0.5) % modif. Newtoni meetodi eeskiri
  i=i+1;
end
lahend1newtonmod=x
sammud1newtonmod=i

x=1;
i=0;
while abs(f(x))>10^(-8)
  x=x-f(x)/ftuletis(1) % Newtoni meetodi eeskiri
  i=i+1;
end
lahend2newtonmod=x
sammud2newtonmod=i
x=5.7;
i=0;
while abs(f(x))>10^(-8)
  x=x-f(x)/ftuletis(5.7) % Newtoni meetodi eeskiri
  i=i+1;
end
lahend3newtonmod=x
sammud3newtonmod=i
[sammud1harilik,sammud1newton,sammud1newtonmod] % -0.49...
[sammud2harilik,sammud2newton,sammud2newtonmod] % 1.13....
[sammud3harilik,sammud3newton,sammud3newtonmod] % 5.7 ...