You are on page 1of 2

function mbisec(f,a,b,tol) %la f va con comillas simples

fprintf('It. Xa Xr Xb f(xa) f(xr)


ea\n');

disp('-------------------------------------------------------------------
--------')
f=inline(f); %inline transforma tu function para que lo pueda leer
matlab
i=1; %este es un contador (inicializo mi contador)
ea(1)=100; (inicializo mi error)
xr(i)=(a+b)/2;
while abs(ea(i)) >= tol (mientras que el valor absoluto del error en la
posición i sea mayor o igual a la tolerancia, va a ser todo esto xd
fprintf('%2d\t %11.7f\t %11.7f\t %11.7f\t %11.7f\t %11.7f\t
%11.7f\n',... %float es formato decimal, 11 espacios pa parte entera y 7
pa parte decimal.
i,a(i),b(i),xr(i),f(a(i)),f(xr(i)),ea(i)); %el i almacena tus
iteraciones

if f(a(i))*f(xr(i))<0
a(i+1)=a(i);
b(i+1)=xr(i);
else
b(i+1)=b(i);
a(i+1)=xr(i);
end

xr(i+1)=(a(i+1)+b(i+1))/2;
ea(i+1)=abs((xr(i+1)-xr(i))/(xr(i+1))*100);

i=i+1;
end
function mFalsi2(f,a,b,tol)
fprintf('It. Xa Xr Xb f(xa) f(xr)
ea\n');

disp('-------------------------------------------------------------------
----')
f=inline(f);
i=1;
ea(1)=100;
%xr(i)=(a+b)/2;
xr(i)=(a*f(b)-b*f(a))/(f(b)-f(a));
while abs(ea(i)) >= tol
fprintf('%2d\t %11.7f\t %11.7f\t %11.7f\t %11.7f\t %11.7f\t
%11.7f\n',...
i,a(i),xr(i),b(i),f(a(i)),f(xr(i)),ea(i));

if f(a(i))*f(xr(i))<0
a(i+1)=a(i);
b(i+1)=xr(i);
else
b(i+1)=b(i);
a(i+1)=xr(i);
end
%xr(i+1)=(a(i+1)+b(i+1))/2;
xr(i+1)=(a(i+1)*f(b(i+1))-b(i+1)*f(a(i+1)))/(f(b(i+1))-f(a(i+1)));
ea(i+1)=abs((xr(i+1)-xr(i))/(xr(i+1))*100);

i=i+1;
end

You might also like