Interpolación de Newton por Diferencias



 -Fundamento Teórico-

  1. 1. Definir una tabla de diferencias:
    Se calcula la diferencia entre los valores de la función en puntos consecutivos, y luego se repite este proceso para las diferencias obtenidas, creando una tabla de diferencias de orden superior. 
  2. 2. Construir el polinomio interpolador:
    Se construye un polinomio de grado n (donde n es el número de puntos dados) utilizando las diferencias de la tabla. La fórmula general del polinomio de Newton es: 
Código
    P(x) = y0 + (x - x0) * f[x0, x1] + (x - x0)(x - x1) * f[x0, x1, x2] + ...
donde y0 es el valor de la función en el primer punto, f[x0, x1] es la primera diferencia dividida, f[x0, x1, x2] es la segunda diferencia dividida, y así sucesivamente. 
  1. Calcular el valor de la función: Se sustituye el valor de x en el polinomio interpolador para obtener el valor aproximado de la función.
Beneficios de este método:
  • Simplicidad:
    La construcción del polinomio de Newton es relativamente sencilla, especialmente si se utilizan diferencias divididas. 
  • Flexibilidad:
    El método puede ser utilizado con puntos igualmente espaciados o no, lo que lo hace versátil para diversas aplicaciones. 
  • Añadir puntos:
    Si se añaden nuevos puntos, el polinomio se puede actualizar fácilmente sin necesidad de recalcular todo el polinomio desde cero. 
Limitaciones:
  • Error de interpolación:
    El error de interpolación puede aumentar si el número de puntos dados es grande o si la función a interpolar tiene una variación muy abrupta.
  • Dependencia de los puntos:
    La calidad de la interpolación depende de la elección de los puntos dados. 

-Algoritmo del Método-

  1. 1. Preparación de los datos:
    • Se tienen n+1 puntos (x0, y0), (x1, y1), ..., (xn, yn). 
    • Se organiza la tabla de diferencias divididas, donde la primera columna contiene los valores de x y la segunda columna los valores de y. 
  2. 2. Construcción de la tabla de diferencias divididas:
    • Se calcula la primera columna de diferencias divididas (f[x0, x1], f[x1, x2], ..., f[xn-1, xn]). La fórmula es: f[xi, xi+1] = (yi+1 - yi) / (xi+1 - xi). 
    • Se calcula la segunda columna de diferencias divididas (f[x0, x1, x2], f[x1, x2, x3], ..., f[xn-2, xn-1, xn]). La fórmula es: f[xi, xi+1, xi+2] = (f[xi+1, xi+2] - f[xi, xi+1]) / (xi+2 - xi). 
    • Se continúa calculando las columnas siguientes, siguiendo el mismo patrón. 
    • El valor de la última columna es f[x0, x1, ..., xn]. 
  3. 3. Construcción del polinomio interpolador:
    • El polinomio interpolador de Newton por diferencias divididas tiene la forma:
Pn(x) = y0 + (x - x0)f[x0, x1] + (x - x0)(x - x1)f[x0, x1, x2] + ... + (x - x0)(x - x1)...(x - xn-1)f[x0, x1, ..., xn]. 
  • Se utiliza la tabla de diferencias divididas para obtener los coeficientes del polinomio.

-Ejemplo Resuelto Paso a Paso-

Interpolar el valor de f(2.5)f(2.5) usando el siguiente conjunto de datos:

xf(x)
12
24
38
416

Queremos interpolar f(2.5)f(2.5) usando el polinomio de Newton por diferencias progresivas.


Paso 1: Verificar que los x estén igualmente espaciados

h=xi+1xi=1(constante)h = x_{i+1} - x_i = 1 \quad \text{(constante)}

Paso 2: Construir la tabla de diferencias finitas

xf(x)ΔfΔ²fΔ³f
12
242
3842
416842

Las diferencias se calculan así:

  • Δfi=fi+1fiΔf_i = f_{i+1} - f_i

  • Δ2fi=Δfi+1ΔfiΔ^2f_i = Δf_{i+1} - Δf_i

  • Y así sucesivamente...


Paso 3: Fórmula del polinomio de Newton (forma progresiva)

P(x)=f(x0)+sΔf0+s(s1)2!Δ2f0+s(s1)(s2)3!Δ3f0+P(x) = f(x_0) + sΔf_0 + \frac{s(s-1)}{2!}Δ^2f_0 + \frac{s(s-1)(s-2)}{3!}Δ^3f_0 + \dots

Donde:

  • s=xx0h=2.511=1.5s = \frac{x - x_0}{h} = \frac{2.5 - 1}{1} = 1.5

  • x0=1x_0 = 1, f(x0)=2f(x_0) = 2

Usamos los valores:

  • Δf0=2Δf_0 = 2

  • Δ2f0=2Δ^2f_0 = 2

  • Δ3f0=2Δ^3f_0 = 2


Paso 4: Sustituir en la fórmula

P(2.5)=2+1.5(2)+1.5(0.5)2(2)+1.5(0.5)(0.5)6(2)=2+3+1.52(2)+0.3756(2)=2+3+1.5+(0.125)=6.375\begin{align*} P(2.5) &= 2 + 1.5(2) + \frac{1.5(0.5)}{2}(2) + \frac{1.5(0.5)(-0.5)}{6}(2) \\ &= 2 + 3 + \frac{1.5}{2}(2) + \frac{-0.375}{6}(2) \\ &= 2 + 3 + 1.5 + (-0.125) \\ &= 6.375 \end{align*}

Resultado final

f(2.5)6.375f(2.5) ≈ 6.375

Comentarios