Octave - Calcular raiz pelo método da Secante

Publicado por Daniel Moreira dos Santos (última atualização em 15/07/2010)

[ Hits: 15.210 ]

Homepage: http://www.danielmoreira.wordpress.com

Download Secante.m




Em análise numérica, o método das secantes é um algoritmo de busca de raízes que usa uma sequência de raízes de linhas secantes para aproximar cada vez melhor a raiz de uma função f.

  



Esconder código-fonte

function [Raiz,Iter,Erro] = Secante(funcao,a,b,Toler,IterMax);


%parametros de entrada: funcao,a,b,Toler,IterMax,Exibe -> funcao, lim. intervalo,

%tolerancia e num. max de iteracoes, resultados intermediarios devem ser

%exibidos??

%parametros de saida: Raiz,Iter,Erro -> raiz, numero gasto de iteracoes e

%condicao de erro



x = a;

Fa = eval(funcao);

x = b;

Fb = eval(funcao);



%visualizacao da funcao

Ft =[];

lim =15;

for x=-lim/3:0.1:lim

    Ft =[Ft;eval(funcao)];

end

x = -lim/3:0.1:lim;

figure(1);

plot(x,Ft,'b');

hold on;

plot(x,zeros(size(x,2)),'k');

grid;

plot([a b],[Fa Fb],'k*');

xlabel('Eixo x');

ylabel('Eixo y');

title(funcao);

pause;





if abs(Fa) < abs(Fb)

    t = a;

    a = b;

    b = t;

    t = Fa;

    Fa = Fb;

    Fb = t;

end





    disp('Calculo de raiz de equacao pelo metodo da secante')

    disp('iter    a     b    x     Fx    deltaX')





Iter = 0;

x = b;

Fx = Fb;

while 1    

    DeltaX = -Fx/(Fb-Fa)*(b-a);

    x = x+DeltaX;

    Fx = eval(funcao);

    

    hold on;

    plot(x,Fx,'r*');

    drawnow;

    pause;

    

    disp ([Iter a b x Fx DeltaX]);

    if(abs(DeltaX)<Toler && abs(Fx)<Toler)||Iter >=IterMax

        break;

    end

    a = b;

    Fa = Fb;

    b = x;

    Fb = Fx;

    Iter = Iter+1;

end

Raiz = x;

if abs(DeltaX)<Toler && abs(Fx)<Toler

    Erro = 0;

else

    Erro = 1;

end



end

Scripts recomendados

Octave - Método de Euler para solução de EDO

Algorítimo de maior e menor

Octave - Método de Euler-Modificado para solução de EDO

Script em Bath "DOS" para Upload e Download de arquivos usando o SSH

Cálculo da raiz de uma função pelo Método da Bisseção - Octave


  

Comentários

Nenhum comentário foi encontrado.


Contribuir com comentário




Patrocínio

Site hospedado pelo provedor RedeHost.
Linux banner
Linux banner
Linux banner

Destaques

Artigos

Dicas

Tópicos

Top 10 do mês

Scripts