%-----------------------------------------------------------------------
%             -------------                             --------
%             function file                             newtons.m
%             -------------                             --------
%-----------------------------------------------------------------------
%                        ----------------------------
%		         Zeros Reais de Funcoes Reais
%                        ----------------------------
%                          -------------------------
%  		           Metodo de Newton Discreto
%			   -------------------------
%
%            Chamada do Procedimento  newtons2
%-------------------------------------------
%           sol=newtons2(func,dfunc,xo,tol)
%
%
%	Variaveis de Entrada
%---------------------------
%
%	  func  :	Nome da Function que contem a funcao
%     dfunc :   Nome da Function que contem a derivada
%	  xo  :	Aproximacao inicial para um zero da funcao
%	  tol :	Precisao da Aproximacao do Zero da funcao
%
%	Variaveis de Saida
%-------------------------
%
%	xbarra	:	Aproximacao do zero da funcao
%	fxbarra :	Valor da funcao no ponto xbarra
%	errox 	:	Erro da Aproximacao do zero da funcao
%	iter	:	Numero de Iteracoes do Metodo de Newton
%-------------------------------------------------------------------
%


function sol=newtons2(func,dfunc,xo,tol)

if sum(size(xo))>2
    fr=feval(func,xo);
    it=0;
    while norm(fr)>tol
        Jr=feval(dfunc,xo);
        x=xo-Jr\fr;
        xo=x;
        fr=feval(func,xo);
        it=it+1;
    end
    sol=x;
else

Delta=feval(func,xo)/feval(dfunc,xo);
x=xo-Delta;
it=0;
while abs(Delta)>tol
    
    Delta=feval(func,x)/feval(dfunc,x);
    xn=x-Delta;
    it=it+1;
    x=xn;
end

sol=x;
Delta
it

end


%Exemplos:
%x3  - 10x2 +29x -20=0  xo=7  
%Sistema: x2 +y2=4 e xy=1  xo=[ 3 -1.5];