%
%   Tema d'esame CALCOLO NUMERICO - MILANO 6 FEBBRAIO 2013 - Esercizio 3
%
clear all 
a=0; b=3;
f=fcnchk('x.^3-2*x.^2-1');
epsilon=0.1;
[x_bis,it_bis]=bisezione(f,a,b,epsilon);
 
f1=fcnchk('3*x.^2-4*x');
f10=f1(3);
c=f10;
x_cor(1)=x_bis(it_bis); fx=f(x_cor(1)); it=1; test=1; toll=1e-4; nmax=100;
while test>toll &it<=nmax
   it=it+1;
   rapp=-fx/c ;
   x_cor(it)=x_cor(it-1)+rapp;
   test=abs(rapp)/abs(x_cor(it));
   fx=f(x_cor(it));  
end

%it_bis = 5    x_bis(end) = 2.1563
%it =    17    x_cor(end) = 2.2053 

%Per la convergenza del metodo studiare: |1-f'(x_n)/c|< 1 
%Oss. f, f' positiva, crescente nell'intervallo [x_bis(end),3]
%Per esempio: c=f'(3)

%function [x,N]=bisezione(f,a,b,epsilon);
%x(1)=a; x(2)=b; fa=f(a); fb=f(b);

%Si osservi che si pone x(1)=a e x(2)=b allo scopo di automatizzare 
%l'assegnazione degli estremi di ogni intervallo. 
%Pertanto le iterazioni effettive sono "it" mentre il numero di elementi 
%del vettore x e' "it+2"

%if fa*fb>0, disp('Intervallo non accettabile'); return; end;
%N=ceil((log(b-a)-log(epsilon))/log(2)); 
%ceil(x) e' il primo numero intero maggiore di x
%for k=3:N+2 %il procedimento e' ripetuto N volte
%   x(k)=(a+b)/2; fxk=f(x(k));
%   if fa*fxk<=0
%      b=x(k);
%   else
%      a=x(k); fa=fxk;
%   end
%end