// Encontrar a raiz da função entre 'a' e 'b' // Defina uma função por exemplo: function y=f(x), y=x^6-x-1; endfunction. // Execute a função: [mk] = Bisection(f,1,2,0.001) 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" printf(" Método da bissecção com precisão igual a %.10g", precisao); printf("\n| k | ak | bk | mk | f(ak)f(mk) | ER | \n|======|================|==================|====================|====================|=================|\n") while (er>precisao) xk=mk; fa=fun(a); fm=fun(mk); mprintf("| %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);//er=abs((mk-xk)/mk) end end