Buscar

metodo_secante

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

function [x, fx, iter] = metodo_secante(f, x0, x1, tol, maxiter)
% f: função a ser resolvida
% x0, x1: aproximações iniciais
% tol: tolerância para critério de parada
% maxiter: número máximo de iterações
% definindo valores padrão para tol e maxiter
if nargin < 4, tol = 1e-6; end
if nargin < 5, maxiter = 100; end
% inicializando as variáveis
fx0 = f(x0);
fx1 = f(x1);
iter = 0;
% loop principal do método
while abs(fx1) > tol && iter < maxiter
 dx = (x1 - x0) * fx1 / (fx1 - fx0); % aproximação da raiz
 x0 = x1; fx0 = fx1; % atualizando valores
 x1 = x1 - dx; fx1 = f(x1);
 iter = iter + 1;
end
% definindo o valor de retorno
x = x1;
fx = fx1;
% checando o critério de parada
if abs(fx) > tol
 fprintf('O método da secante falhou em encontrar a raiz com a tolerância especificada.\n');
else
 fprintf('O método da secante convergiu para a raiz após %d iterações.\n', iter);
 fprintf('O valor foi de %f',fx);
end

Teste o Premium para desbloquear

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

Continue navegando