Sei sulla pagina 1di 11

Interpolacion por Splines

Edison Mena, Jonathan Escobar


Departamento de Ciencias Exactas, Universidad de las Fuerzas Armadas ESPE
Sangolqu-Ecuador
edifmena1@hotmail.com, jonathan.s.e@hotmail.com

TRABAJO PREPARATORIO
I. I NTRODUCCI ON
El ajuste de curvas nos ayuda a obtener estimaciones de funciones a partir de un conjunto de valores discretos, o para
obtener versiones simplificadas de funciones complicadas mediante el calculo de valores de la funcion complicada en un
numero discreto de valores en el intervalo de interes.
Para realizar los ajustes de curvas existen varios metodos de interpolacion, que sirven para calcular valores intermedios de un
conjunto de datos, uno de estos es el metodo de interpolacion mediante trazadores o splines, que realiza un ajuste de curvas
mediante el acoplamiento de polinomios de grados pequenos en un conjunto de datos, estos metodos son de suma importancia
en el analisis de datos en el campo de la ingeniera debido a su utilidad al realizar predicciones en el comportamiento de
sistemas complejos, analisis de tendencias o para realizar pruebas de hipotesis en el ajuste de curvas experimentales. [2]

II. I NTERPOLACI ON MEDIANTE S PLINES


I. D EFINICI ON
Dentro del analisis numerico en casos de la vida real, es muy comun disponer una gran cantidad de datos relativos a una
funcion, conocida o no, que se desea aproximar. Mediante la interpolacion de esos datos, se puede aproximar esos datos
y representarlos como una funcion polinomial, el problema de estos metodos es que muchas veces suelen expresarse como
polinomios de grado alto que presentan problemas de estabilidad debido a su caracter oscilatorio, ademas de exigir una gran
cantidad de operaciones para su calculo generando errores de redondeo.

La interpolacion mediante trazados(splines) consiste en dividir el intervalo original en pequenos subintervaloes en los que
se generaran polinomios de grado bajo, que son relativamente mas faciles de analisar que un polinomio de grado alto para
toda la funcion. Ver Figura 1.

Figura 1. Interpolacion mediante splines.


II. T RAZADORES (S PLINES ) L INEALES
Los splines de primer grado para un conjunto de datos ordenados pueden definirse como un conjunto de funcones lineales,

f (x) = f (x0 ) + m0 (x x0 ) x0 x x1
f (x) = f (x1 ) + m1 (x x1 ) x1 x x2
..
.
f (x) = f (xn1 ) + mn1 (x xn1 ) xn1 x xn
donde mi es la pendiente de la lnea recta que une los puntos:
f (xi+1 ) f (xi )
mi = (1)
xi+1 xi
Estas ecuaciones se pueden usar para evaluar la funcion en cualquier punto entre x0 y xn localizando primero el intervalo
dentro del cual esta el punto. Despues se usa la ecuacion adecuada para determinar el valor de la funcion dentro del intervalo.
El metodo es practimente identico al de la interpolacion lineal
Como podemos observar en la Figura 2, se muestra una representacion visual de varios polinomios de interpolacion, y donde
podemos observar como es que el trazado d) tiene una mejor aproximacion, realizado mediante splines de primer grado.

Figura 2. Representacion visual de polinomios de interpolacion

La principal desventaja de los splines lineales es que no son suaves, en esencia, en los puntos donde se encuantran dos
splines, llamado nodo, la pendiente camvia de forma abrupta. Formalmente, la primera derivada de la funcion es discontinua
en esos puntos. Esta deficiencia se resuelve usando splines polinomiales de grado superior, que aseguren suavidad en los nodos
al igualar las derivadas en esos puntos.
Ejemplo 1: En el siguiente ejercicio, se realizara un ajuste por medio de splines de primer grado a un conjunto de datos.
Cuadro I
DATOS PARA AJUSTE CON SPLINES DE PRIMER GRADO

x f(x)
3.0 2.5
4.5 1.0
7.0 2.5
9.0 0.5

Calculamos el valor de las pendientes con la ayuda de la ecuacion (1)


Intervalo 3.0 - 4.5
1 2,5
m0 = = 1
4,5 3,0
Intervalo 4.5 - 7.0
2,5 1
m1 = = 0,60
7,0 4,5
Intervalo 7.0 - 9.0
0,5 2,5
m2 = = 1
9,0 7,0
Con estas mpendientes, y con el uso de la ecuacion de splines de primer grado, obtenemos las ecuaciones para realizar la
grafica.
f1 (x) = 2,5 (x 3,0) f1 (x) = (x 0,5) 3,0 4,5
f (x) = f2 (x) = 1,0 + 0,6(x 4,5) f2 (x) = 0,6x 3,5 4,5 7,0 (2)
f3 (x) = 2,5 (x 7,0) f2 (x) = (x 4,5) 7,0 9,0

Trazando las ecuaciones obtenidas tenemos:

Ejemplo 1. Ajuste de curva con splines lineales.

III. T RAZADORES (S PLINES ) C UADR ATICOS


Para asegurar que las derivadas m esimas sean continuas en los nodos, se debe emplear un trszador de un grado de, almenos,
m + 1. En la practica se usan con mas frecuencia polinomios de tercer grado, es decir splines cubicos que nos aseguran la
primera y segunda derivadas continuas.
Para comprender el uso principal de los splines, el cual es mediante polinomios cubicos, se analizara primero el concepto de
splines cuadraticos.
Estos trazadores no aseguran las segundas derivadas en los nodos, pero sirven como base para explicar el procedimiento general
en el desarrollo de trazadores de grado superior. El objetivo de los trazadores cuadraticos es obtener un polinomio de segundo
grado para cada intervalo entre los datos.
fi (x) = ai x2 + bi x + ci (3)
En la Figura 3. se muestra una representacion grafica y la notacion adecuada para la representacion de ajuste de curvas mediante
splines cuadraticos.
Figura 3. Notacion de interpolacion por splines cuadraticos.

Para n + 1 datos (i = 0, 1, 2, , n) existen n intervalos y, por lo tanto se requeriran 3n constantes desconocidas (a, b, c)
por evaluar. Estas condiciones son:
1. Los valores de la funcion de polinomios deyacentes deben ser iguales en los nodos interiores.
ai1 x2i1 + bi1 xi1 + ci+1 = f (xi+1 ) (4)
ai x2i1 + bi xi1 + ci = f (xi1 ) (5)
para i = 2 hasta n. Como solo se emplean nodos interiores, las ecuaciones (4) y (5) proporcionan, cada una n 1
condiciones; en total, 2n 2 condiciones.
2. La primera y la ultima funcion deben pasar a traves de los puntos extremos. Esto agrega dos ecuaciones mas.
a1 x20 + b1 x0 + c1 = f (x0 ) (6)
an x2n + bn xn + cn = f (xn ) (7)
en total tenemos 2n 2 + 2 = 2n condiciones.
3. Las primeras derivadas en los nodos interiores deben ser iguales. La primera derivada de la ecuacion (3) es
f 0 (x) = 2ax + b
Por lo tanto, de manera general la condicion se representa como
2ai1 xi1 + bi1 = 2ai xi1 + bi (8)
para i = 2 hasta n. Esto proporciona otras n 1 condiciones, llegando a un total de 2n + n 1 = 3n 1. Como se
tienen 3n incognitas, nos falta una condicion mas. A menos que tengamos alguna informacion adicional respecto de las
funciones o sus derivadas.
4. Suponemos que en el primer punto la segunda derivada es cero. Como la segunda derivada de la ecuacion (3) es 2ai ,
entonces esta condicion se puede expresar matematicamente como
a1 = 0 (9)
La interpretacion visual de esta condicion es que los dos primeros puntos se uniran con una lnea recta.
Observando la Figura 4. podemos apreciar el ajuste de una curva mediante el uso de splines, donde se diferencian los metodos
de primer, segundo y tercer grado, mejoracndo respectivamente su precision.
Figura 4. Comparacion interpolacion por splines de primer, segundo y tercer grado.

Ejemplo 2: Realizar un ajuste de los tados del Cuadro 2. mediante interpolacion de splines cuadraticos.

Cuadro II
DATOS PARA AJUSTE CON SPLINES DE PRIMER GRADO

x f(x)
3.0 2.5
4.5 1.0
7.0 2.5
9.0 0.5

Tenemos tres intervalos [3,0; 4,5], [4,5; 7,0], [7,0; 9,0] y para cada uno de estos intervalos debemos definir una funcion
cuadrpatica. As que se deben formar las siguientes ecuaciones:
s(3) =2,5 9a1 + 3b1 + c1 = 2,5
(4,5)2 a1 + 4,5b1 + c1 = 1

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

49a2 + 7b2 + c2 = 2,5
s(7) = 2,5
49a3 + 7b3 + c3 = 2,5
s(9) = 0,5 81a3 + 9b3 + c3 = 0,5
Tenemos hasta ahora seis ecuaciones con nueve incogintas.
Necesitamos que el trazo tenga derivada continua de primer orden.

2a1 x + b1 si x [3,0; 4,5]
s0 (x) = 2a2 x + b2 si x [4,5; 7,0]
2a3 x + b3 si x [7,0; 9,0]

Suponemos que en primer puntos, la segunda derivada es cero. Como la segunda derivada de la ecuacion es 2a, entonces
podemos decir que a1 = 0, por lo que quedariamos con un total de 8 ecuaciones, las expresamos de forma matricial de la
siguiente manera.
4,5 1 0 0 0 0 0 0 b1 1

0 0 20,25 4,4 1 0 0 0
c1
1


0 0 49 7 1 0 0 0
a2
2,5

0 0 0 0 0 49 7 1 b2
= 2,5
(10)

3 1 0 0 0 0 0 0
c2
2,5


0 0 0 0 0 81 9 1
a3
0,5

1 0 9 1 0 0 0 0 b3 0
0 0 14 1 0 14 1 0 c3 0
Obtenemos la siguiente solucion
b1 = 1 a2 = 0,64 a3 = 1,6
c1 = 5,5 b2 = 6,76 b3 = 24,6
a1 = 0 c2 = 18,46 c3 = 91,3
Sustituimos estos valores en las ecuaciones cuaraticas originales, obtenemos la siguiente relacion para cada intervalo.

x + 5,5 si x [3,0; 4,5]
s(x) = 0,64x2 6,76x + 18,46 si x [4,5; 7,0]
1,6x2 + 24,6x 91,3 si x [7,0; 9,0]

Con estos datos, construimos la curva.

Ejemplo 2. Ajuste de curva con splines cuadraticos.

IV. T RAZADORES (S PLINES ) C UBICOS


Podemos aproximar una funcion complicada con una gran presicion mediante el uso de polinomios de tercer grado para
cada intervalo entre los nodos.
fi (x) = ai x3 + bi x2 + ci x + di (11)
Para n+1 puntos asociados con datos (i = 0, 1, 2, , n) existen n intervalos y, en consecuencia, 4n incognitas a evaluar. Como
se reviso previamente como con los trazados cuadraticos, se necesitan 4n condiciones para evaluar las incognitas (a, b, c, d).
1. Los valores de la funcion deben ser iguales en los nodos interiores (2n 2)condiciones.
2. La primera y ultima funcion deben pasar a traves de los puntos extremos (2condiciones).
3. Las primeras derivadas de los nodos interiores deben ser iguales (n 1condiciones).
4. Las segundas derivadas en los nodos interiores deben ser iguales n 1condiciones.
5. Las segundas derivadas en los nodos extremos son cero 2condiciones.
IV-A. Obtencion de splines cubicos
Para obtener cada funcion cubica debemos asegurarnos de que su segunda derivada dentro de cada intervalo es una lnea
recta, podemos derivar dos veces a la ecuacion (11) y la representamos mediante un polinomio de interpolacion de primer
grado de Lagrange
x xi x xi1
fi00 (x) = fi00 (xi1 ) + fi00 (xi ) (12)
xi1 xi xi xi1
donde fi00 (x) es el valor de la segunda derivada en cualquier punto x dentro del i esimo intervalo. Esta ecuacion es una recta
que une la segunda derivada del primer nodo con la segunda derivada del siguiente.
Ahora procedemos a integrar dos veces a (12) para obtener una expresion para fi (x). Sin embargo, esta expresion contendra dos
constantes de integracion desconocidas.
Estas constantes se evaluan tomando las condiciones de igualdad de las funciones
[f (x) debe ser igual a f (xi1 ) en xi1 y f (x) debe ser igual igual a f (xi ) en xi ]
Al realizar estas evaluaciones, se tiene la siguiente ecuacion cubica:
fi00 (xi1 ) fi00 (xi ) f 00 (xi1 )(xi xi1 )
 
f (xi1 )
fi (x) = (xi x)3 + (x xi1 )3 + (xi x) (13)
6(xi xi1 ) 6(xi xi1 ) xi xi1 6

f 00 (xi1 )(xi xi1 )


 
f (xi )
+ (x xi1 )
xi xi1 6
Podemos observar que la ecuacion (13) es mucho mas compleja que la expresion de spline cubico principal (11), sin embargo
esta solo posee dos coeficientes desconocidos, es decir las segundas derivadas al inicio y al final del intervalo. f 00 (xi1 ) y
f 00 (xi ).
Para evaluar estas derivadas, tomamos la condicion de que las primeras derivadas deben ser continuas en los nodos.
fi0 (xi ) = fi+1
0
(xi )
Derivando tanto para el (i-1)-esimo, como para el i-esimo intervalos y estos resultados igualamos de acuerdo con la ecuacion
(IV-A), obtenemos la siguiente relacion.
(xi xi1 )f 00 (xi1 ) + 2(xi+1 xi1 )f 00 (xi ) + (xi+1 xi )f 00 (xi+1 ) (14)

6 6
= [f (xi+1 ) f (xi )] + [f (xi1 ) f (xi )]
xi+1 xi xi xi1
Si la ecuacion (14) se escribe para todos los nodos interiores, se obtienen n 1 ecuaciones simultaneas con n + 1 segundas
derivadas desconocidas, pero como es un spline natural, las segundas derivadas en los extremos de los nodos son cero y el
problema se reduce a n 1 ecuaciones con n 1 incognitas.
Organizando estas ecuaciones de manera simple obtenemos
fi00 (xi1 ) fi00 (xi ) f 00 (xi1 )(xi xi1 )
 
f (xi1 )
fi (x) = (xi x)3 + (x xi1 )3 + (xi x) (15)
6(xi xi1 ) 6(xi xi1 ) xi xi1 6

f 00 (xi1 )(xi xi1 )


 
f (xi )
+ (x xi1 )
xi xi1 6

V. A PLICACI ON EN I NGENIER IA E LECTR ONICA


Ejemplo 3: En este ejemplo se tratara un problema asociado a la ingeniera electrica, en donde aplicar polinomios por spline
resulta muy util y mas que nada al saber que los polinomios cubicos tienen mayor exactitud.
Se sabe que la cada de tension a traves de un inductor sigue la ley de Faraday:
di
VL = L
dt
donde VL es la cada del voltaje (V olts), L es la inductancia (Henrys); 1H = 1 VAs ,e i es la corriente (Amperes). Emplee
los siguientes datos para estimar L:
Cuadro III
DATOS PARA AJUSTE CON SPLINES DE TERCER GRADO PARA HALLAR EL VALOR DE LA INDUCTANCIA L.

di A
x , 1 2 4 6 8 10
dt s
f (x) VL ,V 5.5 12.5 17.5 32 38 49

El primer paso consiste en usar la ecuacion (14) para generar el conjunto de ecuaiones simultaneas que se utilizaran para
derterminar las segundas derivadas en los nodos. Para el primer nodo utilizamos los siguientes datos:
x0 = 1 f (x0 ) = 5,5
x1 = 2 f (x1 ) = 12,5
x2 = 4 f (x2 ) = 17,5
Reemplazando estos valores en la ecuacion (14):
6 6
(2 1)f 00 (1) + 2(4 1)f 00 (2) + (4 2)f 00 (4) = (17,5 12,5) + (5,5 12,5)
42 21
Tomando en cuenta la condicion de trazador natural, f 00 (1) = 0, y la ecuacion se reduce a:
6f 00 (2) + 2f 00 (4) = 27 (16)
Realizamos el mismo procedimiento con el siguiente intervalo:
6 6
(4 2)f 00 (2) + 2(6 2)f 00 (4) + (6 4)f 00 (6) = (32 17,5) + (12,5 17,5)
64 42
Simplificando
2f 00 (2) + 8f 00 (4) + 2f 00 (6) = 28,5 (17)
Realizamos el mismo procedimiento con el siguiente intervalo:
6 6
(6 4)f 00 (4) + 2(8 4)f 00 (6) + (8 6)f 00 (8) = (38 32) + (17,5 32)
86 64
Simplificando
2f 00 (4) + 8f 00 (6) + 2f 00 (8) = 25,5 (18)
Realizamos el mismo procedimiento con el siguiente intervalo:
6 6
(8 6)f 00 (6) + 2(10 6)f 00 (8) + (10 8)f 00 (10) = (49 38) + (32 38)
10 8 86
Tomando en cuenta la condicion de trazador natural, f 00 (10) = 0, y la ecuacion se reduce a:
2f 00 (6) + 8f 00 (8) = 15 (19)
Obtenemos las ecuaciones (16), (17), (18), (19) simulataneas, de donde obtenemos los siguientes valores
f 00 (2) = 6,72059
00
f (4) = 6,66176
f 00 (6) = 5,67647
f 00 (8) = 3,29412
Con estos valroes, y reemplazando cada valor en la ecuacion (15) obtendremos las cuatro funciones cubicas splines para
representar una aproximacion de los datos originales.
Para f 00 (2) = 6,72059
f1 (x) = 1,1201(x 1)3 + 5,5(2 x) + 13,6201(x 1)
Para f 00 (4) = 6,66176
f2 (x) = 0,5600(4 x)3 + 0,555(x 2)3 + 8,4902(4 x) + 6,52941(x 2)
Para f 00 (6) = 5,67647
f3 (x) = 0,555(6 x)3 0,473(x 4)3 + 6,529(6 x) + 17,9822(x 4)
Para f 00 (8) = 3,29412
f4 (x) = 0,473(8 x)3 + 0,2745(x 6)3 + 17,9822(8 x) + 17,902(x 6)
Para f 00 (10) = 0
f5 (x) = 0,2745(10 x)3 + 17,902(10 x) + 24,5(x 8)
Cada ecuacion corresponde a cada intervalo para realizaer los diferentes trazos, se puede apreciar esto en la representacion
grafica a continuacion.

Ejemplo 3. Ajuste de curva con splines cubicos.

VI. P ROPIEDAD EXTREMAL Y DE CONVERGENCIA PARA FUNCIONES SPLINE


La interpolacion polinomial a trozos se ha introducido como una estrategia alternativa a la interpoacion polinomial clasica
global debido a que los polinomios de grado alto poseen un un caracter fuertemente oscilante al aumentar el numero de nodos
de interpolacion y ademas, en general, no convergen a la funcion interpolada al considerar pariciones arbitrariamente finas.
Sea s(x) es spline cubico de interpolacion de una funcion f (x) en los nodos xi , i = 0, 1, 2, , n se demuestra la siguiente
propiedad extremal Z xn Z xn
(s00 (x))2 dx (g 00 (x))2 dx (20)
x0 x0

para cualquier funcion g(x) C 2 ([x0 , xn ]) que interpole a f en los nodos xi , i = 0, 1, 2, , n y con los datos de contorno
del tipo de los de s(x).
Para interpretar graficamente esta propiedad de minimizacion consideramos la curvatura de la funcion f en x, que viene dad
por
f 00 (x)
(x) =
3
(1 + f 0 (x)2 ) 2
Si f 0 (x) es pequeno comparado con 1, (x) f 00 (x) y por tanto
Z xn Z xn
((x))2 dx (f 00 (x))2 dx
x0 x0
Rx
Esto es, la medida de la curvatura total de f en el intervalo [x0 , xn ] e puede aproximar por x0n (f 00 (x))2 dx. En clave de este
concepto geometrico podemos interpretar la propiedad external diciendo que el spline cubico de interpolacion adopta la forma
que, pasando por los puntos prescritos, minimiza la energa de deformacion haciendo alusion a la regla elastica que da nombre
a las funciones spline.
VII. E STUDIO DEL E RROR

3 !1
Z b 2
|E(x)| h 2 f 00 (t)dt x [a, b],
a

donde h = max (xi xi1 ) es el diametro de la praticion.


1iN

VIII. A PLICACIONES EN M ATLAB


Dentro de matlab podemos realizar interpolaciones por splines de varias formas, mediante el uso de comandos propios del
programa

c-spline
El c-spline, dentro de matlab se refiere a una interpolacion mediante trazados o splines de grado cubico. [1]
Su notacion es:
yy = spline(x, Y, xx)
donde x es el numero de puntos de la funcion, Y es el valor de cada punto de la funcion y xx son los valores de la funcion
Y en cada itnerpolacion.
Ejemplo 4: Determine la funcion que se ajusta a los datos
xx=[-1 -0.86 -0.5 0 0.5 0.86 1 1 1.04 1.15 1.3 1.54 1.82 2.17 2.58 3.08]
yy=[0 -0.25 -0.43 -0.5 -0.43 -0.25 0 0 0.15 0.25 0.3 0.3 0.3 0.3 0.3 0.3]
Utilizamos s como parametro y ajustamos funciones spline por separado a x y y como funciones de s
function spline1 ()
clear , c l f , hold o f f
xx =[1 0.86 0.5 0 0 . 5 0 . 8 6 1 1 1 . 0 4 1 . 1 5 1 . 3 1 . 5 4 1 . 8 2 2 . 1 7 2 . 5 8 3 . 0 8 ] ;
yy = [ 0 0.25 0.43 0.5 0.43 0.25 0 0 0 . 1 5 0 . 2 5 0 . 3 0 . 3 0 . 3 0 . 3 0 . 3 0 . 3 ] ;
s = 1 : l e n g t h ( xx ) ; s p = 1 : ( l e n g t h ( xx ) / 1 0 0 ) : l e n g t h ( xx ) ;
xp= s p l i n e ( s , xx , s p ) ;
yp= s p l i n e ( s , yy , s p ) ;
clf
p l o t ( xp , yp , r ) ; h o l d on
p l o t ( xx , yy , o ) ; x l a b e l ( x ) ; y l a b e l ( y ) ;
hold o f f
El resultado grafico de la interpolcion se muestra a continuacion.
Ejemplo 4. Ajuste de curva con comando spline() Matlab.

IX.
C ONCLUSIONES
1. En comparacion con otros metodos de interplacion, el uso de trazas o splines genera una gran sencillez al momento de
ajuste de curvas, debido a que solo trabaja con polinomios de bajo orden.
2. Debido a que este metodo trabaja segun intervalos, un procedimiento a mano esta ligado al numero de puntos ya que
mientras mas datos se tenga, mas funciones se deberan generar, por lo que se convierte en un trabajo tedioso, sin embargo
si se realiza el procedimiento en un programa computacional, sera de gran ayuda tanto en velocidad como en precision.
3. Es muy recomendable utilizar este metodo si al usar diferentes como Lagrange o Newton, se generan polinomios de
grados muy altos, que tienen problema al analizarse debido a su poca estabilidad y variaciones rapidas.

R EFERENCIAS
[1] Sh. Nakamura (1997) Analisis Numerico y Visualizacion grafica con matlab Prentice Hall Hispanoamericana S.A. ISBN: 978-96-8880-8603
[2] S. Chapra (2007) Metodos Numericos para Ingenieros 5ta Edicion. McGraw-Hill ISBN: 970-10-6114-4
[3] A. Nieves (2006) Metodos Numericos aplicados a la Ingeniera, 2da Edicion. Editorial Continental. ISBN: 970-24-0258-1
[4] Anonimo Interpolacion Spline, [Online] Recuperado de: http://www.ugr.es/prodelas/AnNumCaminos/ftp/Tema6.htm
[5] Wikipedia.org Metodo de Interpolacion Recuperado de:https://es.wikipedia.org/wiki/M%C3%A9todo de interpolaci%C3%B3n
[6] J. Romero, M. Ortega (1999) SPLINES GENERALIZADOS Y SOLUCION NODAL EXACTA EN EL METODO DE ELEMENTOS FINITOS, [Online]
Recuperado de: http://informesdelaconstruccion.revistas.csic.es/index.php/informesdelaconstruccion/article/viewFile/872/1116

Potrebbero piacerti anche