Octave - Calcular raiz pelo método da Secante
Publicado por Daniel Moreira dos Santos (última atualização em 15/07/2010)
[ Hits: 19.622 ]
Homepage: http://www.danielmoreira.wordpress.com
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.
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
Algoritmo para calcular a tabuada
Função Fatorial Recursiva em Fortran 95
Octave - Sistemas lineares por Gauss-Seidel
Octave - Calcular raiz pelo método de Newton
Nenhum coment�rio foi encontrado.
Aprenda a Gerenciar Permissões de Arquivos no Linux
Como transformar um áudio em vídeo com efeito de forma de onda (wave form)
Como aprovar Pull Requests em seu repositório Github via linha de comando
Aplicativo simples para gravar tela
Quebra de linha na data e hora no Linux Mint
Firefox não abre em usuário não administradores (0)
Sempre que vou baixar algum pacote acontece o erro dpkg (8)
tentando instalar em um notebook antigo o Linux LegacyOS_2023... [RESO... (8)