Buscar

regula falsi

Esta é uma pré-visualização de arquivo. Entre para ver o arquivo original

(* ::Package:: *)
% Autor: Thiago PX
%
% Entradas
% - a e b definem o intervalo de busca [a,b].
% - MaxIt define o numero maximo de iteracoes do metodo.
% - TolMax define a precisao do metodo.
%
% Sa\[IAcute]das
% - xns (solu\[CCedilla]\[ATilde]o)
function xns = BissectionRoot(f, a, b, TolMax, MaxIt)
 fa = f(a);
 fb = f(b);
 if fa*fb > 0
 disp('Erro: A fun\[CCedilla]\[ATilde]o tem o mesmo sinal em a e b.');
 else
 disp('iteracao a b (xns) sol. f(a) f(xns) Tolerancia');
 for i = 1:MaxIt
 xns = (a(f(b))-b(f(a)))/(f(b)- f(a)); % TESTAR
 toli = (b - a)/2;
 
 fa = f(a);
 fns = f(xns);
 fprintf('%5 i %15 .6f %11 .6f %11 .6f %11 .6f %11 .6f %11 .6f \n', i, a, b, xns, fa, fns, toli);
 
 if fns == 0
 fprintf('Uma solucao exata x =%11 .6f foi encontrada \n', xns);
 break;
 end
 
 if toli < TolMax
 break;
 end
 if i == MaxIt
 fprintf('Solucao n\[ATilde]o obtida apos % i iteracoes.\n', MaxIt);
 break;
 end
 
 if fa*fns < 0
 b = xns;
 else
 a = xns;
 end 
 end
 end
end

Teste o Premium para desbloquear

Aproveite todos os benefícios por 3 dias sem pagar! 😉
Já tem cadastro?

Continue navegando