Professional Documents
Culture Documents
Interpolacin Numrica
INTRODUCCIN
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 interpolacin lineal se e( x) ( x x0 )( x x1 ) f ' ' ( ), x0 x1
puede expresar en la forma: 2
a) El error mximo 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.
ecuacin anterior indica entonces que: c) El error tambin se incrementa cuando |f| crece.
Ejemplo Numrico Las tablas 1 y 2 representan la temperatura de
Tabla 1
ebullicin 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
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
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 aproximacin del valor de la temperatura buscada podran unirse
ms puntos de la tabla, por ejemplo tres puntos (0), (1) y (2). En este caso
tendremos un polinomio que es una parbola de la forma general siguiente:
g ( x) y a0 a1 x a2 x 2
Donde los parmetros 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
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
Solucin:
INTERPOLACIN POLINMICA COMO SERIE DE POTENCIA
Uno de los mtodos fundamentales para
encontrar una funcin que pase a travs de datos
es el de usar un polinomio, como el mostrado en
la figura. La interpolacin polinomial se puede
expresar en varias formas alternativas. Entre
stas se encuentran las series de potencias, la
interpolacin de Lagrange y la interpolacin de
Newton hacia atrs y hacia delante.
Un polinomio de orden n que pasa a travs de n+1 puntos es nico. Esto significa
que, independientemente de la frmula de interpolacin, todas las interpolaciones
polinomiales que se ajustan a los mismos datos son matemticamente idnticas.
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 n1 c3 x n2 ... cn x cn1
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 notacin matricial como: n
x n 1 xnn11 ... x n 1 n 1 n 1
1 c y
g ( x) y 0.25x 1 2
Ejemplo: Para el conjunto de datos de (x,y):
Solucin:
y c1 x 3 c2 x 2 c3 x c4
>> 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
FRMULA DE INTERPOLACIN DE LAGRANGE
En la interpolacin polinmica los coeficientes ci se calculan resolviendo las
ecuaciones simultneas, dicho intento no es muy deseable porque se requiere de
un programa de cmputo que resuelva un conjunto de ecuaciones lineales y
porque la solucin quiz no sea muy precisa.
Con la frmula de interpolacin de Lagrange no hay necesidad de resolver
ecuaciones lineales e inclusive permiten la interpolacin para valores funcionales
que se expresan con smbolos porque no se conocen los valores numricos.
x x1 x x0 x x1 x x0
Partiendo de la interpolacin
g ( x) f ( x0 ) f ( x1 ) y0 y1
lineal (ecuacin de la recta) x0 x1 x1 x0 x0 x1 x1 x0
La ecuacin 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 interpolacin lineal, consideremos la
construccin de un polinomio de grado mximo n que pase por los n+1 puntos.
En este caso para cada k = 0, 1, , n construimos una funcin 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 trmino
( 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 trmino 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 )
ik
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 estn dadas por:
i Temperatura (Ti) Densidad (i)
C Kg/m3 Escribir la frmula de interpolacin 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
e( x) f ( x) g( x) L( x) f ( n1) ( ) x1 a b xn 1
donde n+1 es el nmero 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 pequeo [a, b] en el que f(n+1)() se aproxima a una constante, la ecuacin
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 retcula con espaciamiento uniforme, la amplitud de oscilacin de L(x) es mnima en el centro del
rango de interpolacin, pero crece hacia los extremos. Al aumentar el tamao del rango de interpolacin
la amplitud de oscilacin crece rpidamente.
Ejemplo: Una tabla de valores para f(x)=Log10 (x) es la siguiente:
i xi f(xi)
0 1 0 Si la funcin se aproxima mediante la interpolacin
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
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 funcin 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 simblica 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;
FRMULA DE INTERPOLACIN DE NEWTON
Suponiendo que las abscisas de los datos tienen igual separacin con un tamao de
intervalos h; los puntos se denotarn por (xi, fi). Para evaluar una frmula de
interpolacin 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
s
s
1
s 1 s 1
s ( s 1) s( s 1)( s 2)( s n 1)
2 2! n n!
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 2f 0 2 f 0 f 2 n 0 n
.
k ( k 1) 2
s ( x x2 ) h
sk: g ( xk ) g ( x0 kh) f 0 kf 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
0.00118
s ( s 1)( s 2)
6
0.00118
e( x ) s ( s 1)( s 2) 7.4 x10 5
6
Interpolacin de Newton hacia atrs
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 atrs
Ejemplo:
a) Desarrolle una tabla de diferencias hacia atrs 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
2
s n 1 n 2 s 0
f 5 f 5 sf 5 s 1s2 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
ecuacin 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
Interpolacin de Newton dividida o con separacin no uniforme
El polinomio de interpolacin de Lagrange en una retcula con espaciamiento no uniforme se
puede expresar de manera equivalente en la forma de un polinomio de interpolacin de
Newton.
Denotemos al polinomio de interpolacin 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:
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 frmula de interpolacin utilizando la tabla de diferencias divididas para los puntos i = 0
hasta 6; evaluar los polinomios de interpolacin en x = 0.3 y x = 0.55 y estimar los errores de
interpolacin
c) Escribir la frmula de interpolacin utilizando la tabla de diferencias divididas para los puntos i = 2
hasta 4; evaluar los polinomios de interpolacin en x = 0.3 y x = 0.55 y estimar los errores de
interpolacin
Solucin:
a) Tabla de 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)