Buscar

NewtonRoot

Esta é uma pré-visualização de arquivo. Entre para ver o arquivo original

% Autor: Thiago PX
%
% Entradas
% - f é a função a ser analisada.
% - df é a derivada de f.
% - x1 é o chute inicial
% - epsilon é a máxima variação entre estimativas
% - maxit é o número máximo de iterações
%
% Saídas
% - xns (solução)
function xns = NewtonRoot(f, df, x1, epsilon, maxit)
 oldx = x1;
 disp('iteracao xi |f(xi)| |xi - xi-1|/xi-1'); 
 for i = 1:maxit
 
 newx = oldx - f(oldx)/df(oldx);
 
 err = abs((newx - oldx)/oldx);
 
 fprintf('%5i %15.6f %13.6f %14.6f \n', i+1, newx, abs(f(newx)), err); 
 if err < epsilon
 xns = newx;
 break;
 end
 
 if i == maxit
 fprintf('Solucao não obtida apos %i iteracoes', maxit);
 break;
 end;
 oldx = newx;
 end
end

Teste o Premium para desbloquear

Aproveite todos os benefícios por 3 dias sem pagar! 😉
Já tem cadastro?

Outros materiais