Documentos de Académico
Documentos de Profesional
Documentos de Cultura
An 06 Interpolación Numérica PDF
An 06 Interpolación Numérica PDF
Interpolación Numérica
INTRODUCCIÓN
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
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 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
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 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 notación 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):
Solución:
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
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 )
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 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
e( x) f ( x) g( x) L( x) f ( n1) ( ) 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
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
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
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
Interpolación de Newton hacia atrás
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
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
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:
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
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’)