% Encontrar a raiz da função entre 'a' e 'b' % Definir a função: fun % fun=@(x) 'expressão' function [mk] = Bisection(fun,a,b,precisao) i=1; %Contador para estimar o número de iterações mk = (a+b)/2; %Primeira previsão para a RAIZ er=precisao+1; %Truque para deixar o "while" trabalhar em "loop" fprintf(' Método da bissecção com precisão igual a %s%.10f', precisao); fprintf('\n| k | ak | bk | mk | f(ak)f(mk) | ER | \n|======|================|==================|====================|====================|=================|\n') while (er>precisao) xk=mk; fa=fun(a); fm=fun(mk); fprintf('| %3d | %12.8f | %12.8f | %12.8f | %12.8f | % 12.6e |\n', i-1, a,b,mk,fa*fm,er); if fa*fm < 0 b=mk; elseif fa*fm > 0 a=mk; else break end i=i+1; mk=(a+b)/2; er=abs((mk-xk)/mk); end end