5.8 Integração Numérica — Método de Monte Carlo

numerical

O Método de Monte Carlo é uma técnica heurística para avaliação ou estimação de problemas (geralmente intratáveis) usando simulação probabilística e amostragem. Um exemplo básico da utilização do Método de Monte Carlo é a integração de funções com uma variável. Isto é, a integral

\( I = \int_a^b f(x) dx \)

pode ser aproximada por
\( \hat{I} = \dfrac{b – a}{n} \sum_{i=1}^N f(x_i) \)

onde todas \(x_i \) são observações independentes de uma distribuição uniforme no intervalo \([a,b] \). Assim, como a esperança \(E(\hat{I}) = I \), temos que a precisão aumenta com o aumento no número de amostras \(n \).

 

Implementação

 

def integral_monte_carlo(fun, xi, xe, n=1e6):
    """
    Numerical integration using Tanh-sinh quadrature
 
    integral = integral_monte_carlo(fun, xi, xe, n=1e5)
 
    INPUT:
      * fun: function to be integrated
      * xi: beginning of integration interval
      * xe: end of integration interval
      * n: number of points used by Monte Carlo Method
 
    return: \int_{xi}^{xe} f(x)
 
    Author: Pedro Garcia [sawp@sawp.com.br]
    see: http://www.sawp.com.br
 
    License: Creative Commons
             http://creativecommons.org/licenses/by-nc-nd/2.5/br/
 
    Sep 2012
    """
    (fmedio, i, n) = (0.0, 0, int(n))
    while i < = n:
        x = fabs(xe - xi) * random() + xi
        fmedio += fun(x)
        i += 1
    fmedio /= n
    integral = (xe - xi) * fmedio
    return integral

Um exemplo de utilização dessa função pode ser obtido em http://sawp.com.br/code/integral/integral_monte_carlo.py.

 

Copyright

Este documento é disponível sob a licença Creative Commons. As regras dos direitos de cópia deste conteúdo estão acessíveis em http://creativecommons.org/licenses/by-nc-nd/2.5/br/.

References

[1] Anthony Ralston and Philip Rabinowitz, A First Course in Numerical Analysis (2nd ed.), McGraw-Hill and Dover, (2001).

[2] N.B Franco, Cálculo Numérico, Pearson Prentice Hall (2006).