Use o botão abaixo para reportar erros ou dar sugestões.

Cálculo Numérico - Versão Python

9.7 Quadratura de Gauss-Legendre


Utilizando n pontos para aproximar a integral de f(x) em [-1,1] podemos encontrar a regra de quadratura de Gauss-Legendre

-11f(t)dt j=1nw jf(tj) (9.202)

cuja ordem de exatidão é 2n - 1.

  • Note que temos n coeficientes wj e n pontos tj para determinar. O problema de encontrar os n pesos e n abscissas é equivalente a um sistema não linear com 2n equações e 2n incógnitas.
  • Pode-se mostrar que este problema sempre tem solução e que a solução é única se t1 < t2 < < tn
  • Os nós xj são dados pelos zeros do polinômio de Legendre, Pn(t).
  • Os pesos são dados por
    wj = 2 1 - tj2 [Pn(tj)]2. (9.203)

A Tabela 9.1 lista os nós e os pesos da quadratura de Gauss-Legendre para n = 1, 2, 3, 4 e 5.


Tabela 9.1: Nodos e pesos para quadratura de Gauss-Legendre.
n tj wj



   
1 0 2



2 ± 3 3 1



3
0 8 9
±3 5 5 9



4
±3 - 265 7 18+30 36
±3 + 265 7 18-30 36



5
0 128 225
± 1 35 - 210 7 322 + 1370 900
   
± 1 35 + 210 7 322 - 1370 900



   

Exemplo 9.7.1. Aproxime

I =-111 + x2dx (9.204)

pelo método de Gauss-Legendre com 2, 3, 4 e 5 pontos.

Solução. A aproximação desta integral usando o método de Gauss-Legendre consiste em computar

I =-11f(x)dx i=1nw if(ti), (9.205)

onde f(x) = 1 + x2, wi é o i-ésimo peso, ti é o i-ésimo nodo, i = 1,,n, e n é o número de nodos (ou pesos) da quadratura. Usando os nodos e pesos dados na Tabela 9.1, obtemos os seguintes resultados:

n I


2 2,3094011
3 2,2943456
4 2,2957234
5 2,2955705


Em Python, temos:

def f(x):  
    return np.sqrt(1+x**2)  
 
#G-L n=2  
x2 = [np.sqrt(3)/3]  
w2 = [1]  
I2 = w2[0]*f(x2[0]) + w2[0]*f(-x2[0])  
print("Para n = 2, I = %1.7f" % I2)  
 
#G-L n=3  
x3 = [0, np.sqrt(3/5)]  
w3 = [8/9, 5/9]  
I3 = (w3[0]*f(x3[0]) +  
      w3[1]*f(x3[1]) + w3[1]*f(-x3[1]))  
print("Para n = 3, I = %1.7f" % I3)  
 
#G-L n=4  
x4 = [np.sqrt((3-2*np.sqrt(6/5))/7),  
      np.sqrt((3+2*np.sqrt(6/5))/7)]  
w4 = [(18+np.sqrt(30))/36, (18-np.sqrt(30))/36]  
I4 = (w4[0]*f(x4[0]) + w4[0]*f(-x4[0]) +  
      w4[1]*f(x4[1]) + w4[1]*f(-x4[1]))  
print("Para n = 4, I = %1.7f" % I4)  
 
#G-L n=5  
x5 = [0,  
      1/3*np.sqrt(5-2*np.sqrt(10/7)),  
      1/3*np.sqrt(5+2*np.sqrt(10/7))]  
w5 = [128/225, (322+13*np.sqrt(70))/900,  
      (322-13*np.sqrt(70))/900]  
I5 = (w5[0]*f(x5[0]) +  
      w5[1]*f(x5[1]) + w5[1]*f(-x5[1]) +  
      w5[2]*f(x5[2]) + w5[2]*f(-x5[2]))  
print("Para n = 5, I = %1.7f" % I5)

Mudança de intervalo

Os coeficientes da quadratura de Gauss-Legendre foram obtidos no intervalo [-1,1]. Para aproximar a integral de f(x) no intervalo [a,b] devemos fazer a mudança de variável

x̄i = αti + β,α = (b - a)2,β = (b + a)2 (9.206)

tal que

abf(x)dx i=1nw if(x̄i)(b - a)2 (9.207)

Quando subdividimos o intervalo inicial [a,b] em N intervalos com extremos [xi,xi+1] a transformação torna-se

x̄i = αti + β,α = (xi+1 - xi)2,β = (xi+1 + xi)2 (9.208)

e

xixi+1 f(x)dx i=1nw if(x̄i)(xi+1 - xi)2 (9.209)

Exemplo 9.7.2. Aproximar

I =011 + x2dx (9.210)

pelo método de Gauss-Legendre com 3 pontos.

Solução. Para tanto, fazemos a mudança de variáveis u = 2x - 1:

I =011 + x2dx = 1 2-111 + u + 1 2 2du. (9.211)

E, então aplicamos a quadratura gaussiana nesta última integral, o que nos fornece I 1,1478011. Em Python, podemos computar estas aproximações com o seguinte código:

def f(u):  
    return np.sqrt(1+(u+1)**2/4)/2  
 
#G-L n=3  
x3 = [0, np.sqrt(3/5)]  
w3 = [8/9, 5/9]  
I3 = (w3[0]*f(x3[0])  
      + w3[1]*f(x3[1]) + w3[1]*f(-x3[1]))  
print("Para n = 3, I = %1.7f" %(I3))

Exercícios resolvidos


Esta seção carece de exercícios resolvidos. Clique em e inicie a editá-la agora mesmo. Veja outras formas de participar clicando aqui.

Exercícios


E 9.7.1. Encontre aproximações para a integral

-11x4ex5 dx (9.212)

usando a quadratura de Gauss-Legendre com 2, 3, 4 e 5 pontos. Então, compare com o seu valor exato.

Resposta.

n G-L Exato Erro Absoluto
hline 2 0,2227
0,4701
2,47E -01
3 0,4157 5,44E -02
4 0,4437 2,64E -02
5 0,4616 8,47E -03

E 9.7.2. Encontre aproximações para as seguintes integrais via Gauss-Legendre com 4 e 5 pontos:

a)
01e-x4 dx
b)
14 log(x + ex)dx
c)
01e-x2 dx

Creative Commons License Este texto é disponibilizado nos termos da licença Creative Commons Atribuição-CompartilhaIgual 3.0 Não Adaptada (CC-BY-SA 3.0). Página gerada em 15/5/2019 às 15:24:50.

Informe erros ou edite você mesmo!