código para o matlab - método da secante
% Dado uma funçao f(x)=f e o C.P.==erro) x0=x1; x1=x2; x2=x1-(f1(x1)*(x1-x0)/(f1(x1)-f1(x0))); m=abs(x1-x0); end fprintf('%d',x2);
%plotagem do grafico vi=input('Digite intervalo inicial para o grafico: ') vf=input('Digite o intervalo final para o grafico: ') y=[vi: 0.1 :vf]; y1=inline(f); fplot(f,[vi vf]); axis([vi vf vi vf]); grid('on'); zoom(1); legend (f) xlabel ('Eixo X') ylabel ('Eixo Y')
1. function [] = secante(funcao, a, b, erro, max)
2. % paulogp
3. % metodo da secante
4. disp(' ');
5. % passar para funcao
6. f = inline(funcao);
7. min = 0;
8. d = 100;
9.
10. while ((minerro))
11. c = f(a)/f(b);
12. d = ((a-b)*c)/(1-c);
13. g = b-d;
14. min = min+1;
15. a = b;
16. b = g;
17.
18. f(a) = f(b);
19. f(b) = f(g);
20.
21. disp(' ');
22. disp(['g = ' mat2str(g)]);
23. disp(' ');
24. end
25. end
%%%%%%%%%%%%%%%%%%%%F2NUM - Calculo Numerico%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%-------------------- ZEROS DE FUNCOES REAIS ------------------------------
% M�todo da Secante %
% Profa. Dra. Mariana PMA Baroni
% Objetivo: Substituir a derivada do m�todo de newton-raphson por um
% quociente de diferen�as
% A funcao foi definida usanso syms
% f(x) = x*x + log(x)
% funcao de iteracao = e^(-x^2)
clear all clc %Funcao algebrica syms x; ff=x*x+log(x); %funcao
% ---Parametros epsilon1 = 0.001; %tolerancia epsilon2 = epsilon1;
%intervalo
x0=0.3; %x0 x1=1; %iteracoes k=0; kf=1000;
tic for i=1:kf %kf tb e criterio de parada if (abs(subs(ff,x,x0))>epsilon1 || abs(x1-x0)>epsilon2) x2=x1-(x1-x0)*(subs(ff,x,x1)/(subs(ff,x,x1)-subs(ff,x,x0))); x0=x1; x1=x2; k=k+1; end end toc sprintf('x =