Interpolacion Polinomial
Interpolacion Polinomial
Interpolacion Polinomial
Matemáticas Avanzadas
Junio 2012, Tijuana, Baja California
Interpolación Polinomial
Ing. Rodolfo David Reyes de la Cruz
I. Introducción
Con frecuencia se encontrará con que tiene que estimar valores intermedios entre datos definidos por
puntos. El método más común que se usa para este propósito es la interpolación polinomial. Recuerde
que la fórmula general para un polinomio de n-ésimo grado es
f ( x) a0 a1 x a2 x 2 ........ an x n (1)
Dados n + 1 puntos, hay uno y sólo un polinomio de grado* n que pasa a través de todos los puntos.
Por ejemplo, hay sólo una línea recta (es decir, un polinomio de primer grado) que une dos puntos
(figura 1.1a). De manera similar, únicamente una parábola une un conjunto de tres puntos (figura 1.1b).
La interpolación polinomial consiste en determinar el polinomio único de n-ésimo grado que se ajuste a
n + 1 puntos. Este polinomio, entonces, proporciona una fórmula para calcular valores intermedios.
Figura 1. Ejemplos de interpolación polinomial: a) de primer grado (lineal) que une dos puntos, b) de segundo grado
(cuadrática o parabólica) que une tres puntos y c) de tercer grado (cúbica) que une cuatro puntos.
1
Citedi-IPN
Matemáticas Avanzadas
Junio 2012, Tijuana, Baja California
Aunque hay uno y sólo un polinomio de n-ésimo grado que se ajusta a n + 1 puntos, existe una gran
variedad de formas matemáticas en las cuales puede expresarse este polinomio. En este capítulo
describiremos dos alternativas que son muy adecuadas para implementarse en computadora: los
polinomios de Newton y de Lagrange.
La forma más simple de interpolación consiste en unir dos puntos con una línea recta. Dicha técnica,
llamada interpolación lineal, se ilustra de manera gráfica en la figura 2.
f1 ( x) f ( x0 ) f ( x1 ) f ( x0 )
x1 x0 x x0 (2)
Reordenándose se tiene
f ( x1 ) f ( x0 )
f1 ( x) f ( x0 ) ( x x0 )
x1 x0 (3)
que es una fórmula de interpolación lineal. La notación f 1(x) designa que éste es un polinomio de
interpolación de primer grado.
Ejemplo 1.
Estime el logaritmo natural de 2 mediante interpolación lineal. Primero, realice el cálculo por
interpolación entre ln(1)=0 y ln(6)=1.791759.
2
Citedi-IPN
Matemáticas Avanzadas
Junio 2012, Tijuana, Baja California
Después, repita el procedimiento, pero use un intervalo menor de ln(1) a ln(4)=1.386294. Observe que
el valor verdadero de ln 2 es 0.6931472.
Solución. Usamos la ecuación (18.2) y una interpolación lineal para ln(2) desde x 0 = 1 hasta x1 = 6 para
obtener
f ( x1 ) f ( x0 )
f1 ( x) f ( x0 ) ( x x0 )
x1 x0
1.7917 0
f1 (2) 0 (2 1) 0.358352
6 1
vreal vcal
% error x100
vreal (4)
0.6931472 0.358352
% error x100
0.6931472
% error 48.30%
1.386294 0
f1 (2) 0 (2 1) 0.462098
4 1
0.6931472 0.462098
% error x100
0.6931472
% error 33.33%
Así, usando el intervalo más corto el error relativo porcentual se reduce a error=33.3%. Ambas
interpolaciones se muestran en la figura 1.3, junto con la función verdadera.
3
Figura 3. Dos interpolaciones lineales para estimar ln 2. Observe cómo el intervalo menor proporciona una mejor
estimación.
En el ejemplo 1 el error resulta de nuestra aproximación a una curva mediante una línea recta. En
consecuencia, una estrategia para mejorar la estimación consiste en introducir alguna curvatura a la
línea que une los puntos. Si se tienen tres puntos como datos, éstos pueden ajustarse en un polinomio
de segundo grado (también conocido como polinomio cuadrático o parábola).
f 2 ( x ) b0 b1 ( x x0 ) b2 ( x x0 )( x x1 ) (5)
b0 f ( x0 ) (6)
f ( x1 ) f ( x0 )
b1
x1 x0 (7)
Por último, las ecuaciones (6) y (7) se sustituyen en la (5), después se evalúa en x = x 2 y (luego de
algunas manipulaciones algebraicas) se resuelve para
f ( x2 ) f ( x1 ) f ( x1 ) f ( x0 )
x2 x1 x1 x0
b2
x2 x0 (8)
4
Ejemplo 2.
Ajuste un polinomio de segundo grado a los tres puntos de la tabla 1: Con el polinomio resultante
evalúe ln(2).
i xi F(xi)
0 1 0
1 4 1.386294
2 6 1.791760
Tabla 1. Puntos de la función ln(x).
b0 0
La ecuación (7) da
1.386294 0
b1 0.462098
1.386294 0
f ( x2 ) f ( x1 ) f ( x1 ) f ( x0 )
x2 x1 x1 x0
b2
x2 x0
f 2 ( x ) b0 b1 ( x x0 ) b2 ( x x0 )( x x1 )
f 2 ( x ) 0 0.462098( x 1)
0.0518731( x 1)( x 4)
f 2 (2) 0.5658443
5
Figura 4. Comparación de error de la estimación lineal y cuadrática.
En esta sección se presenta los métodos iterativos de Lagrange y diferencias divididas de Newton para
encontrar un polinomio interpolador.
Interpolación de Lagrange
f n i 0 Li ( x ) f ( xi )
n
(9)
donde
n x xj
Li ( x )
j 0 xi x j
j i
(10)
x x1 x x0
f1 ( x ) f ( x0 ) f ( x1 )
x0 x1 x1 x0 (11)
x x1 x x0
L1,0 L1,1
x0 x1 , x1 x0
6
y la versión de segundo grado es
( x x1 )( x x2 ) ( x x0 )( x x2 ) ( x x0 )( x x1 )
f 2 ( x) f ( x0 ) f ( x1 ) f ( x2 )
( x0 x1 )( x0 x2 ) ( x1 x0 )( x1 x2 ) ( x2 x0 )( x2 x1 ) (12)
( x x1 )( x x2 ) ( x x0 )( x x2 ) ( x x0 )( x x1 )
L2,0 L2,1 L2,2
( x0 x1 )( x0 x2 ) ( x1 x0 )( x1 x2 ) ( x2 x0 )( x2 x1 )
Para mayor información sobre la demostración de las formulas para obtener los coeficientes de
Lagrange consultar el apéndice B al final del trabajo.
Ejemplo 3.
Con un polinomio de interpolación de la Lagrange de primer y segundo grado evalué ln(2) basándose
en los datos del ejemplo anterior.
x4 x 1
L1,0 L1,1
1 4 , 4 1
x4 x 1
f1 ( x) (0) (1.386294)
1 4 4 1
x 1
f1 ( x) (1.386294)
4 1
Se desea obtener el valor del polinomio cuando x=2, ya que se nos pide encontrar el valor de ln(2).
2 1
f1 (2) (1.386294) 0.4620981
4 1
Para encontrar el polinomio interpolador cuadrático ahora utilizando el punto de x=6 y f(x)= 1.791759 la
ecuación 12 obtenemos
7
De la ecuación 9 se obtiene el polinomio interpolador cuadrático
( x 1)( x 6) ( x 1)( x 4)
f 2 ( x) (1.386294) (1.791760)
(4 1)(4 6) (6 1)(6 4)
Se desea obtener el valor del polinomio cuando x=2, ya que se nos pide estimar el valor de ln(2).
f 2 (2) 0.565844
El análisis anterior puede generalizarse para ajustar un polinomio de n-ésimo grado a n+1 datos. El
polinomio de n-ésimo grado es
Como se hizo antes con las interpolaciones lineales y cuadráticas, los puntos asociados con datos se
utilizan para evaluar los coeficientes b 0, b1,…., bn. Para un polinomio de n-ésimo grado se requieren n + 1
puntos: [x0, f(x0)], [x1, f(x1)],….., [xn, f(xn)]. Usamos estos datos y las siguientes ecuaciones para evaluar los
coeficientes:
b0 f ( x0 ) (14)
b1 f [ x1 , x0 ] (15)
b2 f [ x2 , x1 , x0 ] (16)
:
:
bn f [ xn , xn 1 ,..., x1 , x0 ] (17)
donde las evaluaciones de la función colocadas entre paréntesis son diferencias divididas finitas. Por
ejemplo, la primera diferencia dividida finita en forma general se representa como
8
f ( xi ) f ( x j )
f [ xi , x j ]
xi x j
(18)
La segunda diferencia dividida finita, que representa la diferencia de las dos primeras diferencias
divididas, se expresa en forma general como
f [ xi , x j ] f [ x j , xi ]
f [ xi , x j , xk ]
xi xk (19)
f [ xn , xn 1 ,..., x1 , x0 ] f [ xn 1 , xn 2 ,..., x0 ]
f [ xn , xn 1 ,..., x1 , x0 ]
xn x0 (20)
Estas diferencias sirven para evaluar los coeficientes en las ecuaciones (14) a (17), los cuales se
sustituirán en la ecuación (13) para obtener el polinomio de interpolación
f n ( x) f ( x0 ) ( x x0 ) f [ x1 , x0 ] ( x x0 )( x x1 ) f [ x2 , x 1 , x0 ]
( x x0 )( x x1 )...( x xn 1 ) f [ xn , xn 1 ,..., x0 ]
(21)
Debe observarse que no se requiere que los datos utilizados en la ecuación (21) estén igualmente
espaciados o que los valores de la abscisa estén en orden ascendente, como se ilustra en el siguiente
ejemplo. También, advierta cómo las ecuaciones (18) a (20) son recursivas (es decir, las diferencias de
orden superior se calculan tomando diferencias de orden inferior (tabla 2).
De la serie de Taylor, puede obtenerse una formulación para el error de truncamiento. Recuerde que
el error de truncamiento para la serie de Taylor podría expresarse por lo general como
9
f ( n 1) ( )
Rn ( xi 1 xi )n 1
( n 1)! (22)
f ( n 1) ( )
Rn ( x x0 )( x x1 )........( x xn )
(n 1)! (23)
donde está en alguna parte en el intervalo que contiene la incógnita y los datos. Para esta fórmula
que habrá de usarse, la función en turno debe ser conocida y diferenciable.
Por lo común éste no es el caso. Por fortuna, una formulación alternativa está disponible y no requiere
conocimiento previo de la función. Más bien, usa una diferencia dividida finita para aproximar la
derivada (n + l)-ésima,
Ejemplo 4.
Recuerde que en el ejemplo 2 la interpolación del polinomio de segundo orden proporcionó una
Rn f x3 , x2 , x1 , x0 ( x x0 )( x x1 )( x x2 )
donde el valor para la diferencia dividida finita es 0.007865529, esta relación puede evaluarse en x=2.
En el paso 1 se establecen los n+1 puntos, en el paso 2 se calculan los n coeficientes de Lagrange, en el
paso 3 se encuentra el polinomio interpolador n-1 grado y en el paso 4 se obtiene el polinomio
característico interpolador.
10
Paso 1: Definir puntos.
x=[x1, x2, ..., xn]
f(x)=[f(x1), f(x2), ..., f(x n)
N=n-1
p=1
m=1
11
1
p>N 2
Si
ind=0 No
p=p+1
m>N
Si ind=1
m=m+1
No
p=m
No
Si m=m+1
No
12
2
Fin
Ejemplo 5.
i xi F(xi)
0 2 5
1 4 9
2 6 2
13
3 8 1
Tabla 3. Valores de xi y f(xi) del ejemplo 5.
Paso 1: se definen los puntos que se quieren interpolar, estos puntos son: x 0=1, x1= 4, x2=6, x3=8 y f(x0)=5,
f(x1)=9, f(x2)=2, f(x3)=1, y N=3.
14
5 x 3 90 x 2 520 x 960 9 x 3 1444 x 2 684 x 864 2 x 3 28 x 2 112 x 128
f3
48 16 16
x 12 x 44 x 48
3 2
48
Paso 1:
x=[x 0,x 1,.....x n]
Declarar puntos en
fx=[f(x 0),f(x 1),...,f(x n)]
x y f(x)
Paso 2:
Obtener diferencias obtener f[x1,x0], f[x2,x1,x0],....,f[xn,....,x0]
divididas
Fin
15
IV. Resultados
Se elaboró el código en Matlab para el método de la interpolación de Lagrange, en el párrafo siguiente
se presenta.
%Crear vector para evaluar los puntos entre el limite inferior y superior
%del vector x.
xp=(2:0.01:14);
16
Para evaluar el código de MatLab propuesto se analiza el ejemplo 4, en él se tienen los puntos x 0=1, x1=
4, x2=6, x3=8 y f(x0)=5, f(x1)=9, f(x2)=2, f(x3)=1, y N=3. En la figura 6, se observa como el MatLab encuentra
el polinomio del ejemplo 4, “Coef” es el polinomio interpolador.
En la figura 8 se puede observa la grafica del polinomio interpolador que se encontró con el método de
Lagrange.
250
Puntos iniciales
Polinomio interpolaodr
200
150
100
50
-50
2 4 6 8 10 12 14
Si se compara el resultado que se obtuvo en el programa de MatLab con el ejercicio 4, se notara que el
polinomio es el mismo, por lo tanto se concluye que el algoritmo esta correcto.
Funciones en Matlab para realizar una interpolación lineal y encontrar un polinomio interpolador.
17
Las funciones que Matlab utiliza para realizar una estimación se observan en la figura 7, de las cuales
solo se presentan 3 de ellas para su estudio; se presenta un ejemplo particular con cada una de estas
funciones.
interp1.
Spline.
Polyfit.
La instrucción interp1 realiza una estimación para determinar el valor en medio de 2 puntos,
independientemente de los n+1 puntos que se tengan, esta instrucción utiliza la interpolación lineal para
estimar o interpolar un valor.
%============================================
%=======Instrucción interp1(x,y,c)===========
%============================================
interp1(t,p,1975)
18
%============================================
Al poner sobre la ventana de trabajo de MatLab el código anterior y se ejecuta, el resultado obtenido
es 214.8585 correspondiente al valor 1975.
La instrucción spline realiza una estimación para determinar valores futuros de acuerdo al problema
en donde se emplee.
%===============================================
%=========Instrucción spline(x,y,c)=============
%===============================================
spline(t,p,2000)
%===============================================
Por ejemplo, se requiere realizar una estimación de la cifra de los habitantes que habrá en Baja
California en el año 2000, donde s los puntos son t = 1900 1910, 1920, 1930 1940, 1950, 1960, 1970,
1980, 1990 y p=75.995 91.972 105.711 123.203 131.669 150.697 179.323 203.212 226.505
249.633.
Al poner sobre la ventana de trabajo de MatLab el código anterior y se ejecuta, el resultado obtenido
es de 270.6060 lo que indica que para el año 2000 se estima que habrá 270.6060 miles de personas
residiendo en Baja California.
19
La instrucción polyfit nos permite calcular el polinomio característico que pasa por los puntos que se
tienen, el código para calcular este polinomio es
%======================================
%======Instrucción polyfit=============
%======================================
t = 1900:10:1990;
p = [75.995 91.972 105.711 123.203 131.669...
150.697 179.323 203.212 226.505 249.633];
pol=polyfit(t,p,9)
f=polyval(pol,1975)
%==================================
20
V. Conclusiones
La interpolación polinomial es una herramienta matemática utilizada por las computadoras para
estimar y ajustar valores en medio de 2 puntos, es aplicable para cualquier rubro de la ciencia y la
industria.
Sin embargo, como es una herramienta que se utiliza para estimar valores presenta un error por dicha
estimación.
En la figura 8, se observa como el error se hace más pequeño cuando se utiliza un polinomio de mayor
grado para el ejemplo del ln(2).
Figura 10. Errores relativos porcentuales para la predicción de ln 2 como función del orden del polinomio de interpolación.
La interpolación de Lagrange y diferencias divididas de Newton son tales que permiten estimar un
valor utilizando todos los n+1 puntos descritos en un problema, es por ello que son muy utilizadas para
encontrar un polinomio interpolador ya que el error de aproximación es mínimo.
21
VI. Referencias
[2] Francis Scheid, Rosa Elena Di Constanzo, “Métodos Numéricos”, segunda edición, Mc Graw Hill.
[3] G. J. Borse, “Numerical Methods with MatLab”, Pws Publishing Company ITP (International Thomson
Publishing)
[5] John Mathews, Kurtis D. Fink, “Numerical Methods Using MatLab”, third edition, Prentice Hall.
[6] José Alberto Gutiérrez Robles, Miguel Ángel Olmos Gómez, “Análisis Numérico”, Mc Graw Hill.
22
Apéndice A
Observe que aunque la ecuación (5) parece diferir del polinomio general (ecuación 1), las dos
ecuaciones son equivalentes. Lo anterior se demuestra al multiplicar los términos de la ecuación (5):
f 2 ( x ) (b0 b1 x0 b2 x0 x1 ) (b1 b2 x1 b2 x0 ) x b2 x 2
a0 b0 b1 x0 b2 x0 x1
a1 b1 b2 x1 b2 x0
a2 b2 (7)
Así, las ecuaciones (1) y (3) son formas alternativas, equivalentes del único polinomio de segundo
grado que une los tres puntos. Un procedimiento simple puede usarse par determinar los valores de los
coeficientes.
23
Apéndice B
Formula de Lagrange para un polinomio de primer grado. Si se dieran 2 puntos de la forma P 1(x0, f(x0)),
P2(x1, f(x1)) y se pide calcular el polinomio interpolador utilizando el método de Lagrange calcularíamos
2 coeficientes de Lagrange ya que este resultaría un polinomio lineal.
x x1 x x0
L1,0 L1,1
x0 x1 , x1 x0
x x1 x x0
f1 ( x) f ( x0 ) f ( x1 )
x0 x1 x1 x0 (13)
f ( x1 ) f ( x0 )
f1 ( x) f ( x0 ) ( x x0 )
x1 x0
( x x0 ) x x0
f1 ( x) 1 f ( x0 ) f ( x1 )
x1 x0 x1 x0
x x x x0 ) x x0
f1 ( x) 1 0 f ( x0 ) f ( x1 )
x1 x0 x1 x0
x x1 x x0
f1 ( x) f ( x0 ) f ( x1 )
x
0 1x x
1 0x
24
Formula de Lagrange para un polinomio de segundo grado. Si en el ejemplo donde se dan 2 puntos
de la forma P1(x0, f(x0)), P2(x1, f(x1)) y se diera otro punto P 3(x2, f(x2)), y se pide hacer una estimación
entre en medio de estos puntos, tendríamos un polinomio interpolador cuadrático.
Como se dan 3 puntos, para determinar el valor de n se necesita restar 1 al máximo valor de puntos ya
que siempre cuando se desea obtener un polinomio interpolador utilizando el método de Lagrange
siempre son n+1 puntos los que se tienen. Por lo tanto n=2, entonces se calculan
( x x1 )( x x2 ) ( x x0 )( x x2 ) ( x x0 )( x x1 )
L2,0 L2,1 L2,2
( x0 x1 )( x0 x2 ) ( x1 x0 )( x1 x2 ) ( x2 x0 )( x2 x1 )
( x x1 )( x x2 ) ( x x0 )( x x2 ) ( x x0 )( x x1 )
f 2 ( x) f ( x0 ) f ( x1 ) f ( x2 )
( x0 x1 )( x0 x2 ) ( x1 x0 )( x1 x2 ) ( x2 x0 )( x2 x1 ) (14)
f 2 ( x ) b0 b1 ( x x0 ) b2 ( x x0 )( x x1 )
f ( x2 ) f ( x1 ) f ( x1 ) f ( x0 ) f ( x2 ) f ( x1 ) f ( x1 ) f ( x0 )
x x
f ( x1 ) f ( x0 ) x2 x1 x1 x0 x1 x0
f 2 ( x) f ( x0 ) ( x x0 ) ( x x0 )( x x1 ) ( x x0 )( x x1 )
2 1
x1 x0 x2 x0 x2 x0
(15)
x x0 x x0 ( x x0 )( x x1 ) ( x x0 )( x x1 )
f 2 ( x) f ( x0 ) f ( x1 ) f ( x0 ) f ( x2 ) f ( x1 )
x1 x0 x1 x0 ( x2 x1 )( x2 x0 ) ( x2 x1 )( x2 x0 )
( x x0 )( x x1 ) ( x x0 )( x x1 )
f ( x1 ) f ( x0 )
( x1 x0 )( x2 x0 ) ( x1 x0 )( x2 x0 )
( x x1 )( x x2 ) ( x x0 )( x x2 ) ( x x0 )( x x1 )
f 2 ( x) f ( x0 ) f ( x1 ) f ( x2 )
( x0 x1 )( x0 x2 ) ( x1 x0 )( x1 x2 ) ( x2 x0 )( x2 x1 )
25
( x x1 )( x x2 ) ( x x0 )( x x2 ) ( x x0 )( x x1 )
, y
( x0 x1 )( x0 x2 ) ( x1 x0 )( x1 x2 ) ( x2 x0 )( x2 x1 )
Donde los términos son los
coeficientes L2,0, L2,1 , L2,2 de Lagrange.
26