title: Spline
text: # Spline
  
  En el subcampo matemático del análisis numérico, un spline es una curva diferenciable definida en porciones mediante polinomios.
  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.
  
  # Spline
  ## Origen
  
  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).
  
  # Spline
  ## Introducción
  
  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.
  
  # Spline
  ## Interpolación Segmentaria Lineal
  
  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 $(x,f(x))$ por los que tendrá que pasar nuestra función polinómica $P(x)$. Esta serie de funciones nuestras van a ser lineales, esto es, con grado 1: de la forma $P(x)=ax+b$.
  Definiremos una de estas funciones por cada par de puntos adyacentes, hasta un total de $(N-1)$ funciones, haciéndolas pasar obligatoriamente por los puntos que van a determinarlas, es decir, la función $P(x)$ 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 $f(x)=1/x$ , en los puntos en los que $x$ vale 1, 2 y 4
  * $f(1)=1$
  * $f(2)=0.5$
  * $f(4)=0.25$
  El primer segmento $P_{1}(x)=ax+b$ deberá unir los primeros dos puntos de coordenadas $(1,1)$ y $(2,0.5)$. Surge un sistema lineal de dos ecuaciones en dos incógnitas:
  * (1) $1=a+b$
  * (2) $0.5=2a+b$
  De (1) se obtiene:
  $a=1-b$ (3)
  Reemplazando (3) en (2) se obtiene:
  $0.5=2(1-b)+b$
  luego
  $b=1.5$
  Reemplazando el valor de (b) en (1), se obtiene:
  $a=-0.5$
  Por lo tanto, se concluye que: $P_{1}(x)=-0.5x+1.5$ El segundo segmento $P_{2}(x)=ax+b$ deberá unir el segundo punto $(2,0.5)$ con el tercer punto $(4,0.25)$. Análogamente a lo hecho para $P_{1}(x)$, en el caso de $P_{2}(x)$ se obtiene:
  * (1) $0.5=2a+b$
  * (2) $0.25=4a+b$
  $a=-0.125,b=0.75$
  Luego $P_{2}(x)=-0.125x+0.75$
  
  # Spline
  ## Interpolación Segmentaria Cuadrática
  
  En este caso, los polinomios $P(x)$ a través de los que construimos el Spline tienen grado 2. Esto quiere decir, que va a tener la forma $P(x)=ax^{2}+bx+c$
  Como en la interpolación segmentaria lineal, vamos a tener $n-1$ ecuaciones (donde $n$ 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 $P(x)$ 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 $P(x)$ pasen por esos puntos. Es decir, que las dos $P_{n}(x)$ que rodean a $f(x)$ que queremos aproximar, sean igual a $f(x)$ 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 $P(x)$. En un caso sencillo con $f(x)$ definida en tres puntos y dos ecuaciones $P(x)$ 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 $P(x)$ con el valor de $f(x)$ en cada punto (dos por cada intervalo), y la quinta al igualar la derivada en el punto común a las dos $P(x)$.
  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 $P(x)$.
  
  # Spline
  ## Interpolación Segmentaria Cúbica
  
  En este caso, cada polinomio $P(x)$ a través del que construimos los Splines en $[m,n]$ tiene grado 3. Esto quiere decir, que va a tener la forma $P(x)=ax^{3}+bx^{2}+cx+d$
  En este caso vamos a tener cuatro incógnitas por cada intervalo $(a,b,c,d)$, 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 $P(x)$ pasen por ese punto. Es decir, que las dos $P_{n}(x)$ que rodean al $f(x)$ que queremos aproximar, sean igual a $f(x)$ 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 $P$ se hace 0 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]$.
  * Dar los valores de la derivada segunda de $m$ y $n$ de forma "manual", en el conjunto de splines definidos en el intervalo $[m,n]$.
  * Hacer iguales los valores de la derivada segunda de m y n en el conjunto de splines definidos en el intervalo $[m,n]$
  * 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].