1. % Metodo de Muller
function [xr, T]=muller(f,xr,h,c,e)
% crear funcion a partir del parametro texto
fx=inline(f);
% crear los 3 puntos a partir del parametro
x2=xr;
X1=xr+h;
x0=xr-h;
% inicializar variables auxiliares
k=0;
sigue=1;
T=[0 0 0 0];
% ciclo iterativo para determinar la raiz
while(sigue)
% contador de ciclos
k=k+1;
% calculo de a,b y c
h0=x-x0;
h1=x2-x1;
d0=(fx(x1)-fx(x0))/h0;
d1=(fx(x2)-fx(x1))/h1;
a=(d1-d0)/(h1+h0);
b=a*h1+d1;
c=fx(x2);
% obtener la raiz de la ecuacion general
raizd=sqrt(b*b-4*a*c);
% determinar el valor mas grande
if abs(b+raizd)>abs(b-raizd)
den=b+raizd;
else
den=b-raizd;
end
% calcular el siguiente valor
dxr=-2*c/den;
xr=x2+dxr;
% validar si continua el metodo
sigue=abs(dxr)/xr>e||k<c||abs(fx(xr))>e;
% hacer el cambio de variables
x0=x1;
x1=x2;
x2=xr;
% guardar en a matriz de iteraciones
T(k,:)=[x0 x1 x2 fx(xr)];
% terminar el ciclo
end
% validar si converge
if k==c
xr='No converge';
end