Baixe o app para aproveitar ainda mais
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
Compartilhar