Matlab de dicotomía

Código fuente:

Guardar en matlab como: demimethod.m

función [x,k]=demimethod(a,b,f,emg)

% a,b: los dos puntos finales del intervalo de solución

% f: el nombre de la función de la ecuación que se está resolviendo

% emg: índice de precisión

% x: Solución aproximada buscada

% k: Número de ciclos

fa=feval(f,a);

fab=feval (f ,(a+b)/2);

k=0;

mientras abs(b-a)>emg

if fab==0

x=(a+b)/2;

return;

elseif fa*fab<0

b=(a+ b) /2;

else

a=(a+b)/2;

fin

fa=feval(f ,a );

fab=feval(f,(a+b)/2);

k=k+1;

fin

x=(a+b)/2;

Ingrese lo siguiente en la ventana de comandos:

>> f=@(x)x^3-3* x+2- exp(x);

>> semimétodo(-5,5,f,10^(-8))

ans =

-1,9846