function BISECCION
global fun
fprintf(‘\t\tmetodo de biseccion\n’);
fun=input(‘ingrese funcion:’,‘s’);
a=input(‘ingrese valor inferior del intervalo:’);
b=input(‘ingrese valor superior del intervalo:’);
tol=input(‘ingrese la tolerancia:’);
it=0;
x=a;
f_a=eval(fun);
x=b;
f_b=eval(fun);
if (f_a*f_b>0)
fprintf(‘\t\ten este intervalo no hay raices\n’);
fprintf(‘\t\tbuscar otro intervalo\n’);
return
else
n=ceil(log((b-a)/tol)/log(2));
fprintf(‘n=%10.6f\n’,n)
fprintf(‘it a b c f(a) f(b) f(c) abs(b-a)/2\n’);
while 1
it =it+1;
c=(a+b)/2;
x=c;
f_c=eval(fun);
fprintf(‘%5.0f %10.9f %10.9f %10.9f %10.9f %10.9f %10.9f %10.9f\n’,it,a,b,c,f_a,f_b,f_c,abs(b-a)/2);
if(abs(b-a)/2<=tol)
fprintf(‘\n satisface la tolerancia\n’);
break
end
if(it>n)
fprintf(‘numero de iteraciones exedido’);
break
end
if(f_c*f_b<=0)
a=c;
f_a=f_c;
else
b=c; f_b=f_c;
end
end
fprintf(‘la raiz pedida es=%10.6f\n’,c);
fprintf(‘la tolerancia es=%10.6f\n’,abs(b-a)/2);
ezplot(fun)
end
Ejemplo: Sea la función F(x)=x^3-x+1 analice y determine las raíces en el intervalo [-2,0], grafique
Ejecutando el programa MATLAB
METODOS NUMÉRICOS\BISECCION
Click en la imagen para agrandar