Documentos de Académico
Documentos de Profesional
Documentos de Cultura
Marco Teórico
La fórmula de diferencias finitas progresivas
surge como un caso particular de la
interpolación de Newton, que consiste en
aproximar una función a partir de un conjunto
de puntos denominados “Base” o “Soporte” de
la interpolación en un intervalo. Como se
aprecia en la figura, un polinomio interpolador
se construye de tal forma que tome los valores
especificados por dicho soporte, y permite
aproximar valores en puntos donde esta función
no está normalmente definida.
El polinomio interpolador de Newton tiene la siguiente forma general:
𝑁
Pero ahora deseamos considerar el caso cuando la distancia entre cada 𝑥𝑖 y el subsiguiente 𝑥𝑖+1
es una constante real positiva, ∀𝑖 ∈ {0, … , 𝑁 − 1}. Denominaremos a esta constante ℎ ∈ ℝ+ :
𝑥𝑖+1 − 𝑥𝑖 = ℎ, ∀𝑖 ∈ {0, … , 𝑁 − 1} , luego:
𝑓(𝑥𝑖+1 ) − 𝑓(𝑥𝑖 )
𝑓[𝑥𝑖 , 𝑥𝑖+1 ] =
ℎ
Definimos ∆𝑓(𝑥𝑖 ) = 𝑓(𝑥𝑖+1 ) − 𝑓(𝑥𝑖 ), que es una diferencia finita progresiva de primer orden:
∆𝑓(𝑥𝑖 )
𝑓[𝑥𝑖 , 𝑥𝑖+1 ] = → ∆𝑓(𝑥𝑖 ) = ℎ𝑓[𝑥𝑖 , 𝑥𝑖+1 ]
ℎ
Además, definimos al operador de diferencia finita progresiva de segundo orden de manera
recursiva: ∆2 𝑓(𝑥𝑖 ) = [𝑓(𝑥𝑖+2 ) − 𝑓(𝑥𝑖+1 )] − [𝑓(𝑥𝑖+1 ) − 𝑓(𝑥𝑖 )] = ∆𝑓(𝑥𝑖+1 ) − ∆𝑓(𝑥𝑖 )
∆𝑓(𝑥𝑖+1 ) ∆𝑓(𝑥𝑖 )
− ∆2 𝑓(𝑥𝑖 )
𝑓[𝑥𝑖 , 𝑥𝑖+1 , 𝑥𝑖+2 ] = ℎ ℎ = → ∆2 𝑓(𝑥𝑖 ) = 2ℎ2 𝑓[𝑥𝑖 , 𝑥𝑖+1 , 𝑥𝑖+2 ]
2ℎ 2ℎ2
En el denominador, obtenemos el valor 2ℎ, pues al ser los puntos equidistantes, debemos obtener
𝑥𝑖+2 − 𝑥𝑖 = 𝑥𝑖+2 − 𝑥𝑖+1 + 𝑥𝑖+1 − 𝑥𝑖 = ℎ + ℎ. En general, la distancia 𝑥𝑖+𝑛 − 𝑥𝑖 = 𝑛ℎ. Luego,
generalizamos la formula mediante inducción matemática. Ya resolvimos el caso cuando 𝑛 = 1.
Sea 𝑛 = 𝑘, asumimos por hipótesis inductiva:
∆𝑘 𝑓(𝑥𝑖 )
𝑓[𝑥𝑖 , … , 𝑥𝑖+𝑘 ] = → ∆𝑘 𝑓(𝑥𝑖 ) = 𝑘! ℎ𝑘 𝑓[𝑥𝑖 , … , 𝑥𝑖+𝑘 ]
𝑘! ℎ𝑘
Luego, sea 𝑛 = 𝑘 + 1, por la fórmula de diferencias divididas:
𝑓[𝑥𝑖+1 , … , 𝑥𝑖+𝑘+1 ] − 𝑓[𝑥𝑖 , … , 𝑥𝑖+𝑘 ]
𝑓[𝑥𝑖 , … , 𝑥𝑖+𝑘+1 ] =
𝑥𝑖+𝑘+1 − 𝑥𝑖
∆𝑘 𝑓(𝑥𝑖+1 ) ∆𝑘 𝑓(𝑥𝑖 )
𝑘 −
𝑓[𝑥𝑖 , … , 𝑥𝑖+𝑘+1 ] = 𝑘! ℎ 𝑘! ℎ𝑘
(𝑘 + 1)ℎ
∆𝑘 𝑓(𝑥𝑖+1 ) − ∆𝑘 𝑓(𝑥𝑖 )
𝑓[𝑥𝑖 , … , 𝑥𝑖+𝑘+1 ] =
𝑘! ℎ𝑘 (𝑘 + 1)ℎ
∆𝑘+1 𝑓(𝑥𝑖 )
𝑓[𝑥𝑖 , … , 𝑥𝑖+𝑘+1 ] = → ∆𝑘+1 𝑓(𝑥𝑖 ) = (𝑘 + 1)! ℎ𝑘+1 𝑓[𝑥𝑖 , … , 𝑥𝑖+𝑘+1 ]
(𝑘 + 1)! ℎ𝑘+1
Por lo tanto, ya tenemos la formula general para las diferencias finitas progresivas. Sin embargo,
existe una fórmula que nos ayudara a calcular estas diferencias de manera no recursiva, lo cual
nos permite una aplicación más rápida. Esta fórmula está dada por:
𝑛
𝑛
∆ 𝑓(𝑥0 ) = ∑ 𝑓(𝑥0+𝑗 ) ( ) (−1)𝑛−𝑗
𝑛
𝑗
𝑗=0
1 1
∆𝑓(𝑥0 ) = 𝑓(𝑥0 ) ( ) (−1)1−0 + 𝑓(𝑥1 ) ( ) (−1)1−1
0 1
∆𝑓(𝑥0 ) = 𝑓(𝑥0 )(−1) + 𝑓(𝑥1 )(1) = 𝑓(𝑥1 ) − 𝑓(𝑥0 )
Ahora, asumimos por hipótesis inductiva que, para 𝑛 = 𝑘:
𝑘
𝑘
∆ 𝑓(𝑥0 ) = ∑ 𝑓(𝑥0+𝑗 ) ( ) (−1)𝑘−𝑗
𝑘
𝑗
𝑗=0
𝑘
𝑘+1 𝑘
→ ∆𝑘+1 𝑓(𝑥0 ) = (𝑓(𝑥𝑘+1 ) ( ) (−1)𝑘+1−𝑘−1 ) + ∑ 𝑓(𝑥0+𝑗 ) ( ) (−1)𝑘+1−𝑗
𝑘+1 𝑗−1
𝑗=1
𝑘
𝑘 𝑘+1
+ ∑ 𝑓(𝑥0+𝑗 ) ( ) (−1)𝑘+1−𝑗 + (𝑓(𝑥0 ) ( ) (−1)𝑘+1−0 )
𝑗 0
𝑗=1
𝑘
𝑘+1
𝑘+1 𝑘+1
→∆ 𝑓(𝑥0 ) = 𝑓(𝑥𝑘+1 ) ( ) (−1)𝑘+1−𝑘−1 + ∑ 𝑓(𝑥𝑗 )(−1)𝑘+1−𝑗 ( )
𝑘+1 𝑗
𝑗=0
𝑘+1
𝑘+1
→ ∆𝑘+1 𝑓(𝑥0 ) = ∑ 𝑓(𝑥𝑗 )(−1)𝑘+1−𝑗 ( )
𝑗
𝑗=0
𝑁
∆ 𝑓(𝑥0 )
𝑘
( 𝑡 − 𝑘 ) ℎ = 𝑥 − 𝑥𝑘
Reemplazamos en los factores de la suma:
𝑁
∆ 𝑓(𝑥0 )
𝑘
𝑃𝑁 (𝑥) = 𝑓[𝑥0 ] + ∑ 𝑘
(𝑡) … ((𝑡 − 𝑘 + 1))ℎ𝑘
𝑘! ℎ
𝑘=1
𝑁
∆ 𝑓(𝑥0 )
𝑘
𝑓(1.5) ≈ 𝑃(1.5) = 4
2)Encontrar el polinomio interpolador de Newton de 𝑓(𝑥) sobre el soporte
dado utilizando para ello diferencias finitas progresivas.
𝒙𝒊 0 1 2 3 4
𝒇(𝒙𝒊 ) 2 3.086 7.524 20.135 54.616
Nuevamente, hallamos primero las diferencias finitas progresivas mediante la fórmula. La tabla
obtenida es:
𝒙𝒊 𝒇(𝒙𝒊 ) ∆𝒇(𝒙𝟎 ) ∆𝟐 𝒇(𝒙𝟎 ) ∆𝟑 𝒇(𝒙𝟎 ) ∆𝟒 𝒇(𝒙𝟎 )
0 2 - - - -
1 3.086 1.086 - - -
2 7.524 4.438 3.352 - -
3 20.135 12.611 8.173 4.821 -
4 54.616 34.481 21.87 13.697 8.876
∫ 𝑃4 (𝑥) ⅆ𝑥 = 0.56840
0
Notamos la siguiente grafica de ambas funciones:
Observaciones:
1. El valor obtenido debería ser cercano a 0,4772 (notar que este número es menor que 0,5;
porque es una porción de la mitad de la gráfica), sin embargo, el valor obtenido es 0,5684
(superior a 0,5).
2. Esto quiere decir que era mejor haber usado la interpolación por segmentos parabólicos
que usando un polinomio de grado mayor.
3. La curva roja (polinomio aproximado) está en la mayor parte del eje X por encima de la
curva azul (función original).
4) En la tabla siguiente se dan los valores de la función 𝑦(𝑥) = √𝑥,
redondeados a 5 cifras decimales. Calcular las diferencias finitas progresivas
de orden 3, y utilizar la tabla para obtener √1.01, √1.28 y √1.12
𝒙𝒊 1 1.05 1.1 1.15 1.2 1.25 1.3
𝒇(𝒙𝒊 ) 1 1.02470 1.04881 1.07238 1.09545 1.11803 1.14017
3
𝒕
𝑃3 (1 + 0.1𝑡) = ∑ ∆𝒊 𝒇(𝟏) ( )
𝟑
𝑖=0
La función difprog se encarga de calcular el valor de las diferencias progresivas ∆𝑘 𝑓(𝑥0 ). Recibe
como valores la función f (de la cual obtiene 𝑓(𝑥0 ) y los valores siguientes), ord (el orden de las
diferencias finitas), inic (el punto inicial 𝑥0 ) y dist (la distancia h entre cada punto).
Esta función aplica la segunda formula demostrada para las diferencias finitas progresivas:
𝑛
𝑛
∆ 𝑓(𝑥0 ) = ∑ 𝑓(𝑥0+𝑗 ) ( ) (−1)𝑛−𝑗
𝑛
𝑗
𝑗=0
Finalmente, tras definir las dos funciones auxiliares, tenemos la función final interp, que interpola
la función f dada. También recibe el valor cant (la cantidad de puntos de soporte), el valor inic (𝑥0 ),
el valor dist (distancia entre cada punto). Esta función aplica directamente la formula general del
polinomio interpolador de Newton para diferencias finitas progresivas.
En la parte inferior, se ve la aplicación del programa para resolver el ejercicio planteado 2). La
función definida en puntos discretos se llama xn, y recibe los valores de la tabla usada en ese
ejercicio. El polinomio interpolado f(x) es igual al polinomio obtenido manualmente en ese
ejercicio, e incluso podemos evaluar el valor 1.5 en el nuevo polinomio interpolador.