function a=fisso(f) % Calcola il punto fisso di una funzione continua f : [0,1] -> [0,1]. % Esempio: % >> fisso(inline('exp(x-1)-x^2')) % Usa il metodo di bisezione applicato alla funzione g(x)=f(x)-x % Valori iniziali. a=0; b=1; e=1e-3; ga=feval(f,0); % Valore della g su a. gb=feval(f,1)-1; % Valore della g su b. % Date le ipotesi fatte su f, deve essere ga>=0 e gb<=0. % (In particolare ga*gb<=0.) % Verifichiamo: if ga<0 | gb>0 disp('La f non e ben definita come funzione [0,1] -> [0,1]') end while b-a>e c=(a+b)/2; gc=feval(f,c)-c; if ga*gc<=0 b=c; gb=gc; else a=c; ga=gc; end end