Está en la página 1de 2

%Metodo de Biseccion - Metodos Numericos Matlab

clc;
Fx=input('Ingrese la funcion: ','s');
a=input('Ingrese a : ');
c=input('Ingrese c : ');
e=input('Ingrese el error : ');

x=a;
Fa=eval(Fx);
x=c;
Fc=eval(Fx);
fprintf('\n %6s %7s %8s %10s %8s %8s %8s \n
','a','b','c','F(a)','F(b)','F(c)','|c-a|');
while abs(c-a)>e
b=(a+c)/2;
x=b;
Fb=eval(Fx);

fprintf('\n %8.4f %8.4f %8.4f %8.4f %8.4f %8.4f %8.4f
\n',a,b,c,Fa,Fb,Fc,abs(c-a));
if Fa*Fb<=0
c=b;
Fc=Fb;
else
a=b;
Fa=Fb;
end

end
fprintf('\nEl resultado sera %.4f\n',b);
ezplot(Fx);%graficamos la funcion
grid on;












disp('MTODO DE LA BISECCIN');
disp('----------------------');
F=input('INGRESE FUNCIN: ','s');
xli=input('INGRESE LMITE INFERIOR DEL INTERVALO:');
xui=input('INGRESE LMITE SUPERIOR DEL INTERVALO:');
ea=input('INGRESE PORCENTAJE DE ERROR RELATIVO APROXIMADO:');
F=inline(F);
i=1;
ea(1)=100;
if F(xli)*F(xui)<0
xl(1)=xli;
xu(1)=xui;
xr(1)=(xl(1)+xu(1))/2;
fprintf('It. xl xr xu Error aprox \n');
fprintf('%2d \t %11.7f \t %11.7f \t %11.7f \n',i,xl(i),xr(i),xu(i));
while abs(ea(i))>=tol,
if F(xl(i))*F(xr(i))<0
xl(i+1)=xl(i);
xu(i+1)=xr(i);
end
if F(xl(i))*F(xr(i))>0
xl(i+1)=xr(i);
xu(i+1)=xu(i);
end
xr(i+1)=(xl(i+1)+xu(i+1))/2;
ea(i+1)=abs((xr(i+1)-xr(i))/xr(i+1))*100;
fprint('%2d \t %11.7f \t %11.7f \t %11.7f \t %7.3f \n',...
i+1,xl(i+1),xr(i+1),xu(i+1),ea(i+1));
i=i+1;
end
else
fprintf('No existe ningn intervalo');
end

También podría gustarte