En análisis numérico , el proceso delta-cuadrado de Aitken o extrapolación de Aitken es un método de aceleración de series que se utiliza para acelerar la tasa de convergencia de una sucesión. Recibe su nombre de Alexander Aitken , quien introdujo este método en 1926 como parte de una extensión del método de Bernoulli . [ 1 ] Es más útil para acelerar la convergencia de una sucesión que converge linealmente. Seki Kōwa (1642-1708) conocía una forma precursora y la aplicó a la rectificación del círculo, es decir, al cálculo de π.
Definición
Dada una secuenciaconEl proceso delta-cuadrado de Aitken asocia a esta secuencia la nueva secuencia.
que también se puede escribir como
conyAmbas son la misma secuencia algebraicamente, pero la segunda tiene una estabilidad numérica mejorada en la implementación computacional.
está mal definido si la secuenciacontiene un elemento cero, lo que ocurre si la secuencia de diferencias hacia adelante ,tiene algún término repetido. Desde un punto de vista teórico, si eso ocurre solo para un número finito de índices, se podría aplicar el proceso de Aitken solo a la parte de la secuencia.con índices de tal manera quees el último índice para el cual la secuencia Se repite. En la práctica, los primeros términos de la secuencia suelen proporcionar la precisión deseada; además, al calcular numéricamente la secuencia, hay que tener cuidado de detener el cálculo antes de que los errores de redondeo en el denominador se vuelvan demasiado grandes, ya queLa transformación de secuencias puede cancelar dígitos significativos .
Propiedades
El proceso delta-cuadrado de Aitken es un método de aceleración de la convergencia y un caso particular de una transformación de secuencia no lineal .
Una secuenciaque converge a un valor límiteSe dice que converge linealmente , o más técnicamente Q-linealmente, si hay algún númeropara qué
Esto significa que, asintóticamente, la distancia entre la secuencia y su límite se reduce en casi la misma proporción,en cada paso y la razón de reducción se acerca cada vez más a esa proporción. Esto también se denomina a veces "convergencia geométrica", ya que es una propiedad característica de las series geométricas , o "convergencia exponencial", ya que es una convergencia como
El método de Aitken acelerará la convergencia de una secuencia.sicon los términos definidos anteriormente, satisface
no es un operador lineal sobre secuencias, pero sí es lineal con respecto a la suma de secuencias constantes:si es cualquier secuencia constante, constante para todosEsto queda claro a partir de la expresión deen términos del operador de diferencias finitas
El nuevo proceso no converge en general de forma cuadrática, pero para una secuencia de funciones iteradas que satisfacepara alguna funciónAl converger a un punto fijo , la convergencia de la secuencia acelerada es cuadrática. En este caso, la técnica se conoce como el método de Steffensen .
Empíricamente, la operación A elimina el "término de error más importante". Esto se puede comprobar considerando una secuencia de la forma, dónde: La secuenciaentonces llegará al límitecomova a cero.
Geométricamente, la gráfica de una función exponencialque satisface,ytiene una asíntota horizontal en(si).
También se puede demostrar que si una secuenciaconverge a su límitea una tasa estrictamente mayor que 1,no tiene una mejor tasa de convergencia. (En la práctica, rara vez se tiene, por ejemplo, convergencia cuadrática, lo que significaría más de 30 (respectivamente 100) decimales correctos después de 5 (respectivamente 7) iteraciones (comenzando con 1 dígito correcto); por lo general, en ese caso no se necesita aceleración).
En la práctica,a menudo converge mucho más rápido al límite queSí, como demuestran los cálculos de ejemplo a continuación. Por lo general, es mucho más barato calcular.(que implica únicamente el cálculo de diferencias, una multiplicación y una división) que calcular muchos más términos de la secuenciaSin embargo, se debe tener cuidado para evitar introducir errores debido a una precisión insuficiente al calcular las diferencias entre el numerador y el denominador de la expresión.
Cálculos de ejemplo
Ejemplo 1 : El valor depuede aproximarse asumiendo un valor inicial paray repitiendo la siguiente secuencia, llamada método de Herón : Comenzando con
Cabe señalar aquí que el método de Aitken no ahorra el costo de calcular dos iteraciones aquí; el cálculo de las tres primerasvalores requeridos los primeros cincovalores. Además, el segundoEl valor es menos preciso que el cuarto.valor, lo cual no es sorprendente debido a que el proceso de Aitken es más adecuado para secuencias que convergen linealmente, en lugar de cuadráticamente, y el método de Herón para calcular raíces cuadradas converge cuadráticamente.
Ejemplo 2 : El valor depuede calcularse como una suma infinita mediante la fórmula de Leibniz para π :
En este ejemplo, el método de Aitken se aplica a una serie de convergencia sublineal y acelera considerablemente la convergencia. La convergencia sigue siendo sublineal, pero mucho más rápida que la convergencia original: la primeravalor, cuyo cálculo requirió los tres primerosvalores, está más cerca del límite que el octavovalor.
Pseudocódigo de ejemplo para la extrapolación de Aitken
El siguiente es un ejemplo del uso de la extrapolación de Aitken para ayudar a encontrar el límite de la secuencia.cuando se le da algún dato inicialdonde se supone que el límite de esta secuencia es un punto fijo.(decir). Por ejemplo, si la secuencia está dada porcon punto de partidaentonces la función seráque tiene :={\sqrt {2}}} como punto fijo (ver Métodos para calcular raíces cuadradas ); es este punto fijo cuyo valor se aproximará.
Este pseudocódigo también calcula la aproximación de Aitken aLas extrapolaciones de Aitken se denotarán por aitkenX. Durante el cálculo de la extrapolación, es importante comprobar si el denominador se vuelve demasiado pequeño, lo que podría ocurrir si ya tenemos una gran precisión; sin esta comprobación, la división podría introducir un gran error. Este pequeño número se denotará por epsilon. Dado que la representación binaria del punto fijo podría ser infinita (o al menos demasiado grande para caber en la memoria disponible), el cálculo se detendrá una vez que la aproximación esté dentro tolerancedel valor verdadero.
%Estas opciones dependen del problema que se esté resolviendo x0 = 1 %El valor inicial f ( x ) = ( 1 / 2 ) * ( x + 2 / x ) %La función que encuentra el siguiente elemento en la secuencia tolerancia = 10 ^- 10 %Se desea una precisión de 10 dígitos épsilon = 10 ^- 16 %No dividir por un número menor que estemaxIterations = 20 %No permitir que las iteraciones continúen indefinidamente haveWeFoundSolution = false %¿Hemos podido encontrar la solución dentro de la tolerancia deseada? Todavía nopara i = 1 : maxIterations x1 = f ( x0 ) x2 = f ( x1 )if ( x1 ~= x0 ) lambda = absoluteValue (( x2 - x1 ) / ( x1 - x0 )) %OPCIONAL: Calcula una aproximación de |f'(fixedPoint)|, que se denota por lambda enddenominador = ( x2 - x1 ) - ( x1 - x0 );if ( valorAbsolute ( denominador ) < épsilon ) % Para evitar un error que aumente considerablemente, no divida por un número demasiado pequeño print ( 'ADVERTENCIA: el denominador es demasiado pequeño' ) break % Salir del bucle endaitkenX = x2 - ( ( x2 - x1 ) ^ 2 ) / denominadorif ( absoluteValue ( aitkenX - x2 ) < tolerance ) %Si el valor está dentro de la tolerancia print ( "El punto fijo es " , aitkenX )) %Muestra el resultado de la extrapolación de Aitken haveWeFoundSolution = true break %Hecho, así que salimos del bucle endx0 = aitkenX %Actualizar x0 para volver a empezar finif ( haveWeFoundSolution == false ) %Si no pudimos encontrar una solución dentro de la tolerancia deseada print ( "Advertencia: No se pudo encontrar una solución dentro de la tolerancia deseada de " , tolerance ) print ( "La última extrapolación calculada fue " , aitkenX ) endVéase también
Notas
- ↑ Aitken, Alexander (1926). "Sobre la solución numérica de Bernoulli de ecuaciones algebraicas". Actas de la Real Sociedad de Edimburgo . 46 : 289–305 . doi : 10.1017/S0370164600022070 .
Referencias
- William H. Press, et al. , Recetas numéricas en C , (1987) Cambridge University Press, ISBN 0-521-43108-5(Véase la sección 5.1 )
- Abramowitz y Stegun, Manual de funciones matemáticas , sección 3.9.7
- Kendall E. Atkinson, Introducción al análisis numérico , (1989) John Wiley & Sons, Inc., ISBN 0-471-62489-6
- Métodos de aceleración en serie