You are on page 1of 1

Mtodo de la Biseccin

xai=input('Ingrese el intervalo inferior: ');


xbi=input('Ingrese el intervalo superior: ');
tol=input('Ingrese el porcentaje de error: ');
syms x;
f=input('Ingrese la funcin: ');
i=1;
f1=subs(f,x,xai);
f2=subs(f,x,xbi);
ea(i)=100;
if f1*f2 < 0
xa(i)=xai; f1=subs(f,x,xa(i));
xb(i)=xbi; f2=subs(f,x,xb(i));
xr(i)=(xa(i)+xb(i))/2; f3=subs(f,x,xr(i));
fprintf('It.
Xa
Xr
Xb
Error aprox \n');
fprintf('%2d \t %11.7f \t %11.7f \t %11.7f \n',i,xa(i),xr(i),xb(i));
while abs(ea(i)) >= tol,
if f1*f3<0
xa(i+1)=xa(i);f1=subs(f,x,xa(i+1));
xb(i+1)=xr(i);f2=subs(f,x,xb(i+1));
end
if f1*f3> 0
xa(i+1)=xr(i);f1=subs(f,x,xa(i+1));
xb(i+1)=xb(i);f2=subs(f,x,xb(i+1));
end
xr(i+1)=(xa(i+1)+xb(i+1))/2; f3=subs(f,x,xr(i+1));
ea(i+1)=abs((xr(i+1)-xr(i))/(xr(i+1))*100);
fprintf('%2d \t %11.7f \t %11.7f \t %11.7f \t %7.3f \n',...
i+1,xa(i+1),xr(i+1),xb(i+1),ea(i+1));
i=i+1;
end
else
fprintf('No existe una raz en ese intervalo');
end

Mtodo de la Secante
clc
clear
f=input('Ingrese la funcion:\n','s');;
f=inline(f);
x0=input('Ingrese el primer punto inicial:\n');;
x1=input('Ingrese el segundo punto inicial:\n');
xra=0;
xr=0;
tol=0.01;
i=1;
error_aprox=1;
error=0;
fx1=f(x1);
fx0=f(x0);
xr=x1-((x1-x0)/(fx1-fx0))*fx1;
fprintf('It.
X0
X1
Xr
Error aprox \n');
fprintf('%2d \t %11.7f \t %11.7f \t %11.7f \t %11.7f
\n',i,x0,x1,xr,error);
while error_aprox &gt;= tol,
xra=xr;
x1=xr;
fx1=f(x1);
fx0=f(x0);
xr=x1-((x1-x0)/(fx1-fx0))*fx1;
error = abs((xr - xra) / xr);
error_aprox = error;
i=i+1;
fprintf('%2d \t %11.7f \t %11.7f \t %11.7f \t %11.7f
\n',i,x0,x1,xr,error_aprox);
end

You might also like