lunes, 22 de febrero de 2016

Polinomios


interpolación de Hermite, nombrada así en honor a Charles Hermite, es un método de interpolación de puntos de datos como una función polinómica. El polinomio de Hermite generado está estrechamente relacionado con el polinomio de Newton, en tanto que ambos se derivan del cálculo de diferencias divididas.
Consiste en buscar un polinomio por pedazos  H_n(x)  que sea cúbico en cada subintervalo  [x_{(i-1)},x_i], 1 \leq i \le n y que cumpla f'(x) en los puntos \{x_0, ..., x_n\}, donde f(x) es la función que se quiere interpolar.
La función H_n(x) queda determinada en forma única por estas condiciones y su cálculo requiere de la solución de n sistemas lineales de ecuaciones de tamaño 4x4cada uno.
La desventaja de la interpolación de Hermite es que requiere de la disponibilidad de los \{f'(x_i),0 \le i \le n\} lo cual no es el caso en muchas aplicaciones.

Uso

Ejemplo

Considerada la función f(x) = x^8 + 1, evaluando la función y sus primeras dos derivadas en x \in \{-1, 0, 1\}, se obtienen los siguientes datos:
xƒ(x)ƒ'(x)ƒ''(x)
−12−856
0100
12856
Puesto que tenemos dos derivadas para trabajar, construiremos el conjunto \{z_i\} = \{-1, -1, -1, 0, 0, 0, 1, 1, 1\}. Nuestra tabla de diferencias divididas es entonces:

\begin{matrix}
z_0 = -1  &  f[z_0] = 2  &                          &                         &                           &      &     &   &    & \\
          &              &  \frac{f'(z_0)}{1} = -8  &                         &                           &      &     &   &    & \\
z_1 = -1  &  f[z_1] = 2  &                          & \frac{f''(z_1)}{2} = 28 &                           &      &     &   &    & \\
          &              &  \frac{f'(z_1)}{1} = -8  &                         &  f[z_3,z_2,z_1,z_0] = -21 &      &     &   &    & \\
z_2 = -1  &  f[z_2] = 2  &                          & f[z_3,z_2,z_1] = 7      &                           &  15  &     &   &    & \\
          &              &  f[z_3,z_2] = -1         &                         &  f[z_4,z_3,z_2,z_1] = -6  &      & -10 &   &    & \\
z_3 =  0  &  f[z_3] = 1  &                          & f[z_4,z_3,z_2] = 1      &                           &   5  &     & 4 &    & \\
          &              &  \frac{f'(z_3)}{1} = 0   &                         &  f[z_5,z_4,z_3,z_2] = -1  &      &  -2 &   & -1 & \\
z_4 =  0  &  f[z_4] = 1  &                          & \frac{f''(z_4)}{2} = 0  &                           &   1  &     & 2 &    & 1 \\
          &              &  \frac{f'(z_4)}{1} = 0   &                         &  f[z_6,z_5,z_4,z_3] =  1  &      &   2 &   &  1 & \\
z_5 =  0  &  f[z_5] = 1  &                          & f[z_6,z_5,z_4] = 1      &                           &   5  &     & 4 &    & \\
          &              &  f[z_6,z_5] = 1          &                         &  f[z_7,z_6,z_5,z_4] =  6  &      &  10 &   &    & \\
z_6 =  1  &  f[z_6] = 2  &                          & f[z_7,z_6,z_5] = 7      &                           &  15  &     &   &    & \\
          &              &  \frac{f'(z_7)}{1} = 8   &                         &  f[z_8,z_7,z_6,z_5] =  21 &      &     &   &    & \\
z_7 =  1  &  f[z_7] = 2  &                          & \frac{f''(z_7)}{2} = 28 &                           &      &     &   &    & \\
          &              &  \frac{f'(z_8)}{1} = 8   &                         &                           &      &     &   &    & \\
z_8 =  1  &  f[z_8] = 2  &                          &                         &                           &      &     &   &    & \\
\end{matrix}
y el polinomio generado es

\begin{align}
P(x) &= 2 - 8(x+1) + 28(x+1) ^2 - 21 (x+1)^3 + 15x(x+1)^3 - 10x^2(x+1)^3 \\
&\quad{} + 4x^3(x+1)^3 -1x^3(x+1)^3(x-1)+x^3(x+1)^3(x-1)^2 \\
&=2 - 8 + 28 - 21 - 8x + 56x - 63x + 15x + 28x^2 - 63x^2 + 45x^2 - 10x^2 - 21x^3 \\
&\quad {}+ 45x^3 - 30x^3 + 4x^3 + x^3 + x^3 + 15x^4 - 30x^4 + 12x^4 + 2x^4 + x^4 \\
&\quad {}- 10x^5 + 12x^5 - 2x^5 + 4x^5 - 2x^5 - 2x^5 - x^6 + x^6 - x^7 + x^7 + x^8 \\
&= x^8 + 1.
\end{align}
mediante la adopción de los coeficientes de la diagonal de la tabla de diferencia dividida, y multiplicando el k-ésimo coeficiente por \prod_{i=0}^{k-1} (x - z_i), como lo haríamos al generar un polinomio de Newton.


El polinomio de Hermite es aquel que interpola una colección de puntos y el valor de sus derivadas en los puntos que deseamos. Es decir, supongamos que tenemos (xk,fk) y (xk,fk).
Entonces construimos la misma tabla que en el método de Newton, poniendo en la primera columna los xk, escribiendo dos veces el mismo punto si conocemos el valor de la derivada en ese punto, y en la segunda columna los valores de fcorrespondiente al x e la misma fila. Es decir, si conocemos el valor de f en x0 y el de su derivada también, escribiremos dos veces x0 y al lado de cada uno f0. Por ejemplo,
x0f0
x0f0
x1f1
x1f1
A partir de aquí procedemos de la misma forma, pero con la diferencia que tenemos que definir f[xi,xi]=fi, el valor de la derivada en xi.
x0f0   
  f0  
x0f0 f[x0,x0,x1] 
  f[x0,x1] f[x0,x0,x1,x1]
x1f1 f[x0,x1,x1] 
  f1  
x1f1   
Por lo tanto, si disponemos de n+1 valores de la función y n+1 valores de las derivadas, el polinomio de Hermite tendrá grado 2n+1.
Consideremos un ejemplo:

Ejemplo

Supongamos que queremos calcular f(18) donde f(x)=tan(πx) a partir de interpolación de Hermite en 0,14.
Para conseguirlo, escribimos una tabla como en interpolación de Newton pero repitiendo cada dato del que conozcamos su derivada. Es decir:
00   
  f(0)=π  
00 4π140=164π 
  10140=4 8π1616+4π140=148π128
141 2π4140=8π16 
  f(14)=2π  
141   
Procediendo de la misma forma que en interpolación de Newton, obtenemos:
P3(x)=πx+(164π)x2+(48π128)x2(x14)

Ahora,
tan(π8)P3(18)=0.4018





No hay comentarios:

Publicar un comentario