Análise Numérica Erros, Extrapolação de Richardson e Quadratura Gaussiana Renato Martins Assunção DCC - UFMG 2012 Renato Martins Assunção (DCC - UFMG) Análise Numérica 2012 1 / 40
Análise do erro Sabemos que a integração numérica fornece um valor aproximado para a integral. Podemos ter uma ideia do tamanho MÁXIMO do erro que podemos cometer com os diversos métodos. Vamos ver em detalhes o erro que cometemos com a quadratura via trapézios. Renato Martins Assunção (DCC - UFMG) Análise Numérica 2012 2 / 40
Regra do trapézio A reta p(x) formando o trapézio tem equação igual p(x) = f ( a+b 2 ) + ( f (b) f (a) b a ) (x ) a+b 2. Note que (a + b)/2 é o ponto central do intervalo [a, b]. A expansão de Taylor da função f (x) em torno do ponto (a + b)/2 até a segunda-ordem é igual a f (x) f ( a+b 2 em que θ [a, b]. ) + f ( a+b 2 ) ( ) x a+b 2 + f ((a+b)/2) 2 ( ) x a+b 2 2, Renato Martins Assunção (DCC - UFMG) Análise Numérica 2012 3 / 40
Erro - regra do trapézio A integral da função ( x a + b ) no intervalo [a, b] é igual a zero. 2 Assim, tomando a diferença f (x) p(x) e integrando em [a, b], obtemos b b f (x)dx p(x)dx a a 1 b ( 2 a f ((a + b)/2) x a + b ) 2 dx. 2 Se f (x) M para todo x no intervalo, então b b f (x)dx p(x)dx a a M b ( x a + b ) 2 dx = M 2 a 2 24 (b a)3. Renato Martins Assunção (DCC - UFMG) Análise Numérica 2012 4 / 40
Erro - regra do trapézio Podemos aplicar esta mesma técnica em cada segmento [x i 1, x i ] de comprimento b a = h. n Se f (x) M para x [a, b] (e não somente no segmento [x i 1, x i ]), temos b b f (x)dx p(x)dx a a n M 24 h3 = h 2 M (b a). 24 Isto é, a diferença entre a integral e a aproximação pela regra do trapézio diminui com h 2 (ou com 1/n 2 ). Se passarmos de n para 2n intervalos, a diferença entre a integral e a sua aproximação pela regra de quadratura diminui em 4 vezes (cai em 1/4 de seu valor com n intervalos). Renato Martins Assunção (DCC - UFMG) Análise Numérica 2012 5 / 40
Qual o n para obter certa precisão? Podemos usar estes limites de erro para determinar o número n de sub-intervalos que garanta uma estimativa da integral menor que certa precisão. Por exemplo, queremos determinar n tal que a estimativa da integral 2 1 0 x+4dx pelo método trapezoidal tenha um erro menor que 10 5. Temos M = max{2/(x + 4) 3 } = 2/4 3 = 1/32. Como erro h 2 (2 0)/(24 32) = h 2 /384 e como queremos erro 10 5, basta tomarmos h tal que h 2 /384 10 5. Substituindo h = (b a)/n = 2/n n = 32.27 Assim, se tomarmos n = 33, teremos o resultado desejado. Renato Martins Assunção (DCC - UFMG) Análise Numérica 2012 6 / 40
Erro - regra de Simpson Cálculos similares permitem calcular o erro MÁXIMO que podemos cometer usando o método de Simpson. Encontramos um erro máximo igual a (b a)/180h 4 max{f (4) (x)}, onde f (4) é a quarta derivada de f (x). Assim, este erro cai com n 4. Ele envolve a 4 a derivada, mais trabalhosa de se obter. Renato Martins Assunção (DCC - UFMG) Análise Numérica 2012 7 / 40
Extrapolação de Richardson Esta é uma técnica muito simples que melhora muito a precisão de vários métodos numéricos. A ideia no caso de integração numérica usando uma regra qualquer (Simpson ou trapézio, por exemplo) é a seguinte: Faça uma 1 a aproximação usando n subintervalos (cada um com comprimento h). Faça uma 2 a aproximação usando 2n subintervalos (cada um com comprimento h/2). Use as duas aproximações para obter uma aproximação melhor que qualquer uma das duas individualmente. Vamos ver como isto é feito. Renato Martins Assunção (DCC - UFMG) Análise Numérica 2012 8 / 40
Richardson: o princípio geral Considere um método de quadratura cuja saída F h fornece uma aproximação para a integral F com erro de ordem h p, onde p > 1. Isto é, F F h + c h p onde c é uma constante positiva. Por exemplo, a regra do trapézio tem F F h + c h 2 e a regra de Simpson tem F F h + c h 4. Vamos denotar E h = c h p. Considere a aproximação com 2n intervalos de comprimento h/2: F F h/2 + c(h/2) p. Renato Martins Assunção (DCC - UFMG) Análise Numérica 2012 9 / 40
Repetindo: F F h + ch p = F h + E h (A). F F h/2 + c(h/2) p = F h/2 + E h/2 (B). Temos E h/2 c(h/2) p = ch p /2 p 1/2 p E h. Portanto, de (B) tiramos que F F h/2 E h/2 1/2 p E h 1/2 p (F F h ). Isto é, F F h/2 1/2 p (F F h ). O que podemos fazer com isto? Renato Martins Assunção (DCC - UFMG) Análise Numérica 2012 10 / 40
Então: F F h/2 1/2 p (F F h ). O que podemos fazer com isto? Isolando F no lado esquerdo, encontramos [ F 2p 2 p F 1 h/2 F ] h 2 p. Ou ainda F F h/2 + 1 2 p 1 [F h/2 F h ]. Esta é a fórmula de extrapolação de Richardson. Ela produz resultados muito melhores que F h ou F h/2 erro c h p+1. Renato Martins Assunção (DCC - UFMG) Análise Numérica 2012 11 / 40
Exemplo Regra do trapézio tem p = 2. A extrapolação de Richardson fica F F h/2 + 1 3 [F h/2 F h ] Usando o Scilab com f (x) = 4 entre 0 e 1 (integral = π) e 1 + x 2 com n = 10 e n = 20 intervalos. F h erra na terceirra casa decimal. F h/2 erra na quarta casa decimal. F R só erra na décima casa decimal!! Renato Martins Assunção (DCC - UFMG) Análise Numérica 2012 12 / 40
Mais um exemplo Ainda com a regra do trapézio (p = 2) e a extrapolação de Richardson F F h/2 + 1 2 2 1 [F h/2 F h ] = F h/2 + 1 3 [F h/2 F h ] Vamos obter uma aproximação para π/4 0 sec 2 (x) dx = tan(π/4) tan(0) = 1. Usando o Scilab com n = 10 e n = 20 intervalos: F h = 1.002052, F h/2 = 1.0005138. Já a estimativa de Richardson fica F R = 1.000001. Renato Martins Assunção (DCC - UFMG) Análise Numérica 2012 13 / 40
Exemplo com Simpson Considere agora a regra de Simpson. Neste caso p = 4 e a extrapolação de Richardson é dada por F F h/2 + 1 2 4 1 [F h/2 F h ] = F h/2 + 1 15 [F h/2 F h ] Vamos considerar de novo com f (x) = 4 entre 0 e 1 (integral 1 + x 2 = π) e com n = 10 e n = 20 intervalos. As diferenças de F h, F h/2 e F R em relação a π foram, respectivamente, iguais a 10 ( 8) ( 3.9650577, 0.0620008, 0.1982030). Assim, neste caso, A extrapolação de Richardson não melhorou a estimativa de F h/2, o que é incomum. Com f (x) = sec 2 (x) entre 0 e π/4 (integral = 1) e n = 10 e n = 20, temos os erros de F h, F h/2, F R iguais a 10 5, 10 6, 10 8, respectivamente. Renato Martins Assunção (DCC - UFMG) Análise Numérica 2012 14 / 40
Estimativa do erro com Richardson Existe uma outra coisa que podemos fazer com a extrapolação de Richardson. Podemos ter uma estimativa do tamanho do erro que esta sendo cometido com uma determinada regra (e não apenas do erro maximo). Como F F h/2 + 1 2 2 1 [F h/2 F h ] = F h/2 + 1 3 [F h/2 F h ] podemos então escrever E h/2 F F h/2 1 [ ] Fh/2 2 p F h 1 Convém ser conservador e usar a medida de erro acima para E h ao invés de E h/2. No primeiro exemplo com a regra do trapézio, teríamos E h 0.0004167. Renato Martins Assunção (DCC - UFMG) Análise Numérica 2012 15 / 40
QUADRATURA GAUSSIANA Renato Martins Assunção (DCC - UFMG) Análise Numérica 2012 16 / 40
Quadratura, erros e polinômios Considere a integral b a f (x)dx. Todas as regras de quadratura são da seguinte forma: I w 1 f (x 1 ) + w 2 f (x 2 ) +... + w n f (x n ). As regras que vimos até agora escolhem os pontos x 1, x 2,..., x n de antemão, sem qualquer consideração pela função especifica que vai ser integrada. As regras do trapézio e de Simpson geram pesos muito simples: h Trapézio: 2 (1 2 2 2 2 2 2 2... 2 2 1) h Simpson: 3 (1 4 2 4 2 4 2 4... 2 4 1) Renato Martins Assunção (DCC - UFMG) Análise Numérica 2012 17 / 40
Quadratura gaussiana - introdução Gauss teve um insight genial. Nossas regras são do seguinte tipo: I w 1 f (x 1 ) + w 2 f (x 2 ) +... + w n f (x n ). Fixamos os pontos x i e buscamos os pesos w i. Será que não podemos fazer um trabalho melhor se buscarmos TAMBÉM os pontos x i, e não apenas os pesos w i? A resposta é um surpreendente SIM, nós podemos. Nós podemos fazer MUITO melhor!! Quadradura gaussiana é o método mais usado hoje em dia. Renato Martins Assunção (DCC - UFMG) Análise Numérica 2012 18 / 40
Quadratura gaussiana - 2 pontos Vamos imaginar que queremos escolher apenas DOIS pontos em [a, b] para aproximar a integral da função f (x). Isto é, queremos achar I w 1 f (x 1 ) + w 2 f (x 2 ). Uma opção é a regra do trapézio que escolhe x 1 = a e x 2 = b, aproxima a função f (x) por uma reta e obtém os pesos w 1 = w 2 = h/2 Verifique isto... Renato Martins Assunção (DCC - UFMG) Análise Numérica 2012 19 / 40
Deixando x i variável A ideia de Gauss foi buscar dois pontos x 1 e x 2 em [a, b] e os seus pesos correspondentes w 1 e w 2 tal que a aproximação fosse a melhor possível. I w 1 f (x 1 ) + w 2 f (x 2 ) Com a regra do trapézio podemos aproximar com erro zero uma função linear f (x). Se f (x) for uma reta, a regra do trapézio tem erro zero. Renato Martins Assunção (DCC - UFMG) Análise Numérica 2012 20 / 40
Na prática, as funções não são exatamanente lineares nos sub-intervalos. Se é assim, para que então este comentário sobre o erro = 0 num caso que não ocorre na prática? Se a função for APROXIMADAMENTE linear em cada segmento, podemos esperar um erro pequeno usando a regra do trapezoide. Realmente, nós já vimos que b b f (x)dx p(x)dx a a n M 12 h3 = h 2 M (b a). 12 Onde é o máximo da derivada segunda. Se a função for linear em cada segmento, a derivada segunda é zero e o erro é zero. Renato Martins Assunção (DCC - UFMG) Análise Numérica 2012 21 / 40
Erro da regra de Simpson Na regra de Simpson, ajustamos uma parábola usando três pontos. 3 pontos polinômio do 2 o grau. Os pontos no eixo x estão fixos e o ajuste usa os 3 pontos variáveis (y i 1, y i, y i+1 ). Renato Martins Assunção (DCC - UFMG) Análise Numérica 2012 22 / 40
Suponha que a função f (x) seja REALMENTE uma parábola em cada dois sub-intervalos [x i 1, x i ] e [x i, x i+1 ]. Neste caso, o método de Simpson terá um erro = ZERO. Fixamos os TRÊS pontos x i 1, x i e x i+1 a priori e obtemos os pesos h 3 (1 4 1) associados com y i 1, y i e y i+1. Se a função for aproximadamente um polinômio de segundo grau em cada sub-intervalo, podemos esperar um erro pequeno. Renato Martins Assunção (DCC - UFMG) Análise Numérica 2012 23 / 40
Gauss - quadratura Gauss imaginou que tivesse uma cúbica em [a, b] (um polinômio de 3 o grau). Uma cúbica possui 4 parâmetros: p(x) = a 0 + a 1 x + a 2 x 2 + a 3 x 3. Com 4 valores para manipular: x 1, x 2, w 1, w 2, ele se perguntou se não conseguiria estimar SEM ERRO NENHUM a integral desta cúbica. Isto é, obter I [w 1 f (x 1 ) + w 2 f (x 2 )] = 0 quando f (x) fosse um polinômio de 3 o grau. Como obter fórmulas gerais para x 1, x 2, w 1, w 2? Renato Martins Assunção (DCC - UFMG) Análise Numérica 2012 24 / 40
Gauss - quadratura Se isto é possível, devemos ter uma integral estimada sem erro para qualquer polinômio de grau 3 o usando apenas DOIS pontos. Em particular, o polinômio I = w 1 f (x 1 ) + w 2 f (x 2 ). p(x) = 1 + 0 x + 0 x 2 + 0 x 3 deve ter sua integral calculada sem erro. Mas neste caso I = b a 1dx = (b a) deve ser igual a w 1 f (x 1 ) + w 2 f (x 2 ) = w 1 1 + w 2 1 = w 1 + w 2. Isto é, devemos ter b a = w 1 + w 2. Esta é a primeira restrição nos valores dos pesos. Renato Martins Assunção (DCC - UFMG) Análise Numérica 2012 25 / 40
Gauss - quadratura Seja m = a + b, o ponto médio do intervalo. 2 Se a conjectura de Gauss está correta, ao tomarmos o polinômio p(x) = m + 1 x + 0 x 2 + 0 x 3 = x m também devemos ter sua integral estimada sem erro nenhum. Temos I = b a (x m)dx = 0 que deve ser igual a w 1 f (x 1 ) + w 2 f (x 2 ) = w 1 (x 1 m) + w 2 (x 2 m). Isto é, devemos ter 0 = w 1 (x 1 m) + w 2 (x 2 m) junto com a 1 a restrição: b a = w 1 + w 2. Renato Martins Assunção (DCC - UFMG) Análise Numérica 2012 26 / 40
Gauss - quadratura Continuando, considere agora o polinômio p(x) = (x m) 2 = m 2 2mx + x 2 + 0x 3 onde m = a + b, o ponto médio do intervalo. 2 Se a conjectura de Gauss está correta, também devemos ter a integral de p(x) estimada sem erro nenhum pois ele é de 3 o grau. Temos I = b a (x m) 2 dx que deve ser igual a w 1 f (x 1 ) + w 2 f (x 2 ) = w 1 (x 1 m) 2 + w 2 (x 2 m) 2. Esta é a 3 a restrição. Renato Martins Assunção (DCC - UFMG) Análise Numérica 2012 27 / 40
Gauss - quadratura Terminando, considere agora o polinômio p(x) = (x m) 3. Temos I = b a (x m) 3 dx que deve ser igual a w 1 f (x 1 ) + w 2 f (x 2 ) = w 1 (x 1 m) 3 + w 2 (x 2 m) 3. Esta é a 4 a restrição. Renato Martins Assunção (DCC - UFMG) Análise Numérica 2012 28 / 40
Sistema não-linear O problema de Gauss é o seguinte: se existir x 1, x 2, w 1, w 2 tal que w 1 f (x 1 ) + w 2 f (x 2 ) aproxime com ERRO ZERO qualquer polinômio até 3 o grau em [a, b] então os valores x 1, x 2, w 1, w 2 devem obedecer NO MINIMO às seguintes 4 restrições: w 1 + w 2 = b a w 1 (x 1 m) + w 2 (x 2 m) = 0 w 1 (x 1 m) 2 + w 2 (x 2 m) 2 (b a)3 = 12 w 1 (x 1 m) 3 + w 2 (x 2 m) 3 = 0 Elas são equações NÃO-LINEARES em x 1, x 2, w 1, w 2. Renato Martins Assunção (DCC - UFMG) Análise Numérica 2012 29 / 40
O problema de Gauss O sistema não-linear é o seguinte w 1 + w 2 = b a w 1 (x 1 m) + w 2 (x 2 m) = 0 w 1 (x 1 m) 2 + w 2 (x 2 m) 2 (b a)3 = 12 w 1 (x 1 m) 3 + w 2 (x 2 m) 3 = 0 O sistema pode não ter soluções ou ter várias soluções. O sistema poderia ter uma solução única mas com x i complexo. E se existir uma solução real, os valores x 1 e x 2 poderiam estar fora do intervalo [a, b]. Gauss mostrou que nada disso ocorre. Nosso sistema acima possui solução única (não é difícil obtê-la, veja a lista de exercício). Renato Martins Assunção (DCC - UFMG) Análise Numérica 2012 30 / 40
Solução para 2 pontos A solução é a seguinte: x 1 = a + b 2 x 2 = a + b 2 w 1 = w 2 = + b a 2 3 b a 2 3 b a 2 b a 2 E a quadratura gaussiana com DOIS pontos para qualquer função f (x) é I G 2 = b a [ ( a + b f b a ) ( a + b 2 2 2 + f + b a )] 3 2 2 3 Renato Martins Assunção (DCC - UFMG) Análise Numérica 2012 31 / 40
Exemplo Quadratura gaussiana de dois pontos para 2 1 e x2 dx = 0.8427007929 π 0 é dada por ( G 2 = [exp 1 1 π 4 [ 1 1 ] ) ( 2 + exp 1 [ 1 1 ] )] 2 = 0.84244189. 3 4 3 Renato Martins Assunção (DCC - UFMG) Análise Numérica 2012 32 / 40
Resumo Quadratura gaussiana com dois pontos: Seja n = 2. Vamos fazer quadratura escolhendo n = 2 pontos em [a, b]. Se f (x) for QUALQUER polinômio com grau 2n 1 = 3 então a quadratura gaussiana terá um erro igual a ZERO. NENHUMA outra regra de quadradtura pode ter erro zero com grau = 4 e, neste sentido, a quadratura gaussiana é o melhor que podemos fazer. Renato Martins Assunção (DCC - UFMG) Análise Numérica 2012 33 / 40
Quadratura gaussiana: n pontos É claro que aproximar bem uma integral vai exigir mais que 2 pontos apenas. O que GAUSS demonstrou é um teorema muito bonito e geral. Vamos fazer quadratura gaussiana escolhendo n 2 pontos em [a, b]. Se f (x) for QUALQUER polinômio com grau igual a 2n 1 então a quadratura gaussiana terá um erro igual a ZERO. Nenhuma outra regra de quadratura pode ter erro zero em todos os polinômios com grau igual a 2n. Neste sentido, a quadratura gaussiana é o melhor que podemos fazer com n pontos. Renato Martins Assunção (DCC - UFMG) Análise Numérica 2012 34 / 40
Quadratura gaussiana: n pontos O problema é como encontrar os n pontos x 1, x 2,..., x n e os pesos associados w 1, w 2,..., w n. A solução pode ser encontrada escolhendo 2n polinômios específicos de grau no máximo 2n 1 e montar um sistema não-linear com 2n equações. A preferência para escolher estes polinômios específicos tem sido pelos polinômios de Legendre, que facilitam o cálculo da solução dos sistema não-linear. Os polinômios de Legendre são definidos recursivamente da seguinte forma: P 0 (x) = 1 e P 1 (x) = x) Para n 2, temos (n + 1)P n+1 (x) = (2n + 1)xP n (x) np n 1 (x). Isto implica que P 2 (x) = (3x 2 1)/2, P 3 (x) = (5x 3 3x)/2, P 4 (x) = (35x 4 30x 2 + 3)/8, etc. Renato Martins Assunção (DCC - UFMG) Análise Numérica 2012 35 / 40
Quadratura gaussiana: n pontos A solução do sistema não-linear para integrais no intervalo [ 1, 1] é dada na tabela abaixo: n pesos w i pontos x i 2 w 1 = 1.000000000 x 1 = 0.577350269 w 2 = 1.000000000 x 2 = 0.577350269 3 w 1 = 0.555555556 x 1 = x1 = 0.774596669 w 2 = 0.888888889 x 2 = 0.000000000 w 3 = 0.555555556 x 3 = 0.774596669 4 w 1 = 0.347854845 x 1 = 0.861136312 w 2 = 0.652145155 x 2 = 0.339981044 w 3 = 0.652145155 x 3 = 0.339981044 w 4 = 0.347854845 x 4 = 0.861136312 Renato Martins Assunção (DCC - UFMG) Análise Numérica 2012 36 / 40
Passando de [ 1, 1] para [a, b] Os avlores de w 1,..., w n e x 1,..., x n da quadratura gaussiana são calculados sempre assumindo que o intervalo de integração seja [ 1, 1]. Como passar para o caso geral de integrar num intervalo [a, b] qualquer? A resposta é que qualquer integral em [a, b] pode ser transformada numa integral em [ 1, 1] por uma substituição de variével. Se tomarmos x = b a 2 t + b + a 2 e portanto com dx = (b a)/2 dt, teremos b 1 ( b a f (x)dx = f 2 t + b + a ) b a dt. 2 2 a 1 Esta integral tem limites 1 e 1 e podemos usar os coeficientes da quadratura gaussiana calculados para este intervalo de integração. Renato Martins Assunção (DCC - UFMG) Análise Numérica 2012 37 / 40
Intervalos infinitos Como integrar numericamente uma função em um intervalo infinito? Por exemplo, no intervalo [0, ) ou no intervalo (, ). Temos duas soluções possíveis. Truncamento: fazer a integral num intervalo [0, A] onde A é grande o suficiente para que o resto da integral em [A, ) possa ser ignorado. Substituição: substituição de variáveis para colocar a integral num intervalo finito. Renato Martins Assunção (DCC - UFMG) Análise Numérica 2012 38 / 40
Intervalo infinito: truncamento Suponha que nosso objetico é obter uma aproximação para a integral I = 0 f (x) dx = Sabemos quanto vale esta integral: 0.70260. Como I = 0 f (x) dx = A 0 0 e x cos 2 (x 2 ) dx f (x) dx + A f (x) dx e como 0 cos ( x 2 ) 1, se nós ignorarmos a segunda integral estaremos cometendo um erro de truncamento que é igual a A e x cos 2 (x 2 ) dx < A e x dx = exp( A) Se tomarmos A = 20, por exemplo, então nosso erro por truncamento será no máximo de 2.07 10 9. Renato Martins Assunção (DCC - UFMG) Análise Numérica 2012 39 / 40
Intervalo infinito: substituição Vamos ver outra opção para aproximar o valor de I = 0 f (x) dx = 0 e x cos 2 (x 2 ) dx Tome x = log(t) e portanto dx = dt/t. Isto implica que a integral fica I = 0 f (x) dx = 1 0 f ( log(t)) dt t = 1 0 cos 2 (log 2 (t)) dt Esta nova integral não possui primitiva e portanto não pode ser calculada analiticamente. Mas pode ser calculada numericamente por qualquer dos métodos que estudamos. Renato Martins Assunção (DCC - UFMG) Análise Numérica 2012 40 / 40