Spline

función matemática definida por partes mediante polinomios

En el subcampo matemático del análisis numérico, un spline es una curva diferenciable definida en porciones mediante polinomios.

Un tipo de spline, una curva de Bézier.

En los problemas de interpolación, se utiliza a menudo la interpolación mediante splines porque da lugar a resultados similares requiriendo solamente el uso de polinomios de bajo grado, evitando así las oscilaciones, indeseables en la mayoría de las aplicaciones, encontradas al interpolar mediante polinomios de grado elevado.

Para el ajuste de curvas, los splines se utilizan para aproximar formas complicadas. La simplicidad de la representación y la facilidad de cómputo de los splines los hacen populares para la representación de curvas en informática, particularmente en el terreno de los gráficos por ordenador.

Origen

editar

La teoría fundacional de los splines fue desarrollada en la década de 1940 por el matemático estadounidense de origen rumano Isaac Jacob Schoenberg (1903-1990).

Introducción

editar

El término "spline" hace referencia a una amplia clase de funciones que son utilizadas en aplicaciones que requieren la interpolación de datos, o un suavizado de curvas. Los splines son utilizados para trabajar tanto en una como en varias dimensiones. Las funciones para la interpolación por splines normalmente se determinan como minimizadores de la aspereza sometidas a una serie de restricciones.

En este artículo nos referiremos con el término "spline" a su versión restringida en una dimensión y polinomial, que es la más comúnmente utilizada.

Interpolación Segmentaria Lineal

editar

Este es el caso más sencillo. En él, vamos a interpolar una función f(x) de la que se nos dan un número N de pares   por los que tendrá que pasar nuestra función polinómica  . Esta serie de funciones nuestras van a ser lineales, esto es, con grado 1: de la forma  .

Definiremos una de estas funciones por cada par de puntos adyacentes, hasta un total de   funciones, haciéndolas pasar obligatoriamente por los puntos que van a determinarlas, es decir, la función   será el conjunto de segmentos que unen nudos consecutivos; es por ello que nuestra función será continua en dichos puntos, pero no derivable en general.

Ejemplo : Interpolar con splines   , en los puntos en los que   vale 1, 2 y 4

  •  
  •  
  •  

El primer segmento   deberá unir los primeros dos puntos de coordenadas   y  . Surge un sistema lineal de dos ecuaciones en dos incógnitas:

  • (1)  
  • (2)  

De (1) se obtiene:

  (3)

Reemplazando (3) en (2) se obtiene:

 

luego

 

Reemplazando el valor de (b) en (1), se obtiene:

 

Por lo tanto, se concluye que:   El segundo segmento   deberá unir el segundo punto   con el tercer punto  . Análogamente a lo hecho para  , en el caso de   se obtiene:

  1. (1)  
  2. (2)  

 

Luego  

Interpolación Segmentaria Cuadrática

editar

En este caso, los polinomios   a través de los que construimos el Spline tienen grado 2. Esto quiere decir, que va a tener la forma  

Como en la interpolación segmentaria lineal, vamos a tener   ecuaciones (donde   son la cantidad de puntos sobre los que se define la función). La interpolación cuadrática nos va a asegurar que la función que nosotros generemos a trozos con los distintos   va a ser continua, ya que para calcular los coeficientes que ajusten los polinomios a los puntos, vamos a determinar como condiciones:

  • Que las partes de la función a trozos   pasen por esos puntos. Es decir, que las dos   que rodean a   que queremos aproximar, sean igual a   en cada uno de estos puntos.
  • Que la derivada en un punto siempre coincida para ambos "lados" de la función definida a trozos que pasa por tal punto común.

Esto sin embargo no es suficiente, y necesitamos una condición más. ¿Por qué?. Tenemos 3 incógnitas por cada  . En un caso sencillo con   definida en tres puntos y dos ecuaciones   para aproximarla, vamos a tener seis incógnitas en total. Para resolver esto necesitaríamos seis ecuaciones, pero vamos a tener tan sólo cinco: cuatro que igualan el   con el valor de   en cada punto (dos por cada intervalo), y la quinta al igualar la derivada en el punto común a las dos  .

Se necesita una sexta ecuación,¿de dónde se extrae? Esto suele hacerse con el valor de la derivada en algún punto, al que se fuerza uno de los  .

Interpolación Segmentaria Cúbica

editar

En este caso, cada polinomio   a través del que construimos los Splines en   tiene grado 3. Esto quiere decir, que va a tener la forma  

En este caso vamos a tener cuatro incógnitas por cada intervalo  , y una nueva condición para cada punto común a dos intervalos, respecto a la derivada segunda:

  • Que las partes de la función a trozos   pasen por ese punto. Es decir, que las dos   que rodean al   que queremos aproximar, sean igual a   en cada uno de estos puntos.
  • Que la derivada en un punto siempre coincida para ambos "lados" de la función definida a trozos que pasa por tal punto común.
  • Que la derivada segunda en un punto siempre coincida para ambos "lados" de la función definida a trozos que pasa por tal punto común.

Como puede deducirse al compararlo con el caso de splines cuadráticos, ahora no nos va a faltar una sino dos ecuaciones (condiciones) para el número de incógnitas que tenemos.

La forma de solucionar esto, determina el carácter de los splines cúbicos. Así, podemos usar:

  • Splines cúbicos naturales: La forma más típica. La derivada segunda de   se hace 0 para el primer y último punto sobre el que está definido el conjunto de Splines, esto son, los puntos   y   en el intervalo  .
  • Dar los valores de la derivada segunda de   y   de forma "manual", en el conjunto de splines definidos en el intervalo  .
  • Hacer iguales los valores de la derivada segunda de m y n en el conjunto de splines definidos en el intervalo  
  • Splines cúbicos sujetos: La derivada primera de P debe tener el mismo valor que la derivada primera de la función para el primer y último punto sobre el que está definido el conjunto de Splines, esto son, los puntos m y n en el intervalo [m,n].

Referencias

editar
  • Ferguson, James C, Multi-variable curve interpolation, J. ACM, vol. 11, no. 2, pp. 221-228, Apr. 1964.
  • Ahlberg, Nielson, and Walsh, The Theory of Splines and Their Applications, 1967.
  • Birkhoff, Fluid dynamics, reactor computations, and surface representation, in: Steve Nash (ed.), A History of Scientific Computation, 1990.
  • Bartels, Beatty, and Barsky, An Introduction to Splines for Use in Computer Graphics and Geometric Modeling, 1987.
  • Birkhoff and de Boor, Piecewise polynomial interpolation and approximation, in: H. L. Garabedian (ed.), Proc. General Motors Symposium of 1964, pp. 164–190. Elsevier, New York and Amsterdam, 1965.
  • Davis, B-splines and Geometric design, SIAM News, vol. 29, no. 5, 1997.
  • Epperson, History of Splines, NA Digest, vol. 98, no. 26, 1998.
  • Stoer & Bulirsch, Introduction to Numerical Analysis. Springer-Verlag. p. 93-106. ISBN 0387904204
  • Schoenberg, Contributions to the problem of approximation of equidistant data by analytic functions, Quart. Appl. Math., vol. 4, pp. 45–99 and 112–141, 1946.
  • Young, Garrett Birkhoff and applied mathematics, Notices of the AMS, vol. 44, no. 11, pp. 1446–1449, 1997.
  • Chapra, Canale, "Numerical Methods for Engineers" 5th edition.

Enlaces externos

editar