Splines
Splines
Splines
Splines
DCC - UFMG
2012
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 ...
−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
Ou seja,
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
2a21 − 6a31 = 0
2a22 + 6 × 2a32 = 0
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
p100 (x0 ) = 0
pn00 (xn ) = 0
S 0 (x0 ) = d1 e S 0 (xn ) = d2
S 0 (x0 ) = 0 e S 0 (xn ) = 0
p1 (x ) = p2 (x )
Figura: Spline natural (vermelho), spline clamped (azul), spline not a knot
(preto). Em Scilab, not a knot é o default: splin(x, y);
Notação