interpolaci on spline - wordpress.com · interpolaci on spline funciones spline de grado uno...
TRANSCRIPT
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
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
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
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
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
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
Outline
1 Interpolacion SplineIntroduccion
2 Funciones spline de grado uno
3 Funciones spline de grado dos
4 Funciones spline de grado tres
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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