On this page
article
Integracao Numerica
Sobre
Metodo de Simpson 3/8
Integra f no intervalo [a, b], erro cresce proporcional a (b - a)^5
Link original: integral.cpp
Código
const int N = 3*100; // multiplo de 3
ld integrate(ld a, ld b, function<ld(ld)> f) {
ld s = 0, h = (b - a)/N;
for (int i = 1 ; i < N; i++) s += f(a + i*h)*(i%3 ? 3 : 2);
return (f(a) + s + f(b))*3*h/8;
}