Calculadora de Interpolação por Splines Cúbicas

Crie curvas cúbicas suaves por partes a partir de pontos de dados com condições de contorno naturais, fixadas ou not-a-knot.

Os resultados são calculados automaticamente conforme você informa os dados.

Calculadora de Interpolação por Splines Cúbicas Carregando os controles da calculadora...
Resultado Informe pontos de dados para criar uma spline.

▼ Veja explicações e dicas abaixo ▼

O que é interpolação por splines cúbicas?

A interpolação por splines cúbicas é uma forma de traçar uma curva suave por um conjunto de pontos de dados conhecidos. Em vez de forçar um único polinômio grande a passar por todos os pontos, ela constrói um polinômio cúbico separado entre cada par de pontos vizinhos.

Essa abordagem local é a ideia central. Cada intervalo pequeno recebe sua própria equação cúbica, mas as equações são unidas para que a curva não tenha cantos nos pontos compartilhados, chamados nós. Uma spline cúbica normalmente coincide com os valores dos dados em cada nó e tem derivadas primeira e segunda compatíveis nos nós internos. Em termos simples, a curva é contínua, sua inclinação muda suavemente e sua curvatura não sofre um salto repentino no meio do intervalo dos dados.

Splines cúbicas são úteis quando você conhece valores em várias coordenadas x e quer uma estimativa razoável entre elas. Elas são comuns em análise numérica, engenharia, computação científica, animação, visualização de dados e em qualquer situação em que uma curva interpoladora suave seja mais útil do que segmentos de reta.

Uma spline cúbica é um método de interpolação, não um método de regressão ou suavização. Ela é projetada para passar pelos pontos fornecidos. Se os pontos contiverem ruído de medição, erros ou valores atípicos, a spline normalmente refletirá esses problemas em vez de compensá-los por meio de uma média.


Por que a interpolação por splines cúbicas é importante

A interpolação linear é fácil de entender, mas forma cantos nos pontos de dados. Esses cantos podem ser irreais quando a grandeza subjacente varia suavemente, como posição, temperatura, pressão, concentração, movimento ou uma função matemática amostrada.

Um único polinômio de grau alto também pode passar por todos os pontos, mas a interpolação polinomial global pode se comportar mal quando muitos pontos são usados, especialmente com valores de x igualmente espaçados. Pequenas alterações nos dados podem afetar a curva muito longe do local onde a alteração ocorreu. Splines cúbicas evitam boa parte desse problema usando trechos locais de baixo grau.

O resultado é um compromisso prático: a curva é mais suave do que a interpolação linear por partes, mas permanece local o suficiente para ser mais fácil de controlar do que um único polinômio global. As condições de contorno determinam então como a curva se comporta nas duas extremidades, onde não há pontos vizinhos dos dois lados para definir automaticamente o formato.


Termos importantes

  • Interpolação: Estimativa de valores entre pontos de dados conhecidos, passando pelos pontos conhecidos.
  • Spline: Função polinomial por partes, unida em pontos selecionados chamados nós.
  • Polinômio cúbico: Polinômio com termos até a terceira potência, como \(a + bt + ct^2 + dt^3\).
  • Nó: Ponto de dados onde trechos vizinhos da spline se encontram.
  • Segmento: Um intervalo entre dois valores de x adjacentes. Uma spline com \(n\) pontos válidos tem \(n - 1\) segmentos.
  • Condição de contorno: Regra adicional usada nas extremidades esquerda e direita da spline para completar o sistema da spline.
  • Spline natural: Spline cúbica cujas derivadas segundas nas extremidades são definidas como zero.
  • Spline com derivadas fixadas: Spline cúbica cujas inclinações nas extremidades são especificadas diretamente.
  • Spline not-a-knot: Spline cúbica que faz os dois primeiros trechos se comportarem como um único cúbico no primeiro nó interno e os dois últimos trechos como um único cúbico no último nó interno.
  • Continuidade da primeira derivada: Trechos vizinhos têm a mesma inclinação no ponto em que se encontram.
  • Continuidade da segunda derivada: Trechos vizinhos têm a mesma curvatura no ponto em que se encontram.

Como funciona a interpolação por splines cúbicas

Suponha que os pontos de dados válidos estejam ordenados pelo valor de x:

$$ (x_0,y_0), (x_1,y_1), \ldots, (x_{n-1},y_{n-1}) $$

Cada segmento vai de \(x_i\) a \(x_{i+1}\). O espaçamento entre valores de x adjacentes é

$$ h_i = x_{i+1} - x_i $$

No segmento \(i\), a spline usa uma coordenada local

$$ t = x - x_i $$

e um polinômio cúbico da forma

$$ S_i(t)=a_i+b_i t+c_i t^2+d_i t^3 $$

A coordenada local é importante. Os coeficientes \(a_i\), \(b_i\), \(c_i\) e \(d_i\) pertencem a um único intervalo. Eles não são os coeficientes de um polinômio grande para todo o conjunto de dados.

Uma forma comum de construir a spline é resolver as derivadas segundas nos nós. Seja \(M_i\) o valor da segunda derivada no nó \(i\). Para cada nó interno, as derivadas segundas satisfazem

$$ h_{i-1}M_{i-1}+2(h_{i-1}+h_i)M_i+h_iM_{i+1} =6\left(\frac{y_{i+1}-y_i}{h_i}-\frac{y_i-y_{i-1}}{h_{i-1}}\right) $$

para \(i=1,2,\ldots,n-2\).

Essas equações fazem com que os trechos cúbicos vizinhos se conectem com a mesma inclinação e a mesma curvatura. Ainda são necessárias duas equações nas extremidades. Elas são fornecidas pela condição de contorno selecionada.

Para uma spline natural, a curvatura nas extremidades é definida como zero:

$$ M_0=0, \qquad M_{n-1}=0 $$

Para uma spline com derivadas fixadas, o usuário fornece as inclinações nas extremidades. Se a inclinação da extremidade esquerda for \(s_L\) e a inclinação da extremidade direita for \(s_R\), as equações de contorno serão

$$ 2h_0M_0+h_0M_1=6\left(\frac{y_1-y_0}{h_0}-s_L\right) $$

e

$$ h_{n-2}M_{n-2}+2h_{n-2}M_{n-1}=6\left(s_R-\frac{y_{n-1}-y_{n-2}}{h_{n-2}}\right) $$

Para uma spline not-a-knot, os dois primeiros segmentos são condicionados a compartilhar o mesmo comportamento da terceira derivada no primeiro nó interno, e os dois últimos segmentos recebem uma condição semelhante no último nó interno. Na forma baseada na segunda derivada usada aqui, isso produz equações de contorno como

$$ h_1M_0-(h_0+h_1)M_1+h_0M_2=0 $$

e

$$ h_{n-2}M_{n-3}-(h_{n-3}+h_{n-2})M_{n-2}+h_{n-3}M_{n-1}=0 $$

Essa condição de contorno precisa de pelo menos quatro pontos porque se refere aos dois primeiros e aos dois últimos trechos da spline.

Depois de encontrar as derivadas segundas, os coeficientes de cada segmento são calculados como

$$ a_i=y_i $$
$$ b_i=\frac{y_{i+1}-y_i}{h_i}-\frac{h_i(2M_i+M_{i+1})}{6} $$
$$ c_i=\frac{M_i}{2} $$
$$ d_i=\frac{M_{i+1}-M_i}{6h_i} $$

Esses coeficientes permitem calcular a spline em qualquer ponto dentro do segmento, substituindo \(t=x-x_i\) na equação cúbica local.


Exemplos de interpolação por splines cúbicas na prática

Exemplo 1: spline natural passando por três pontos

Suponha que os pontos sejam

$$ (0,0),\quad (1,1),\quad (2,0) $$

Uma spline cúbica natural tem dois segmentos porque três pontos criam dois intervalos. A condição natural nas extremidades define a segunda derivada como zero em \(x=0\) e \(x=2\).

As equações resultantes dos segmentos são

$$ S_0(t)=1.5t-0.5t^3, \qquad 0\le t\le 1 $$

em que \(t=x\) e

$$ S_1(t)=1-1.5t^2+0.5t^3, \qquad 0\le t\le 1 $$

em que \(t=x-1\).

Em \(x=0.5\), o primeiro segmento usa \(t=0.5\):

$$ S_0(0.5)=1.5(0.5)-0.5(0.5)^3=0.6875 $$

A curva passa pelos três pontos, tem uma inclinação suave em \(x=1\) e usa curvatura zero nas duas extremidades.


Exemplo 2: spline com derivadas fixadas e inclinações especificadas nas extremidades

Usando os mesmos pontos,

$$ (0,0),\quad (1,1),\quad (2,0) $$

suponha agora que a curva deva ser horizontal nas duas extremidades. Isso significa que as inclinações nas extremidades são

$$ s_L=0, \qquad s_R=0 $$

A spline com derivadas fixadas se torna

$$ S_0(t)=3t^2-2t^3, \qquad 0\le t\le 1 $$

para o primeiro segmento e

$$ S_1(t)=1-3t^2+2t^3, \qquad 0\le t\le 1 $$

para o segundo segmento. A curva ainda passa pelos mesmos três pontos, mas seu comportamento nas extremidades é diferente. A condição de contorno mudou o formato, embora os pontos de dados não tenham mudado.


Exemplo 3: comparação entre uma spline e um polinômio global

Imagine um conjunto de dados com muitos pontos formando uma curva irregular. Uma spline cúbica ajusta um polinômio cúbico local em cada intervalo, portanto alterar um ponto afeta principalmente os segmentos próximos. Já um polinômio interpolador de Lagrange é um único polinômio que passa por todos os pontos.

O polinômio global pode ser útil para comparação, mas não é a mesma coisa que a spline. Com muitos pontos, um polinômio global pode oscilar mais entre os pontos ou perto das extremidades do intervalo. A estrutura por partes da spline costuma ser a melhor escolha prática quando o objetivo é uma curva interpoladora suave com comportamento local.


Como interpretar o resultado

O resultado mais importante é a própria spline cúbica por partes. O gráfico mostra a curva passando pelos pontos de dados válidos, e a tabela de segmentos mostra a equação usada em cada intervalo.

A quantidade de segmentos é o número de pontos válidos ordenados menos um. Por exemplo, cinco pontos válidos criam quatro segmentos cúbicos.

A condição de contorno informa qual regra de extremidade foi usada. Splines naturais, com derivadas fixadas e not-a-knot podem passar pelos mesmos pontos, mas produzir comportamentos diferentes nas extremidades.

A observação de continuidade C1 significa que os segmentos vizinhos têm primeiras derivadas iguais nos nós internos. Na prática, a curva não tem um canto nesses pontos.

A observação de continuidade C2 significa que os segmentos vizinhos têm segundas derivadas iguais nos nós internos. Na prática, a curvatura da curva muda suavemente na parte interna do intervalo dos dados. Em uma spline natural, as extremidades também usam segunda derivada igual a zero.

A tabela de coeficientes deve ser lida uma linha por vez. Uma linha para \([x_i,x_{i+1}]\) fornece a equação cúbica apenas daquele intervalo:

$$ S_i(t)=a_i+b_i t+c_i t^2+d_i t^3, \qquad t=x-x_i $$

As unidades dependem das unidades dos seus dados. Se x for medido em segundos e y em metros, então \(b_i\) estará em metros por segundo, \(c_i\) estará em metros por segundo ao quadrado e \(d_i\) estará em metros por segundo ao cubo. Se os valores de x e y não tiverem unidades, os coeficientes serão combinações sem unidade dessas coordenadas.

A curva de comparação opcional de Lagrange não é o resultado da spline. Ela é um único polinômio interpolador que passa pelos mesmos pontos válidos e deve ser interpretada como uma comparação visual.


Erros comuns e equívocos

Um erro comum é inserir valores de x repetidos. Uma spline trata y como função de x, portanto um mesmo valor de x não pode corresponder a dois valores diferentes de y. Valores de x quase repetidos também podem causar problemas numéricos, porque o espaçamento \(h_i\) fica extremamente pequeno.

Outro erro é esperar uma spline cúbica com apenas dois pontos. Dois pontos definem um segmento de reta, mas não fornecem informação suficiente para o sistema de spline usado aqui. São necessários pelo menos três pontos numéricos completos.

Splines not-a-knot precisam de pelo menos quatro pontos nesta calculadora. Com apenas três pontos válidos, escolha uma condição de contorno diferente.

Em splines com derivadas fixadas, as entradas das derivadas esquerda e direita são inclinações, não valores de y nas extremidades. Suas unidades são unidades de y por unidade de x. Por exemplo, se y for distância e x for tempo, uma derivada fixada será um valor semelhante a uma velocidade.

Não misture unidades. Se os valores de x estiverem em segundos, as duas derivadas das extremidades devem usar unidades de y por segundo. Se alguns valores de x estiverem em minutos e outros em segundos, os coeficientes e o gráfico não terão um significado consistente.

Não trate a tabela de coeficientes como uma única equação global. Os coeficientes são locais ao intervalo porque cada linha usa \(t=x-x_i\).

Ao colar dados, lembre-se de que as colunas extras são ignoradas depois dos dois primeiros valores numéricos. Uma única coluna numérica é tratada como valores de y, com x definido pelo índice da linha. A primeira linha só é tratada como cabeçalho quando todas as suas entradas são não numéricas; uma linha mista como 0, bad é rejeitada para que os dados fornecidos não sejam descartados silenciosamente.


Quando usar a interpolação por splines cúbicas

Use a interpolação por splines cúbicas quando tiver pontos de dados conhecidos e quiser estimativas suaves entre eles. Ela é especialmente útil quando:

  • a curva deve passar por cada ponto fornecido;
  • a interpolação linear é angular demais;
  • um único polinômio global é sensível demais ou oscilatório;
  • os valores de x são medições, amostras ou nós ordenados;
  • você quer equações cúbicas intervalo a intervalo;
  • as hipóteses sobre a inclinação ou a curvatura nas extremidades são importantes.

Splines cúbicas não são a ferramenta adequada quando os dados têm ruído e você quer uma linha de tendência, ou quando precisa de um modelo estatístico com estimativas de incerteza.


Limitações e pontos importantes

Uma spline só é tão significativa quanto os dados e as hipóteses por trás dela. Ela passa pelos pontos informados, portanto pontos imprecisos podem criar um comportamento impreciso da curva.

Os valores de x devem ser distintos. Valores de x muito próximos podem tornar as equações numericamente sensíveis, porque os termos de espaçamento \(h_i\) aparecem nos denominadores e no sistema linear.

Todas as entradas devem ser finitas, mas valores finitos ainda podem produzir valores intermediários ou coeficientes fora do intervalo numérico da calculadora. Nesse caso, a calculadora para com uma mensagem de intervalo, em vez de mostrar um gráfico ou coeficientes contendo valores não finitos. Redimensione os valores das coordenadas e tente novamente.

As condições de contorno afetam o formato perto das extremidades. Splines naturais são simples e muitas vezes razoáveis quando nenhuma inclinação de extremidade é conhecida, mas a curvatura zero nas extremidades ainda é uma hipótese. Splines com derivadas fixadas são úteis quando as inclinações das extremidades são conhecidas, mas escolhas ruins de inclinação podem distorcer a curva. Splines not-a-knot evitam especificar inclinações ou curvatura zero, mas exigem pontos suficientes e ainda podem ser sensíveis aos dados das extremidades.

O cálculo é uma interpolação ao longo do intervalo coberto pelos valores de x fornecidos. Valores fora desse intervalo são extrapolações e podem não ser confiáveis, pois a spline deixa de estar ancorada por dados dos dois lados.

Os números exibidos são arredondados. Valores exibidos muito pequenos podem aparecer como zero, a saída numérica comum pode ter até seis casas decimais e valores muito grandes ou muito pequenos podem usar notação exponencial. Use os coeficientes exibidos como resultados numéricos práticos, não como expressões simbólicas exatas.

A calculadora não atribui unidades físicas automaticamente. Você é responsável por manter consistentes os valores de x, os valores de y e os valores das derivadas fixadas.

Em trabalhos de engenharia, científicos, financeiros, relacionados à segurança ou oficiais, verifique as entradas, analise as hipóteses de contorno e confira os resultados importantes com um método adequado ou um profissional qualificado.


Como usar esta calculadora

  1. Insira pelo menos três pares completos de coordenadas x-y, escolha um conjunto de dados de exemplo ou cole os dados na caixa de importação.
  2. Adicione ou exclua linhas conforme necessário. Mantenha pelo menos três linhas disponíveis e verifique se os valores de x válidos são distintos.
  3. Escolha uma condição de contorno: Natural, com derivadas fixadas ou Not-a-knot.
  4. Se escolher a opção com derivadas fixadas, insira as derivadas numéricas esquerda e direita das extremidades em unidades de y por unidade de x.
  5. Deixe a comparação de Lagrange ativada para comparar a spline com um único polinômio interpolador global, ou desative-a para se concentrar apenas na spline.
  6. Analise o gráfico, a quantidade de segmentos, as observações sobre continuidade e a tabela de coeficientes.
  7. Passe o cursor sobre o gráfico para inspecionar os valores da spline dentro do intervalo dos dados. Você também pode arrastar os pontos do gráfico para atualizar os dados de forma interativa e baixar o gráfico como PNG.

Perguntas frequentes

Quantos pontos são necessários para uma spline cúbica?

Esta calculadora precisa de pelo menos três pontos x-y numéricos completos. Três pontos criam dois segmentos cúbicos. A opção de contorno not-a-knot precisa de pelo menos quatro pontos válidos.


Qual condição de contorno devo escolher?

Escolha Natural quando não souber as inclinações das extremidades e uma hipótese simples de curvatura zero nas extremidades for aceitável. Escolha a opção com derivadas fixadas quando souber as inclinações esquerda e direita das extremidades. Escolha Not-a-knot quando quiser uma condição de spline de uso geral que não exija entradas de inclinação, desde que tenha pelo menos quatro pontos.


Qual é a diferença entre splines naturais e com derivadas fixadas?

Uma spline natural define a segunda derivada como zero nas duas extremidades. Uma spline com derivadas fixadas define a primeira derivada nas duas extremidades usando valores fornecidos pelo usuário. Ambas passam pelos mesmos pontos de dados, mas podem se curvar de maneira diferente perto das extremidades.


Por que valores de x repetidos não são permitidos?

A spline representa y como função de x. Se o mesmo valor de x tiver dois valores diferentes de y, a função será ambígua. Valores de x repetidos ou quase repetidos também podem tornar o espaçamento do intervalo pequeno demais para um sistema de spline estável.


Os coeficientes formam um único polinômio cúbico grande?

Não. Cada linha de coeficientes pertence a um único intervalo. A fórmula usa a variável local \(t=x-x_i\), portanto os coeficientes de um segmento não devem ser usados em outro segmento.


A curva de comparação de Lagrange é igual à spline?

Não. A comparação de Lagrange é um único polinômio interpolador global que passa pelos pontos válidos. A spline cúbica é um conjunto de trechos cúbicos locais unidos suavemente nos nós.


Posso usar a spline fora do intervalo de entrada de x?

Os valores da spline são mais significativos dentro do intervalo de x coberto pelos dados. Fora desse intervalo, a curva extrapola o comportamento das extremidades e pode não ser confiável.


Fontes e referências

Livros

  1. Carl de Boor. A Practical Guide to Splines. Edição revisada, Springer, 2001. Capítulos relevantes sobre aproximação polinomial, interpolação cúbica por partes e interpolação por splines. ISBN 978-0387953663. Registro no Google Books.
  2. William H. Press, Saul A. Teukolsky, William T. Vetterling e Brian P. Flannery. Numerical Recipes in Fortran 77: The Art of Scientific Computing. 2ª edição, Cambridge University Press, 1992. Seção 3.3, “Cubic Spline Interpolation”. PDF da seção.

Fontes on-line e educacionais

  1. J. R. Buchanan. “Cubic Spline Interpolation.” MATH 375, Análise Numérica, Millersville University, 2022. PDF.
  2. Comunidade SciPy. “scipy.interpolate.CubicSpline.” SciPy API Reference, consultado em 28 de junho de 2026. Documentação.
  3. Jean-Paul Berrut e Lloyd N. Trefethen. “Barycentric Lagrange Interpolation.” SIAM Review, 46(3), 501–517, 2004. DOI: 10.1137/S0036144502417715. Página da SIAM.