Ecco il codice Matlab che implementa il metodo di bisezione
function [x,i,tolf,nu]=bisezione(a,b,f,tolx)
%BISEZIONE Esegue il metodo di bisezione per il calcolo della radice
% di una funzione non lineare
%
% [i,x,tolf,nu]=BISEZIONE(a,b,f,tolx)
%
% I parametri della funzione sono:
% f -> funzione di cui valutare uno zero
% a,b -> estremi dell'intervallo in cui si ricerca lo zero di f;
% si richiede che f(a)f(b)<0
% tolx -> tolleranza sulla x
%
% I valori di ritorno sono:
% x -> la soluzione trovata
% i -> il numero di iterazioni impiegate per ottenere la soluzione
% tolf -> la tolleranza sulla funzione
% nu -> il numero massimo di iterazioni necessarie per ottenere una
% soluzione con la precisione tolx
%
% See Also NEWTON
nu=ceil(log2(b-a)-log2(tolx));
fa=feval(f,a);
fb=feval(f,b);
if fa*fb>0
disp('La funzione deve soddisfare f(a)f(b)<0!')
break
end
for i=1:nu
c=(a+b)/2;
fc=feval(f,c);
if abs(b-a)<tolx
break
end
tolf=tolx*abs((fb-fa)/(b-a));
if abs(fc)<=tolf
break
end
if (fa*fc)<0
b=c;
fb=fc;
else
a=c;
fa=fc;
end
end
x=c;