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

Cálculo Numérico - Versão Python

9.1 Somas de Riemann


O método mais simples de aproximar

I = ∫ abf(x)dx. (9.8)

com apenas um intervalo, é aproximar f(x) por um polinômio constante no intervalo [a,b], ou seja, f(x) = c. Se aproximarmos f(x) pelo ponto a esquerda do intervalo temos que f(x) ≈ f(a) e I = ∫ abf(x)dx (9.9) ≈ ∫ abf(a)dx (9.10) = f(a) ∫ abdx (9.11) = f(a)(b − a) (9.12)

Esta é a regra de quadratura local para 1 intervalo.

Quando subdividimos [a,b] em n intervalos com tamanho h = (b − a)∕n nos pontos xi = a + (i − 1)h , em cada intervalo i aproximamos a área por

ΔSi ≈ f(xi)h (9.13)

tal que a área total será aproximada pelas somas de Riemann à esquerda

S = ∑ i=1n−1ΔS i = ∑ i=1n−1f(x i)h (9.14)

Podemos obter uma fórmula similar se usarmos os pontos a direita do intervalo, ou seja, as somas de Riemann à direita

S = ∑ i=1n−1f(x i+1)h (9.15)

Uma terceira opção é utilizar o ponto médio do intervalo [xi,xi+1] o qual fornece a regra do ponto médio

S = ∑ i=1n−1f(ξ i)h,ξi = xi + xi+1 2 . (9.16)

Exemplo 9.1.1. A integral de f(x) = e−x sen (x) no intervalo [0,1, 0,2] é

∫ 01f(x)dx ≈ 2,45837E −1. (9.17)

Usando somas de Riemann à esquerda com 10 intervalos, obtemos

∫ 01f(x)dx ≈∑ i=110f(x i)h = 2,29433 × 10−1. (9.18)

onde h = 0,1 e xi = (i − 1)h. Analogamente, usando somas de Riemann à direita, obtemos

∫ 01f(x)dx ≈∑ i=110f(x i+1)h = 2,60389 × 10−1. (9.19)

E, usando a regra do ponto médio, temos

∫ 01f(x)dx ≈∑ i=110f xi + xi+1 2 h = 2,46300 × 10−1. (9.20)

Pode-se, no Python, implementar as somas de Riemman da seguinte forma

f = lambda x: np.exp(-x)*np.sin(x)  
 
a = 0  
b = 1  
n = 10  
h = (b-a)/n  
x = np.linspace(a,b,n+1)  
 
S_esq = 0  
S_dir = 0  
S_med = 0  
 
print("Soma de Riemman de {} a {} com {} intervalos:\n".format(a, b, n))  
 
for i in range(n):  
    S_esq += f(x[i])*h  
print("A esquerda: {:.5e}".format(S_esq))  
 
for i in range(n):  
    S_dir += f(x[i+1])*h  
print("A direita: {:.5e}".format(S_dir))  
 
for i in range(n):  
    S_med += f(((x[i]) + (x[i+1]))/2)*h  
print("Pelo ponto medio: {:.5e}".format(S_med))

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


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

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 19/8/2020 às 17:36:36.

Informe erros ou edite você mesmo!