Está en la página 1de 1

fx=input('ingrese la funcin f(x)=','s');

syms x %Define a x como una variable


f=inline(fx); %crea la funcion f(x)a partir de los caracteres fx
xi=input('Ingrese el valor inicial inferior: ');
xs=input('Ingrese el valor incial superior: ');
tol=input('Ingrese la tolerancia: ');
fplot(fx,[xi,xs],'r'),grid,
fxi=f(xi);
fxs=f(xs);
max1=1+round((log(xs-xi)-log(tol))/log(2));
if fxi*fxs==0
if fxi==0
fprintf('La raiz de la funcin es %f\n',xi)
elseif fxs==0
fprintf('la raiz de la funcion es %f\n',xs)
end
elseif fxi*fxs<0
disp('k
Xi
Xc
Xs
f(Xc)')
for c=1:max1
xc=(xi+xs)/2;
fxc=f(xc);
fprintf('%d\t%8.6f\t%8.6f\t%8.6f\t%.6f\n',c,xi,xc,xs,fxc)
if fxc==0
fprintf('la raiz de la funcion es %f\n',xc)
break
elseif fxi*fxc<0
xs=xc;
fxs=fxc;
else
xi=xc;
fxi=fxc;
end
end
hold on, plot(xc, fxc,'ob','MarkerSize',10,'MarkerFaceColor','k'), hold off
else
disp('El producto de f(xs)*f(xi)>0')
end
clear

También podría gustarte