cota = input ('Cota de error objetivo: ');
xi = input ('Valor inicial de la x: ');
yi = input ('Valor inicial de la y: ');

x0=[xi yi];
r=1;
tita=0.01;
i=1;
e2=10000;
cota1=0.001;
% Debo realizar un procedimiento iterativo mientras el error sea mayor que la cota
syms x y
while(e2>cota)
 P=x*y-r*(1/(3-x^2-y)+(1/x)+(1/y));
 xnuevo=x0;
 fprintf('Punto inicial: %e %e \n', x0(1), x0(2));
 fprintf('En la iteración i: %e  \n', i);
 fprintf('Valor de r: %e  \n', r);

 e1=10000;
while (e1>cota1)
    HP=jacobian(jacobian(P));
    HPr=subs(HP,{x,y},{x0(1),x0(2)});
    GP=jacobian(P);
    GPr=subs(GP,{x,y},{x0(1),x0(2)});
    x1=x0-(HPr\GPr')';
    e1= double(sqrt((x1(1)-x0(1))^2 +(x1(2)-x0(2))^2)) ;
    x0=x1;
    fprintf('Solución método de Newton: %e %e \n', x0(1), x0(2));
end
e2= double(sqrt((x0(1)-xnuevo(1))^2 +(x0(2)-xnuevo(2))^2)) ;
i=i+1;
r=r*tita;
end

   fprintf('Se encontró la solución. La solución hallada es: %e %e \n', x0(1), x0(2));
   
    fprintf('El test de parada es (cota 0.0001): %e  \n', e1);
   
   sol=mifuncion_objetivo(x0(1),x0(2));
   fprintf('Y el valor de la función en dicho punto es: %e  \n', sol);
  




