Existem vários tipos de splines, com objetivos conflitantes:
- aproxime-se dos pontos de dados de entrada
- curvas suaves vs. onduladas
Para alguns pontos de dados, convém interpolar exatamente; mas, para milhares de pontos, ou mesmo uma dúzia de ruídos, a interpolação exata irá mexer. A maioria dos instaladores de spline possui parâmetros para compensar a proximidade do ajuste versus a suavidade geral. Aqui está um gráfico de splines de grau 1 (linear por partes, conecte os pontos) com dados = linha + ruído. Você vê que o ajuste exato dos dados faz zig-zags para cima e para baixo, enquanto a suavização máxima fornece uma linha reta:
Existem splines para trabalhos diferentes, dependendo dos dados de entrada e dos novos pontos intermediários: dezenas / milhões de pontos, quão barulhentos, espalhados / em uma grade, 1d 2d 3d ... Em uma grade regular em 3d, por exemplo, um spline de grau d
vai olhar ( d+ 1)3vizinhos de cada ponto de consulta: 1 (vizinho mais próximo), 8 (trilinear), 27, 64 ... Você pode pagar 64? Você precisa de 64? Depende.
(Resumidamente, os splines B são suaves; os splines
Catmull-Rom interpolam, por exemplo, quadros de filmes;
misturas como 1/3 B + 2/3 CR são úteis no meio.)
Como o grau polinomial afeta a ondulação? Veja o fenômeno de Runge .
No overshoot em 1d 2d 3d ... veja (ahem)
esta pergunta
em math.stackexchange.
Sobre os perigos da EXtrapolação com splines além do linear, veja isso no SO.
Consulte também
stackoverflow.com/questions/tagged/spline .