Você está na página 1de 55

Métodos Numéricos

Splines

Renato Martins Assunção

DCC - UFMG

2012

Renato Martins Assunção (DCC - UFMG) Métodos Numéricos 2012 1 / 70


Splines versus Lagrange

Overshoots muito menos pronunciados, menos ı́ngremes.

Renato Martins Assunção (DCC - UFMG) Métodos Numéricos 2012 2 / 70


Polinômio interpolador

O polinômio interpolador pode ser encontrado usando-se o


polinômio de Lagrange ou a forma do polinômio de Newton.
O polinômio é único e os dois algoritmos (Lagrange e Newton)
levam ao MESMO polinômio.
Eles são apenas duas formas diferentes de fazer o mesmo cálculo.
Os algoritmos que encontramos são estáveis numericamente.

Renato Martins Assunção (DCC - UFMG) Métodos Numéricos 2012 3 / 70


Polinômio interpolador: problemas

Tudo parece muito bem e nossos problemas acabaram-se ...


Não é bem assim.
Os polinômios interpolantes tendem a apresentar overshoots.
Isto é, oscilações muito extremas, máximos e mı́nimos locais muito
extremos entre os pontos.
Isto ocorre principalmente nos limites do intervalo de interpolação.

Renato Martins Assunção (DCC - UFMG) Métodos Numéricos 2012 4 / 70


Overshoots com Lagrange

Renato Martins Assunção (DCC - UFMG) Métodos Numéricos 2012 5 / 70


Mais overshoots com Lagrange

Renato Martins Assunção (DCC - UFMG) Métodos Numéricos 2012 6 / 70


Limitações do polinômio interpolante

é difı́cil acreditar que a função subjacente que queremos aproximar


tenha tantas subidas e descidas entre os pontos que estão sendo
interpolados.
Um único polinômio de grau n − 1 passa pelos pontos e este
polinômio único é este com as subidas e descidas extremas.
Existe um outro polinômio que tenha um aspecto menos variável?

Renato Martins Assunção (DCC - UFMG) Métodos Numéricos 2012 7 / 70


Polinômios com outros graus

Quais as soluções para isto?


Talvez um polinômio de grau MENOR que n − 1?
Ele terá um número menor de máximos e mı́nimos locais.
Por exemplo, um polinômio de grau 2 tem apenas um máximo ou
mı́nimo.
Mas ... polinômio de grau MENOR que n − 1 NãO VAI passar
pelos n pontos.
(a não ser que os pontos estejam numa disposição muito especial)

Renato Martins Assunção (DCC - UFMG) Métodos Numéricos 2012 8 / 70


Aumentando o grau?

Vai tornar a situação mais complicada.


Existem infinitos polinômios de grau n − 1 + k passando pelos n
pontos.
Além disso, ele vai ter MAIS máximos e mı́nimos locais que o
polinômio de grau n − 1.

Renato Martins Assunção (DCC - UFMG) Métodos Numéricos 2012 9 / 70


O que fazer então?

Vamos lembrar da primeira técnica que estudamos: a interpolação


linear.
Ela não tinha o problema de overshoots mas não era suave.
A interpolação linear era simplesmente um polinômio
DIFERENTE ajustado em cada segmento [xi , xi+1 ].
A não-suavidade ocorria nas junções:
Os polinômios eram retas.
As derivadas eram constantes dentro do segmento [xi , xi+1 ].
Precisavam mudar abruptamente ao passar de um segmento para
outro.

Renato Martins Assunção (DCC - UFMG) Métodos Numéricos 2012 10 / 70


Solução

Então ... que tal ajustar um polinômio mais maleável que uma reta
em cada segmento [xi , xi+1 ]?
Queremos ajustar um polinômio “por partes”.
Um polinômio de 2o ou 3o grau em cada segmento de forma que
eles “colem” suavemente num no outro.
Como fazer isto? Splines é a solução ...

Renato Martins Assunção (DCC - UFMG) Métodos Numéricos 2012 11 / 70


Ajustando parábolas por partes

Precisam colar suavemente umas as outras.


Renato Martins Assunção (DCC - UFMG) Métodos Numéricos 2012 12 / 70
Grau do polinômio

Podemos tentar usar parábolas que se ajustem suavemente umas


as outras.
Ou talvez polinômios cúbicos (3o grau).
O polinômio que usamos é o de 3o grau, splines cúbicos: é
bastante suave, dá bons resultados.

Renato Martins Assunção (DCC - UFMG) Métodos Numéricos 2012 13 / 70


Exemplo de spline cúbico

Renato Martins Assunção (DCC - UFMG) Métodos Numéricos 2012 14 / 70


Comparação com Lagrange

Overshoots muito menos pronunciados, menos ı́ngremes.

Renato Martins Assunção (DCC - UFMG) Métodos Numéricos 2012 15 / 70


Problema mais simples

Antes de definir os splines, vamos resolver um problema mais


simples.
Achar um polinômio p(x ) tal que p(−1) = 1 e p(3) = 0.
Isto é, o polinômio passa pelos pontos (−1, 1) e (3, 0).
Além disso, queremos fixar o valor das derivadas neste pontos.
Queremos que p 0 (−1) = 0 e também que p 0 (3) = 0.

Renato Martins Assunção (DCC - UFMG) Métodos Numéricos 2012 16 / 70


Primeiro grau?

Claramente, não existe um reta (polinômio de grau 1) satisfazendo


estas condições:
Uma reta tem derivada constante.
A derivada é zero em dois pontos.
A derivada deve ser igual a zero para todos os pontos → reta
horizontal.
Mas uma reta horizontal não pode passar por (−1, 1) e (3, 0).

Renato Martins Assunção (DCC - UFMG) Métodos Numéricos 2012 17 / 70


Segundo grau resolve?

Também não é possı́vel achar um polinômio de segundo grau


satisfazendo estas condições.
Suponha que p(x ) é polinômio de segundo grau e que:
1 = p(−1) = a0 + a1 (−1) + a2 (−1)2
0 = p(3) = a0 + a1 (3) + a2 (3)2
0 = p 0 (−1) = a1 + 2a2 (−1)
0 = p 0 (3) = a1 + 2a2 (3)

Renato Martins Assunção (DCC - UFMG) Métodos Numéricos 2012 18 / 70


Sistema linear correspondente

Sistema com mais


equações que incógnitas.    
Em geral, este tipo de 1 −1 1   1
 1 3 9  a0  0 
sistema linear não possui 
  a1  = 
   
9 1 −2 0
 
solução.  
a2
 
0 1 6 0
Este é o caso aqui: não há
solução.

Renato Martins Assunção (DCC - UFMG) Métodos Numéricos 2012 19 / 70


Segundo grau: sem solução

−1 −1
       
1 1 1 1 1 1
a0 a0
" # " #
 1 3 9  0  0 4 8   1 
a1 = −→  a1 =
 
 9 1 −2  0  0 0 −4  1/4 
a2 a2
0 1 6 0 0 0 0 1/2

Eliminação gaussiana gera o sistema equivalente da direita, que


não possui solução.
(veja a última equação: 0=1/2)

Renato Martins Assunção (DCC - UFMG) Métodos Numéricos 2012 20 / 70


Terceiro grau?

p(x ) é polinômio de 3o grau e:


1 = p(−1) = a0 + a1 (−1) + a2 (−1)2 + a3 (−1)3
0 = p(3) = a0 + a1 (3) + a2 (3)2 + a3 (3)3
0 = p 0 (−1) = a1 + 2a2 (−1) + 3a3 (−1)2
0 = p 0 (3) = a1 + 2a2 (3) + 3a3 (3)2
Ou seja
a 0 − a1 + a2 − a3 = 1
a0 + 3a1 + 9a2 + 27a3 = 0
a1 − 2a2 + 3a3 = 0
a1 + 6a2 + 27a3 = 0

Renato Martins Assunção (DCC - UFMG) Métodos Numéricos 2012 21 / 70


Polinômio cúbico: ok

O sistema linear pode ser escrito como:


    
1 −1 1 −1 a0 1
 1 3 9 27 
  a1
   0 
=
   
9 1 −2 3   a2 0
  
   
0 1 6 27 a3 0

Que possui solução única e igual a (0.84, −0.28, −0.09, 0.03).

Renato Martins Assunção (DCC - UFMG) Métodos Numéricos 2012 22 / 70


Solução

Renato Martins Assunção (DCC - UFMG) Métodos Numéricos 2012 23 / 70


Splines

n + 1 pontos: (x0 , y0 ), . . . , (xn , yn )


Achar função f (x ) que seja:
Um polinômio cúbico em cada intervalo [xi−1 , xi ] com i = 1, . . . , n.
Passe pelos pontos (xi , yi ).
Seja bastante suave nos pontos de junções dos intervalos:
f 0 (x ) seja contı́nua em todos os pontos
f 00 (x ) também seja contı́nua em todos os pontos
f 0 (x ) = 0 nos dois pontos extremos

Renato Martins Assunção (DCC - UFMG) Métodos Numéricos 2012 24 / 70


Splines

As condições anteriores são suficientes para garantir que o sistema


linear resultante será sempre inversı́vel.
Vamos ver um caso simples, com apenas 3 pontos.
Considere os pontos

(−1, 1), (1, 3), (2, 0)

Renato Martins Assunção (DCC - UFMG) Métodos Numéricos 2012 25 / 70


Splines

Queremos dois polinômios cúbicos.


Um polinômio entre (−1, 1) e
(1, 3) e outro polinômio entre
Vamos denotar este polinômios
(1, 3) e (2, 0).
por p1 (x ) e p2 (x ) sendo que
p1 (x ) = a01 + a11 x + a21 x 2 + a31 x 3
p2 (x ) = a02 + a12 x + a22 x 2 + a32 x 3
p1 (x ) passa por (−1, 1) e (1, 3)
p2 (x ) passa por (1, 3) e (2, 0)
Note o ponto (1,3) comum aos
dois polinômios.

Renato Martins Assunção (DCC - UFMG) Métodos Numéricos 2012 26 / 70


Construindo o sistema linear

A restrição de passar pelos 3 pontos cria 4 equações lineares que


devem ser satisfeitas.
1 = a01 − a11 + a21 − a31
3 = a01 + a11 + a21 + a31
3 = a02 + a12 + a22 + a32
0 = a02 + 2a12 + 4a22 + 8a32

Temos 4 equações e 8 incógnitas: infinitas soluções.


Precisamos acrescentar mais restrições.

Renato Martins Assunção (DCC - UFMG) Métodos Numéricos 2012 27 / 70


Que restrições adicionais são estas?

Não queremos apenas que os polinômios se encontrem no ponto


(1, 3).
Queremos que eles se encontrem suavemente no ponto de junção
(1, 3).
Por exemplo, queremos que a derivada pela esquerda no ponto
x = 1, que é a derivada do polinômio p1 (x ), coincida com a
derivada pela direita no mesmo ponto x = 1 (que é a derivada do
polinômio p2 (x )).

Renato Martins Assunção (DCC - UFMG) Métodos Numéricos 2012 28 / 70


Restrições nas 1a s derivadas

Assim, vamos impor o seguinte:

p10 (1) = p20 (1)

Temos p 0 (x ) = a1 + 2a2 x + 3a3 x 2 para um polinômio genérico de


3o grau.
No nosso caso, teremos a equação

a11 + 2a21 + 3a31 = a12 + 2a22 + 3a32

Ou seja,

a11 + 2a21 + 3a31 − a12 − 2a22 − 3a32 = 0

O único ponto de junção gerou uma equação adicional.


Temos agora 4 + 1 equações e 8 incógnitas.
Renato Martins Assunção (DCC - UFMG) Métodos Numéricos 2012 29 / 70
Sistema linear de splines

Temos agora 4 + 1 equações e 8 incógnitas.


1 = a01 − a11 + a21 − a31
3 = a01 + a11 + a21 + a31
3 = a02 + a12 + a22 + a32
0 = a02 + 2a12 + 4a22 + 8a32
0 = a11 + 2a21 + 3a31 − a12 − 2a22 − 6a32

Renato Martins Assunção (DCC - UFMG) Métodos Numéricos 2012 30 / 70


Restrições nas 2a s derivadas
Vamos adicionar uma restrição na 2a derivada, também no ponto
de junção.
Vamos pedir que
p100 (1) = p200 (1)
Temos p 00 (x ) = 2a2 + 6a3 x para um polinômio genérico de 3o grau.
Assim, teremos
No nosso caso, teremos a equação

2a21 + 6a31 = 2a22 + 6a32

Ou seja,
2a21 + 6a31 − 2a22 − 6a32 = 0
Temos agora 4 + 1 + 1 equações e 8 incógnitas.
Precisamos de mais 2 restrições (ou equações).
Renato Martins Assunção (DCC - UFMG) Métodos Numéricos 2012 31 / 70
Sistema linear de splines

Temos agora 4 + 1 + 1 equações e 8 incógnitas.


1 = a01 − a11 + a21 − a31
3 = a01 + a11 + a21 + a31
3 = a02 + a12 + a22 + a32
0 = a02 + 2a12 + 4a22 + 8a32
0 = a11 + 2a21 + 3a31 − a12 − 2a22 − 3a32
0 = 2a21 + 6a31 − 2a22 − 6a32

Renato Martins Assunção (DCC - UFMG) Métodos Numéricos 2012 32 / 70


Restrições finais

Os diversos tipos de splines diferem com respeito a estas duas


restrições finais.
O chamado spline natural impõe uma restrição sobre a derivada 2a
nos dois pontos extremos: ela deve ser igual a zero.
Isto é, queremos p100 (x0 ) = 0 e p200 (x2 ) = 0
Se a função for aproximadamente linear nos extremos, sua derivada
segunda deveria ser aproximadamente zero.

Renato Martins Assunção (DCC - UFMG) Métodos Numéricos 2012 33 / 70


Restrições finais

Com nossos pontos especııficos, isto implica

p100 (−1) = 0 e p200 (2) = 0

Ou seja, temos duas equações adicionais:

2a21 − 6a31 = 0
2a22 + 6 × 2a32 = 0

Agora temos 8 equações e 8 incógnitas.

Renato Martins Assunção (DCC - UFMG) Métodos Numéricos 2012 34 / 70


Sistema linear de splines

Temos agora 8 equações e 8 incógnitas.


1 = a01 − a11 + a21 − a31
3 = a01 + a11 + a21 + a31
3 = a02 + a12 + a22 + a32
0 = a02 + 2a12 + 4a22 + 8a32
0 = a11 + 2a21 + 3a31 − a12 − 2a22 − 3a32
0 = 2a21 + 6a31 − 2a22 − 6a32
0 = 2a21 − 6a31
0 = 2a22 + 12a32

Renato Martins Assunção (DCC - UFMG) Métodos Numéricos 2012 35 / 70


Sistema linear de splines

Na forma de sistema linear (entradas vazias são zeros)


 1 −1 1 −1   a01
  1 
 1 1 1 1   a11   3 
 1 1 1 1   a21   3 

 1 2 4 8  
  a31   0
=


 1 2 3 −1 −2 −3   a02   0 
2 6 −2 −6 a12
     0 
     
2 −6 a22 0
2 12 a32 0

Renato Martins Assunção (DCC - UFMG) Métodos Numéricos 2012 36 / 70


Os dois polinômios

Figura: p1 (x ) = 2 + x para x ∈ [−1, 1] e p2 (x ) = 6 − 11x + 12x 2 − 4x 3 para


x ∈ [1, 2].

Renato Martins Assunção (DCC - UFMG) Métodos Numéricos 2012 37 / 70


Os dois polinômios, ao mesmo tempo

Figura: Os dois polinômios vistos no segmento completo [−1, 2]. Temos


p1 (x ) = 2 + x para x ∈ [−1, 1] e p2 (x ) = 6 − 11x + 12x 2 − 4x 3 para x ∈ [1, 2].

Renato Martins Assunção (DCC - UFMG) Métodos Numéricos 2012 38 / 70


Com mais pontos
Queremos interpolar pelos 6 pontos do gráfico.
Teremos 6 − 1 = 5 cúbicas, uma para cada par de pontos
consecutivos.
Serão 5 ∗ 4 = 20 coeficientes → um sistema 20 × 20

Renato Martins Assunção (DCC - UFMG) Métodos Numéricos 2012 39 / 70


Sistema linear de splines

 1 −1 1 −1   1 
1 1.5
1 1.5
1 1 1 1 3
 1
1
1
2
1
4
1
8
 a01
a11
  3
0

 1 2 4 8
 a21
 0

 1 3 9 27  a31 −1

 1 3 9 27
 .
  −1
−3

 1 −1
1 4 16 64
 .
 
=
0

 1 2 3 −1
1
−2
4
−3
12 −1 −4 −12
 a05
.  
 0
0


 1 6 27 −1 −6 −27  a15  0 
2 −2 a25 0
 2 6 −2 −6  a35  0 
2 12 −2 −12 0
2 18 −2 −18 0
2 −6 0
2 24 0

Renato Martins Assunção (DCC - UFMG) Métodos Numéricos 2012 40 / 70


Caso geral

Temos n + 1 pares de pontos (x0 , y0 ), (x1 , y1 ), . . . , (xn , yn ).


Vamos supor que os pontos foram rotulados de forma que
x0 < x1 < . . . < xn .
Temos que achar n polinômios cúbicos, um para cada intervalo
(xi , xi+1 ).
São portanto 4n incógnitas (quatro coeficientes em cada polinômio
cúbico).
Precisamos de 4n equações para obter valores para as 4n
incógnitas.
Chamaremos de p1 (x ), . . . , pn (x ) os polinômios.
O polinômio pk (x ) corresponde ao intervalo [xk−1 , xk ].

Renato Martins Assunção (DCC - UFMG) Métodos Numéricos 2012 41 / 70


Caso geral
Impomos os dois valores nos intervalos extremos:
p1 (x0 ) = y0
e
pn (xn ) = yn
Além disso, nos pontos n − 1 internos temos
p1 (x1 ) = y1
p2 (x1 ) = y1
...
pn−1 (xn−1 ) = yn−1
pn (xn−1 ) = yn−1

Isto dá 2(n − 1) + 2 = 2n retrições ou equações.


Renato Martins Assunção (DCC - UFMG) Métodos Numéricos 2012 42 / 70
Caso geral

Até agora totalizamos 2n equações.


Temos ainda que impor as derivadas nos extremos (zero neste
caso):

p100 (x0 ) = 0
pn00 (xn ) = 0

e também a continuidade da derivada em cada um dos n − 1 nós


internos:

p10 (x1 ) = p20 (x1 )


...
0
pn−1 (xn−1 ) = pn0 (xn−1 )

Assim, totalizamos 2n + 2 + (n − 1) = 3n + 1 equações.


Renato Martins Assunção (DCC - UFMG) Métodos Numéricos 2012 43 / 70
Caso geral

Impomos também a continuidade da segunda derivada nos nós


internos.
Isto fornece mais n − 1 equações:

p100 (x1 ) = p200 (x1 )


...
00
pn−1 (xn−1 ) = pn00 (xn−1 ).

Ao todo, temos 3n + 1 + (n − 1) = 4n equações.


Este éo mesmo número de incógnitas ou coeficientes.

Renato Martins Assunção (DCC - UFMG) Métodos Numéricos 2012 44 / 70


Splines = sistema linear

Assim, interpolar os pontos com splines cúbicos leva a um sistema


linear.
Pode-se mostrar que este sistema sempre tem solução única.
A função em Scilab para interpolar com splines cúbicos naturais é
splin(x, y, "natural");
Vamos ver os tipos diferentes de splines.

Renato Martins Assunção (DCC - UFMG) Métodos Numéricos 2012 45 / 70


Tipos de splines

Até agora, colocamos uma restrição um tanto arbitrária nos


extremos.
Pedimos que a derivada segunda em x0 e em xn fossem iguais a
zero:
S 00 (x0 ) = 0 e S 00 (xn ) = 0
Uma derivada segunda igual a zero significa que, localmente (em
torno de x0 ou de xn ), o polinômio se parece com uma reta.
Este tipo de spline é chamado de spline natural.

Renato Martins Assunção (DCC - UFMG) Métodos Numéricos 2012 46 / 70


Tipos de splines

Outro tipo de spline é chamado de clamped.


A única mudança é que a derivada primeira é fixada num certo
valor dado pelo usuário:

S 0 (x0 ) = d1 e S 0 (xn ) = d2

Por exemplo, é comum fixar d1 = d2 = 0:

S 0 (x0 ) = 0 e S 0 (xn ) = 0

Em Scilab, digitamos splin(x, y, "clamped", [0, 0]);

Renato Martins Assunção (DCC - UFMG) Métodos Numéricos 2012 47 / 70


Spline natural x clamped

Figura: Spline natural (vermelho), com S 00 (x0 ) = S 00 (xn ) = 0, e spline clamped


(azul), com S 0 (x0 ) = S 0 (xn ) = 0.

Renato Martins Assunção (DCC - UFMG) Métodos Numéricos 2012 48 / 70


Tipos de splines: not a knot

O spline padrão no Scilab é not a knot.


Em cada nó interno, o spline S(x ) muda de uma cúbica para outra.
A ideia desta condição é NÃO mudar de cúbica nos dois primeiros
nós internos de cada extremo do intervalo, x1 e xn−1 .
Isto é, vamos impor que os polinômios dos dois primeiros intervalos
[x0 , x1 ] e [x1 , x2 ] sejam os mesmos:

p1 (x ) = p2 (x )

Vamos também pedir que os dois últimos polinômios sejam os


mesmos:
pn−1 (x ) = pn (x )

Renato Martins Assunção (DCC - UFMG) Métodos Numéricos 2012 49 / 70


Tipos de splines: not a knot
Matematicamente, para que os polinômios cúbicos sejam iguais,
basta que a derivada 3a. seja a mesma (além das derivadas 1a e 2a
que já são restritas a serem iguais).
Pedimos que
p1000 (x1 ) = p2000 (x1 )
e
pn000 (xn−1 ) = pn−1
000
(xn−1 )
Assim, estes nós deixam, na prática de ser nós.
A única mudança é que a derivada primeira é fixada num certo
valor dado pelo usuário:
S 0 (x0 ) = d1 e S 0 (xn ) = d2
Por exemplo, é comum fixar d1 = d2 = 0:
S 0 (x0 ) = 0 e S 0 (xn ) = 0
Renato Martins Assunção (DCC - UFMG) Métodos Numéricos 2012 50 / 70
Spline natural x clamped x not a knot

Figura: Spline natural (vermelho), spline clamped (azul), spline not a knot
(preto). Em Scilab, not a knot é o default: splin(x, y);

Renato Martins Assunção (DCC - UFMG) Métodos Numéricos 2012 51 / 70


Implementação computacional

Novo sistema equivalente

n + 1 pontos (x0 , y0 ), (x1 , y1 ), . . . , (xn , yn ) com x0 < x1 < . . . < xn .


Splines: n cúbicas. Em (xi , xi+1 ) teremos pi (x ). NATURAL:
Derivada segunda zero nos extremos.
4n incógnitas (4 coefs em cada cúbica).
Usamos sistema linear Ax = b com 4n equaçôes para obter os 4n
coeficientes.
Existe outra forma de obter o sistema Ax = b, diferente do que
fizemos até aqui.
É possı́vel mostrar que este sistema equivalente envolve uma
matriz muito mais simples e que pode ser automaticamente criada.

Renato Martins Assunção (DCC - UFMG) Métodos Numéricos 2012 52 / 70


Implementação computacional

Notação

Seja h1 = x1 − x0 , h2 = x2 − x1 , etc. até hn = xn − xn−1 .


A matriz vai depender destas distâncias entre os nós (coordenadas
horizontais dos pontos).
Defina também:
y1 − y0
r0 = 3
x1 − x0 
y1 − y0 y2 − y1
r1 = 3 h2 + h1
 x1 − x0 x2 − x1 
y2 − y1 y3 − y2
r2 = 3 h3 + h2
x2 − x1 x3 − x2
etc.  
yn−1 − yn−2 yn − yn−1
rn−1 = 3 hn + hn−1
xn−1 − xn−2 xn − xn−1
yn − yn−1
rn = 3
xn − xn−1

Renato Martins Assunção (DCC - UFMG) Métodos Numéricos 2012 53 / 70


Implementação computacional

Novo sistema equivalente - Splines naturais

Os 4n coeficientes dos n splines naturais são obtidos partir da


solução (s0 , s1 , . . . , sn ) do seguinte sistema linear:
2 1
 
h2 2(h1 + h2 ) h1
 s0
  r0

 h3 2(h2 + h3 ) h2  s1 r1
 . . .
 s2   r2 
. . .
. . . . .
    
  .   . 
 . . .  .   . 
. . . =
 . . .  . . 
. .
. .
    
    
  .   . 
. .
 . . .  .   . 
. . .
 . . .  sn−1 rn−1
hn 2(hn−1 + hn ) hn−1 sn rn
1 2

Como passar de (s0 , s1 , . . . , sn ) para os coeficientes dos splines


naturais?

Renato Martins Assunção (DCC - UFMG) Métodos Numéricos 2012 54 / 70


Implementação computacional

Mapeando os coeficientes dos splines

Sistema linear fornece a solução (s0 , s1 , . . . , sn ). Como obter os


coeficientes dos splines naturais?
Ao intervalo [xi−1 , xi ] associamos a cúbica
pi (x ) = ai + bi u(x ) + ci u(x )2 + di u(x )3 onde
u(x ) = (x − xi−1 )/(xi − xi−1 ).
Então
ai = yi−1
bi = hi si−1
ci = 3(yi − yi−1 ) − hi (2si−1 + si )
di = 3(yi−1 − yi ) + hi (si−1 + si )
Esta é a solução do spline natural.

Renato Martins Assunção (DCC - UFMG) Métodos Numéricos 2012 55 / 70

Você também pode gostar