Upload
noelani-price
View
39
Download
0
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
Splines Splines
Renato AssunçãoRenato Assunção
Departamento de Ciência da ComputaçãoDepartamento de Ciência da Computação
UFMGUFMG
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.
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
Overshoots com LagrangeOvershoots com Lagrange
Mais overshoots com LagrangeMais overshoots com Lagrange
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?
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))
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.
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.
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...
Ajustando parábolas por partesAjustando parábolas por partes
Precisam colar suavemente umas as outras.
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.
Exemplo de spline cúbicoExemplo de spline cúbico
Comparação com LagrangeComparação com Lagrange
Overshoots muito menos pronunciados, menos íngremes
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.
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)
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)
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
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
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
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
SoluçãoSolução
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
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)
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.
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.
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))
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.
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).
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.
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
Caso geralCaso geral
Alem disso, nos pontos internos Alem disso, nos pontos internos temostemos
Deveria ser derivada SEGUNDA aqui
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");
Erro de aproximação Erro de aproximação