function [x, iter] = Newton(funcion, x0, maxiter, tol) iter = 0; % inicializar las iteraciones incre = 1; %% inicializar el incremento x = [x0]; % inicializar la matriz x a x0 while incre > tol & iter < maxiter [f, J] = feval(funcion, x0); % evaluamos la funcion f en x0 f=f'; % hacemos la traspuesta de f para poder calcular el sistema y = -J\f; % resolvemos el sistema de la Jacobiana con con la funcion xn = x0 + y'; % incrementamos la solucion anterior con la nueva incre = norm (xn - x0); % calcular la norma para el error iter = iter + 1; % incrementar el contador de iteraciones e(iter) = incre; x = [x;xn]; % vamos guardando los valores de xn en la matriz x x0=xn; % actualizamos la matriz de x end if incre > tol disp('Necesito mas iteraciones') end cc=e(2:iter)./e(1:iter - 1).^2; % vamos montando la matriz de convergencia lineal para despues verla %**********PLOTEAMOS EN DOS GRAFICAS LA CONVERGENCIA DE LAS SOLUCIONES Y LA CONVERGENCIA LINEAL************** subplot(2, 1, 1) plot(x) title('Valor de las iteraciones') subplot(2, 1, 2) plot(cc); title('Convegencia Cuadratica')