Interpolaci on Spline - WordPress.com · Interpolaci on Spline Funciones spline de grado uno...

33
Interpolaci´onSpline Funciones spline de grado uno Funciones spline de grado dos Funciones spline de grado tres Interpolaci´ on Spline J. Armando Lara R. Ingenier´ ıaElectr´onica Instituto Tecnol´ ogico de L´ azaroC´ardenas Invierno 2011-2012 Armando Lara An´alisisNum´ erico

Transcript of Interpolaci on Spline - WordPress.com · Interpolaci on Spline Funciones spline de grado uno...

Page 1: Interpolaci on Spline - WordPress.com · Interpolaci on Spline Funciones spline de grado uno Funciones spline de grado dos Funciones spline de grado tres Funciones spline de grado

Interpolacion SplineFunciones spline de grado unoFunciones spline de grado dosFunciones spline de grado tres

Interpolacion Spline

J. Armando Lara R.

Ingenierıa ElectronicaInstituto Tecnologico de Lazaro Cardenas

Invierno 2011-2012

Armando Lara Analisis Numerico

Page 2: Interpolaci on Spline - WordPress.com · Interpolaci on Spline Funciones spline de grado uno Funciones spline de grado dos Funciones spline de grado tres Funciones spline de grado

Interpolacion SplineFunciones spline de grado unoFunciones spline de grado dosFunciones spline de grado tres

Outline

1 Interpolacion SplineIntroduccion

2 Funciones spline de grado uno

3 Funciones spline de grado dos

4 Funciones spline de grado tres

Armando Lara Analisis Numerico

Page 3: Interpolaci on Spline - WordPress.com · Interpolaci on Spline Funciones spline de grado uno Funciones spline de grado dos Funciones spline de grado tres Funciones spline de grado

Interpolacion SplineFunciones spline de grado unoFunciones spline de grado dosFunciones spline de grado tres

Outline

1 Interpolacion SplineIntroduccion

2 Funciones spline de grado uno

3 Funciones spline de grado dos

4 Funciones spline de grado tres

Armando Lara Analisis Numerico

Page 4: Interpolaci on Spline - WordPress.com · Interpolaci on Spline Funciones spline de grado uno Funciones spline de grado dos Funciones spline de grado tres Funciones spline de grado

Interpolacion SplineFunciones spline de grado unoFunciones spline de grado dosFunciones spline de grado tres

Outline

1 Interpolacion SplineIntroduccion

2 Funciones spline de grado uno

3 Funciones spline de grado dos

4 Funciones spline de grado tres

Armando Lara Analisis Numerico

Page 5: Interpolaci on Spline - WordPress.com · Interpolaci on Spline Funciones spline de grado uno Funciones spline de grado dos Funciones spline de grado tres Funciones spline de grado

Interpolacion SplineFunciones spline de grado unoFunciones spline de grado dosFunciones spline de grado tres

Outline

1 Interpolacion SplineIntroduccion

2 Funciones spline de grado uno

3 Funciones spline de grado dos

4 Funciones spline de grado tres

Armando Lara Analisis Numerico

Page 6: Interpolaci on Spline - WordPress.com · Interpolaci on Spline Funciones spline de grado uno Funciones spline de grado dos Funciones spline de grado tres Funciones spline de grado

Interpolacion SplineFunciones spline de grado unoFunciones spline de grado dosFunciones spline de grado tres

Outline

1 Interpolacion SplineIntroduccion

2 Funciones spline de grado uno

3 Funciones spline de grado dos

4 Funciones spline de grado tres

Armando Lara Analisis Numerico

Page 7: Interpolaci on Spline - WordPress.com · Interpolaci on Spline Funciones spline de grado uno Funciones spline de grado dos Funciones spline de grado tres Funciones spline de grado

Outline

1 Interpolacion SplineIntroduccion

2 Funciones spline de grado uno

3 Funciones spline de grado dos

4 Funciones spline de grado tres

Page 8: Interpolaci on Spline - WordPress.com · Interpolaci on Spline Funciones spline de grado uno Funciones spline de grado dos Funciones spline de grado tres Funciones spline de grado

Interpolacion SplineFunciones spline de grado unoFunciones spline de grado dosFunciones spline de grado tres

Introduccion

Introduccion

La idea central es que en vez de usar un solo polinomio parainterpolar los datos, podemos usar segmentos de polinomios yunirlos adecuadamente para formar nuestra interpolacion.Podemos decir, que una funcion spline esta formada por variospolinomios, cada uno definido en un intervalo y que se unenentre si bajo ciertas condiciones de continuidad. Cabemencionar que entre todas, las splines cubicas han resultado serlas mas adecuadas.

Armando Lara Analisis Numerico

Page 9: Interpolaci on Spline - WordPress.com · Interpolaci on Spline Funciones spline de grado uno Funciones spline de grado dos Funciones spline de grado tres Funciones spline de grado

Interpolacion SplineFunciones spline de grado unoFunciones spline de grado dosFunciones spline de grado tres

Introduccion

Desarrollo del Metodo

Definicion (Splines de grado k) Dada nuestra tabla de datos:

Cuadro: Datos

x y

x0 y0

x1 y1

. . . . . .

xn yn

donde suponemos que x0 < x1 < x2 < · · · < xn y dado que k esun numero entero positivo

Armando Lara Analisis Numerico

Page 10: Interpolaci on Spline - WordPress.com · Interpolaci on Spline Funciones spline de grado uno Funciones spline de grado dos Funciones spline de grado tres Funciones spline de grado

Interpolacion SplineFunciones spline de grado unoFunciones spline de grado dosFunciones spline de grado tres

Introduccion

Desarrollo del Metodo

una funcion de interpolacion spline de grado k, para la tabla dedatos, es una funcion S(x) tal que :

1 S(xi) = yi , para toda i = 0, 1, . . . , n.

2 S(x) es un polinomio de grado ≤ k en cada subintervalo[xi−1, xi].

3 S(x) tiene derivada continua hasta de orden k − 1 en[x0, xn].

Armando Lara Analisis Numerico

Page 11: Interpolaci on Spline - WordPress.com · Interpolaci on Spline Funciones spline de grado uno Funciones spline de grado dos Funciones spline de grado tres Funciones spline de grado

Interpolacion SplineFunciones spline de grado unoFunciones spline de grado dosFunciones spline de grado tres

Funciones spline de grado uno

Dados los n + 1 puntos de la Tabla 1, Una funcion spline degrado 1 que interpole los datos es simplemente unir cada uno delos puntos mediante segmentos de recta, como sigue:

Figura: Naturaleza de la interpolacion spline de grado uno.

Claramente esta funcion cumple con las condiciones de la splinede grado 1.

Armando Lara Analisis Numerico

Page 12: Interpolaci on Spline - WordPress.com · Interpolaci on Spline Funciones spline de grado uno Funciones spline de grado dos Funciones spline de grado tres Funciones spline de grado

Interpolacion SplineFunciones spline de grado unoFunciones spline de grado dosFunciones spline de grado tres

Funciones spline de grado uno

Ası, tenemos que para este caso:

S(x) =

s1(x) si x ∈ [x0, x1]

s2(x) si x ∈ [x1, x2]

s3(x) si x ∈ [x2, x3]...

sn(x) si x ∈ [xn−1, xn]

donde:

1 Sj(x) es un polinomio de grado menor o igual que 1

2 S(x) tiene derivada continua de orden k − 1 = 0.

3 S(xj) = yj , para j = 0, 1, . . . , n.

Armando Lara Analisis Numerico

Page 13: Interpolaci on Spline - WordPress.com · Interpolaci on Spline Funciones spline de grado uno Funciones spline de grado dos Funciones spline de grado tres Funciones spline de grado

Interpolacion SplineFunciones spline de grado unoFunciones spline de grado dosFunciones spline de grado tres

Funciones spline de grado uno

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

S(x) =

y0 + f [x1, x0](x− x0) si x ∈ [x0, x1]

y1 + f [x2, x1](x− x1) si x ∈ [x1, x2]... si x ∈ [x2, x3]

yn−1 + f [xn, xn−1](x− xn−1) si x ∈ [xn−1, xn]

donde f [xi, xj ] es la diferencia dividida de Newton.

Armando Lara Analisis Numerico

Page 14: Interpolaci on Spline - WordPress.com · Interpolaci on Spline Funciones spline de grado uno Funciones spline de grado dos Funciones spline de grado tres Funciones spline de grado

Interpolacion SplineFunciones spline de grado unoFunciones spline de grado dosFunciones spline de grado tres

Funciones spline de grado dos

Veamos un ejemplo concreto, consideremos los siguientes datos:

Cuadro: Datos

x y

3 2.5

4.5 1

7 2.5

9 0.5

Armando Lara Analisis Numerico

Page 15: Interpolaci on Spline - WordPress.com · Interpolaci on Spline Funciones spline de grado uno Funciones spline de grado dos Funciones spline de grado tres Funciones spline de grado

Interpolacion SplineFunciones spline de grado unoFunciones spline de grado dosFunciones spline de grado tres

Funciones spline de grado dos

procedamos a calcular la interpolacion por splines de grado 2.Primero que nada, vemos que se forman tres intervalos:[3, 4,5], [4,5, 7], [7, 9] En cada uno de estos intervalos, debemosdefinir una funcion polinomial de grado 2, como sigue:

S(x) =

a1x

2 + b1x + c1 si x ∈ [3, 4,5]

a2x2 + b2x + c2 si x ∈ [4,5, 7]

a3x2 + b3x + c3 si x ∈ [7, 9]

Armando Lara Analisis Numerico

Page 16: Interpolaci on Spline - WordPress.com · Interpolaci on Spline Funciones spline de grado uno Funciones spline de grado dos Funciones spline de grado tres Funciones spline de grado

Interpolacion SplineFunciones spline de grado unoFunciones spline de grado dosFunciones spline de grado tres

Funciones spline de grado dos

Hacemos que la spline pase por los puntos de la tabla de datos,es decir, se debe cumplir que:s(3) = 2,5, s(4,5) = 1, s(7) =2,5, s(9) = 0,5Ası se forman las siguientes ecuaciones:

s(3) = 2,5⇒ 9a1 + 3b1 + c1 = 2,5

s(4,5) = 1⇒

{(4,5)2a1 + 4,5b1 + c1 = 1

(4,5)2a2 + 4,5b2 + c2 = 1

s(7) = 2,5⇒

{(49)2a2 + 7b2 + c2 = 2,5

(49)2a3 + 7b3 + c3 = 2,5

s(9) = 81a3 + 9b3 + c3 = 0,5

Armando Lara Analisis Numerico

Page 17: Interpolaci on Spline - WordPress.com · Interpolaci on Spline Funciones spline de grado uno Funciones spline de grado dos Funciones spline de grado tres Funciones spline de grado

Interpolacion SplineFunciones spline de grado unoFunciones spline de grado dosFunciones spline de grado tres

Funciones spline de grado dos

Hasta aquı, tenemos un total de 6 ecuaciones con 9 incognitas.El siguiente paso es manejar la existencia de las derivadascontinuas. En el caso de las splines de grado 2, necesitamos quela spline tenga derivada continua de orden k − 1 = 1, es decir,primera derivada continua.Calculamos primero la primera derivada:

S′(x) =

2a1 + b1 si x ∈ [3, 4,5]

2a2 + b2 si x ∈ [4,5, 7]

2a3 + b3 si x ∈ [7, 9]

Armando Lara Analisis Numerico

Page 18: Interpolaci on Spline - WordPress.com · Interpolaci on Spline Funciones spline de grado uno Funciones spline de grado dos Funciones spline de grado tres Funciones spline de grado

Interpolacion SplineFunciones spline de grado unoFunciones spline de grado dosFunciones spline de grado tres

Funciones spline de grado dos

Vemos que esta derivada esta formada por segmentos de rectas,que pudieran presentar discontinuidad en los cambios deintervalo. Es decir, las posibles discontinuidades son x = 4,5 yx = 7 . Por lo tanto para que S′(x) sea continua, se debecumplir que:

2a1(4,5) + b1 = 2a2(4,5) + b2 ⇒ 9a1 + b1 = 9a2 + b2

Tambien debe cumplirse que:

2a2(7) + b2 = 2a3(7) + b3 ⇒ 14a2 + b2 = 14a3 + b3

Ası, tenemos un total de 8 ecuaciones vs. 9 incognitas; esto nosda un grado de libertad para elegir alguna de las incognitas.Elegimos por simple conveniencia a1 = 0 .

Armando Lara Analisis Numerico

Page 19: Interpolaci on Spline - WordPress.com · Interpolaci on Spline Funciones spline de grado uno Funciones spline de grado dos Funciones spline de grado tres Funciones spline de grado

Interpolacion SplineFunciones spline de grado unoFunciones spline de grado dosFunciones spline de grado tres

Funciones spline de grado dos

De esta forma, tenemos un total de 8 ecuaciones con 8incognitas. Estas son las siguientes:

3b1c1 = 2,5

4,5b1c1 = 1

20,25a2 + (4,5)b2 + c2 = 1

49a2 + 7b2 + c2 = 2,5

49a3 + 7b3 + c3 = 2,5

81a3 + 9b3 + c3 = 0,5

b1 = 9a2 + b2

14a2 + b2 = 14a3 + b3

Armando Lara Analisis Numerico

Page 20: Interpolaci on Spline - WordPress.com · Interpolaci on Spline Funciones spline de grado uno Funciones spline de grado dos Funciones spline de grado tres Funciones spline de grado

Interpolacion SplineFunciones spline de grado unoFunciones spline de grado dosFunciones spline de grado tres

Funciones spline de grado dos

Este sistema de ecuaciones tiene la siguiente forma matricial:

3 1 0 0 0 0 0 04,5 1 0 0 0 0 0 00 0 20,25 4,5 1 0 0 00 0 49 7 1 0 0 00 0 0 0 0 49 7 10 0 0 0 0 81 9 11 0 −9 −1 0 0 0 00 0 14 1 0 −14 −1 0

b1

c1

a2

b2

c2

a3

b3

c3

=

2,511

2,52,50,500

Armando Lara Analisis Numerico

Page 21: Interpolaci on Spline - WordPress.com · Interpolaci on Spline Funciones spline de grado uno Funciones spline de grado dos Funciones spline de grado tres Funciones spline de grado

Interpolacion SplineFunciones spline de grado unoFunciones spline de grado dosFunciones spline de grado tres

Funciones spline de grado dos

Se obtiene la siguiente solucion:

b1 = −1, c1 = 5,5, a2 = 0,64, b2 = −6,76, c2 = 18,46, a3 = −1,6, b3 = 24,6, c3 = −91,3

Sustituyendo estos valores (junto con a1 = 0 ), obtenemos lafuncion spline cuadratica que interpola la tabla de datos dada:

S(x) =

−x + 5,5 six ∈ [3, 4,5]

0,64x2 − 6,76x + 18,46 six ∈ [4,5, 7]

−1,6x2 + 24,6x− 91,3 six ∈ [7, 9]

Armando Lara Analisis Numerico

Page 22: Interpolaci on Spline - WordPress.com · Interpolaci on Spline Funciones spline de grado uno Funciones spline de grado dos Funciones spline de grado tres Funciones spline de grado

Interpolacion SplineFunciones spline de grado unoFunciones spline de grado dosFunciones spline de grado tres

Funciones spline de grado dos

La grafica de la Figura 2, contiene tanto los puntos iniciales dela tabla de datos, ası como la spline cuadratica.

Figura: Interpolacion spline de grado dos.

El siguiente caso, que es el mas importante en las aplicaciones,sigue exactamente los mismos pasos del ejemplo que acabamosde resolver, solamente que en vez de trabajar con polinomioscuadraticos, lo hace con polinomios cubicos.

Armando Lara Analisis Numerico

Page 23: Interpolaci on Spline - WordPress.com · Interpolaci on Spline Funciones spline de grado uno Funciones spline de grado dos Funciones spline de grado tres Funciones spline de grado

Interpolacion SplineFunciones spline de grado unoFunciones spline de grado dosFunciones spline de grado tres

Funciones spline de grado tres

Dados n + 1 datos:

Cuadro: Datos

x y

x0 y0

x1 y1

. . . . . .

xn yn

Armando Lara Analisis Numerico

Page 24: Interpolaci on Spline - WordPress.com · Interpolaci on Spline Funciones spline de grado uno Funciones spline de grado dos Funciones spline de grado tres Funciones spline de grado

Interpolacion SplineFunciones spline de grado unoFunciones spline de grado dosFunciones spline de grado tres

Funciones spline de grado tres

Una spline cubica que interpola estos datos, es una funcion S(x)definida como sigue:

S(x) =

S1(x) si x ∈ [x0, x1]

S2(x) si x ∈ [x1, x2]

S3(x) si x ∈ [x2, x3]...

Sn(x) si x ∈ [xn−1, xn]

donde Si(x) es un polinomio cubico; Si(xi) = yi , para todai = 0, 1, ..., n y tal que S(x) tiene primera y segunda derivadascontinuas en [x0, xn].

Armando Lara Analisis Numerico

Page 25: Interpolaci on Spline - WordPress.com · Interpolaci on Spline Funciones spline de grado uno Funciones spline de grado dos Funciones spline de grado tres Funciones spline de grado

Interpolacion SplineFunciones spline de grado unoFunciones spline de grado dosFunciones spline de grado tres

Funciones spline de grado tres

Ejemplo 1 Interpolar los siguientes datos mediante una splinecubica:

Cuadro: Datos

x y

2 -1

3 2

5 -7

Armando Lara Analisis Numerico

Page 26: Interpolaci on Spline - WordPress.com · Interpolaci on Spline Funciones spline de grado uno Funciones spline de grado dos Funciones spline de grado tres Funciones spline de grado

Interpolacion SplineFunciones spline de grado unoFunciones spline de grado dosFunciones spline de grado tres

Funciones spline de grado tres

Solucion:Definimos un polinomio cubico en cada uno de los intervalosque se forman:

S(x) =

{a1x

3 + b1x2 + c1x + d1 six ∈ [2, 3]

a2x3 + b2x

2 + c2x + d2 six ∈ [3, 5]

A continuacion, hacemos que se cumpla la condicion de que laspline debe pasar por los puntos dados en la tabla. Ası, tenemosque:

S(2) = −1⇒ 8a1 + 4b1 + 2c1 + d1 = −1

S(3) = 2⇒ 27a1 + 9b1 + 3c1 + d1 = 2

S(5) = −7⇒ 125a2 + 25b2 + 5c2 + d2 = 7

Armando Lara Analisis Numerico

Page 27: Interpolaci on Spline - WordPress.com · Interpolaci on Spline Funciones spline de grado uno Funciones spline de grado dos Funciones spline de grado tres Funciones spline de grado

Interpolacion SplineFunciones spline de grado unoFunciones spline de grado dosFunciones spline de grado tres

Funciones spline de grado tres

Ahora calculamos la primera derivada de s (x) :

S′(x) =

{3a1x

2 + 2b1x + c1 six ∈ [2, 3]

3a2x2 + 2b2x + c2 six ∈ [3, 5]

Al igual que en el caso de las splines cuadraticas, se presentanecuaciones que pueden presentar discontinuidad en los cambiosde intervalo; las posibles discontinuidades son los puntos dondese cambia de intervalo, en este caso x = 3 . Para evitar estadiscontinuidad, evaluamos x = 3 en los dos polinomios eigualamos:

3a1(3)2+2b1(3)+c1 = 3a2(3)2+2b2(3)+c2 ⇒ 27a1+6b1+c1 = 27a2+6b2+c2

Armando Lara Analisis Numerico

Page 28: Interpolaci on Spline - WordPress.com · Interpolaci on Spline Funciones spline de grado uno Funciones spline de grado dos Funciones spline de grado tres Funciones spline de grado

Interpolacion SplineFunciones spline de grado unoFunciones spline de grado dosFunciones spline de grado tres

Funciones spline de grado tres

Analogamente procedemos con la segunda derivada:

S′(x) =

{6a1x + 2b1 six ∈ [2, 3]

6a2x + 2b2 six ∈ [3, 5]

Para lograr que S′′(x) sea continua:

6a1(3) + 2b1 = 6a2(3) + 2b2 ⇒ 18a1 + 2b1 = 18a2 + 2b2

En este punto contamos con 6 ecuaciones y 8 incognitas, por lotanto tenemos 2 grados de libertad; en general, se agregan lassiguientes 2 condiciones:

S′′(x0) = 0 y S′′(xn) = 0

Armando Lara Analisis Numerico

Page 29: Interpolaci on Spline - WordPress.com · Interpolaci on Spline Funciones spline de grado uno Funciones spline de grado dos Funciones spline de grado tres Funciones spline de grado

Interpolacion SplineFunciones spline de grado unoFunciones spline de grado dosFunciones spline de grado tres

Funciones spline de grado tres

De lo cual vamos a obtener:

S′′(2) = 0⇒ 6a1(2) + 2b1 = 0 ∴ 12a1 + 2b1 = 0

S′′(5) = 0⇒ 6a2(5) + 2b2 = 0 ∴ 30a2 + 2b2 = 0

Con lo cual, hemos completado un juego de 8 ecuaciones vs. 8incognitas, el cual es el siguiente:

8a1 + 4b1 + 2c1 + d1 = −1

27a1 + 9b1 + 3c1 + d1 = 2

27a2 + 9b2 + 3c2 + d2 = 2

125a2 + 25b2 + 5c2 + d2 = −7

27a1 + 6b1 + c1 = 27a2 + 6b2 + c2

18a1 + 2b1 = 18a2 + 2b2

12a1 + 2b1 = 0

30a2 + 2b2 = 0

Armando Lara Analisis Numerico

Page 30: Interpolaci on Spline - WordPress.com · Interpolaci on Spline Funciones spline de grado uno Funciones spline de grado dos Funciones spline de grado tres Funciones spline de grado

Interpolacion SplineFunciones spline de grado unoFunciones spline de grado dosFunciones spline de grado tres

Funciones spline de grado tres

Cuya forma matricial es la siguiente:

8 4 2 1 0 0 0 027 9 3 1 0 0 0 00 0 0 0 27 9 3 10 0 0 0 125 25 5 127 6 1 0 −27 −6 −1 018 2 0 0 −18 −2 0 012 2 0 0 0 0 0 00 0 0 0 30 2 0 0

a1

b1

c1

d2

a2

b2

c2

d2

=

−122−70000

Armando Lara Analisis Numerico

Page 31: Interpolaci on Spline - WordPress.com · Interpolaci on Spline Funciones spline de grado uno Funciones spline de grado dos Funciones spline de grado tres Funciones spline de grado

Interpolacion SplineFunciones spline de grado unoFunciones spline de grado dosFunciones spline de grado tres

Funciones spline de grado tres

Obtenemos la siguiente solucion:

a1 = −1,25 b1 = 7,5 c1 = −10,75 d1 = 0,5 a1 = 0,625 b2 = −9,375 c3 = 39,875 d3 = −50,125

Sustituyendo estos valores en nuestra funcion inicial, vemos quela spline cubica para la tabla de datos dada, queda definidacomo sigue:

S(x) =

{−1,25x3 + 7,5x2 − 10,75x + 0,5 si x ∈ [2, 3]

0,625x3 − 9,375x2 + 39,875x− 50,125 si x ∈ [3, 5]

Armando Lara Analisis Numerico

Page 32: Interpolaci on Spline - WordPress.com · Interpolaci on Spline Funciones spline de grado uno Funciones spline de grado dos Funciones spline de grado tres Funciones spline de grado

Interpolacion SplineFunciones spline de grado unoFunciones spline de grado dosFunciones spline de grado tres

Funciones spline de grado tres

Mostramos la grafica correspondiente a este ejercicio en laFigura 3.

Figura: Interpolacion spline de grado tres.

Armando Lara Analisis Numerico

Page 33: Interpolaci on Spline - WordPress.com · Interpolaci on Spline Funciones spline de grado uno Funciones spline de grado dos Funciones spline de grado tres Funciones spline de grado

Interpolacion SplineFunciones spline de grado unoFunciones spline de grado dosFunciones spline de grado tres

Referencias

[1] D. Hearn, M. P. Baker, Graficas por Computadora, 2oedicion. Prentice Hall Hispanoamerica S.A., 1994.[2] C. Delrieux, Introduccion a la Computacion Grafica. Dep deIngenierıa Electrica, Universidad Nacional del Sur, 2000.[3] T. Sederberg, BYU Bezier curves, Chapter 2[4]J.D. Foley et al, Computer Graphics: Principles and Practicein C, 2nd ed., Addison Wesley,1992.

Armando Lara Analisis Numerico