Interpolación por Trazadores Cúbicos (Cubic Splines) Jesús Darío Aguiar Betancourt Universidad Tecnológica de bolívar Cartagena, Colombia
[email protected]
La interpolación por trazadores cúbicos tiene como idea central usar segmentos de polinomios entre pares coordenados de datos y unir cada uno de ellos adecuadamente para ajustar los datos. En pocas palabras se dice que una función Spline está formada por varios polinomios, cada uno definido en un intervalo y que se unen entre sí con respecto a ciertas condiciones de continuidad.
R esumen -
Abstrac Abstractt – The
cubic splines interpolation have as main idea to use segments of polynomials between coordinate pairs of values and connect each one of these properly to adjust the values. Briefly the Spline function is formed by polynomials, each one defined in an interval and which are interconnected with respect to some continuity conditions.
( ) ( ) () () () () ()
Donde es un polinomio cúbico: , para toda i=0, 1, …, n y tal que tiene primera y segunda derivadas continuas en ( ) [2].
Por ej.
Interpolar los siguientes datos usando Spline Cúbico: x
1
3
5
y
-2
4
-6
I. INTRODUCCIÓN Para un conjunto numeroso de puntos no es muy útil calcular el polinomio interpolante que pasa por estos puntos, puesto puesto que tiende a tener grandes oscilaciones. Por lo que resultaría más fácil realizar una interpolación secuencial de grado bajo sobre subconjuntos más pequeños del total de puntos, para así dar origen a una función a trozos. La interpolación a trozos más útil y de uso general utilizados en campos como el diseño gráfico, los gráficos por computadora, economía, etc., es la que se realiza mediante polinomios de grado tres llamados trazadores cúbicos o splines cúbicos[1].
II. DESCRIPCION DEL MÉTODO Los splines cúbicos se encargan de unir cada par coordenado con ecuaciones polinomiales de orden tres. Las ecuaciones son de la forma .
Dados n+1 datos: x y
…. ….
Antes que todo nos fijamos que se forman dos intervalos en los datos sobre el eje x: [1,3], [3,5] Para cada uno de los dos intervalos, se debe definir una función polinomial de grado 2, de modo que tenemos:
()
Cada ecuación une los puntos cuyas coordenadas están dadas por sus respectivos puntos en cada intervalo, es decir, los tres pares coordenados se unen mediante dos ecuaciones polinomiales de orden 3. Para solucionar el problema se debe cumplir que los splines pasen por los puntos de la tabla de datos de la siguiente siguiente manera:
(()) ()
Lo que da origen a las ecuaciones:
Usando Scilab se obtiene la solución:
Obtenemos un total de 4 ecuaciones y 8 incognitas. El siguiente paso es hallar las derivadas continuas. En el caso de splines de grado 3, se necesita comprobar la primera y segunda derivada continua.
Sustituyendo estos valores en la función inicial, el spline cúbico para la tabla de datos queda definido de la siguiente manera:
() () { } () ()
()
En los puntos donde cambia de intervalo se pueden presentar discontinuidades, es decir, para x=3; y para evitar esta discontinuidad, se evalua en x=3 en los dos polinomios y se igualan:
} () { ()
De la misma manera se realiza con la segunda derivada:
Se evalúan ambas derivadas en x=3 para lograr que continua en ese punto.
sea
En este punto se cuenta con 6 ecuaciones y 8 incognitas, por lo tanto se tienen dos grados de libertad; por lo tanto, se agregan las siguientes 2 condiciones:
(()) (()) [ ] [ ]
Lo que como resultado de ob tiene:
Organizado en forma matricial:
Fig 1. Grafica de
()
(línea roja) y la interpolación lineal de los puntos de la tabla de datos (línea azul)
Nótese que la línea roja es la que está co mpuesta por dos polinomios y no se logra diferenciar entre estos dos, está precisión es la que aportan las condiciones impuestas en sus derivadas. Usando Scilab se obtiene la solución con el siguiente código: clc Xi=[1 3 5] Yi=[-2 4 -6] x=[1 1 1 1 0 0 0 0;27 9 3 1 0 0 0 0;0 0 0 0 27 9 3 1; 0 0 0 0 125 25 5 1;27 6 1 0 -27 -6 -1 0;18 2 0 0 -18 -2 0 0; 6 2 0 0 0 0 0 0;0 0 0 0 30 2 0 0] y=[-2;4;4;-6;0;0;0;0] val=(inv(x))*y xx=0:0.1:3; yy=3:0.1:6
zz=0:0.1:6 d=splin(Xi,Yi) s1=(-0.5*(xx^3))+(1.5*(xx^2))+(3.5*xx)-(6.5) s2=(0.5*(yy^3))-(7.5*(yy^2))+(30.5*yy)-(33.5) plot(xx,s1,'r',yy,s2,'r') xgrid int1=interp1(Xi,Yi,zz,'spline'); plot (zz,int1)
III. CONCLUSIONES Los trazadores cúbicos es un método con mucho uso en varios campos como el diseño de letras por computador, CAD, o en situaciones donde la interpolación que se necesita es bastante delicada como datos médicos sobre algún tipo de enfermedad. Brinda mucha precisión y una finura casi artística.
REFERENCIAS [1] http://blog.espol.edu.ec/econde/files/2012/08/AN-21_EL-TRAZADORCUBICO.pdf [2] Yamil Armando Cerquera Rojas, Interpolación con trazadores o spline, Universidad Surcolombiana, Neiva. (2007) pag 12.