Buscar

SecantRoot

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

% Autor: Thiago PX
%
% Entradas
% - f é a função a ser analisada.
% - x1 e x2 são os dois chutes iniciais
% - epsilon é a máxima variação entre estimativas
% - maxit é o número máximo de iterações
%
% Saídas
% - xns (solução)
function xns = SecantRoot(f, x1, x2, epsilon, maxit)
 oldx1 = x1;
 oldx2 = x2;
 disp(' i xi |f(xi)| |xi - xi-1|/xi-1'); 
 for i = 1:maxit
 newx = oldx2 - (f(oldx2)*(oldx1-oldx2))/(f(oldx1)-f(oldx2));
 
 err = abs((newx - oldx2)/oldx2);
 
 fprintf('%5i %15.6f %13.6f %14.6f \n', i+2, 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
 oldx1 = oldx2;
 oldx2 = newx;
 end
end

Teste o Premium para desbloquear

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

Continue navegando