O método dos trapézios é utilizado para fazer a Integração numérica de funções. Esse método consiste em aproximar a função através de um polinômio de grau para então obter a área do gráfico da função aproximada.
Dada uma função , é possível aproximar sua integral definida em um intervalo através da seguinte definição:
com e .
Vale notar que esse método produz resultados exatos caso seja uma função linear. Caso contrário, o limitante superior para o erro da aproximação é dado pela seguinte expressão:
onde .
O método pode ser implementado em python de uma maneira relativamente simples:
import numpy as np
def trapezio(i, f):
h = i[1] - i[0]
return h * ((f(i[0]) + f(i[1])) / 2)
i = [0, 2]
f = lambda x: np.exp(x)
print(trapezio(i, f))
É possível ainda subdividir o intervalo de integração e aplicar o método para cada um dos subintervalos, gerando uma aproximação mais precisa principalmente no caso do intervalo de integração ser muito grande. Dessa forma, o método dos trapézios repetidos para subintervalos é definido por:
O limitante superior para o erro da aproximação é dado pela soma dos erros obtidos em cada subintervalo, dessa forma, para subintervalos:
onde .
O método dos trapézios repetidos pode ser implementado em python da seguinte forma:
import numpy as np
def trapezio(i, f, n):
x, h = np.linspace(i[0], i[1], num=n + 1, retstep=True)
sum = f(x[0]) + f(x[n])
for i in range(1, n):
sum = sum + (2 * f(x[i]))
return (h / 2) * sum
i = [0, 6]
f = lambda x: np.cos(4 * x)
print(trapezio(i, f, 14))