Método de Steffensen

Este artículo o sección necesita referencias que aparezcan en una publicación acreditada.
Busca fuentes: «Método de Steffensen» – noticias · libros · académico · imágenes
Este aviso fue puesto el 29 de marzo de 2020.

El método de Steffensen (por Johan Frederik Steffensen) es un algoritmo para obtener los ceros de una función. El método de Steffensen se puede considerar como una combinación del método de punto fijo y del método de Aitken. Como el método de Aitken esencialmente acelera la convergencia de otro método, se puede definir este método como el método de punto fijo acelerado.

Ventajas

El método de Steffensen presenta una convergencia rápida y no requiere, como en el caso del método de Newton, la evaluación de derivada alguna. Presenta además, la ventaja adicional de que el proceso de iteración sólo necesita un punto inicial.

Otra ventaja del método de Steffensen es que -al igual que el de Newton- tiene convergencia cuadrática. Es decir, ambos métodos permiten encontrar las raíces de una función f "rápidamente" - en este caso rápidamente significa que en cada iteración, el número de dígitos correctos en la respuesta se duplica. Pero la fórmula para el método de Newton requiere la evaluación de la derivada de la función, el método de Steffensen no, por lo que este último puede ser programado para una función genérica, mientras que la función cumpla la restricción mencionada anteriormente.

El precio de la convergencia rápida es una doble evaluación de la función: tanto f ( x n ) {\displaystyle f(x_{n})} como f ( x n + h ) {\displaystyle f(x_{n}+h)} deben ser calculadas, lo que podría llevar un tiempo considerable dependiendo de la función f. Por comparación, el método de la secante sólo necesita una evaluación de la función por cada paso, así que con dos evaluaciones de la función del método de la secante se pueden hacer dos pasos, y esos dos pasos aumentan el número de dígitos correctos en un factor de 1,6. En un solo paso de tiempo el método de Steffensen (o de Newton) aumenta los dígitos correctos en un factor de 2, lo que es sólo un poco mejor.

Al igual que el método de Newton y otros métodos cuadráticamente convergentes, la debilidad fundamental en el método de Steffensen es la elección del valor inicial x 0 {\displaystyle x_{0}} . Si el valor de x 0 {\displaystyle x_{0}} no está "lo suficientemente cerca" de la solución, el método puede fallar y la secuencia de valores x 0 , x 1 , x 2 , x 3 , {\displaystyle x_{0},x_{1},x_{2},x_{3},\dots } o bien puede oscilar entre dos valores, o bien divergir hacia infinito (ambas alternativas pueden suceder).

Se calcula el siguiente punto de iteración a partir de la expresión:

x n + 1 = x n [ f ( x n ) ] 2 f ( x n + f ( x n ) ) f ( x n ) {\displaystyle x_{n+1}=x_{n}-{[f(x_{n})]^{2} \over {f(x_{n}+f(x_{n}))-f(x_{n})}}}

Algoritmo

Para una sucesión {xn}, obtenida por el método del punto fijo xn+1 = f(xn), partimos de tres puntos:[cita requerida]

y0= f(x0)
z0= f(y0)

donde x0 es el punto inicial. Obteniendo así:

x1 = x0 – (y0 –x0)1/2
z0 – 2*y0 – x0

En forma general:

Xn+1 = xn – (yn – xn)1/2
zn – 2* yn – xn

Donde si |xn+1 – xn| = error < Tol entonces se satisface la tolerancia.

Código Matlab

function [x,n_iter]=steffensen(x0,f,tol,nmax) 
x1=feval(f,x0);
x2=feval(f,x1);
x_nuevo=x0-(x1-x0)^2/(x2-2*x1+x0)
error= abs(x2-x_nuevo);
i=1;
	while(i<=nmax & error>=tol)
		x0=x_nuevo;
		x1=feval(f,x0);
        x2=feval(f,x1);
		x_nuevo=x0-(x1-x0)^2/(x2-2*x1+x0);
		error= abs(x0-x_nuevo);
		i=i+1;
	end
	n_iter=i-1;
	x=x0;
end

[cita requerida]

Enlaces externos

  • Esta obra contiene una traducción derivada de «Steffensen's method» de Wikipedia en inglés, publicada por sus editores bajo la Licencia de documentación libre de GNU y la Licencia Creative Commons Atribución-CompartirIgual 4.0 Internacional.


Control de autoridades
  • Proyectos Wikimedia
  • Wd Datos: Q7606635
  • Wd Datos: Q7606635