Splines cúbicos

Los splines cúbicos se utilizan para conectar los puntos suavemente. Escribe la implementación de la clase Curve que:

  • Acepta una lista o un conjunto de tuplas (x, y).
  • Construye n-1 splines para n nodos únicos.
  • Calcula y para un x dado.
  • Encuentra el min y el max de la curva.
  • Admite la adición y eliminación de nodos.
  • Admite los operadores sobrecargados +, -.

Una descripción más detallada de la clase, con los nombres de los métodos, se encuentra en las cadenas de documentación de la ventana de código.

Ejemplos

Para las 6 listas de nodos proporcionadas en Tests, se construyen las siguientes curvas:

Texto alternativo

Notas

  • En el uso práctico de los splines, x se encuentra dentro del rango de los nodos, pero en este desafío x puede estar en cualquier lugar para calcular y.
  • El mínimo o el máximo puede encontrarse en un nodo o en algún punto intermedio si un spline se curva. El rango de búsqueda está restringido al rango de los nodos; fuera de este rango, la curva tiende al infinito.
  • El algoritmo para construir splines es bastante sencillo y está bien explicado en la página wiki: Spline (matemáticas).