Implementação do Método da Bisseção

Aplicável  a equações do tipo f (x) = 0, no intervalo [a, b], em que f é uma função contínua nesse intervalo e se tem f (a) f (b) < 0. Se estas condições não forem verificadas não é possível garantir a convergência do método.

Os parâmetros de entrada são os seguintes:

* f, x : Expressão da função f  e respectiva variável
* a,b : Extremos do intervalo a considerar
* tol : Erro máximo admitido no cálculo da solução

Os parâmetros de saída são os seguintes:

* Valor numérico da solução  da equação, com erro máximo de ‘tol’.

Bissecao[fs_,x_,a_,b_,tol_]:=Module[{f,iter,an,bn,xn,s},
f[s_]:=fs/.x->s;
an=a; bn=b;
iter=Floor[Log[2,(b-a)/tol]];(* numero de iterações a realizar*)
For[i=1,i≤iter,i++,
xn=(an+bn)/2;(* ponto medio do intervalo *)
If[f[an]*f[xn]<=0,bn=xn,an=xn];
];
(an+bn)/2
]

Exemplo : Determinar as raizes de  Cos[x^2] = 1, no intervalo [0, pi/2], com erro inferior a 10^(-6)

Plot[Cos[x^2]-0.5,{x,0,Pi/2}]

Bissecao[Cos[x^2]-0.5,x,0.,Pi/2,10^(-6)]