Aproximação de funções Elementos de Análise Numérica Aproximação de funções Pontos mais importantes: -objectivo de aproximação de funções -Interpolação: -interpolação polinomial -polinómio interpolador de Newton -polinómio interpolador de Lagrange -”splines” [-regressão: -regressão linear -coeficiente de regressão -regressão não linear] 1 Aproximação de funções Elementos de Análise Numérica Motivação -dados são frequentemente disponíveis como um conjunto discreto de pontos (experiências, tabelas) ----> pretendem-se estimar valores entre os pontos -pretende-se uma forma simplificada de uma função complicada -----> calculam-se os valores da função só para alguns pontos discretos no intervalo de interesse e usar uma função mais simples (e.g. linear) para estimar os outros valores (tabelas, gráficos de engenharia) 2 Aproximação de funções Elementos de Análise Numérica Métodos de aproximação de funções -pontos muito precisos (erros associados são desprezáveis) ----> a função de aproximação deve passar por cada um dos pontos----> interpolação interpolação -pontos afectado por um erro apreciável----->o que têm importância é a tendência geral dos dados por isso a função não precisa de passar necessariamente por todos os pontos-----> regressão regressão 3 Aproximação de funções Elementos de Análise Numérica Interpolação polinomial -em princípio podemos usar qualquer função como função interpoladora -polinómios são excelentes candidatos, porque dados n+1 pontos, há apenas um e só um polinómio de grau n, ou inferior, que passa em todos os pontos: -2 pontos----> n=1 (recta) -3 pontos----> n=2 (parábola) -a interpolação consiste em determinar os parâmetros do polinómio de grau n a partir de n+1 pontos dados ({x1;y1}, {x2;y2},…, {xn+1;yn+1}) sabendo que p(xi)= yi 2 n p ( x ) a a x a x ... a x -forma geral dos polinómios: 0 1 2 n 4 Aproximação de funções Elementos de Análise Numérica Interpolação polinomial -aplicando os pontos conhecidos {xi;yi} resulta um sistema linear com n+1 incógnitas 1 x 0 1 x1 1 x n x 02 x 0n a 0 y 0 2 n x1 x1 a1 y1 2 n x n x n a n y n -a matriz de coeficientes é tanto mais mal condicionada tanto maior for n -embora o polinómio p(x) seja único, ele pode ser expresso de variadas maneiras: -polinómio de Newton -polinómio de Lagrange 5 Aproximação de funções Elementos de Análise Numérica Polinómio interpolador de Newton (diferenças divididas finitas) Interpolação linear (n=1): 2 pontos {x1;y1}, {x2;y2} y1 a 0 a 1x1 y 2 a 0 a 1x 2 ( y 2 y1 ) a 1 ( x 2 x1 ) ( y y1 ) a 0 y1 2 x1 ( x 2 x1 ) y y1 ( y 2 y1) ( x x1 ) ( x 2 x1 ) aprox. da primeira derivada 6 Aproximação de funções Elementos de Análise Numérica Polinómio interpolador de Newton (diferenças divididas finitas) Interpolação quadrática (n=2): 3 pontos {x1;y1}, {x2;y2}, {x3;y3} -procuramos o interpolador na forma: p( x) b0 b1 ( x x1 ) b2 ( x x1 )( x x2 ) -aplicando as condições conhecidos, os parâmetros de polinómio podem ser determinadas: p( x1 ) b 0 y1 y 2 y1 p( x 2 ) b 0 b1 ( x 2 x1 ) y 2 b1 x 2 x1 p( x 3 ) b 0 b1 ( x 2 x1 ) b 2 ( x 3 x1 )( x 3 x 2 ) y 3 y 3 y 2 y 2 y1 x x 2 x 2 x1 b3 3 x 3 x1 ( x1 ; y 1 ) ( x2 ; y2 ) ( x3 ; y3 ) 7 Aproximação de funções Elementos de Análise Numérica Polinómio interpolador de Newton (diferenças divididas finitas) Interpolação de grau n (forma geral): n+1 pontos {x0;y0}, {x1;y1},... {xn;yn} -procuramos o interpolador na forma: p( x) b0 b1 ( x x0 ) b2 ( x x0 )( x x1 ) ... b n ( x x0 )( x x1 )....( x x n1 ) onde b0 y0 b1 f [ x1 , x 0 ] b 2 f [ x 2 , x1 , x 0 ] b n f [ x n , x n 1 ,..., x 2 , x1 , x 0 ] -a função f[ ] é chamada diferenças divididas de ordem n 8 Aproximação de funções Elementos de Análise Numérica Polinómio interpolador de Newton (diferenças divididas finitas) Diferenças divididas: -ordem 0: f[ xi]=f(xi) f ( xi ) f ( x j ) -ordem 1: f [ xi , x j ] -ordem 2: f [ xi , x j , x k ] -ordem n: xi x j f [ xi , x j ] f [ x j , x k ] xi x k f [ x n , x n 1 ,..., x1 ] f [ x n 1 , x n 2 ,..., x0 ] f [ x n , x n 1 ,..., x1 , x 0 ] x n x0 -polinómio de interpolador geral de Newton: p( x) f ( x 0 ) ( x x0 ) f [ x1 , x 0 ] ( x x0 )( x x1 ) f [ x2 , x1 , x0 ] ( x x 0 )( x x1 )...( x x n 1 ) f [ x n , x n 1 ,..., x0 ] 9 Aproximação de funções Elementos de Análise Numérica Polinómio interpolador de Newton (diferenças dividida finita) x y x0 y0 1ª y10 x1 y1 y 21 x2 y2 y 32 x3 y3 ordem 2ª y1 y 0 x1 x 0 y 2 y1 x 2 x1 y3 y2 x3 x2 y 210 y 321 y 21 y10 x2 x0 y 32 y 21 x 3 x1 3ª y 3210 y 321 y 210 x3 x0 Tabela de diferenças divididas -não é necessário que os pontos estejam igualmente espaçados -não é necessário que as abcissas estejam ordenadas por ordem crescente 10 Aproximação de funções Elementos de Análise Numérica Exemplo: ordem x y 1 -1 1.1 1.51 1.3 2.56 1ª y10 y 210 2.56 1.51 y 21 5.27 1.3 1.1 y32 1.4 1.51 (1) 25.09 1.1 1 2ª 3.1 2.56 56.59 1.4 1.3 y 321 5.27 25.09 66.07 1.3 1 3ª y 3210 206 .2 (66 .07 ) 350 .3 1.4 1 56 .59 5.27 206 .2 1. 4 1. 1 -3.1 p(x) 1 25,09 (x 1) (66,07) (x 1)(x 1,1) (350,3) (x 1)(x 1,1)(x 1,3) p(1,17) 1 25,09 (1,17 1) (66,07) (1,17 1)(1,17 1,1) (350,3) (1,17 1)(1,17 1,1)(1,17 1,3) 3,02 11 Aproximação de funções Elementos de Análise Numérica Erro de interpolador de Newton -o erro da interpolação é uma função definida por en(x)=f(x)-pn(x) -a formula do interpolador é semelhante à do desenvolvimento de uma função em série de Taylor -as diferenças divididas são aproximações das derivadas de ordem superior -o erro associado à aproximação de Taylor: f ( n1) () Rn ( xi 1 xi ) n1 ( n 1)! com xi<<xi+1 -para o interpolador numa forma análoga: f ( n 1) () Rn ( x x0 )( x x1 )...( x x n ) ( n 1)! f ( n 1) () f [ x, x n , x n 1 ,..., x1 , x 0 ] ( n 1)! R n f [ x, x n , x n1 ,..., x1 , x0 ]( x x0 )( x x1 )...( x x n ) 12 Aproximação de funções Elementos de Análise Numérica Erro de interpolador de Newton -a função f(x) é geralmente incógnita, mas se mais um ponto (n+1) é disponível,o erro pode ser aproximado: R n f [ x n1 , x n , x n1 ,..., x1 , x0 ]( x x0 )( x x1 )...( x x n ) 13 Aproximação de funções Elementos de Análise Numérica Exemplo: ordem x y 1 -1 1ª 2ª 3ª 4ª 25.09 1.1 66.07 1.51 350 .3 5.27 1.3 206 .2 2.56 56.59 1.4 y 43210 1031 (350 .3) 2302 1.6 1 1031 309.3 -3.1 36.2 1.6 4.14 R 3 (x) 2302 (x 1)(x 1,1)(x 1,3)(x 1,4) R 3 (1,17) 2302 (1,17 1)(1,17 1,1)(1,17 1,3)(1,17 1,4) 0,819 14 Aproximação de funções Elementos de Análise Numérica Obtenção do polinómio interpolador pelo método de Lagrange -o método de Lagrange é uma reformulação do interpolador Newtoniano, mas evita o cálculo das diferenças divididas finitas -expressão geral: n n p( x) L i ( x) f ( x i ) i0 onde L i ( x) j 0 j i x xj xi x j -n=1 p( x) x x1 x x0 f ( x0 ) f ( x1 ) x0 x1 x1 x0 -n=2 p( x) x x1 x x2 x x0 x x2 x x0 x x1 f ( x0 ) f ( x1 ) f ( x2 ) x0 x1 x0 x2 x1 x 0 x1 x 2 x 2 x 0 x2 x1 -o erro de aproximação é obtido de forma semelhante do que no caso do método Newtoniano 15 Aproximação de funções Exemplo: p( x ) p(0,9) Elementos de Análise Numérica x f(x) 0 1 2 1 7 6 x 1 x 2 x 0 x 2 x 0 x 1 1 7 6 0 1 0 2 1 0 1 2 2 0 2 1 0,9 1 0,9 2 0,9 0 0,9 2 0,9 0 0,9 1 1 7 6 6,72 0 1 0 2 1 0 1 2 2 0 2 1 16 Aproximação de funções Elementos de Análise Numérica Interpolação com nós equidistantes -designando por h a distância entre nós sucessivos, podemos escrever que: x0 x1 x 0 h x2 x0 2 h x n x 0 nh -diferenças divididas : f [ x1 , x0 ] f ( x1 ) f ( x 0 ) f ( x0 ) x1 x0 h x n x0 onde h = n f ( x 2 ) f ( x1 ) f ( x1 ) f ( x 0 ) 2 f ( x 0 ) x 2 x1 x1 x 0 f [ x 2 , x1 , x 0 ] x2 x0 2h2 f [ x n , x n1 ,..., x1 ] f [ x n1 , x n2 ,..., x0 ] n f ( x0 ) f [ x n , x n1 ,..., x1 , x0 ] x n x0 n! h n 17 Aproximação de funções Elementos de Análise Numérica Interpolação com nós equidistantes -o símbolo n representa o operador de diferenças progressivas: 0 f ( x) f ( x) 1f ( x) f ( x h) f ( x) k 1f ( x) ( k ( f ( x)) -o resultado pode ser substituído no interpolador Newtoniano: f ( x 0 ) 2 f ( x 0 ) p( x) f ( x 0 ) ( x x0 ) ( x x 0 )( x x 0 h) h 2h2 n f ( x 0 ) ( x x 0 )( x x 0 h)...( x x 0 ( n 1) h) n! h n 18 Aproximação de funções Elementos de Análise Numérica Interpolação com nós equidistantes -aplicando o facto de qualquer ponto no intervalo [xo,xn] pode ser representado pela seguinte formula: x=x0+ah -o interpolador pode ser simplificado: f ( x 0 ) 2 f ( x 0 ) p( x ) f ( x 0 ) a a(a 1) 1! 2! n f ( x 0 ) a(a 1)...(a n 1) n! -o erro é dado por: f ( n1) () n1 Rn h a(a 1)...(a n) ( n 1)! -extrapolação: estimativa do valor de f(x) fora da gama de valores dos pontos conhecidos (perigoso) 19 Aproximação de funções Elementos de Análise Numérica Exemplo: x y 10 -1 20 1.51 ordem f 2f 1,51 (1) 2,51 1,04 2,51 1,47 6,7 (1,47) 5,23 2,56 1,51 1,04 30 3f 2.56 5,66 1,04 6,7 3,1 2,56 5,66 40 -3.1 p( x ) 1 2,51a 1,47 5,23 a(a 1) a(a 1)( a 2) 2! 3! X=23 ; a=1,3 p(23) 1 2,51 1,3 1,47 5,23 1,3(1,3 1) 1,3(1,3 1)(1,3 2) 2.21 2! 3! Aproximação de funções Elementos de Análise Numérica “Splines” (interpolação por segmentos polinomiais) -às vezes um polinómio interpolador de grau n pode resultar em grandes erros (exemplo: uma função geralmente suave mas com algumas variações bruscas) -solução: splines, aplicando polinómios de grau inferior de n (para n+1 pontos) a subconjuntos de pontos Splines lineares (m=1): S( x ) f ( x 0 ) m 0 ( x x 0 ) x0 x x1 S( x ) f ( x1 ) m1 ( x x1 ) x1 x x 2 S( x ) f ( x n 1 ) m n 1 ( x x n 1 ) onde mi f ( xi 1 ) f ( xi ) xi 1 xi xn -1 x x n 21 Aproximação de funções Elementos de Análise Numérica “Splines” (interpolação por segmentos polinomiais) Splines quadráticas (m=2): as derivadas de primeira ordem contínuas nos nós (iguais) -para cada intervalo entre os pontos, o aproximador é um polinómio de grau 2: Si (x) a i bi x ci x 2 xi-1 x x i -n intervalos ---> 3n incógnitas -----> precisamos 3n equações -estas equações são: f ( x i 1 ) a i 1 b i 1x i 1 c i 1x i 12 onde i = 2,3... n f ( x i 1 ) a i b i x i 1 c i x i 12 2n-2 equações f ( x 0 ) a 1 b1x 0 c1x 0 2 nos pontos extremos 2 f (xn ) a n bn xn cn xn 2 equações bi 2ci xi 1 bi 1 2ci 1xi 1 2c1 0 onde i = 2,3...n a segunda derivada igual a zero n-1 equações 1 equação 22 Aproximação de funções Elementos de Análise Numérica “Splines” (interpolação por segmentos polinomiais) Splines cúbicas (m=3): as derivadas de primeira e segunda ordem contínuas nos nós (iguais) -para cada intervalo entre os pontos, o aproximador é um polinómio de grau 3: S(x) a i bi x ci x 2 + di x 3 xi-1 x x i -n intervalos ---n> 4n incógnitas -----> precisamos 4n equações (condições): -valores da função iguais nos nós interiores (2n-2) -a primeira e última funções devem passar pelos pontos extremos respectivos (2) -o valor das primeiras derivadas nos pontos interiores deve ser igual (n-1) -o valor de segundas derivadas nos pontos interiores deve ser igual (n-1) - o valor de segundas derivadas nos pontos extremos é 0 (2) 23 Aproximação de funções Elementos de Análise Numérica “Splines” (interpolação por segmentos polinomiais) -as condições anteriores resultam num sistema de eq. com 4n incógnitas -um método alternativo resulta só num sistema tridiagonal apenas com n-1 incógnitas -a segunda derivada em cada intervalo é uma recta---->pode ser representada com um interpolador de Largrange de 1º grau: f i( x ) x xi x x i 1 f ( x i 1 ) f ( x i ) x i 1 x i x i x i 1 -a expressão anterior pode ser integrada duas vezes, e o resultado é uma função polinomial de grau 3 com duas constantes de integração -aplicando as condições para os valores extremos no intervalo i (f(xi) e f(xi-1)), os constantes de integração podem ser determinadas 24 Aproximação de funções Elementos de Análise Numérica “Splines” (interpolação por segmentos polinomiais) -o resultado: f ( x i 1 ) f ( x i ) 3 f i ( x) ( x i x) ( x x i 1 ) 3 6( x i x i 1 ) 6( x i x i 1 ) f ( x i 1 ) f ( x i 1 )( x i x i 1 ) f ( xi ) f ( x i )( x i x i 1 ) ( x i x) ( x x i 1 ) x x 6 x x 6 i 1 i 1 i i -a expressão para cada intervalo (i=1,2,...,n) só tem duas incógnitas (f´´) em vez de 4 25 Aproximação de funções Elementos de Análise Numérica “Splines” (interpolação por segmentos polinomiais) -aplicando a condição que: fi1 ( xi ) fi( xi ) e derivando a fórmula anterior: ( x i x i 1 ) f ( x i 1 ) 2( x i 1 x i 1 ) f ( x i ) ( x i 1 x i ) f ( x i 1 ) 6 6 f ( x i 1 ) f ( x i ) f ( x i 1 ) f ( x i ) x i 1 x i x i x i 1 -o resultado é um sistema com n-1 equações e n+1 incógnitas -mas considerando que as segundas derivadas são zero nos pontos 1 e n, o sistema (tridiagonal) só envolve n-1 incógnitas---->pode ser resolvido para as segundas derivadas nos nós 26 Aproximação de funções Exemplo: Elementos de Análise Numérica i 0 1 2 3 xi 10 20 30 40 f(xi) -1 1,51 2,56 -3,1 ( x i x i 1 ) f ( x i 1 ) 2( x i 1 x i 1 ) f ( x i ) ( x i 1 x i ) f ( x i 1 ) 6 6 f ( x i 1 ) f ( x i ) f ( x i 1 ) f ( x i ) x i 1 x i x i x i 1 6 6 2 , 56 1 , 51 1 1 , 51 0,876 20 10 f (20) 10 10 10 20 f (30) 6 6 4 , 03 3,1 2,56 1,51 2,56 10 10 20 10 A 300 10 20 0,876 10 A1 22,7 4,03 20 20 0,876 A2 71,8 10 4,03 f (20) 0,0758 f (30) 0,239 27 Aproximação de funções f i ( x) Elementos de Análise Numérica f ( x i 1 ) f ( x i ) ( x i x) 3 ( x x i 1 ) 3 6( x i x i 1 ) 6( x i x i 1 ) f ( x i 1 ) f ( x i 1 )( x i x i 1 ) f ( xi ) f ( x i )( x i x i 1 ) ( x x ) i ( x x i 1 ) 6 6 x i x i 1 x i x i 1 f 2 (23) 0,0758 0,239 1,51 0,075810 (30 23)3 (23 20)3 (30 23) 6 10 6 10 6 10 2,56 0,23910 (23 20) 1,84 6 10 28