Splines cúbicos

Os splines cúbicos são usados para conectar os pontos suavemente. Escreva a implementação da classe Curve que:

  • Aceita uma lista ou um conjunto de tuplas (x, y).
  • Constrói n-1 splines para n nós únicos.
  • Calcula y para um x fornecido.
  • Encontra o min e o max da curva.
  • Permite adicionar e remover nós.
  • Permite os operadores sobrecarregados +, -.

Uma descrição mais detalhada da classe, com os nomes dos métodos, está nas strings de documentação da janela de código.

Exemplos

Para as 6 listas de nós fornecidas em Tests, as seguintes curvas são construídas:

Texto alternativo

Observações

  • No uso prático dos splines, x está dentro do intervalo dos nós, mas neste desafio x pode estar em qualquer lugar para calcular y.
  • O mínimo ou o máximo pode estar em um nó ou em algum ponto dentro do intervalo se um spline fizer uma curva. O intervalo de busca é restrito ao intervalo dos nós; fora dele, a curva tende ao infinito.
  • O algoritmo para construir splines é bastante simples e está bem explicado na página da wiki: Spline (matemática).