🧮 Computational Mathematics

Inicio · Parte 11 — Métodos numéricos y computación científica

226 — Splines

cientifico clase 6 de 20 4 horas demostración splines

Muchos trozos de grado bajo baten a un único polinomio de grado alto.

Fórmulas

spline lineal: recta entre cada par de nodos consecutivos
spline cúbico: continuidad de valor, primera y segunda derivada
n nodos ⟹ n−1 tramos

Desarrollo

Un spline es una función definida a trozos, con un polinomio de grado bajo en cada intervalo entre nodos consecutivos, empalmados con condiciones de continuidad. La idea resuelve el problema de Runge por la vía directa: si el grado alto oscila, no se usa grado alto.

El spline lineal simplemente une los puntos con segmentos. Es continuo, no oscila nunca, y su error es O(h²) en cada tramo. Su defecto es visible: tiene esquinas en los nodos, la derivada salta, y para animación o diseño gráfico eso se nota.

El spline cúbico usa polinomios de grado 3 e impone continuidad del valor, de la primera derivada y de la segunda. El resultado es visualmente suave y matemáticamente notable: entre todas las funciones que pasan por los puntos, el spline cúbico natural es la que minimiza la curvatura total, que es la formalización de «la curva más suave posible». El nombre viene de las varillas flexibles que usaban los constructores navales.

Los splines están en todas partes: en las curvas de las herramientas de diseño gráfico, en la interpolación de datos científicos, en las trayectorias de robots y en los modelos aditivos generalizados. Su ventaja decisiva es la localidad: mover un punto solo afecta a los tramos vecinos, mientras que en un polinomio global un cambio en un extremo altera toda la curva.

Ejemplo trabajado

Spline lineal sobre datos que oscilan entre 0 y 1.

nodos:   0    1    2    3    4
valores: 0    1    0    1    0

Evaluaciones del spline lineal:
  s(0,50) = 0,50      dentro del tramo [0,1]
  s(1,50) = 0,50      dentro del tramo [1,2]
  s(2,25) = 0,25      dentro del tramo [2,3]

Pasa por todos los nodos                                 ✓
Nunca sale del rango [0,1] de los datos                  ✓

Un polinomio único de grado 4 por estos 5 puntos
llega a valores por debajo de −0,3 entre los nodos.

Localidad: cambiar el valor en x = 4 no altera
el spline en el tramo [0,1].

Qué calcula el laboratorio

Spline lineal por tramos frente a un polinomio único.

python classes/part-11-metodos-numericos-y-computacion-cientifica/226-splines/lab.py
compmath run 226

Salidas del laboratorio (9)

Muestra de la ejecución real

{
  "nodos": [
    0.0,
    1.0,
    2.0,
    3.0,
    4.0
  ],
  "valores": [
    0.0,
    1.0,
    0.0,
    1.0,
    0.0
  ],
  "spline_en_0.5": 0.5,
  "spline_en_1.5": 0.5,
  "spline_en_2.25": 0.25,
  "pasa_por_todos_los_nodos": true
}

Errores comunes

Dónde se usa

Curvas en diseño gráfico y CAD, interpolación de series temporales, trayectorias suaves en robótica y modelos aditivos generalizados.

Idea rectora de la parte

Todo método iterativo necesita criterio de parada y tolerancia declarada.

Error a evitar

Aplicar Runge-Kutta con paso fijo a un sistema rígido.

Conexión con IA

Los Neural ODE, los samplers de difusión y los optimizadores de segundo orden son métodos numéricos con parámetros aprendidos.

Bibliografía de la clase

Archivos de la clase