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;