# Método de Romberg

Em Análise numérica, o Método de Romberg é usado para estimar a integral definida
    $\int _{a}^{b}f(x)\,dx$
pela aplicação da Extrapolação de Richardson repetidamente sobre a regra do trapézio ou a regra do retângulo (regra do ponto médio). As estimativas geram a ordenação triangular. O Método de Romberg é uma Fórmula de Newton-Cotes, ela avalia o integrante em pontos igualmente espaçados. O integrante deve ter derivadas contínuas apesar de que resultados razoavelmente bons podem ser obtidos se existem apenas algumas derivadas. Se for possível avaliar o integrante em pontos igualmente espaçados, então outros métodos, como Quadratura Gaussiana e Quadratura de Clenshaw-Curtis são, geralmente, mais precisas.
O método foi batizado em homenagem a Werner Romberg (1909-2003), que publicou o método em 1955.

## Método

Usando
    $h_{n}={\tfrac {1}{2^{n}}}(b-a)$
O método pode ser definido da seguinte maneira:
    $R(0,0)=h_{1}(f(a)+f(b))$
    $R(n,0)={\frac {1}{2}}R(n-1,0)+h_{n}\sum _{k=1}^{2^{n-1}}f(a+(2k-1)h_{n})$
    $R(n,m)=R(n,m-1)+{\frac {1}{4^{m}-1}}(R(n,m-1)-R(n-1,m-1))$
ou
    $R(n,m)={\frac {1}{4^{m}-1}}(4^{m}R(n,m-1)-R(n-1,m-1))$
onde
    $n\geq 1\,$
    $m\geq 1\,$
    $h_{n}={\frac {b-a}{2^{n}}}.$
Em big o notation, o erro para R(n, m) é (Mysovskikh 2002):
    $O\left(h_{n}^{2m+2}\right).\,$
A extrapolação "zeroeth, R(n, 0), é equivalente a regra do trapézio, com 2$^n$ + 1 pontos; a primeira extrapolação R(n, 1), é equivalente a Regra de Simpson com 2$^n$ + 1 pontos. A segunda extrapolação, R(n, 2), é equivalente a Regra de Boole com 2$^n$ + 1 pontos. Demais extrapolações diferem das Fórmulas de Newton-Cotes. Em particular, demais Extrapolações de Romberg expandem na regra de Boole, de maneira suave, modificando pesos em taxas, de maneira similar à regra de Boole. De maneira oposta, demais métodos de Newton-Cotes produzem crescentes diferenças de pesos, levando, eventualmente, a grandes pesos positivos e negativos.Este é um indicativo de como Métodos de Newton-Cotes, para interpolações polinomiais de grande grau, falham em convergir para muitas integrais, enquanto a Integração de Romberg é mais estável.
Quando as avaliações da função são dispendiosas, pode ser preferível substituir a interpolação polinomial de Richardson pela interpolação racional proposta por Bulirsch & Stoer (1967).

## Exemplo geométrico

Para estimar a área sob uma curva, a regra trapezoidal é aplicada em um intervalo, após em dois intervalos, em quatro intervalos e assim consecutivamente.
Após obter as estimativas pela regra dos trapézios, aplica-se a extrapolação de Richardson:
* Para a primeira interação, as estimativas de dois intervalos e de um intervalo são usadas na fórmula (4 X (Mais precisa) - (Menos precisa))/3. A mesma fórmula é então utilizada para comparar as estimativas de quatro e de dois intervalos, e de maneira análoga, para estimativas de maiores intervalos.
* Para a segunda interação, os valores da primeira interação são usados na fórmula (16(Mais precisa)-Menos precisa)/15.
* A terceira interação utiliza a próxima potência de 4:(64 (Mais precisa) - Menos precisa)/63 dos valores derivados da segunda interação.
* Repete-se a operação até que se obtenha uma única estimativa.
| Número de Intervalos | Estimativas trapezoidais | Primeira Interação | Segunda Interação | Terceira Interação |
| | | (4MA-ME)/3* | (16MA-ME)/15 | (64MA-ME)/63 |
| 1 | 0 | (4*480-0)/3 = 640 | (16*880-640)/15 =896 | (64*1015.11-896)/63 = 1017.002 |
| 2 | 480 | (4*780-480)/3 = 880 | (16*1006.67-880)/15 = 1015.11.. | |
| 4 | 780 | (4*950-780)/3 =1006.666.. | | |
| 8 | 950 | | | |
* MA: Mais precisa; ME: Menos precisa

## Exemplo

Como exemplo, a Função Gaussiana é integrada de 0 a 1, erro da função erf(1) ≈ 0.842700792949715. A distribuição triangular é calculada célula a célula e o processo é terminado quando as duas últimas entradas diferem menos de 10$^{−8}$.
O resultado no canto inferior direito da distribuição triangular é preciso até os dígitos mostrados. Destaca-se que este resultado deriva de aproximações menos precisas, obtidas pela regra dos trapézios, na primeira coluna da distribuição triangular.

## Implementação

Segue um exemplo de uma implementação computacional do Método de Romberg ( em linguagem C). São necessários um vetor e uma variável, bem como uma rotina de trapézios: