Splines cúbicos

Interpolación a trozos con un cúbico por tramo: las condiciones de continuidad, el sistema tridiagonal que determina los coeficientes, los splines naturales y su resolución.

Por qué a trozos

Un único polinomio de grado alto oscila entre nodos (fenómeno de Runge). Los splines evitan ese problema usando un polinomio distinto, de grado bajo, en cada tramo, y pegándolos con suavidad. Los más usados son los cúbicos.

Si(x)=ai+bi(xxi)+ci(xxi)2+di(xxi)3,i=0,,n1S_i(x)=a_i+b_i(x-x_i)+c_i(x-x_i)^2+d_i(x-x_i)^3,\qquad i=0,\dots,n-1

Condiciones del spline cúbico

  1. Interpola: S(x_i)=f(x_i) en cada nodo.
  2. Es a trozos: S(x)=S_i(x) en [x_i, x_{i+1}].
  3. Continuidad de valor en los nodos compartidos: S_{i+1}(x_{i+1})=S_i(x_{i+1}).
  4. Continuidad de la primera derivada: S_{i+1}'(x_{i+1})=S_i'(x_{i+1}).
  5. Continuidad de la segunda derivada: S_{i+1}''(x_{i+1})=S_i''(x_{i+1}).
  6. Condiciones de contorno: naturales (S''=0 en los extremos) o restringidas (S' fijado en los extremos).

El sistema tridiagonal

Imponer las condiciones convierte el cálculo de los 4n4n coeficientes en un sistema lineal para los cic_i. Con hi=xi+1xih_i=x_{i+1}-x_i y ai=f(xi)a_i=f(x_i):

hi1ci1+2(hi1+hi)ci+hici+1=3hi(ai+1ai)3hi1(aiai1)h_{i-1}c_{i-1}+2(h_{i-1}+h_i)c_i+h_i c_{i+1}=\frac{3}{h_i}(a_{i+1}-a_i)-\frac{3}{h_{i-1}}(a_i-a_{i-1})

Una vez resueltos los cic_i, los demás coeficientes salen directamente:

bi=1hi(ai+1ai)hi3(2ci+ci+1),di=ci+1ci3hib_i=\frac{1}{h_i}(a_{i+1}-a_i)-\frac{h_i}{3}(2c_i+c_{i+1}),\qquad d_i=\frac{c_{i+1}-c_i}{3h_i}