Cálculo Numérico
Universidade Federal do Pará
Quando a primitiva de \(f\) é indisponível, aproxima-se a integral por uma soma ponderada de valores da função:
\[\int_a^b f(x)\,dx \approx \sum_{i=0}^{n} w_i\, f(x_i)\]
As fórmulas de Newton-Cotes usam nós equiespaçados e integram o polinômio interpolador.
Aproxima \(f\) por uma reta em \([a,b]\):
\[\int_a^b f\,dx \approx \frac{h}{2}\,[\,f(a) + f(b)\,]\]
Erro: \(-\dfrac{h^3}{12}\,f''(\xi)\), exata para polinômios de grau \(\leq 1\).
Aproxima \(f\) por uma parábola por 3 pontos:
\[\int_{x_0}^{x_2} f\,dx \approx \frac{h}{3}\,[\,f_0 + 4f_1 + f_2\,]\]
Erro: \(-\dfrac{h^5}{90}\,f^{(4)}(\xi)\), exata para polinômios de grau \(\leq 3\).
Subdivide-se \([a,b]\) em \(n\) subintervalos de largura \(h=(b-a)/n\):
\[\int_a^b f\,dx \approx \frac{h}{2}\Bigl[f_0 + 2\!\sum_{i=1}^{n-1} f_i + f_n\Bigr] \quad\text{(trapézio composto)}\]
\[\int_a^b f\,dx \approx \frac{h}{3}\Bigl[f_0 + 4\!\!\sum_{i\,\text{ímpar}}\!\! f_i + 2\!\!\sum_{i\,\text{par}}\!\! f_i + f_n\Bigr] \quad\text{(Simpson composto)}\]
O erro do trapézio composto é \(O(h^2)\); o de Simpson, \(O(h^4)\).
Escolhe nós e pesos ótimos (não equiespaçados) que integram exatamente polinômios de grau até \(2n-1\):
\[\int_{-1}^{1} f(\xi)\,d\xi \approx \sum_{i=1}^{n} w_i\, f(\xi_i)\]
import numpy as np
from scipy.integrate import quad, simpson, trapezoid
f = lambda x: np.exp(-x**2)
# Integração adaptativa (preferida) — retorna valor e estimativa de erro
I, erro = quad(f, 0, 1)
# A partir de amostras (dados tabelados)
x = np.linspace(0, 1, 101); y = f(x)
I_trap = trapezoid(y, x)
I_simp = simpson(y, x)
print(I, I_trap, I_simp)Tip
Para uma função avaliável em qualquer ponto, use quad (adaptativo). Para dados tabelados, use simpson ou trapezoid.