%**************************************************************** % File: BISECT.M % % Scopo: Calcolo zero di una funzione con bisezione % % Uso: [x,fx,n]=bisect(f,x1,x2,toll) % % Input: f macro contenente la funzione in x % x1,x2 estremi sx e dx dell'intervallo % toll tolleranza sull'intervallo % Output: n numero iterazioni % x approssimazione dello zero % fx valore della funzione in x. % % Richiami: % Commenti:Il programma viene usato esclusivamente % per fornire una prima approssimazione dello zero % da raffinare con un metodo del secondo ordine. % % Autori: mf %**************************************************************** % function [x,fx,n]=bisect(f,x1,x2,toll) x=x1;f1=eval(f); if f1==0;x=x1;fx=f1;n=0;return;end x=x2;f2=eval(f); if f2==0;x=x2;fx=f2;n=0;return;end if sign(f1)*sign(f2) > 0 disp('** ERROR ** f(x1)*f(x2) > 0 '), return, end;