Octave - Calcular raiz pelo método da Secante
Publicado por Daniel Moreira dos Santos (última atualização em 15/07/2010)
[ Hits: 19.282 ]
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
Octave - Método de Runge-Kutta
Octave - Método de Euler-Modificado para solução de EDO
Crivo de Eratóstenes Simples em Fortran 95
Script em Bath "DOS" para Upload e Download de arquivos usando o SSH
Nenhum comentário foi encontrado.
Compartilhando a tela do Computador no Celular via Deskreen
Como Configurar um Túnel SSH Reverso para Acessar Sua Máquina Local a Partir de uma Máquina Remota
Configuração para desligamento automatizado de Computadores em um Ambiente Comercial
Efeito "livro" em arquivos PDF
Como resolver o erro no CUPS: Unable to get list of printer drivers
Flatpak: remover runtimes não usados e pacotes
Mudar o gerenciador de login (GDM para SDDM e vice-versa) - parte 2
Inkscape Atualização 1.4 [RESOLVIDO] (8)
samba4 - 4.21 utilizar phpldapadmin [RESOLVIDO] (5)
[Python] Automação de scan de vulnerabilidades
[Python] Script para analise de superficie de ataque
[Shell Script] Novo script para redimensionar, rotacionar, converter e espelhar arquivos de imagem
[Shell Script] Iniciador de DOOM (DSDA-DOOM, Doom Retro ou Woof!)
[Shell Script] Script para adicionar bordas às imagens de uma pasta