43
Splines Splines Renato Assunção Renato Assunção Departamento de Ciência da Departamento de Ciência da Computação Computação UFMG UFMG

Splines

Embed Size (px)

DESCRIPTION

Splines. Renato Assunção Departamento de Ciência da Computação UFMG. 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. - PowerPoint PPT Presentation

Citation preview

Page 1: Splines

Splines Splines

Renato AssunçãoRenato Assunção

Departamento de Ciência da ComputaçãoDepartamento de Ciência da Computação

UFMGUFMG

Page 2: Splines

Polinômio interpoladorPolinômio interpolador O polinômio interpolador pode ser O polinômio interpolador pode ser

encontrado usando-se o polinômio de encontrado usando-se o polinômio de Lagrange ou a forma do polinômio de Lagrange ou a forma do polinômio de Newton.Newton.

O polinômio e único e os dois O polinômio e único e os dois algoritmos (Lagrange e Newton) levam algoritmos (Lagrange e Newton) levam ao MESMO polinômio.ao MESMO polinômio.

Eles são apenas duas formas diferentes Eles são apenas duas formas diferentes de fazer o mesmo cálculo. de fazer o mesmo cálculo.

Os algoritmos que encontramos são Os algoritmos que encontramos são estáveis numericamente. estáveis numericamente.

Page 3: Splines

Polinômio interpolador: problemasPolinômio interpolador: problemas Tudo parece muito bem e nossos Tudo parece muito bem e nossos

problemas se acabaram-se...problemas se acabaram-se... Não é bem assim. Não é bem assim. Os polinômios interpolantes tendem Os polinômios interpolantes tendem

a apresentar overshootsa apresentar overshoots Isto é, oscilações muito extremas, Isto é, oscilações muito extremas,

máximos e mínimos locais muito máximos e mínimos locais muito extremos entre os pontos.extremos entre os pontos.

Isto ocorre principalmente nos Isto ocorre principalmente nos limites do intervalo de interpolaçãolimites do intervalo de interpolação

Page 4: Splines

Overshoots com LagrangeOvershoots com Lagrange

Page 5: Splines

Mais overshoots com LagrangeMais overshoots com Lagrange

Page 6: Splines

Limitações do polinômio interpolanteLimitações do polinômio interpolante

É difícil acreditar que a função subjacente É difícil acreditar que a função subjacente que queremos aproximar tenha tantas que queremos aproximar tenha tantas subidas e descidas entre os pontos que subidas e descidas entre os pontos que estão sendo interpolados. estão sendo interpolados.

Um único polinômio de grau n-1 passa Um único polinômio de grau n-1 passa pelos pontos e este polinomio único e’ pelos pontos e este polinomio único e’ este com as subidas e descidas extremas.este com as subidas e descidas extremas.

Existe um outro polinômio que tenha um Existe um outro polinômio que tenha um aspecto menos variável?aspecto menos variável?

Page 7: Splines

Polinômios com outros grausPolinômios com outros graus

Quais as soluções para isto? Quais as soluções para isto? Talvez um polinômio de grau MENOR que n-1? Talvez um polinômio de grau MENOR que n-1? Ele terá um numero menor de máximos e Ele terá um numero menor de máximos e

mínimos locaismínimos locais Por exemplo, um polinômio de grau 2 tem Por exemplo, um polinômio de grau 2 tem

apenas um máximo ou mínimo.apenas um máximo ou mínimo. Mas...polinômio de grau MENOR que n-1 NAO Mas...polinômio de grau MENOR que n-1 NAO

VAI passar pelos n pontos VAI passar pelos n pontos (a não ser que os pontos estejam numa (a não ser que os pontos estejam numa

disposição muito especialdisposição muito especial))

Page 8: Splines

Aumentando o grau?Aumentando o grau?

Vai tornar a situação mais Vai tornar a situação mais complicada.complicada.

Existem infinitos polinômios de grau Existem infinitos polinômios de grau n-1+k passando pelos nn-1+k passando pelos n pontospontos

Além disso, ele vai ter MAIS Além disso, ele vai ter MAIS máximos e mínimos locais que o máximos e mínimos locais que o polinômio de grau n-1.polinômio de grau n-1.

Page 9: Splines

O que fazer entao?O que fazer entao? Vamos lembrar da primeira técnica que Vamos lembrar da primeira técnica que

estudamos: a interpolação linear. estudamos: a interpolação linear. Ela não tinha o problema de overshoots mas Ela não tinha o problema de overshoots mas

não era suave. não era suave. A interpolação linear era simplesmente um A interpolação linear era simplesmente um

polinômio DIFERENTE ajustado em cada polinômio DIFERENTE ajustado em cada segmento [xsegmento [xii, x, xi+1i+1].].

A não-suavidade ocorria nas junções: A não-suavidade ocorria nas junções: • os polinômios eram retas os polinômios eram retas • As derivadas eram constantes dentro do segmento As derivadas eram constantes dentro do segmento

[x[xii, x, xi+1i+1]]

• Precisavam mudar abruptamente ao passar de um Precisavam mudar abruptamente ao passar de um segmento para outro. segmento para outro.

Page 10: Splines

SoluçãoSolução

Entao...que tal ajustar um polinomio Entao...que tal ajustar um polinomio mais maleavel que uma reta em cada mais maleavel que uma reta em cada segmento segmento [x[xii, x, xi+1i+1]]??

Queremos ajustar um polinômio "por Queremos ajustar um polinômio "por partes". partes".

Um polinômio de 2º ou 3º grau em cada Um polinômio de 2º ou 3º grau em cada segmento de forma que eles “colem” segmento de forma que eles “colem” suavemente num no outro.suavemente num no outro.

Como fazer isto? Splines e' a solução...Como fazer isto? Splines e' a solução...

Page 11: Splines

Ajustando parábolas por partesAjustando parábolas por partes

Precisam colar suavemente umas as outras.

Page 12: Splines

Grau do polinômioGrau do polinômio

Podemos tentar usar parábolas que Podemos tentar usar parábolas que se ajustem suavemente umas as se ajustem suavemente umas as outras.outras.

Ou talvez polinômios cúbicos (3º. Ou talvez polinômios cúbicos (3º. grau).grau).

O polinômio que usamos e’ o de 3º O polinômio que usamos e’ o de 3º grau, splines cúbicos: e’ bastante grau, splines cúbicos: e’ bastante suave, da’ bons resultados.suave, da’ bons resultados.

Page 13: Splines

Exemplo de spline cúbicoExemplo de spline cúbico

Page 14: Splines

Comparação com LagrangeComparação com Lagrange

Overshoots muito menos pronunciados, menos íngremes

Page 15: Splines

Problema mais simplesProblema mais simples Antes de definir os splines, vamos Antes de definir os splines, vamos

resolver um problema mais simples.resolver um problema mais simples. Achar um polinômio p(x) tal que p(-Achar um polinômio p(x) tal que p(-

1)=1 e p(3)=0. 1)=1 e p(3)=0. Isto e, o polinômio passa pelos Isto e, o polinômio passa pelos

pontos (-1, 1) e (3, 0)pontos (-1, 1) e (3, 0) Alem disso, queremos fixar o valor Alem disso, queremos fixar o valor

das derivadas neste pontos.das derivadas neste pontos. Queremos que p’(-1) = 0 e também Queremos que p’(-1) = 0 e também

que p’(3) = 0. que p’(3) = 0.

Page 16: Splines

Primeiro grau?Primeiro grau? Claramente, não existe um reta Claramente, não existe um reta

(polinômio de grau 1) satisfazendo (polinômio de grau 1) satisfazendo estas condições: estas condições: • Uma reta tem derivada constante Uma reta tem derivada constante • A derivada e’ zero em dois pontosA derivada e’ zero em dois pontos• A derivada deve ser igual a zero para A derivada deve ser igual a zero para

todos os pontos todos os pontos reta horizontal reta horizontal• Mas uma reta horizontal não pode Mas uma reta horizontal não pode

passar por (-1, 1) e (3,0) passar por (-1, 1) e (3,0)

Page 17: Splines

Segundo grau resolve?Segundo grau resolve?

Também não e’ possível achar um Também não e’ possível achar um polinômio de segundo grau polinômio de segundo grau satisfazendo estas condições.satisfazendo estas condições.

Suponha que p(x) e’ polinômio de Suponha que p(x) e’ polinômio de segundo grau e que segundo grau e que • 1 = p(-1) = a1 = p(-1) = a00 + a + a11(-1) + a(-1) + a22(-1)(-1)22

• 0 = p(3) = a0 = p(3) = a00 + a + a11(3) + a(3) + a22(3)(3)22

• 0 = p’(-1) = a0 = p’(-1) = a11 + 2 a + 2 a22(-1)(-1)

• 0 = p’(3) = a0 = p’(3) = a11 + 2 a + 2 a22(3)(3)

Page 18: Splines

Sistema linear correspondenteSistema linear correspondente Sistema com Sistema com

mais equações mais equações que incógnitasque incógnitas

Em geral, este Em geral, este tipo de sistema tipo de sistema linear não possui linear não possui solução.solução.

Este e’ o caso Este e’ o caso aqui: não há aqui: não há soluçãosolução

0

0

0

1

610

210

931

111

2

1

0

a

a

a

Page 19: Splines

Segundo grau: sem soluçãoSegundo grau: sem solução

Eliminação gaussiana gera o sistema Eliminação gaussiana gera o sistema equivalente da direita, que não equivalente da direita, que não possui solução. possui solução.

(veja a ultima equação: 0=1/2)(veja a ultima equação: 0=1/2)

0

0

0

1

610

210

931

111

2

1

0

a

a

a

2/1

4/1

1

1

000

400

840

111

2

1

0

a

a

a

Page 20: Splines

Terceiro grau?Terceiro grau? p(x) e’ polinômio de 3º. grau e:p(x) e’ polinômio de 3º. grau e:

• 1 = p(-1) = a1 = p(-1) = a00 + a + a11(-1) + a(-1) + a22(-1)(-1)22 + a + a33(-1)(-1)33

• 0 = p(3) = a0 = p(3) = a00 + a + a11(3) + a(3) + a22(3)(3)22 + a + a33(3)(3)33

• 0 = p’(-1) = a0 = p’(-1) = a11 + 2 a + 2 a22(-1) + 3 a(-1) + 3 a33 (-1) (-1)22

• 0 = p’(3) = a0 = p’(3) = a11 + 2 a + 2 a22(3) + 3 a(3) + 3 a33 (3) (3)22

Ou sejaOu seja• aa00 - a - a1 1 + a+ a22 - a - a33

= 1 = 1

• aa00 + 3a + 3a11 + 9 a + 9 a2 2 + 27 a+ 27 a3 3 = 0 = 0

• aa11 - 2 a - 2 a22 + 3 a + 3 a33 = 0 = 0

• aa11 + 6 a + 6 a22 + 27 a + 27 a33 = 0 = 0

Page 21: Splines

Polinômio cúbico: okPolinômio cúbico: ok

O sistema linear pode ser escrito O sistema linear pode ser escrito como:como:

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

0

0

0

1

27610

3210

27931

1111

3

2

1

0

a

a

a

a

Page 22: Splines

SoluçãoSolução

Page 23: Splines

SplinesSplines n+1 pontos: (xn+1 pontos: (x00,y,y00),...,(x),...,(xnn,y,ynn)) Achar função f(x) que seja:Achar função f(x) que seja:

• Um polinômio cúbico em cada intervalo Um polinômio cúbico em cada intervalo [x[xi-1i-1,x,xii] com i=1,..,n] com i=1,..,n

• Passe pelos pontos (xPasse pelos pontos (xii,y,yii))

• Seja bastante suave nos pontos de Seja bastante suave nos pontos de junções dos intervalos:junções dos intervalos:

f’(x) seja continua em todos os pontosf’(x) seja continua em todos os pontos f’’(x) também seja continua em todos os f’’(x) também seja continua em todos os

pontospontos f’’(x) = 0 nos dois pontos extremosf’’(x) = 0 nos dois pontos extremos

Page 24: Splines

SplinesSplines

As condições anteriores são As condições anteriores são suficientes para garantir que o suficientes para garantir que o sistema linear resultante será sistema linear resultante será sempre invisível.sempre invisível.

Vamos ver um caso simples, com Vamos ver um caso simples, com apenas 3 pontos.apenas 3 pontos.

Considere os pontosConsidere os pontos• (-1, 1), (1, 3) (2, 0)(-1, 1), (1, 3) (2, 0)

Page 25: Splines

SplinesSplines Queremos dois Queremos dois

polinômios cúbicos.polinômios cúbicos. Um polinômio Um polinômio

entre (-1,1) e (1,3) entre (-1,1) e (1,3) e outro polinômio e outro polinômio entre (1,3) e (2,0)entre (1,3) e (2,0)

Vamos denotar este Vamos denotar este polinômios por ppolinômios por p11(x) e (x) e pp22(x) sendo que(x) sendo que

pp11(x)=a(x)=a0101+a+a1111x+ax+a2121xx22+a+a3131xx33

pp22(x)=a(x)=a0202+a+a1212x+ax+a2222xx22+a+a3232xx33

pp11(x) passa por (-1,1) e (x) passa por (-1,1) e (1,3)(1,3) pp22(x) passa por (x) passa por (1,3) (1,3) e (2,0)e (2,0)

Note o ponto (1,3) comum aos Note o ponto (1,3) comum aos dois polinômios.dois polinômios.

Page 26: Splines

Construindo o sistema linearConstruindo o sistema linear A restrição de passar pelos 3 pontos cria 4 A restrição de passar pelos 3 pontos cria 4

equações lineares que devem ser equações lineares que devem ser satisfeitas.satisfeitas.

1=a1=a01 01 -a-a1111+a+a21 21 -a-a3131

3=a3=a0101+a+a1111+a+a2121+a+a3131

3= a3= a0202+ a+ a1212+ a+ a2222+ a+ a3232

0= a0= a0202+2a+2a1212+4a+4a2222+8a+8a3232

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

Precisamos acrescentar mais restrições.Precisamos acrescentar mais restrições.

Page 27: Splines

Que restrições adicionais são estas?Que restrições adicionais são estas? Não queremos apenas que os polinomios Não queremos apenas que os polinomios

encontrem-se no ponto (1,3)encontrem-se no ponto (1,3) Queremos que eles se encontrem Queremos que eles se encontrem

suavemente suavemente no ponto de junção (1,3).no ponto de junção (1,3). Por exemplo, queremos que a derivada Por exemplo, queremos que a derivada

pela esquerda no ponto x=1, que e’ a pela esquerda no ponto x=1, que e’ a derivada do polinômio pderivada do polinômio p11(x), coincida com (x), coincida com a derivada pela direita no mesmo ponto a derivada pela direita no mesmo ponto x=1 (que e’ a derivada do polinômio x=1 (que e’ a derivada do polinômio pp22(x))(x))

Page 28: Splines

Restrições nas 1Restrições nas 1aas. derivadass. derivadas Assim, vamos impor o seguinte:Assim, vamos impor o seguinte: pp11’(1) = p’(1) = p22’(1)’(1) Temos p’(x)=aTemos p’(x)=a11+2a+2a22x+3ax+3a33xx22 para um para um

polinômio genérico de 3º. graupolinômio genérico de 3º. grau No nosso caso, teremos a equaçãoNo nosso caso, teremos a equação aa1111+ 2a+ 2a21 21 + 3a+ 3a3131 = a = a12 12 + 2a+ 2a22 22 + 3a+ 3a3232

Ou seja,Ou seja, aa1111+ 2a+ 2a21 21 + 3a+ 3a3131 - a - a12 12 - 2a- 2a22 22 - 3a- 3a3232 = 0 = 0 O único ponto de junção gerou uma equação O único ponto de junção gerou uma equação

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

Page 29: Splines

Restrições nas 2Restrições nas 2aas. derivadass. derivadas Vamos adicionar uma restrição na 2ª Vamos adicionar uma restrição na 2ª

derivada, também no ponto de junção.derivada, também no ponto de junção. Vamos pedir que pVamos pedir que p11’’(1) = p’’(1) = p22’’(1)’’(1) Temos p’’(x)=2aTemos p’’(x)=2a22+6a+6a33x para um polinômio x para um polinômio

genérico do 3º. Grau. Assim, teremosgenérico do 3º. Grau. Assim, teremos 2a2a21 21 + 6a+ 6a3131 = 2a = 2a22 22 + 6a+ 6a3232

• Ou seja, 2aOu seja, 2a21 21 + 6a+ 6a3131 - 2a - 2a22 22 - 6a- 6a3232 = 0 = 0

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

Precisamos de mais 2 restrições (ou Precisamos de mais 2 restrições (ou equações).equações).

Page 30: Splines

Restrições finaisRestrições finais Os diversos tipos de splines diferem com Os diversos tipos de splines diferem com

respeito a estas duas restrições finais.respeito a estas duas restrições finais. O chamado spline natural impõe uma O chamado spline natural impõe uma

restrição sobre a derivada 2ª. nos dois restrição sobre a derivada 2ª. nos dois pontos extremos: ela deve ser igual a pontos extremos: ela deve ser igual a zero.zero.

Isto e’, queremos pIsto e’, queremos p11’’(x’’(x00)=0 e p)=0 e p22’’(x’’(x22)=0 )=0 Se a função for aproximadamente linear Se a função for aproximadamente linear

nos extremos, sua derivada segunda nos extremos, sua derivada segunda deveria ser aproximadamente zero.deveria ser aproximadamente zero.

Page 31: Splines

Restrições finaisRestrições finais Com nossos pontos específicos, isto Com nossos pontos específicos, isto

implicaimplica pp11’’(-1)=0 e p’’(-1)=0 e p22’’(2)=0’’(2)=0 Ou seja, temos duas equações Ou seja, temos duas equações

adicionais:adicionais:• 2a2a2 2 - 6 a- 6 a3 3 = = 00

• 2a2a2 2 + 6*2 a+ 6*2 a33 = 0 = 0

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

Page 32: Splines

Caso geralCaso geral

Alem disso, nos pontos internos Alem disso, nos pontos internos temostemos

Page 33: Splines

Deveria ser derivada SEGUNDA aqui

Page 34: Splines

Splines = sistema linearSplines = sistema linear

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

Pode-se mostrar que este sistema Pode-se mostrar que este sistema sempre tem solução única.sempre tem solução única.

A função em scilab para interpolar A função em scilab para interpolar com splines cúbicos naturais e’ com splines cúbicos naturais e’ splin(splin(x, y,"natural");x, y,"natural");

Page 35: Splines

Erro de aproximação Erro de aproximação

Page 36: Splines
Page 37: Splines
Page 38: Splines
Page 39: Splines
Page 40: Splines
Page 41: Splines
Page 42: Splines
Page 43: Splines