Está en la página 1de 37

Universidad Nacional Agraria La Molina

Facultad de Ingeniería Agrícola


Departamento de Recursos Hídricos

Análisis Numérico para Ingeniería


(Aplicaciones con MATLAB)

Interpolación Numérica

Jesús Abel Mejía Marcacuzco, Ph.D.


Lima - Perú
INTERPOLACIÓN NUMÉRICA

INTRODUCCIÓN

Ajuste de curvas: A menudo se presentará la oportunidad de ajustar curvas en


un conjunto de datos representados por puntos. Las técnicas que se han
desarrollado para este fin pueden dividirse en dos categorías generales:
regresión e interpolación. La primera se emplea cuando hay un grado
significativo de error asociado a los datos; con frecuencia los datos
experimentales son de esta clase. Para estas situaciones, la estrategia es
encontrar una curva que represente la tendencia general de los datos sin
necesidad de tocar los puntos individuales. En contraste, la interpolación se
maneja cuando el objetivo es determinar valores intermedios entre datos que
estén, relativamente libres al error. Para estas situaciones, la estrategia es
ajustar una curva directamente mediante los puntos y usar esta curva para
predecir valores intermedios.
Una función de interpolación es aquella que pasa a través de puntos dados
como datos, los cuales se muestran comúnmente por medio de tabla de valores o
se toman directamente de una función dada. La interpolación de los datos puede
hacerse mediante un polinomio, las funciones spline, una función racional o las
Series de Fourier, entre otras posibles formas.

La interpolación polinomial (ajustar un polinomio a los puntos dados) es uno de


los temas más importantes en métodos numéricos, ya que la mayoría de los
modelos de integración numérica se obtienen integrando las fórmulas de
interpolación polinomial y los modelos de diferenciación numérica se obtienen
derivando las interpolaciones polinomiales.

Los datos obtenidos mediante una medición pueden interpolarse, pero en la


mayoría de los casos no es recomendable una interpolación directa debido a los
errores aleatorios implicados en la medición.
INTERPOLACIÓN LINEAL
La interpolación lineal es la base para
varios modelos numéricos fundamentales.
El gradiente de la interpolación lineal es
una aproximación a la primera derivada
de la función y da como resultado una
recta que se ajusta a dos puntos dados:

x1  x x  x0
g ( x)  f ( x0 )  f ( x1 ) Donde f(x0) y f(x1) son valores
x1  x0 x1  x0 conocidos de f(x) en x = x0 y x = x1
respectivamente.
1
El error de la interpolación lineal se e( x)  ( x  x0 )( x  x1 ) f ' ' ( ), x0    x1
puede expresar en la forma: 2
a) El error máximo aparece aproximadamente en el
f”() puede aproximarse por f”(xm), donde xm es
punto medio entre los datos dados.
el punto medio entre x0 y x1 : xm = (x0 + x1)/2. La b) El error aumenta cuando x1 - x0 crece.
ecuación anterior indica entonces que: c) El error también se incrementa cuando |f”| crece.
Ejemplo Numérico Las tablas 1 y 2 representan la temperatura de
Tabla 1
ebullición de la acetona a diferentes presiones
250
Puntos 0 1 2 3 4 5 6
P(atm) 1 2 5 10 20 30 40 200

T(°C) 56.5 78.6 113.0 144.5 181.0 205.0 214.5 150

100
Tabla 2
Puntos 0 1 2 3 50

P(atm) 1 5 20 40
0
T(°C) 56.5 113.0 181.0 214.5 0 5 10 15 20 25 30 35 40 45

Calcular de la tabla 2 la temperatura a 2 atm de presión:

x1  x x  x0 5 x x 1
g ( x)  f ( x0 )  f ( x1 )  56.5  113.0  42.375  14.125 x
x1  x0 x1  x0 5 1 5 1
Para x = 2 atm, se obtiene T = 70.6 °C
Para una mejor aproximación del valor de la temperatura buscada podrían unirse
más puntos de la tabla, por ejemplo tres puntos (0), (1) y (2). En este caso
tendremos un polinomio que es una parábola de la forma general siguiente:
g ( x)  y  a0  a1 x  a2 x 2
Donde los parámetros a0 , a1 y a2 se determinan sustituyendo cada uno de los tres
puntos conocidos; es decir:

Resolviendo: a0 = 39.85
56.5  a0  a1  1  a2  12
a1 = 17.17
113  a0  a1  5  a2  5 2
a2 = -0.50482

181  a0  a1  20  a2  20 2

De tal forma que el polinomio queda: T  39.85  17.15 x  0.50482 x 2


Así, si x = 2 atm, se obtiene: T = 72.1 °C
Ejemplo: Suponga que una relación funcional está dada en forma tabular como:

x y
0 0.9162
0.25 0.8109
0.50 0.6931
0.75 0.5596
1.00 0.4055

Encuentre los valores de x que satisfacen y = 0.9, 0.7, 0.6 y 0.5, respectivamente

Solución:
INTERPOLACIÓN POLINÓMICA COMO SERIE DE POTENCIA
Uno de los métodos fundamentales para
encontrar una función que pase a través de datos
es el de usar un polinomio, como el mostrado en
la figura. La interpolación polinomial se puede
expresar en varias formas alternativas. Entre
éstas se encuentran las series de potencias, la
interpolación de Lagrange y la interpolación de
Newton hacia atrás y hacia delante.
Un polinomio de orden n que pasa a través de n+1 puntos es único. Esto significa
que, independientemente de la fórmula de interpolación, todas las interpolaciones
polinomiales que se ajustan a los mismos datos son matemáticamente idénticas.
El polinomio de orden n que pasa por los n+1 puntos de
Para n+1 pares ordenados: datos puede escribirse como una serie de potencias:
x1 x2 x3 … xn+1
y1 y2 y3 … yn+1 g ( x)  y  c1 x n  c2 x n1  c3 x n2  ...  cn x  cn1
Si hacemos g(xi) = yi para cada uno de  x1n x1n 1 ... x1 1  c1   y1 
 n    
los n+1 puntos de datos, obtenemos  x2 x2n 1 ... x2 1  c 2   y 2 
Ac  y  
n+1 ecuaciones lineales, que se  . . ... 
. 1 .   . 
expresan en notación matricial como:  n    
 x n 1 xnn11 ... x n 1   n 1   n 1 
1 c y

Ejemplo: Determinar el polinomio que pasa por


los pares ordenados: (0,1), (1,0.75) y (2,0).
c1 (0) 2  c 2 (0)  c3  1

Solución: g ( x)  y  c1 x  c2 x  c3
2
 c1 (1) 2  c 2 (1)  c3  0.75

c
 1 ( 2) 2
 c 2 (2)  c3  0
De la primera ecuación se obtiene c3 = 1. De la segunda y la tercera ecuaciones
obtenemos c2 = 0 y c1 = -0.25. Por lo tanto el polinomio es:

g ( x)  y  0.25x  1 2
Ejemplo: Para el conjunto de datos de (x,y):

x: 1.100 2.300 3.900 5.100


y: 3.880 4.276 4.651 2.117

encontrar los coeficientes del polinomio de interpolación y determine el valor de y


para x = 2.101 y 4.234. Grafique el polinomio conjuntamente con los datos.

Solución:

y  c1 x 3  c2 x 2  c3 x  c4

3.88  c1 1.13  c2 1.12  c3 1.1  c4 1.331c1  1.21c2  1.1c3  c4  3.880


4.276  c1  2.33  c2  2.32  c3  2.3  c4 12.167c1  5.29c2  2.3c3  c4  4.276
4.651  c1  3.93  c2  3.9 2  c3  3.9  c4 59.319c1  15.21c2  3.9c3  c4  4.651
2.117  c1  5.13  c2  5.12  c3  5.1  c4 132.651c1  26.01c2  5.1c3  c4  2.117
1.331c1  1.21c2  1.1c3  c4  3.880
Solución mediante el método: 12.167c1  5.29c2  2.3c3  c4  4.276
Eliminación simple de Gauss 59.319c1  15.21c2  3.9c3  c4  4.651
Eliminación hacia adelante 132.651c1  26.01c2  5.1c3  c4  2.117

Paso 1: Restar 12.167/1.331 veces la 1.3310c1 + 1.2100c2 + 1.1000c3 + 1.0000c4 = 3.8800


1ra de la segunda; restar 59.319/1.331 0 - 5.7709c2 - 7.7554c3 - 8.1412c4 = - 31.1920
veces la 1ra de la tercera y restar 0 - 38.7164c2 - 45.1240c3 - 43.5672c4 = - 168.2699
132.615/1.331 veces la 1ra ecuación de 0 - 94.5818c2 - 104.5289c3 -98.6627c4 = -384.5741
la cuarta. La 1ra ecuación es el pivote.

Paso 2: Restar -38.7164/-5.7709 1.3310c1 + 1.2100c2 + 1.1000c3 + 1.0000c4 = 3.8800


veces la segunda ecuación de la 0 - 5.7709c2 - 7.7554c3 - 8.1412c4 = - 31.1920
tercera y -94.5818/-5.7709 veces la 0 +0 + 6.9059c3 + 11.0514c4 = 40.9939
segunda de la cuarta ecuación. La 0 +0 + 22.5771c3 + 34.7676c4 = 126.6451
segunda ecuación es el nuevo pivote.

Paso 3: Restar 22.5771/6.9059 1.3310c1 + 1.2100c2 + 1.1000c3 + 1.0000c4 = 3.8800


veces la tercera ecuación de la 0 - 5.7709c2 - 7.7554c3 - 8.1412c4 = - 31.1920
cuarta ecuación. El pivote 0 +0 + 6.9059c3 + 11.0514c4 = 40.9939
ahora es la tercera ecuación. 0 +0 +0 - 1.3621c4 = -7.3734
Sustitución hacia atrás
c4 = -7.3734/-1.3621 = 5.4133 y  c1 x 3  c2 x 2  c3 x  c4
c3 = (40.9939-11.0514c4)/6.9059 = -2.7267
c2 = (-31.1920+8.1412c4 +7.7554c3)/(-5.7709) = 1.4327
y  0.2010 x 3  1.4327 x 2  2.7267 x  5.4133
c1 = (3.88-1.0c4 -1.1c3-1.21c2)/1.331 = -0.2010 Para x = 2.101 y = 4.145
Para x = 4.234 y = 4.298
Cálculo matricial con MATLAB
1.13 1.12  1.331 1.21 1.1 1  c1  3.880 
1.1 1  c1  3.880 
 3      12.167 5.290 2.3 1 c2   4.276
y
2
y 3
2 . 3 2 . 3 2.3 1 c2   4.276
  Ac = y
3.9 3.9 2   59.319 15.210 
3.9 1 c3    4.651
3.9 1 c3   4.651     
 3     132.651 26.010 5.1 1 c4  2.117 
 5.1 5.1 5.1 1 c4  2.117 
2

>> A=[1.331 1.21 1.1 1;12.167 5.29 2.3 1; >> c=A\y


>> y=[3.88;4.276;4.651;2.117]
59.319 15.21 3.9 1;132.651 26.01 5.1 1] c=
y=
A= -0.2009
3.8800
1.3310 1.2100 1.1000 1.0000 1.4326
4.2760
12.1670 5.2000 2.3000 1.0000 -2.7266
4.6510
59.3190 15.2100 3.9000 1.0000 5.4132
2.1170
132.6510 26.0100 5.1000 1.0000
Solución de Interpolación >> x=[1.1,2.3,3.9,5.1];
Polinómica con MATLAB >> y=[3.880,4.276,4.651,2.117];
>> coef=polyfit(x,y,length(x)-1)
>> xi=[2.101,4.234];
5
>> yi=polyval(coef,xi)
% Graficación:
4.5 >> n=length(x)-1;
>> xp=1.1:0.05:5.1;
4 >> yp=zeros(size(xp));
datos:o

>> for k=1:n+1


3.5 >> yp=yp+coef(k)*xp.^(n+1-k);
g(x):-

>> end
3
>> plot(xp,yp,x,y,'o')
>> xlabel('x')
2.5
>> ylabel('g(x):- datos:o')
2
1 1.5 2 2.5 3 3.5 4 4.5 5 5.5
x coef =
-0.2009 1.4326 -2.7266 5.4132
yi =
4.1451 4.3005
FÓRMULA DE INTERPOLACIÓN DE LAGRANGE
En la interpolación polinómica los coeficientes ci se calculan resolviendo las
ecuaciones simultáneas, dicho intento no es muy deseable porque se requiere de
un programa de cómputo que resuelva un conjunto de ecuaciones lineales y
porque la solución quizá no sea muy precisa.
Con la fórmula de interpolación de Lagrange no hay necesidad de resolver
ecuaciones lineales e inclusive permiten la interpolación para valores funcionales
que se expresan con símbolos porque no se conocen los valores numéricos.
x  x1 x  x0 x  x1 x  x0
Partiendo de la interpolación
g ( x)  f ( x0 )  f ( x1 )  y0  y1
lineal (ecuación de la recta) x0  x1 x1  x0 x0  x1 x1  x0
La ecuación queda de la x  x1 x  x0
siguiente manera:
g ( x)  L0 ( x) f ( x0 )  L1 ( x) f ( x1 ) con: L0 ( x) 
x0  x1
L1 ( x) 
x1  x0

L0 ( x0 )  1 L1 ( x0 )  0 g ( x0 )  1 f ( x0 )  0  f ( x1 )  f ( x0 )  y0
Observar que:
L0 ( x1 )  0 L1 ( x1 )  1 g ( x1 )  0  f ( x0 )  1 f ( x1 )  f ( x1 )  y1
A fin de generalizar el concepto de interpolación lineal, consideremos la
construcción de un polinomio de grado máximo n que pase por los n+1 puntos.
En este caso para cada k = 0, 1, …, n construimos una función Lk(x) con la
propiedad de que Lk(xi) = 0, cuando i ≠ k y Lk(xk) = 1. Para satisfacer Lk(xi) = 0 para
cada i ≠ k se requiere que el numerador de Lk(x) contenga el término

( x  x0 )( x  x1 )( x  x2 )...( x  xk 1 )( x  xk 1 )...( x  xn )
Para satisfacer Lk(xk) = 1, el denominador de Lk(x) debe ser este término pero
evaluado en x = xk; es decir:
( x  x0 )( x  x1 )...( x  xk 1 )( x  xk 1 )...( x  xn ) n
( x  xi )
Lk ( x)  
( xk  x0 )( xk  x1 )...( xk  xk 1 )( xk  xk 1 )...( xk  xn ) i 0 ( xk  xi )
ik
El polinomio de Lagrange está dado por:
n
g ( x)  L0 ( x) f ( x0 )  L1 ( x) f ( x1 )  L2 ( x) f ( x2 )  ...  Ln ( x) f ( xn )   Lk ( x) f ( xk )
k 0
Por ejemplo para n = 3, el polinomio es:

( x  x1 )( x  x2 )( x  x3 ) ( x  x0 )( x  x2 )( x  x3 ) ( x  x0 )( x  x1 )( x  x3 ) ( x  x0 )( x  x1 )( x  x2 )
g ( x)  y0  y1  y2  y3
( x0  x1 )( x0  x2 )( x0  x3 ) ( x1  x0 )( x1  x2 )( x1  x3 ) ( x2  x0 )( x2  x1 )( x2  x3 ) ( x3  x0 )( x3  x1 )( x3  x2 )

Ejemplo: Las densidades de un fluido para tres temperaturas están dadas por:
i Temperatura (Ti) Densidad (i)
°C Kg/m3 Escribir la fórmula de interpolación de Lagrange que
0 94 929 se ajuste a los tres datos y determinar la densidad
1 205 902 para T = 251 °C.
2 371 806

Solución: dado que el número de datos es tres, el orden de la fórmula de Lagrange


es N=2. La interpolación de Lagrange queda:
(T  205)(T  371) (T  94)(T  371) (T  94)(T  205)
g (T )  (929)  (902)  (806)
(94  205)( 94  371) (205  94)( 205  371) (371  94)( 371  205)

Sustituyendo T=251 en la ecuación anterior, obtenemos: g ( 251)  890.5 Kg / m 3


El error de la fórmula de interpolación de Lagrange está dado por la fórmula siguiente:

e( x)  f ( x)  g( x)  L( x) f ( n1) ( ) x1  a    b  xn 1
donde n+1 es el número de datos, f(n+1) es la (n+1)-ésima derivada de f(x) y

( x  x1 )( x  x2 ). . . ( x  xn )( x  xn 1 )
L( x ) 
( n  1)!
 depende de x, pero está entre a y b. Si f(x) es un polinomio de orden n o menos, la
(n+1)-ésima derivada de f(x) se anula de modo que el error es cero. Pero, para un
intervalo pequeño [a, b] en el que f(n+1)() se aproxima a una constante, la ecuación
de error se escribe como:

e( x)  L( x) f ( n 1) ( xm ) donde: xm es el punto medio entre los dos extremos del intervalo [a, b].

En una retícula con espaciamiento uniforme, la amplitud de oscilación de L(x) es mínima en el centro del
rango de interpolación, pero crece hacia los extremos. Al aumentar el tamaño del rango de interpolación
la amplitud de oscilación crece rápidamente.
Ejemplo: Una tabla de valores para f(x)=Log10 (x) es la siguiente:
i xi f(xi)
0 1 0 Si la función se aproxima mediante la interpolación
1 2 0.30103 de Lagrange que se ajusta a estos datos, estime
2 3 0.47712 los errores en x = 1.5, 2.5, 3.5.
3 4 0.60206

Solución: La estimación del error dada por:

( n 1) ( x  1)( x  2)( x  3)( x  4) f ' ' ' ' (2.5)


e( x )  L ( x ) f ( xm ) 
(4!)
4
d 
  log e ( x )
6
4
 
d  dx 
La cuarta derivada de f(x) es: f ' ' ' ' ( x )    log 10 ( x )   4
 dx  log e (10) x log e (10)

x e(x) Exacto
Así, se obtiene los siguientes e(x) para 1.5 0.0026 0.0053
x = 1.5, 2.5 y 3.5, los cuales se 2.5 -0.0015 -0.0021
comparan con los valores exactos: 3.5 0.0026 0.0026
Ejemplo: Desarrollar una función en Matlab para >> [C,L]=lagrange([2 4 6 7 8 9],[3 5 5 6 8 7])
encontrar el polinomio interpolador de Lagrange
que pasa por los puntos (2,3), (4,5), (6,5), (7,6), C=
(8,8) y (9,7) -0.0185 0.4857 -4.8125 22.2143 -46.6690 38.8000

function [C,L]=lagrange(X,Y) L=
% X es el vector de absisas -0.0006 0.0202 -0.2708 1.7798 -5.7286 7.2000
% Y es el vector de ordenadas 0.0042 -0.1333 1.6458 -9.6667 26.3500 -25.2000
% C es la matriz de coeficientes de interpolacion -0.0208 0.6250 -7.1458 38.3750 -94.8333 84.0000
polinomial 0.0333 -0.9667 10.6667 -55.3333 132.8000 -115.2000
% L es la matriz de los coeficientes polinomiales -0.0208 0.5833 -6.2292 31.4167 -73.7500 63.0000
w=length(X); 0.0048 -0.1286 1.3333 -6.5714 15.1619 -12.8000
n=w-1;
L=zeros(w,w); Se puede obtener la forma simbólica del polinomio cuyos coeficientes
for k=1:n+1 son el vector C mediante la siguiente sintaxis MATLAB:
V=1;
for j=1:n+1 >> pretty(poly2sym(C))
if k~=j
V=conv(V,poly(X(j)))/(X(k)-X(j)); 31 5 1093731338075689 4 77 3 311 2 19601
end - ------ x + -------------------------- x - -- x + --- x - -------- x + 194/5
end 1680 2251799813685248 16 14 420
L(k,:)=V;
end
C=Y*L;
FÓRMULA DE INTERPOLACIÓN DE NEWTON

En esta sección se analizarán las dos versiones de la interpolación de Newton


(hacia delante y hacia atrás). Ambas son matemáticamente equivalentes pero
representan expresiones distintas. Una puede ser más conveniente que la otra,
dependiendo de cómo se aplique la fórmula. Por ejemplo se prefiere la segunda al
obtener el método predictor–corrector, puesto que todos los datos están en posición
hacia atrás. Sin embargo, al ajustar los datos dados en una tabla, a menudo es más
conveniente la interpolación de Newton hacia adelante.

Interpolación de Newton hacia adelante

Suponiendo que las abscisas de los datos tienen igual separación con un tamaño de
intervalos h; los puntos se denotarán por (xi, fi). Para evaluar una fórmula de
interpolación de Newton hacia delante, son necesarios una tabla de diferencias
hacia delante y los coeficientes binomiales. Por lo tanto, primero definimos las
diferencias hacia adelante como:
0 f i  f i Diferencia hacia adelante de orden 0
1 f i  f i 1  f i Diferencia hacia adelante de orden 1
2 f i  f i 1  f i Diferencia hacia adelante de orden 2
3 f i  2 f i 1  2 f i Diferencia hacia adelante de orden 3
.
k f i  k 1 f i 1  k 1 f i Diferencia hacia adelante de orden k

La primera columna es el índice de los Tabla de diferencias hacia adelante


datos, la segunda son las ordenadas de los
datos. La tercera columna lista las fi fi  2f i  3f i  4f i  5f i
diferencias de primer orden calculadas a 0 f0 f0 2f0 3f0 4f0 5f0
partir i de la segunda columna. La cuarta 1 f1 f1 2f1 3f1 4f1
columna muestra las diferencias de segundo
2 f2 f2 2f2 3f2
orden calculadas a partir de la columna
3 f3 f3 2f3
anterior, etc. Cada renglón proporciona un
conjunto de diferencias hacia delante de los 4 f4 f4
puntos correspondientes. 5 f5
Si fi = f(xi) (donde f(x) es un polinomio digamos de orden L, y los xi tienen igual
separación), entonces la columna para la diferencia de orden L se convierte en una
constante y la (L+1) diferencia) se anula. Si esto ocurre, sabemos que los datos
pertenecen a un polinomio de orden L. Sin embargo, si una columna de diferencias
tiene uno o más valores anormalmente grandes, es probable que existan algunos
errores humanos en el proceso de desarrollo de la tabla o en el conjunto de datos.
Los coeficientes binomiales están dados por:
s s 1
   1    s( s  1)( s  2)
 0  3  3!

s
   s
1  
s  1 s  1
   s ( s  1)    s( s  1)( s  2)( s  n  1)
 2  2!  n  n!

s es definida por s = (x-xo)/h y h es el intervalo uniforme de la retícula.


La fórmula de interpolación de Newton s  n
k

hacia adelante, que pasa por k+1 g ( x)  g ( x0  sh)     f 0


n 0  n 
puntos f0, f1, f2, …, fk, se escribe como:
s s  1
Por ejemplo, cuando k=2, se obtiene: g ( x0  sh)  f 0  s  f 1  f 0    f 2  2 f1  f 0 
2

 f 2  4 f1  3 f 0 sh 2 f 2  2 f1  f 0
Equivalente a: g ( x0  sh)  f 0  sh  
2h 2 h2

s  0: g ( x 0 )  g ( x 0  0)  f 0
s  1: g ( x1 )  g ( x0  h )  f 0  f 0  f1
k
s n
g ( x 2  sh)     f 2
s  2: g ( x2 )  g ( x0  2h )  f 0  2f 0  2 f 0  f 2 n 0  n 

.
k ( k  1) 2
s  ( x  x2 ) h
sk: g ( xk )  g ( x0  kh)  f 0  kf 0   f 0  ...  f k
2
Ejemplo:
a) Desarrolle una tabla de diferencias hacia delante para los siguientes datos:
i 0 1 2 3 4 5 6
xi 0.1 0.3 0.5 0.7 0.9 1.1 1.3
f(xi) 0.99750 0.97763 0.93847 0.88120 0.80752 0.71962 0.62009

b) obtener los polinomios de a) i = 0, 1, 2 c) i = 2, 3, 4


interpolación ajustados en: b) i = 0, 1, 2, 3, 4 d) i = 4, 5, 6

Solución: La tabla de diferencias hacia delante es como sigue:


i xi fi fi 2fi 3fi 4fi 5fi 6fi
0 0.1 0.99750 -0.01987 -0.01929 0.00118 0.00052 -0.00003 -0.00006
1 0.3 0.97763 -0.03916 -0.01811 0.00170 0.00049 -0.00009
2 0.5 0.93847 -0.05727 -0.01641 0.00219 0.00040
3 0.7 0.88120 -0.07368 -0.01422 0.00259
4 0.9 0.80752 -0.08790 -0.01163
5 1.1 0.71962 -0.09953
6 1.3 0.62009
La interpolación de Newton hacia adelante para los cuatro casos se obtiene utilizando
los valores de la fila correspondiente a i = 0, i =2 y i = 4 en la tabla de diferencias y
se escribe como:
0.01929 x  x0
y  0.99750  0.01987 s  s ( s  1) s
2 h

0.01929 0.00118 0.0052 x  x0


y  0.99750  0.01987 s  s( s  1)  s( s  1)(s  2)  s(s  1)(s  2)(s  3) s
2 6 24 h
0.01641 x  x2
y  0.93847  0.05727 s  s ( s  1) s
2 h
0.01163 x  x4
y  0.80752  0.08790 s  s ( s  1) s
2 h

El error del polinomio de interpolación de e( x)  f ( x)  g ( x)  L( x) f ( N 1) ( )


Newton es idéntico al de la fórmula de
interpolación de Lagrange y se escribe como: x0    x N
Ejemplo:
Evaluar el error para el polinomio ajustado en i = 0, 1, 2, del ejemplo anterior, para
x = 0.2
Solución:
El término adicional que proviene del ajuste de la interpolación en i = 3 es:

0.00118
s ( s  1)( s  2)
6

Por lo tanto, al introducir s  ( x  x0 ) h  ( x  0.1) 0.2  0.5 para x = 0.2, el error es

0.00118
e( x )  s ( s  1)( s  2)  7.4 x10 5
6
Interpolación de Newton hacia atrás

El polinomio de interpolación de Newton hacia atrás es otra fórmula de uso frecuente


y se escribe en términos de las diferencias hacia atrás y los coeficientes binomiales.
Considerando puntos con igual separación x0, x-1, x-2, ... , x-k con espacio constante
igual a h = xi – xi-1; las diferencias hacia atrás se definen como:

i fi fi 2fi 3fi 4fi 5fi


 fi  fi
0
Diferencia hacia atrás de orden 0
0 f0
1 f i  f i  f i 1 Diferencia hacia atrás de orden 1
1 f1 f1
 f i  f i  f i 1
2
Diferencia hacia atrás de orden 2 2 f2 f2 2f2
3 f i  2 f i  2 f i 1 Diferencia hacia atrás de orden 3 3 f3 f3 2f3 3f3
. 4 f4 f4 2f4 3f4 4f4
k f i  k 1 f i  k 1 f i 1 Diferencia hacia atrás de orden k 5 f5 f5 2f5 3f5 4f5 5f5
Los coeficientes binomiales están dados por:

 s  1  s  2 1
   1    ( s  2)( s  1) s
0   3  3!
s
   s 
1 
 s  1 1  s  n  1 1
   ( s  1) s    ( s  n  1)( s  n  2) ( s  1) s
 2  2! n  n!

El polinomio interpolador de Newton que pasa por los puntos x0, x-1, x-2, …, x-k se
escribe como:
( x  xi )  s  n  1 n f i
s  
h  n 
coordenada local coeficiente binomial diferencia hacia atrás
Ejemplo:
a) Desarrolle una tabla de diferencias hacia atrás para los siguientes datos:
i 0 1 2 3 4 5 6
xi 0.1 0.3 0.5 0.7 0.9 1.1 1.3
f(xi) 0.99750 0.97763 0.93847 0.88120 0.80752 0.71962 0.62009

b) obtener el polinomio de interpolación que pasa por los puntos i = 3, 4, 5

Solución: La tabla de diferencias hacia atrás es como sigue:


i xi fi fi  2f i  3f i  4f i  5f i  6f i
0 0.1 0.99750
1 0.3 0.97763 -0.01987
2 0.5 0.93847 -0.03916 -0.01929
3 0.7 0.88120 -0.05727 -0.01811 0.00118
4 0.9 0.80752 -0.07368 -0.01641 0.00170 0.00052
5 1.1 0.71962 -0.08790 -0.01422 0.00219 0.00049 -0.00003
6 1.3 0.62009 -0.09953 -0.01163 0.00259 0.00040 -0.00009 -0.00006
Debido a que el número de puntos es 3, el orden del polinomio es 2. El polinomio de
interpolación de Newton hacia atrás, es en este caso:

2
 s  n  1 n 2 s 0
 f 5  f 5  sf 5  s  1s2 f 5
1
g ( x)  g ( xi  sh)   
n 0  n  2 ( x  x5 )
s
h

Utilizando los valores de f5, f5 y 2f5 en las tablas de diferencias del ejemplo 9.8, la
ecuación anterior se convierte en:

0.01422
g ( x)  0.71962  0.08790 s  ( s  1) s
2

( x5  x) 0.01422 ( x5  x)( x4  x)
g ( x)  0.71962  0.08790 
h 2 h2
Interpolación de Newton dividida o con separación no uniforme
El polinomio de interpolación de Lagrange en una retícula con espaciamiento no uniforme se
puede expresar de manera equivalente en la forma de un polinomio de interpolación de
Newton.
Denotemos al polinomio de interpolación de Lagrange ajustando a x0, x1, x2,…,xm como
P0,1,2,…,m(x) y el ajustado a x1, x2,…,xm+1 como P0,1,2,…,m+1(x); entonces el polinomio ajustado a x0,
x1, x2,…,xm+1 está dado por:

( x  x0 ) P1, 2,..., m1 ( x)  ( x m1  x) P0,1, 2,..., m ( x)


P0,1, 2,..., m 1 ( x) 
x m1  x0
Si la ecuación se desarrolla en una serie de potencias, el coeficiente del término de mayor orden se
llama coeficiente principal. Al aplicar esta regla, el coeficiente dominante de P0,1,2,…,m+1 es f0,1,2,…,m+1.
De manera similar, los coeficientes dominantes de P0,1,2,…,m y P1,2,…,m+1 son, respectivamente, f0,1,2,…,m
y f1,2,…,m+1. Mediante la inspección de la ecuación, su coeficiente dominante para el lado izquierdo se
relaciona con los de los dos polinomios de interpolación del lado derecho mediante:
f1, 2,..., m 1  f 0,1, 2,..., m
f 0,1, 2,..., m1 
x m 1  x0
La ecuación anterior es una “diferencia dividida” de orden m + 1, ya que está dada
por la diferencia de los coeficientes dominantes de orden m dividida entre la distancia
de los puntos más exteriores. Por medio de esta ecuación, se puede calcular en forma
recursiva los coeficientes dominantes, a partir de una tabla de valores como se
muestra de manera simbólica en la tabla siguiente y por medio de la diferencia, se
puede obtener un polinomio de interpolación, por ejemplo para Pa,b,c,…,d como:

Pa ,b ,c ,..., j ( x)  f a  f a ,b ( x  xa )  f a ,b ,c , ( x  xa )( x  xb )  ...  f a ,b ,c ,..., j ( x  xa )( x  xb )( x  xc )...( x  x j 1 )

El error de la interpolación se evalúa de la misma forma que la interpolación hacia


adelante o hacia atrás, es decir, el error es:

e( x)  f a,b,c,..., j , j 1 ( x  xa )( x  xb )( x  xc )...( x  x j )
Tabla de diferencias divididas

x0 f0
f1  f 0
x1 f1 f1,0 
x1  x0
f 2  f1 f 2,1  f1, 0
x2 f2 f 2,1  f 2,1, 0 
x2  x1 x 2  x0
f3  f2 f 3,2  f 2,1 f 3,2,1  f 2,1,0
x3 f 3 f 3, 2  f 3,2,1  f 3,2,1,0 
x3  x 2 x3  x1 x3  x0
f4  f3 f 4,3  f 3,2 f 4,3, 2  f 3, 2,1 f 4,3,2,1  f 3,2,1,0
x4 f4 f 4,3  f 4,3,2  f 4,3, 2,1  f 4,3,2,1,0 
x 4  x3 x4  x2 x4  x1 x 4  x0
Ejemplo:
a) Elaborar la tabla de diferencias divididas a partir de los datos de xi y fi mostrados en la tabla.
b) Escribir la fórmula de interpolación utilizando la tabla de diferencias divididas para los puntos i = 0
hasta 6; evaluar los polinomios de interpolación en x = 0.3 y x = 0.55 y estimar los errores de
interpolación
c) Escribir la fórmula de interpolación utilizando la tabla de diferencias divididas para los puntos i = 2
hasta 4; evaluar los polinomios de interpolación en x = 0.3 y x = 0.55 y estimar los errores de
interpolación
Solución:
a) Tabla de diferencias divididas

i xi fi fi,i+1 fi,…,i+2 fi,…,i+3 fi,…,i+4 fi,…,i+5 fi,…,i+6


0 0.1 0.99750
1 0.2 0.99002 -0.07480
2 0.4 0.96040 -0.14810 -0.24433
3 0.7 0.88120 -0.26400 -0.23180 0.02089
4 1.0 0.76520 -0.38667 -0.20444 0.03419 0.01478
5 1.2 0.67113 -0.47035 -0.16737 0.04635 0.01215 -0.00239
6 1.3 0.62009 -0.51040 -0.13350 0.05644 0.01122 -0.00085 0.00129
b) El polinomio ajustado de i = 0 hasta 6 es:
P0,1, 2,3, 4,5 ( x)  0.99750  0.07480x  0.1  0.24433x  0.1x  0.2
 0.02089x  0.1x  0.2x  0.4  0.01478x  0.1x  0.2x  0.4x  0.7 
 0.00239x  0.1x  0.2x  0.4x  0.7 x  1
La estimación del error
e  0.00129x  0.1x  0.2x  0.4x  0.7 x  1x  1.2
de interpolación es:

xi P(x) Error estimado


Los resultados de cálculo
0.3 0.97762 0.000000617
se muestran a continuación:
0.55 0.92580 -0.000000126

c) El polinomio ajustado de i = 2 hasta 4 es:

P1, 2,3, 4 ( x)  0.96040  0.26400x  0.4  0.20444x  0.4x  0.7

La estimación del error de interpolación es: Resultados de xi P(x) Error estimado

e  0.04635x  0.4x  0.7 x  1


cálculo: 0.3 0.97862 -0.00130
0.55 0.92540 0.00047
Para los valores de f(x) = 1/x, correspondiente a los puntos x = 2, 2.75 y 4 obtener el
polinomio de interpolación de Lagrange y calcule f(x).

Para los siguientes datos, establecer la tabla de diferencias divididas y el polinomio


de interpolación respectivo:
i x f(x)
0 1.0 0.76520
1 1.3 0.62009
2 1.6 0.45540
3 1.9 0.28182
4 2.2 0.11036
Códigos en Matlab para interpolación de Lagrange y Diferencias Divididas

P=[1 5 20 40];
T=[56.5 113 181 214.5];
Xi=2;
Yi=interpl(P,T,xi)
Yi=interpl(P,T,xi, ‘cubic’)
Yi=interpl(P,T,xi, ‘spline’)

También podría gustarte