El método de Müller fue presentado por David E. Müller en 1956 como una mejora sobre el método de la secante. Su idea fue utilizar tres puntos en lugar de dos para ajustar una parábola (en lugar de una recta) a la función, y estimar la raíz a partir de las soluciones de esa parábola. Aunque la interpolación cuadrática ya se conocía antes, Müller formalizó este procedimiento y lo adaptó para resolver ecuaciones numéricas de forma eficiente, incluso permitiendo hallar raíces complejas.
El método aproxima una función f(x) usando un polinomio de segundo grado que pasa por tres puntos y calcula una raíz de esa parábola como siguiente aproximación.
Se basa en la fórmula cuadrática:
Encontrar raíces reales y complejas de funciones.
Resolver ecuaciones donde otros métodos (como Newton-Raphson) fallan o divergen.
Muy usado en software numérico y de ingeniería por su rapidez y capacidad de manejar raíces complejas.
Útil para problemas en física, ingeniería eléctrica y dinámica.
% Definir la función f(x)
f = @(x) x^3 - 13*x - 12; %
% Puntos iniciales
x0 = 4.5;
x1 = 5.5;
x2 = 5;
fprintf('Iteración\t x2\t\t\t f(x2)\n');
fprintf('----------------------------------------------\n');
for i = 1:5
h1 = x1 - x0;
h2 = x2 - x1;
d1 = (f(x1) - f(x0)) / h1;
d2 = (f(x2) - f(x1)) / h2;
a = (d2 - d1) / (h2 + h1);
b = a * h2 + d2;
c = f(x2);
% Calcular el discriminante
rad = sqrt(b^2 - 4*a*c);
% Evitar división por 0, elegir denominador mayor en valor absoluto
if abs(b + rad) > abs(b - rad)
denom = b + rad;
else
denom = b - rad;
end
% Nueva aproximación
dxr = -2*c / denom;
xr = x2 + dxr;
% Mostrar resultados
fprintf('%d\t\t %.10f\t %.10f\n', i, xr, f(xr));
% Preparar para siguiente iteración
x0 = x1;
x1 = x2;
x2 = xr;
end