Vous êtes sur la page 1sur 1

function bis = bisx()

fprintf('Biseccion\n');
fprintf('=========\n');
fprintf('f(x)=');
s = input(' ','s');
Fx = inline(s);
a = input('x0 = ');
b = input('x1 = ');
TOL = input('Tolerancia = ');
N = input('Nro maximo de Iteraciones = ');
if Fx(a)*Fx(b) >= 0
fprintf('\n\n\n No cumple la condicion de Fx(a)*Fx(b) < 0 \n\n\n ');
bisx();
else
i=0;
FA = Fx(a);
fprintf(' i\t\ta\t\t\t\tb\t\t\t\tp\t\t\t\tf(a)\t\t\t\tf(b)\t\t\tf(p)\t\t\terror\n');
error = (b-a)/2 ;
while i<N && error > TOL
i=i+1;
p=a+(b-a)/2;
FP=Fx(p);
error = (b-a)/2 ;
fprintf('%2d\t %5.10f\t %5.10f\t %5.10f\t %5.10f\t %5.10f\t %5.10f\t %5.10f \n',i,a,b,p,Fx(a),Fx(b),Fx(p),error);
if FP == 0
break;
end
if FA*FP>0
a=p;
FA=FP;
else
b=p;
end
end
fprintf('\n\n\n La raiz aproximada es %10.20f\n\n\n ',p);
bis = p;
if i>N
fprintf('\n\n\n No se encontr la raiz luego de %3d Iteraciones \n\n\n ',N);
bis = N;
end
end
end

Vous aimerez peut-être aussi