FUNDAÇÃO UNIVERSIDADE FEDERAL DE RONDÔNIA NCT-NÚCLEO DE CIÊNCIA E TECNOLOGIA DENFI-DEPARTAMENTO DE ENGENHARIA E FISÍCA DOCENTE: PROF. º Dr. Carlos Tenório DISCIPLINA : CÁLCULO NUMÉRICO INTERPOLAÇÃO POR SPLINE ALMIR MARCELO OLIVEIRA VIANA SÉRGIO ROBERTO JOSINO DE ALMEIDA A interpolação é um processo constantemente presente nos trabalhos de computação gráfica, uma boa interpolação resolve os critérios iéi de cor e aparência dos objetos. Antigamente, a forma final aproximada ou completa de uma curva em um projeto, como o casco de um navio ou o perfil da fuselagem de um avião, podia ser obtida através de um processo chamado lofting (soteamento), que consistia na utilização de uma barra longa e estreita fabricada com um material resistente a esforços transversais e longitudinais, como madeira ou plástico. Esta barra era modelada no formato de uma curva desejada aplicando-se tensões ao longo da barra com pesos e suportes de condução denominados ducks (patos). A origem do nome spline vem de uma régua elástica, usada em desenhos de engenharia, que pode ser curvada de forma a passar por um dado conjunto de pontos (xi,yi), que tem o nome de spline. Sob certas hipóteses a curva definida pela régua pode ser descrita aproximadamente como sendo uma função por partes, cada qual um polinômio cúbico, de tal forma que ela e suas duas primeiras derivadas são contínuas sempre. A terceira derivada, entretanto, pode ter descontinuidades nos pontos xi. Tal função é uma spline cúbica interpolante com nós nos pontos x i, 1
Temos uma f(x) tabelada em (n-1) pontos dependendo do método empregado para solucionar o problema. A alternativa então é interpolar a f(x) em pequenos grupos de poucos pontos, obtendo polinômios com graus menores mantendo assim a continuidade da função de aproximação quanto de suas derivadas. Vemos que a função S1(x) é contínua, mas não é derivável em todo ointervalo(x0, x4), uma vez que S 1(x) não existe para x = xi, 1 i 3. Optando para cada 3 pontos: xi, xi+1, xi+2, passa um polinômio de grau 2 teremos garantia de continuidade da função que irá aproximar f(x). No caso da função S1(X), foi feita uma aproximação da função tabelada nos subintervalos [x i, x i+1], por um polinômio de grau p. Definindo então: Considere a função f(x) tabelada nos pontos x0 <x1 <...<xn. Uma função Sp(x) é denominada spline de grau p com nós nos pontos x i, i = 0, 1,..., n, se satisfaz as seguintes condições: a) em cada subintervalo [xi, xi+1], i=0, 1,..., (n 1), Sp(x) () éum polinômio de grau p: sp(x). b) Sp(x) é contínua e tem derivada contínua até ordem (p 1) em [a, b]. TIPOS DE INTERPOLAÇÃO POR SPLINE SPLINE QUADRÁTICA SPLINE CÚBICA Se, além disto, Sp(x) também satisfaz a condição: c) Sp(xi) = f(xi), i = 0, 1,..., n, então será denominada spline interpolante. 2
A função linear interpolante de f(x), S1(x) de x0, x1,..., x n, em cada subintervalo [xi 1, xi], i = 1, 2,..., n é: Verificação: a) S1(x) é polinômio de grau 1 em cada subintervalo [xi 1,xi], por definição; b) S1(x) é contínua em (xi 1, xi), por definição, e, nos nós xi, realmente S1 está bem definida, pois: si(xi) = si+1(xi) = f(xi) S1(x) é contínua em [a, b] e, portanto, S1(x) é spline linear; c) S1(xi) = si(xi) = f(xi) Þ S1(x) é spline linear interpolante de f(x) nos nós x 0, x1,..., xn. Exemplo 1 Achar a função spline linear que interpola a função tabelada: Para s2(x) então: 3
Finalizando então com s3(x) temos: SPLINE CÚBICA A spline linear apresenta a desvantagem de ter derivada primeira descontínua nos nós. Por esta razão, as splines cúbicas são mais usadas. Uma spline cúbica, S3(x), é uma função polinomial por partes, contínua, onde cada parte, sk(x), é um polinômio de grau 3 no intervalo [x k 1, xk], k = 1, 2,..., n. S3(x) tem a primeira e segunda derivadas contínuas, o que faz com que a curva S3(x) não tenha picos e nem troque abruptamente de curvatura nos nós. SPLINE CÚBICA Reescrevendo a definição: Uma spline cúbica, S3(x), é uma função polinomial por partes, contínua, onde cada parte, sk(x), () é um polinômio de grau 3 no intervalo [x k 1, xk], k = 1, 2,..., n. Para que isso seja verdade temos q satisfazer 5 condições que seguem abaixo: SPLINE CÚBICA i) S3(x) = sk(x) para x Є [xk 1, xk], k = 1,..., n ii) S3(x i) = f(xi), i = 0, 1,..., n iii)sk(xk) = sk+1(xk), k = 1, 2,..., (n 1) iv)s k(xk) = s k+1(xk), k = 1, 2,..., (n 1) v) s k(xk) = s k+1 (xk), k = 1, 2,..., (n 1) Simplificando a notação temos: s k(x) = a k(x xk)³ + bk(x xk) ²+ c k(x xk) + dk, k =1, 2,..., n. Assim teremos que encontrar 4 coeficientes para cada valor de k num total de 4n coeficientes: a1, b1, c1, d1, a2, b2,...,an, bn, cn, dn. Com as seguintes condições para S3(x) interpolar a f(x) em x0...,xn: xn: (n + 1) nos nós; (n 1) para continuidade nos nós; (n 1) para S 3(x) contínua [x0, xn]; (n 1) para S 3(x) contínua [x0, xn] sendo assim 4n -2 condições. Portanto temos duas condições em aberto que vão depender das informações de cada problema. Como resolver uma spline Cúbica Conforme a definição de s k(x) = a k(x xk)³ + bk(x xk) ²+ ck(x xk) +dk, k =1, 2,..., n. Para impor a condição (ii) montamos, para k = 1,..., n, as equações: 4
A condição (iii) é satisfeita através das (n 1) equações: para k = 1,..., (n 1),sk+1(xk) =f(xk), ou seja: Como vemos que s k (x)= 2bk. Então cada coeficiente de bk pode ser escrito em função de s k (x): Para impor as condições (iv) e (v), precisaremos das derivadas das sk(x): s k(x) = a k(x xk)³ + bk(x xk) ²+ck(x xk) +dk, k =1, 2,..., n. Analogamente s k(xk 1) = - 6akhk + 2bk. impondo agora a condição (v), (s k (xk 1) = s k - 1 (xk 1), temos que: Observa-se no caso de k = 1, intruduz-se mais uma variável arbitrária, s 0(x0) Uma vez que dk = f(xk) e já encontramos ak e bk vamos utilizar as equações (2) e (3) para encontrar os termos de ck.também em função das suas derivadas segundas, temos: Usando mais notações s k(xk) = gk e f(xk) = yk teremos: Assim para k = 1, 2,..., n.,podemos calcular todos os coeficientes de sk(x) em função de gj = s j(xj), j = 0,1,..., n. Impondo a condição (iv) que ainda não foi utilizada, s k(xk) = s k + 1(xk), k = 1, 2,..., (n 1) temos: Usando as equações (9), (10) e (11) onde 5
Encontramos: Encontraremos (13) Que é um sistema de equações lineares com (n -1) equações (k = 1,...,(n 1)) e (n + 1) incógnitas: g0, g1,..., gn e, portanto Ax = b onde x = (g0, g1,..., gn)transposta Agrupando os termos semelhantes com k = 1,...,n 1, Para resolvermos este sistema teremos que impor algumas alternativas, daí poderemos determinar ak, bk, ck e dk para cada sk(x) EXEMPLO 2 Vamos encontrar uma aproximação para f(0.25) por spline cúbica natural, interpolante da tabela: Temos 4 subdivisões do intervalo[0, 2.0], donde n = 4, e portanto temos de determinar s1(x), s2(x), s3(x) e s4(x) resolvendo, para 1 k 3 (n 1 = 3). hk = h = 0.5, o sistema fica: Como estamos procurando a spline cúbica natural, g0 = g4 = 0, então temos: Substituindo os valores de h e yi, 0 i 4, e encontraremos os valores de g1, g2 e g3. 6
Subistituimos os valores em ak, bk, ck edk, encontrando assim s1(x), s2(x), s3(x) e s4(x). Como queremos a aproximação para f(0.25), e f(0.25) s1(0.25) e s1(x) = a1(x x1)³ + b1(x x1) ²+c1(x xk) +d1 usando: Daí temos que s1(0.25) é: Como f(0.25) s1(0.25) então: REFERÊNCIAS Claudio, Dalcídio Morais. Calculo NuméricoComputacional, Teoria e Prática. 2ª ed..são Paulo: Atlas,1994. Ruggiero, M. A. G. & Lopes, V. L., Cálculo Numérico: aspectos teóricos e computacionais. Disponível em<http://wwwp.fc.unesp.br/~arbalbo/iniciacao_cientifica/interpolacao/teoria/ 3_Splines.pdf>. Acesso em 20 out. 2008. Disponível em<http://w3.impa.br/~lvelho/i3d07/demos/claudino/splines.html>. Acesso em 20 out. 2008. Disponível em<http://w3.impa.br/~lvelho/i3d07/demos/claudino/sec1.html>. Acesso em 20 out. 2008. 7