Revista analisis numerico rhosnel

Page 1

[INTERPOLACIÓN] 1 de julio de 2014 INTERPOLACIÓN 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 n + 1 puntos que corresponden a los datos:

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

Si existe una función f (x ) definida en el intervalo [ x0 , xn ] (donde suponemos que

x 0 < x1 <  < x n

), tal que f ( xi ) = yi para i = 0,1,2,, n , entonces a f (x) se le llama una función de interpolación de los datos, cuando es usada para aproximar valores dentro del intervalo [ x0 , xn ] , y se le llama

El tipo de interpolación que uno elige, depende generalmente de la naturaleza de los datos que se están manejando, así como de los valores intermedios que se están esperando. Un tipo muy importante es la interpolación por funciones polinomiales. Puesto que evidentemente pueden existir una infinidad de funciones polinomiales de interpolación para una misma tabla de datos, se hace una petición extra para que el polinomio de interpolación , sea único. Definición. Un polinomio de interpolación es una función polinomial que además de interpolar los datos, es el de menor grado posible. Caso n=0 Tenemos los datos:

En este caso, tenemos que f ( x) = y0 (polinomio constante) es el polinomio de f ( x0 ) = y0 , por lo menor grado tal que tanto, es el polinomio de interpolación. Caso n=1 Tenemos los datos:

función de extrapolación de los datos, cuando está definida y es usada para aproximar valores fuera del intervalo.

Evidentemente pueden existir varios tipos de funciones que interpolen los mismos datos; por ejemplo, funciones trigonométricas, funciones exponenciales, funciones polinomiales, combinaciones de éstas, etc.

En este caso, el polinomio de interpolación es la función lineal que une a los dos puntos dados. Por lo tanto, tenemos que y − y0 f ( x ) = y0 + 1 ( x − x0 ) x1 − x0 es el polinomio de interpolación. La siguiente gráfica representa este caso:

RHOSNEL RAMOS | INTERPOLACIÓN DE SPLINES 1


[INTERPOLACIÓN] 1 de julio de 2014 Si asignamos x = x1 , el valor de b2 queda anulado, resultando lo siguiente: f ( x1 ) = b0 + b1 ( x1 − x0 )

Observación. Vemos que en el polinomio de interpolación del caso n=1 se encuentra y0 , que es el como primer término, polinomio de interpolación del caso n=0. Continuemos: Caso n=2 Tenemos los datos:

Como se debe cumplir que f ( x1 ) = y1 y y0 = b0 , ya sabemos que entonces y1 = b0 + b1 ( x1 − x0 ) , de lo cual obtenemos el valor para b1 : y1 − y0 = b1 x1 − x0

Asignando x = x2 , vamos a obtener : f ( x2 ) = b0 + b1 ( x2 − x0 ) + b2 ( x2 − x0 )( x2 − x1 ) Para este caso, el polinomio de interpolación va a ser un polinomio de grado 2. Tomando en cuenta la observación anterior, intuímos que el polinomio de interpolación será como sigue: término cuadrático Por lo tanto, planteamos el polinomio de interpolación como sigue: f ( x) = b0 + b1 ( x − x0 ) + b2 ( x − x0 )( x − x1 ) Si asignamos valores de b1

x = x0 , se anulan los y b2 , quedándonos el

resultado: f ( x0 ) = b0 Como se debe cumplir que entonces:

f ( x0 ) = y0 ,

Como se debe cumplir que

f ( x2 ) = y 2 ,

y1 − y0 = b1 y = b x − x 0 0 1 0 y ya sabemos que y , sustituímos estos datos para después despejar el valor de b2 :

y 2 = y0 +

y1 − y0 ( x2 − x0 ) + b2 ( x2 − x0 )( x2 − x1 ) x1 − x0

De lo cual podemos hacer un despeje parcial para lograr la siguiente igualdad : y2 − y0 −

y1 − y0 ( x2 − x0 ) x1 − x0 = b2 ( x2 − x0 ) x2 − x1

Ahora en el numerador del miembro izquierdo de la igualdad, le sumamos un cero ( − y1 + y1 ) , de tal manera que no se altere la igualdad:

y0 = b0

RHOSNEL RAMOS | INTERPOLACIÓN DE SPLINES 2


[INTERPOLACIÓN] 1 de julio de 2014 A continuación, aplicamos un poco de álgebra para así obtener los siguientes resultados:

f [ xi , x j ] =

f ( xi ) − f ( x j )

f [ xi , x j , xk ] =

xi − x j f [ xi , x j ] − f [ x j , xk ] xi − xk • •

• f [ xn ,, x1 ] − f [ xn −1 ,, x0 ] f [ xn , xn −1 ,, x1 , x0 ] = xn − x0

Y finalmente despejando a b2 vamos a obtener :

A manera de ejemplo citemos el siguiente caso específico : f [ x3 , x2 , x1 ] − f [ x2 , x1 , x0 ] x3 − x0 donde a su vez: f [ x3 , x2 , x1 , x0 ] =

y2 − y1 y1 − y0 − x2 − x1 x1 − x0 b2 = x2 − x0

f [ x3 , x2 , x1 ] =

Por lo tanto, el polinomio de interpolación para este caso es:

y f [ x2 , x1 , x0 ] =

Observación. Vemos que efectivamente el polinomio de interpolación contiene al del caso anterior, más un término extra que es de un grado mayor, pero además vemos que cada uno de los coeficientes del polinomio de interpolación, se forman a base de cocientes de diferencias de cocientes de diferencias, etc. Esto da lugar a la definición de diferencias divididas finitas de Newton, como sigue: DIFERENCIAS DIVIDIDAS FINITAS DE NEWTON Las diferencias divididas finitas de Newton, se define de la siguiente manera:

f [ x3 , x2 ] − f [ x2 , x1 ] x3 − x1 f [ x2 , x1 ] − f [ x1 , x0 ] x2 − x01

Y donde a su vez: f ( x3 ) − f ( x2 ) f [ x3 , x2 ] = x3 − x2 etc. Podemos ahora definir nuestro primer tipo de polinomio de interpolación. POLINOMIO DE INTERPOLACIÓN DE NEWTON CON DIFERENCIAS DIVIDIDAS Dados n + 1 datos:

RHOSNEL RAMOS | INTERPOLACIÓN DE SPLINES 3


[INTERPOLACIÓN] 1 de julio de 2014 - El polinomio de interpolación de Newton se define de la siguiente manera: f ( x ) = b0 + b1 ( x − x0 ) + b2 ( x − x0 )( x − x1 ) +  + bn ( x − x0 )( x − x1 ) ( x − xn −1 ) donde : b0 = f ( x0 ) b1 = f [ x1 , x0 ] b2 = f [ x2 , x1 , x0 ]

Por lo tanto el polinomio de interpolación de Newton es :

 bn = f [ xn ,, x0 ]

f ( x ) = 4 + 2( x + 2) − 0.25( x + 2)( x + 1) − 0.3( x + 2)( x + 1)( x

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

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

Y usar la información en la tabla, para construir el polinomio de interpolación de Newton. Solución. Procedemos como sigue:

Obsérvese que los coeficientes del polinomio de interpolación de Newton, se encuentran en la parte superior de la tabla de diferencias divididas. Ejemplo 1. Calcular la tabla de diferencias divididas finitas con los siguientes datos : Por lo tanto el polinomio de interpolación de Newton nos queda : Y utilizar la información de dicha tabla, para construir el polinomio de interpolación de Newton. Solución. Procedemos como sigue:

f ( x ) = 5 + 3( x + 3) − 1.66667( x + 3)( x + 2) − 0.20238( x + 3

Antes de ver el siguiente tipo de polinomio de interpolación, veamos como el imponer la restricción del grado mínimo, implica la unicidad del polinomio de interpolación. TEOREMA . Si x0 , x1 ,, xn son números reales distintos, entonces para valores

RHOSNEL RAMOS | INTERPOLACIÓN DE SPLINES 4


[INTERPOLACIÓN] 1 de julio de 2014 arbitrarios y0 , y1 ,, yn existe un polinomio ( ) único f n x , de a lo más grado n, y tal

P ( x ) = y0l0 ( x) + y1l1 ( x ) +  + ynln ( x )

que: f n ( xi ) = yi

El polinomio de interpolación de Lagrange se plantea como sigue:

para toda i = 0,1,2,, n

DEMOSTRACIÓN. En realidad, no probaremos formalmente la existencia de un polinomio de interpolación, aunque informalmente aceptamos que dada cualquier tabla de datos, el polinomio de Newton siempre existe. Probemos la unicidad del polinomio de interpolación. ( ) Supongamos que g n x es otro polinomio de interpolación de a lo más grado n, ( ) ( ) ( ) Sea hn x = f n x − g n x

∴ hn ( xi ) = f n ( xi ) − g n ( xi ) = yi − yi = 0 para todo i = 0,1,2, n hn ( x ) tiene n + 1 raíces Por lo tanto, distintas, y es un polinomio de grado a lo más n, esto solamente es posible si hn ( x ) = 0 . ∴ fn ( x) = gn ( x)

Donde los polinomios li (x) se llaman los polinomios de Lagrange, correspondientes a la tabla de datos. Como se debe satisfacer que P ( x0 ) = y0 , esto se cumple si l0 ( x0 ) = 1 y li ( x0 ) = 0 para toda i ≠ 0 . Como se debe satisfacer que P( x1 ) = y1 , esto

se cumple si l1 ( x1 ) = 1 y li ( x1 ) = 0 para toda i ≠ 1. Y así sucesivamente, veremos finalmente ( ) que la condición Pn xn = yn se cumple si ln ( xn ) = 1 y li ( xn ) = 0 para toda i ≠ n . Esto nos sugiere como plantear los polinomios de Lagrange. Para ser más claros, analicemos detenidamente el l0 ( x) . De acuerdo al análisis polinomio anterior vemos que deben cumplirse las siguientes condiciones para l0 ( x) : para toda j ≠ 0

l0 ( x0 ) = 1 y

l0 ( x j ) = 0

Que es lo que queríamos probar.

Por lo tanto, planteamos l0 ( x) como sigue:

Sin embargo, aunque el polinomio de interpolación es único, pueden existir diversas formas de encontrarlo. Una, es mediante el polinomio de Newton, otra mediante el polinomio de Lagrange.

lo ( x ) = c( x − x1 )( x − x2 ) ( x − xn ) Con esto se cumple la segunda condición sobre l0 ( x) . La constante c se determinará

POLINOMIO DE INTERPOLACIÓN DE LAGRANGE Nuevamente tenemos los datos :

para hacer que se cumpla la primera condición: l0 ( x0 ) = 1 ⇒ 1 = c( x0 − x1 )( x0 − x2 ) ( x0 − xn ) 1 ⇒c= ( x0 − x1 )( x0 − x2 ) ( x0 − xn ) Por lo tanto el polinomio l0 ( x) queda definido como:

RHOSNEL RAMOS | INTERPOLACIÓN DE SPLINES 5

,


[INTERPOLACIÓN] 1 de julio de 2014 l0 ( x ) =

( x − x1 )( x − x2 ) ( x − xn ) ( x0 − x1 )( x0 − x2 ) ( x0 − xn )

 ( x − 3)( x − 5)( x − 7)   ( x − 1)( x − 5)( x − 7)   ( f ( x) =  + − 24 16     

Análogamente se puede deducir que:

l j ( x) =

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

∏( x − x ) i

i≠ j

∏( x i≠ j

j

− xi )

para j = 1, , n

, Solución. Tenemos que:

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

f ( x) = y0l0 ( x) + y1l1 ( x) + y2l ( x) + y3l3 ( x)

f ( x) = l0 ( x) − l1 ( x) + 3l2 ( x) − 2l3 ( x) donde:

Solución. Tenemos que:

l0 ( x ) =

( x − 0)( x − 2)( x − 4) x ( x − 2)( x − 4) = (−2)(−4)(−6) − 48

l1 ( x ) =

( x + 2)( x − 2)( x − 4) ( x + 2)( x − 2)( x − 4) = (2)( −2)(−4) 16

f ( x) = y0l0 ( x) + y1l1 ( x) + y2l ( x ) + y3l3 ( x)

f ( x) = −2l0 ( x) + l1 ( x) + 2l2 ( x) − 3l3 ( x) donde: l0 ( x) =

( x − 3)( x − 5)( x − 7) ( x − 3)( x − 5)( x − 7) = (−2)(−4)(−6) − 48

l2 ( x ) =

( x + 2)( x − 0)( x − 4) x( x + 2)( x − 4) = (4)(2)( −2) − 16

l1 ( x ) =

( x − 1)( x − 5)( x − 7) ( x − 1)( x − 5)( x − 7) = (2)(−2)(−4) 16

l3 ( x) =

( x + 2)( x − 0)( x − 2) x( x + 2)( x − 2) = (6)(4)(2) 48

l2 ( x ) =

( x − 1)( x − 3)( x − 7) ( x − 1)( x − 3)( x − 7) = (4)(2)(−2) − 16

Sustituyendo arriba, el polinomio de Lagrange queda como sigue:

( x − 1)( x − 3)( x − 5) ( x − 1)( x − 3)( x − 5) = (6)(4)(2) 48

 x( x − 2)( x − 4)   ( x + 2)( x − 2)( x − 4)   x ( x f ( x) =  −  + 3 − 48 16      En el capítulo de integración numérica, usaremos nuevamente a los polinomios de Lagrange.

l3 ( x) =

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

INTERPOLACIÓN DE SPLINES RHOSNEL RAMOS | INTERPOLACIÓN DE SPLINES 6


[INTERPOLACIÓN] 1 de julio de 2014 Terminamos este capítulo, estudiando un tipo de interpolación que ha demostrado poseer una gran finura, y que inclusive es usado para el diseño por computadora, por ejemplo, de tipos de letra. Esta 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 como la mencionada anteriormente. Así pues, podemos decir de manera informal, que una funcion spline está formada por varios polinomios, cada uno definido en un intervalo y que se unen entre si bajo ciertas condiciones de continuidad. Definición. (Splines de grado k)

Una función spline de grado 1 que interpole los datos es simplemente unir cada uno de los puntos mediante segmentos de recta, como sigue:

Claramente esta función cumple con las condiciones de la spline de grado 1. Así, tenemos que para ested caso:  s1 ( x ) s ( x )  s( x) =  2   sn ( x )

Dada nuestra tabla de datos,

donde suponemos que x0 < x1 <  < xn , 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 s (x ) tal que : s ( xi ) = yi , para toda i = 0,1, , n . i) s ( x ) es un polinomio de grado ≤ k en ii) cada subintervalo [ xi −1 , xi ] . iii ) s( x ) tiene derivada contínua hasta de orden k − 1 en [ x0 , xn ] . FUNCIONES SPLINES DE GRADO 1 Dados los n + 1 puntos

si s

x ∈ [ x0 , x1 ] x ∈ [ x1 , x2 ]

si

x ∈ [ xn −1 , xn ]

donde: s j ( x) i) es un polinomio de grado menor o igual que 1 ii) s( x ) tiene derivada continua de orden k-1=0. s( x j ) = y j iii) , para j = 0,1, , n .

Por lo tanto, la spline de grado 1 queda definida como :  y0 + f [ x1 , x0 ] ( x − x0 )  y + f [ x , x ]( x − x )  1 2 1 1 s( x ) =    yn −1 + f [ xn , xn −1 ] ( x − xn −1 ) donde Newton.

f [ xi , x j ]

si si

x ∈ [ x0 , x1 ] x ∈ [ x1 , x2 ]

 si x ∈ [ xn −1 , xn ]

es la diferencia dividida de

RHOSNEL RAMOS | INTERPOLACIÓN DE SPLINES 7


[INTERPOLACIÓN] 1 de julio de 2014 FUNCIONES SPLINES DE GRADO 2 Para aclarar bien la idea, veamos un ejemplo concreto, consideremos los siguientes datos :

Y procedamos a calcular la interpolación 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, debemos definir una función polinomial de grado 2, como sigue:  a1 x 2 + b1 x + c1  s( x ) = a2 x 2 + b2 x + c2 a x2 + b x + c 3 3  3

si si si

x ∈ [ 3,4.5] x ∈ [ 4.5,7] x ∈ [ 7,9]

Primero, 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.5 Así, se forman las siguientes ecuaciones:

s (3) = 2.5 ⇒ 9a1 + 3b1 + c1 = 2.5  (4.5) a1 + 4.5b1 + c1 = 1 s (4.5) = 1 ⇒  2 (4.5) a2 + 4.5b2 + c2 = 1 2

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 k1=1, es decir, primera derivada continua. Calculamos primero la primera derivada:  2a1 x + b1  s′( x ) = 2a2 x + b2  2a x + b 3  3

si si

x ∈ [ 3,4.5]

x ∈ [ 4.5,7]

si

x ∈ [ 7,9]

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 x = 4.5 y x = 7 . Por lo tanto para que s′( x ) sea contínua, se debe cumplir que:

2a1 ( 4.5) + b1 = 2a2 ( 4.5) + b2 o lo que es lo mismo, 9a1 + b1 = 9a2 + b2 También debe cumplirse que: 2a2 ( 7 ) + b2 = 2a3 ( 7 ) + b3 o lo que es lo mismo, 14a2 + b2 = 14a3 + b3 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 a1 = 0 . De esta forma, tenemos un total de 8 ecuaciones vs. 8 incógnitas. Estas son las siguientes:

49a2 + 7b2 + c2 = 2.5 s ( 7 ) = 2 .5 ⇒   49a3 + 7b3 + c3 = 2.5 s (9) = 0.5 ⇒ 81a3 + 9b3 + c3 = 0.5 Hasta aquí, tenemos un total de 6 ecuaciones vs. 9 incógnitas. RHOSNEL RAMOS | INTERPOLACIÓN DE SPLINES 8


[INTERPOLACIÓN] 1 de julio de 2014 3b1 + c1 = 2.5 4.5b1 + c1 = 1 20.25a2 + 4.5b2 + c2 = 1 49a2 + 7b2 + c2 = 2.5 49a3 + 7b3 + c3 = 2.5

La gráfica que se muestra a continuación, contiene tanto los puntos iniciales de la tabla de datos, así como la spline cuadrática. Esta gráfica se generó usando Mathematica. 5

81a3 + 9b3 + c3 = 0.5 b1 = 9a2 + b2

4

14a2 + b2 = 14a3 + b3

3

Este sistema de ecuaciones tiene la siguiente forma matricial:

2 1

3  4 .5  0  0 0  0 1   0

1

0

0

0

1 0 0 0 0 20.25 4.5 1 0 49 7 1 0 0 0

0 0 −9

0 0 0 0 −1 0

0

14

1

0

0  b1  2.5 0 0 0  c1   1  0 0 0   a2   1      0 0 0  b2  2.5 = 49 7 1   c2   2 . 5      81 9 1  a3  0.5 0 0 0  b3   0      − 14 − 1 0  c3   0  0

0

Usando Mathematica se obtiene la siguiente solución: b1 c1 a2 b2 c2 a3 b3 c3

4.5

7

-1

El siguiente caso, que es el más importante en las aplicaciones, sigue exactamente los mismos pasos del ejemplo que acabamos de resolver, solamente que en vez de trabajar con polinomios cuadráticos, lo hace con polinomios cúbicos. FUNCIONES SPLINES CUBICAS Para hacer más firme el entendimiento, escribimos la definición correspondiente a este caso (k=3).

= −1 = 5.5 = 0.64 = − 6.76 = 18.46 = − 1.6 = 24.6 = − 91.3

Dados los n + 1 datos:

Sustituyendo estos valores (junto con a1 = 0 ), obtenemos la función spline cuadrática que interpola la tabla de datos dada: − x + 5.5 si   2 s( x ) = 0.64 x − 6.76 x + 18.46 si  − 1.6 x 2 + 24.6 x − 91.3 si 

3

x ∈ [ 3,4.5]

x ∈ [ 4.5,7] x ∈ [ 7,9]

Una spline cúbica que interpola estos datos, es una función s (x ) definida como sigue :  s0 ( x )  s ( x)  s( x ) =  1  sn −1 ( x )

si si

x ∈ [ x0 , x1 ] x ∈ [ x1 , x2 ]

 si x ∈ [ xn −1 , xn ]

RHOSNEL RAMOS | INTERPOLACIÓN DE SPLINES 9

9


[INTERPOLACIÓN] 1 de julio de 2014

( ) donde cada si x es un polinomio cúbico; si ( xi ) = yi , para toda i = 0,1, , n y tal que s( x ) tiene primera y segunda derivadas contínuas en [ x0 , xn ] .

Ejemplo 1. Interpolar los siguientes datos mediante una spline cúbica :

o lo que es lo mismo:

27 a1 + 6b1 + c1 = 27a 2 + 6b2 + c 2 Análogamenete procedemos con la segunda derivada :

 6a x + 2b1 s ′′( x ) =  1 6a 2 x + 2b2

si si

x ∈ [ 2,3] x ∈ [ 3,5]

Para lograr que s ′′( x ) sea continua : Solución. Definimos un polinomio cúbico en cada uno de los intervalos que se forman:

 a x 3 + b x 2 + c x + d1 s( x ) =  1 3 1 2 1 a2 x + b2 x + c2 x + d 2

si si

x ∈ [ 2,3] x ∈ [ 3,5]

6a1 ( 3) + 2b1 = 6a 2 ( 3) + 2b2 ∴ 18a1 + 2b1 = 18a2 + 2b2 En este punto contamos con 6 ecuaciones y 8 incognitas, por lo tanto tenemos 2 grados de libertad; en general, se agregan las siguientes 2 condiciones:

A continuación, hacemos que se cumpla la condición de que la spline debe pasar por los puntos dados en la tabla. Así, tenemos que:

s( 2 ) = −1 ⇒ 8a1 + 4b1 + 2c1 + d1 = −1 s( 3) = 2 ⇒ 27a1 + 9b1 + 3c1 + d1 = 2 s( 5) = −7 ⇒ 125a2 + 25b2 + 5c2 + d 2 = −7 Ahora calculamos la primera derivada de s ( x ) :

 3a x 2 + 2b1 x + c1 s ′( x ) =  1 2 3a 2 x + 2b2 x + c 2

si si

x ∈ [ 2,3] x ∈ [ 3,5]

Al igual que en el caso de las splines cuadráticas, se presentan ecuaciones que pueden presentar discontinuidad en los cambios de intervalo; las posibles discontinuidades son los puntos donde se cambia de intervalo, en este caso x = 3 . Para evitar esta discontinuidad, evaluamos x = 3 en los dos polinomios e igualamos:

s ′′( x 0 ) = 0 s ′′( x n ) = 0 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. 8 incógnitas, el cual es el siguiente:

3a1 ( 3) + 2b1 ( 3) + c1 = 3a 2 ( 3) + 2b2 ( 3) + c 2 2

2

RHOSNEL RAMOS | INTERPOLACIÓN DE SPLINES 10


[INTERPOLACIÓN] 1 de julio de 2014 8a1 + 4b1 + 2c1 + d1 = −1 27 a1 + 9b1 + 3c1 + d1 = 2 27 a 2 + 9b2 + 3c 2 + d 2 = 2 125a 2 + 25b2 + 5c 2 + d 2 = −7 27 a1 + 6b1 + c1 = 27 a 2 + 6b2 + c 2 18a1 + 2b1 = 18a 2 + 2b2 12a1 + 2b1 = 0 30a 2 + 2b2 = 0 Cuya forma matricial es la siguiente : 8 27  0  0 27  18 12   0

4

2

1

0

0

9

3

1

0

0

0

0

0

27

9

0

0

0

125

25

6

1

0

− 27

−6

2

0

0

−18

−2

2

0

0

0

0

0

0

0

30

2

0a1   −1  0 0 b1   2  3 1  c1   2      5 1 d1  − 7  = −1 0a2   0      0 0b2   0  0 0   c2   0      0 0d 2   0  0

Usando Mathematica, obtenemos la siguiente solución: a1 b1 c1 d1 a2 b2 c2 d2

= − 1.25 = 7.5 = − 10.75 = 0.5 = 0.625 = − 9.375 = 39.875 = − 50.125

Sustituyendo estos valores en nuestra función inicial, vemos que la spline cúbica para la tabla de datos dada, queda definida como sigue:

 − 1.25 x 3 + 7.5 x 2 − 10.75 x + 0.5 si s( x ) =  3 2 0.625 x − 9.375 x + 39.875 x − 50.125 si Mostramos la gráfica correspondiente a este ejercicio, creada tambien en Mathematica.

Obsérvese la finura con la que se unen los polinomios cúbicos que conforman a la spline. Prácticamente ni se nota que se trata de dos polinomios diferentes!. Esto es debido a las condiciones que se impusieron sobre las derivadas de la función. Esta finura casi artística, es la que permite aplicar las splines cúbicas, para cuestiones como el diseño de letras por computadoras, o bien a problemas de aplicación donde la interpolación que se necesita es de un caracter bastante delicado, como podría tratarse de datos médicos sobre algún tipo de enfermedad. Ejemplo 2. Interpolar los siguientes datos utilizando splines cúbicas:

Solución. Nuevamente, definimos un polinomio cúbico en cada uno de los intervalos:  a1 x 3 + b1 x 2 + c1 x + d1  s ( x) = a2 x 3 + b2 x 2 + c2 x + d 2  a x3 + b x 2 + c + d 3 3 3  3

si si si

x ∈ [ − 1,1] x ∈ [1,2] x ∈ [ 2,4]

Despues, hacemos que la spline pase por los puntos dados en la tabla. Así, tenemos x ∈ [ 2,que: 3] x ∈ [ 3,5s (] −1) = −1 implica que,

− a1 + b1 − c1 + d1 = −1

s (1) = 1 implica que, a1 + b1 + c1 + d1 = 1

RHOSNEL RAMOS | INTERPOLACIÓN DE SPLINES 11


[INTERPOLACIÓN] 1 de julio de 2014

s′′( −1) = 0 → −6a1 + 2b1 = 0 → −3a1 + b1 = 0 s′′(4) = 0 → 24a3 + 2b3 = 0 → 12a3 + b3 = 0

a2 + b2 + c2 + d 2 = 1

s (2) = 5 implica que,

8a2 + 4b2 + 2c2 + d 2 = 5 8a3 + 4b3 + 2c3 + d 3 = 5

Con esto tenemos un juego de doce ecuaciones vs. doce incógnitas:

− a1 + b1 − c1 + d1 = −1 a1 + b1 + c1 + d1 = 1 a2 + b2 + c2 + d 2 = 1 8a2 + 4b2 + 2c2 + d 2 = 5 8a3 + 4b3 + 2c3 + d 3 = 5 64a3 + 16b3 + 4c3 + d 3 = −2 3a1 + 2b1 + c1 = 3a2 + 2b2 + c 12a2 + 4b2 + c2 = 12a3 + 4b3

Y finalmente s (4) = −2 implica que, 64a3 + 16b3 + 4c3 + d 3 = −2 Enseguida, calculamos la primera derivada:  3a1 x 2 + 2b1 x + c1  s′( x ) = 3a2 x 2 + 2b2 x + c2 3a x 2 + 2b x + c 3 3  3

si1 si si

x ∈ [ − 1,1] x ∈ [1,2] x ∈ [ 2,4]

3a1 + b1 = 3a2 + b2 6a2 + b2 = 6a3 + b3 − 3a1 + b1 = 0 12a3 + b3 = 0

Vemos

entonces, que las posibles discontinuidades de s′(x) son x = 1 y x = 2 . s′(x) sea Por lo tanto, para hacer que contínua, igualamos las ecuaciones correspondientes en ambos valores :

3a1 + 2b1 + c1 = 3a2 + 2b2 + c2 12a2 + 4b2 + c2 = 12a3 + 4b3 + c3 Ahora procedemos a calcular la segunda derivada:  6a1 x + 2b1  s′′( x) = 6a2 x + 2b2 6a x + 2b 3  3

si si si

x ∈ [ − 1,1] x ∈ [1,2]

x ∈ [ 2,4]

Nuevamente, las posibles discontinuidades son x = 1 y x = 2 . Por lo tanto, para que s′′(x) sea contínua , se igualan las ecuaciones en ambos valores :

6a1 + 2b1 = 6a2 + 2b2 → 3a1 + b1 = 3a2 + b2 12a2 + 2b2 = 12a3 + 2b3 → 6a2 + b2 = 6a3 + b3

Este sistema tiene la siguiente forma matricial: −1 1  0  0 0  0 3  0 3  0  − 3  0

1 −1 1 1 0 0 0 0

1 1 0 0

0 0 2 0 1 0

0 0 1 0 0 0

0 0 0 0 0 0 0 0 0 − 3 − 2 −1 0 12 4 1 0 − 3 −1 0 0 6 1 0

0 0 0 0 0 0

1 0

0 0

0 0

0 0

0 0 1 8

0 0

0 0 1 4

0 0

0 0 1 2

0 0

0 0 1 1

0  0  0   0  8 4 2 1   64 16 4 1  0 0 0 0   − 12 − 4 − 1 0  0 0 0 0   − 6 − 1 0 0   0 0 0 0  12 1 0 0  0 0 0 0

0 0 0 0

0 0 0 0

Usando Mathematica, obtenemos la solución : a1 =

Finalmente, se agregan las condiciones de que la doble derivada se anule en los puntos inicial y final de la tabla. En este caso, ,

a3 =

51 140 ,

a2 = −

24 35

RHOSNEL RAMOS | INTERPOLACIÓN DE SPLINES 12

21 10


[INTERPOLACIÓN] 1 de julio de 2014 b1 = b3 = −

153 140 ,

b2 =

1. 1. Calcula el polinomio de interpolación de Newton para los siguientes datos:

297 35 ,

288 35

i) c1 =

89 140 ,

c2 = −

473 70 ,

1867 c3 = 70

ii) d1 = −

153 40 ,

d2 =

i) x 2 −2 1 4 y 0.5 − 3 2.4 7.8 x 0.3 0.6 0.9 1.2 1.5 y − 3 0 − 6 9 − 12

Soluciones:

48 35 ,

i ) f ( x ) = 0.5 + 0.875( x − 2) − 0.925( x − 2)( x + 2) + 0.4625( ii ) f ( x) = −3 + 10( x − 0.3) − 50( x − 0.3)( x − 0.6) + 185.1851

732 d3 = − 35

− 447.53088( x − 0.3)( x − 0.6)( x − 0.9)( x − 1.2)

Por lo tanto, la spline cúbica es:

51 3 153 2 89  140 el polinomio de Lagrange para los ] x + 140 x + 140 x − 153 si x ∈ [ − 12.,1Calcula 40 siguientes datos:  2 473 48 [ s ( x) =  − 1021 x 3 + 297 x − x + si x ∈ 1 , 2] 35 70 35 x 1 −2 3 −5  24 x 3 − 288 x 2 + 1867 x − 732 si x ∈ [ 2,4] 35 35 70 35  y 1.56 3.54 − 2.57 − 8.9

i)

Finalmente, mostramos la gráfica correspondiente (creada en Mathematica):

ii)

8

ii) x − 1 .5 − 0 .5 1 − 2 − 4 y 9 − 2 5 33 0

Soluciones:

6

 ( x + 2)( x − 3)( x + 5)   ( x − 1)( x − 3)( x i ) p( x) = 1.56  + 3.54   − 36 45     ( x − 1)( x + 2)( x − 3)  − 8.9  − 144 

4 2

-1

1 -2

2

4

 ( x + 0.5)( x − 1)( x + 2)( x + 4)   ( x + 1.5)( x − ii ) p ( x) = 9 − 2  3.125 −   

 ( x + 1.5)( x + 0.5)( x + 2)( x + 4)   ( x + 1.5)( x + 0.5) + 5 + 33  56.25 − 4.5   

EJERCICIOS NOTA: CUANDO SEA NECESARIO, REDONDEA A CINCO DECIMALES.

2. 3. Calcula las splines cúbicas para los siguientes datos:

RHOSNEL RAMOS | INTERPOLACIÓN DE SPLINES 13


[INTERPOLACIÓN] 1 de julio de 2014 i)

i) x −2 1 3 y 40 − 5 − 20

ii)

ii) x −5 −2 3 7 y 20 4 − 6 40

Soluciones:

i)

ii )

 0.25 x 3 + 1.5 x 2 − 14.25 x + 7.5 si s ( x) =  3 2 − 0.375 x + 3.375 x − 16.125 x + 8.125 si

x ∈ [ − 2,1] x ∈ [1,3]

5 75 2 5860  − 526 x 3 − 526 x − 4703 si x ∈ [ − 5,− 2] 789 x − 789  3 2257 2 15619 8012 s ( x) =  1241 x + si x ∈ [ − 2,3] 7890 2630 x − 3945 x − 1315  − 299 x 3 + 2093 x 2 − 10511 x + 860 si x ∈ [ 3,7] 526 789 263  1578

RHOSNEL RAMOS | INTERPOLACIÓN DE SPLINES 14


Issuu converts static files into: digital portfolios, online yearbooks, online catalogs, digital photo albums and more. Sign up and create your flipbook.