28
INTERPOLACION Universitaria: Priscila Wendy Espinoza Tito II / 2012

Interpolacion

Embed Size (px)

Citation preview

Page 1: Interpolacion

INTERPOLACIONUniversitaria: Priscila Wendy Espinoza Tito

II / 2012

Page 2: Interpolacion

IntroducciónEn ciertos casos el usuario conoce el valor de una

función f(x) en una serie de puntos x1, x2, · · · , xn, pero no se conoce una expresión analítica de f(x) que permita calcular el valor de la función para un punto.

La idea de la interpolación es poder estimar f(x) para un x arbitrario, a partir de la construcción de una curva o superficie que une los puntos donde se han realizado las mediciones y cuyo valor si se conoce. Se asume que el punto arbitrario x se encuentra dentro de los límites de los puntos de medición, en caso contrario se llamaría extrapolación.

Page 3: Interpolacion

En este capítulo estudiaremos el importantísimo tema de la interpolación de datos. Veremos dos tipos de interpolación: la interpolación POLINOMIAL y la interpolación SEGMENTARIA (splines). . Comencemos dando la definición general.Definición. Dados puntos que corresponden a

los datos:

y los cuales se representan gráficamente como puntos en el plano cartesiano

Page 4: Interpolacion

Si existe una función definida en el intervalo (donde suponemos que ), tal que para , entonces a se le llama una función de interpolación de los datos, cuando es usada para aproximar valores dentro del intervalo , y se le llama función de extrapolación de los datos, cuando está definida y es usada para aproximar valores fuera del intervalo.

Page 5: Interpolacion

Diferencias Divididas Finitas de NewtonSe definen de la siguiente manera

ji

jiji xx

xfxfxxf

)()(

],[

ki

kjjikji xx

xxfxxfxxxf

],[],[

],,[

0

011011

],,[],,[],,,,[

xx

xxfxxfxxxxf

n

nnnn

Page 6: Interpolacion

El polinomio de Newton se define de la siguiente manera

donde

110102010 nn xxxxxxbxxxxbxxbbxf

00 xfb

],[ 011 xxfb

0122 ,, xxxfb

0,, xxfb nn

Page 7: Interpolacion

Para calcular los coeficientes , es conveniente construir una tabla de diferencias divididas como la siguiente :

Page 8: Interpolacion

Ejemplo. Calcular la tabla de diferencias divididas finitas con los siguientes datos :

Procedemos como sigue

Por lo tanto el polinomio de Newton es:

Page 9: Interpolacion

Polinomio de Interpolación de LagrangeSe plantea como sigue

Donde los polinomios se llaman los polinomios de Lagrange, correspondientes a la tabla de datos.

Como se debe satisfacer que , esto se cumple si y

para toda .Y así sucesivamente, veremos finalmente que la

condición se cumple si y para toda .Por lo tanto, planteamos como sigue:

Page 10: Interpolacion

Con esto se cumple la segunda condición sobre .

La constante c se determinará para hacer que se cumpla la primera condición:

Por lo tanto el polinomio queda definido como:

Análogamente se puede deducir que:

nxxxxxxcxl 0201000 11

nxxxxxxc

02010

1

para j=1,…,n

Page 11: Interpolacion

Ejemplo. Calcular el polinomio de Lagrange usando los siguientes datos:

Solución

donde

Sustituyendo arriba, el polinomio de Lagrange queda definido como sigue:

)(3)(2)()(2)( 3210 xlxlxlxlxf

48

)7)(5)(3(

)6)(4)(2(

)7)(5)(3()(0

xxxxxx

xl

16

)7)(5)(1(

)4)(2)(2(

)7)(5)(1()(1

xxxxxx

xl

16

)7)(3)(1(

)2)(2)(4(

)7)(3)(1()(2

xxxxxx

xl

48

)5)(3)(1(

)2)(4)(6(

)5)(3)(1()(3

xxxxxxxl

Page 12: Interpolacion

Interpolación de SplinesEsta interpolación se llama interpolación

segmentaria o interpolación por splines. La idea central es que en vez de usar un solo polinomio para interpolar los datos, podemos usar segmentos de polinomios y unirlos adecuadamente para formar nuestra interpolación.

Cabe mencionar que entre todas, las splines cúbicas han resultado ser las más adecuadas para aplicaciones.

Page 13: Interpolacion

Dada nuestra tabla de datos,

donde suponemos que nxxx 10 , y dado k un número entero positivo, una función de interpolación spline de grado k, para la tabla de

datos, es una función )(xs tal que :

i) ii yxs )( , para toda ni ,,1,0 .

ii) xs es un polinomio de grado k en cada subintervalo ii xx ,1 .

iii ) xs tiene derivada contínua hasta de orden 1k en nxx ,0 .

Page 14: Interpolacion

Dados los n+1 puntos

  Claramente esta función cumple con las condiciones de la spline de grado 1. Así, tenemos que para este caso:

FUNCIONES SPLINES DE GRADO 1

donde:

i) xs j es un polinomio de grado menor o igual que 1

ii) xs tiene derivada continua de orden k-1=0.

iii) jj yxs , para nj ,,1,0 .

Page 15: Interpolacion

FUNCIONES SPLINES DE GRADO 2 Para aclarar bien la idea, veamos un ejemplo concreto,

consideremos los siguientes datos :

Por lo tanto, la spline de grado 1 queda definida como :

nnnnnn xxxsixxxxfy

xxxsixxxxfy

xxxsixxxxfy

xs

,,

,,

,,

1111

211121

100010

donde ],[ ji xxf es la diferencia dividida de Newton.

Page 16: Interpolacion

Primero que nada, vemos que se forman tres intervalos :

9,7

7,5.4

5.4,3

En cada uno de estos intervalos, debemos definir una función polinomial de grado 2, como sigue:

9,7

7,5.4

5.4,3

332

3

222

2

112

1

xsicxbxa

xsicxbxa

xsicxbxa

xs

Primero, hacemos que la spline pase por los puntos de la tabla de datos. Es decir, se debe cumplir que:

5.0)9(,5.2)7(,1)5.4(,5.2)3( ssss

Así, se forman las siguientes ecuaciones:

5.2395.2)3( 111 cbas

15.4)5.4(

15.4)5.4(1)5.4(

2222

1112

cba

cbas

5.2749

5.27495.2)7(

333

222

cba

cbas

5.09815.0)9( 333 cbas

Page 17: Interpolacion

 

Hasta aquí, tenemos un total de 6 ecuaciones vs. 9 incógnitas. El siguiente paso es manejar la existencia de las derivadas contínuas. En el caso de las splines de grado 2, necesitamos que la spline tenga derivada contínua de orden k-1=1, es decir, primera derivada continua. Calculamos primero la primera derivada:

9,72

7,5.42

5.4,32

33

22

11

xsibxa

xsibxa

xsibxa

xs

Vemos que esta derivada está formada por segmentos de rectas, que pudieran presentar discontinuidad en los cambios de intervalo. Es decir, las posibles discontinuidades son 5.4x y 7x . Por lo tanto para que

xs sea contínua, se debe cumplir que:

2211 5.425.42 baba o lo que es lo mismo,

2211 99 baba También debe cumplirse que:

3322 7272 baba o lo que es lo mismo,

3322 1414 baba

Page 18: Interpolacion

Así, tenemos un total de 8 ecuaciones vs. 9 incognitas; esto nos da un grado de libertad para elegir alguna de las incógnitas. Elegimos por

simple conveniencia 01 a . De esta forma, tenemos un total de 8 ecuaciones vs. 8 incógnitas. Estas son las siguientes:

3322

221

333

333

222

222

11

11

1414

9

5.0981

5.2749

5.2749

15.425.20

15.4

5.23

baba

bab

cba

cba

cba

cba

cb

cb

Este sistema de ecuaciones tiene la siguiente forma matricial:

0

0

5.0

5.2

5.2

1

1

5.2

0114011400

00001901

198100000

174900000

000174900

00015.425.2000

00000015.4

00000013

3

3

3

2

2

2

1

1

c

b

a

c

b

a

c

b

Page 19: Interpolacion

Usando Mathematica se obtiene la siguiente solución:

3.91

6.24

6.1

46.18

76.6

64.0

5.5

1

3

3

3

2

2

2

1

1

c

b

a

c

b

a

c

b

Sustituyendo estos valores (junto con 01 a ), obtenemos la función spline cuadrática que interpola la tabla de datos dada:

9,73.916.246.1

7,5.446.1876.664.0

5.4,35.5

2

2

xsixx

xsixx

xsix

xs

3 4.5 7 9

-1

1

2

3

4

5

          

Page 20: Interpolacion

Métodos Interpolación en MatlabEn matlab encontramos las siguientes

funciones para interpolar datos:

interp1 interpolación de datos unidimensionales.

spline interpolación con el método de spline cúbica

polyfit interpolación con polinomios

Page 21: Interpolacion

El comando “interp1”El comando interp1 se emplea para interpolar una serie de

datos. El formato de este comando es:yi = interp1(x, y, xi, método)

Donde:x : abscisa de los puntos a interpolar, expresada como

vector fila.y : ordenada de los puntos a interpolar, expresada como

vector fila.xi : abscisas para construir la función de interpolación,

expresada como vector fila. Si es un solo valor, calculará el valor interpolando con la función declarada en métodos.

método: determina el método de interpolación, entre:

Page 22: Interpolacion

Los metodosnearest interpolación asignado el valor del

vecino más cercano.linear interpolación lineal (default)spline interpolación con spline cúbicapchip interpolación con polinomios de

Hermitecubic (igual que 'pchip')v5cubic interpolación Cúbica usada in

MATLAB 5

Page 23: Interpolacion

Ejemplo de implementación

Page 24: Interpolacion

El comando “spline”Otra manera de realizar una interpolación de tipo spline,

es invocando el comando spline, cuyo formato se muestra a continuación:

yy = spline (x, y, xx)Donde:x : abscisa de los puntos a interpolar, expresada como

vector fila.y : ordenada de los puntos a interpolar, expresada como

vector fila.xx : abscisas para construir la función de interpolación,

expresada como vector fila. Si es un solo valor calculará el valor interpolando.

Page 25: Interpolacion

Ejemplo de implementación

Page 26: Interpolacion

El comando “polyfit”Calcula los coeficientes de un polinomio de grado “n” que ajustan,

mediante mínimos cuadrados, a una serie de datos. El formato de este comando se resume, así:

yy = polyfit (x, y, orden)x : abscisa de los puntos a interpolar, expresada como vector fila.y : ordenada de los puntos a interpolar, expresada como vector fila.orden: indica el orden del polinomio que se utilizará en el ajuste.Además, se usa el comando polyval para calcular el valor de un

polinomio para un dado valor de x, según la forma:y = polyval ( p , x )

donde: p es el polinomio, ingresado como vector fila y x es el valor de la incógnita cuya imagen se desea calcular.

Page 27: Interpolacion

Ejemplo de implementación

Page 28: Interpolacion

Gracias por su atención