Interpolación de Aitken

De testwiki
Revisión del 13:21 26 jun 2021 de imported>Lojwe (Reemplazos con Replacer: «de arriba a abajo»)
(difs.) ← Revisión anterior | Revisión actual (difs.) | Revisión siguiente → (difs.)
Ir a la navegación Ir a la búsqueda

La interpolación de Aitken es un procedimiento iterativo para calcular valores correspondientes al polinomio de Lagrange de un conjunto de puntos dado. Permite introducir información sobre nuevos puntos en el polinomio con un incremento de tiempo de cálculo de orden cuadrático con respecto al número de nodos de interpolación.

Definición

Sea Pi,,j(x) un polinomio de Lagrange obtenido a partir de un conjunto de puntos de partida(xi,yi),(xi+1,yi+1),,(xj,yj). Entonces, se cumple la siguiente relación:

Pi(x)=yi (caso degenerado, polinomio de grado cero - constante)

Pi,,j(x)=1xjxi|xxiPi,,j1(x)xxjPi+1,,j(x)|

(esta segunda expresión implica que una interpolación de grado n se puede obtener mediante la interpolación lineal de dos interpolaciones de grado (n-1))

Demostración

La prueba es fácil de deducir por inducción. Sin pérdida de generalidad, se toma por conveniencia i=0, j=n.

Sean P0,,n1(x) y P1,,n(x) los polinomios de Lagrange para los conjuntos de puntos correspondientes. Esto significa que P0,,n1(x)=i=0n1yij=0;j=in1xxjxixj y P1,,n(x)=i=1nyij=1;j=inxxjxixj

Si se denominan Ai=j=0;j=in(xxj) ; Ti=yij=0;j=inxxjxixj y Xi=j=1;j=in1(xixj) entonces es obvio que

1xnx0|xx0P0,,n1(x)xxnP1,,n(x)|=T0+Tn+i=1n1yi(AiXi(xixn)(xnx0)AiXi(xix0)(xnx0))=

=T0+Tn+i=1n1yiAixnAix0Xi(xixn)(xix0)(xnx0)=T0+Tn+i=1n1yiAiXi(xixn)(xix0)=i=0nTi ,

lo que coincide con el polinomio de Lagrange del conjunto total de puntos.

Utilización

Tiempo de cálculo

Conociendo los coeficientes de los polinomios P0,,n1(x) y P1,,n(x), el cálculo del polinomio P0,,n(x) mediante el método de Aitken está ligado linealmente al número n de puntos.

Sin embargo, si se considera agregar un nuevo punto (xn,yn) al conjunto de puntos base, entonces en este caso P1,,n(x) también será desconocido y deberá calcularse en tiempo lineal P1,,n1(x) y P2,,n(x), para lo que a su vez será necesario precalcular P2,,n(x) y el resto de polinomios del mismo orden.

Por lo tanto, agregar un punto solo es posible obteniendo secuencialmente los polinomios Pn1,n(x),Pn2,n1,n(x),,P2,,n(x),P1,,n(x)en tiempo cuadrático. Si el programa ya tenía almacenados los coeficientes de los polinomios P1,,n1(x),P2,,n1(x),,Pn2,n1(x),Pn1(x), entonces el cálculo de cada uno de los polinomios requeridos es factible en un tiempo lineal con respecto al número de puntos utilizados como base. Esto da un total asintóticamente tendente a O(n2) a la hora de agregar un nuevo punto, y en consecuencia, a O(n3) si se debe calcular el polinomio de Lagrange a partir de un conjunto predeterminado de n puntos.

Ocupación de memoria

Si se usa un método de cálculo de tiempo óptimo, entonces es necesario almacenar los coeficientes de los polinomios de la forma Pi,,n(x)(i=0,,n) . i, lo que requiere O(ni) posiciones de memoria para almacenar coeficientes, lo que requiere una memoria total de orden O(n2).

Cabe señalar que la cantidad de memoria O(n2) necesaria (incluso si no se precisa la posterior adición de puntos) requiere inevitablemente el almacenamiento de los coeficientes de los polinomios Pi,,n(x) en el transcurso del cálculo del polinomio mismo.

Ejemplo

INTERPOLACIÓN DE AITKEN:
Se desea interpolar el valor del polinomio de Lagrange (L(x)) definido para cuatro puntos dados,

P(i)=(xi,yi)=[(9,5);(4,2);(1,2)y(7,9)]

cuando x=1.

Utilizando el algoritmo de Aitken, se tiene que:

Interpolación de Aitken:
i X(i) Y(i) Iteración 1 Iteración 2 Iteración 3 X(i)-X
1 -9 5 -10
2 -4 2 -1 -5
3 -1 -2 -3,75 -5,58333 -2
4 7 9 7,5 2,86364 -3,47159 6

Para obtener los sucesivos valores de la tabla, se debe rellenar de arriba abajo empezando por la cuarta columna (las tres primeras son datos), continuando por la siguiente columna hacia la derecha:

Por ejemplo, el valor 7,5 es el resultado de operar:

I1(4)(x)=1(x4x)(x1x)|I0(1)(x)x1xI0(4)(x)x4x|=1610|51096|=12016=7.5

y el valor de -5,58333 es el resultado de operar:

I2(3)(x)=1(x3x)(x2x)|I1(2)(x)x2xI1(3)(x)x3x|=125|153.752|=16.753=5.583333

Completada la tercera iteración, se tiene que el valor buscado es:

L(1)=3,47159

COMPROBACIÓN MEDIANTE EL POLINOMIO DE LAGRANGE:
Se puede comprobar el resultado calculando directamente los coeficientes del polinomio de Lagrange, y calculando el valor buscado. Para ello, se determina para cada punto los polinomios de tercer grado que se anulan en las abcisas de los otros tres puntos (denominadas genéricamente a,b,c, es decir, con la forma:

(xa)(xb)(xc)=0

Operando este trinomio, los coeficientes de cada potencia de x son los siguientes:

x3+(a+b+c)x2+(ab+ac+bc)x+abc=0

Aplicando estas operaciones a los cuatro puntos dados, se tiene que:

Coeficientes:
x(i) a b c L(i) x3 x2 x k L(xi)
-9 4 1 -7 L(1) 1 -2 -31 -28 -640
-4 9 1 -7 L(2) 1 3 -61 -63 165
-1 9 4 -7 L(3) 1 6 -55 -252 -192
7 9 4 1 L(4) 1 14 49 36 1408

    

Escalado por y(i)/L(xi):
y(i) L(xi) x3 x2 x k
5 -640 -0,0078125 0,015625 0,2421875 0,21875
2 165 0,012121212 0,036363636 -0,739393939 -0,763636364
-2 -192 0,010416667 0,0625 -0,572916667 -2,625
9 1408 0,006392045 0,089488636 0,313210227 0,230113636
TOTALES: 0,021117424 0,203977273 -0,756912879 -2,939772727

obteniéndose el polinomio interpolante de Lagrange:

L(x)=0.021117424x3+0.203977273x20.756912879x2.939772727

pudiéndose comprobar fácilmente que:

L(1)=3,47159

Véase también

Plantilla:Control de autoridades