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 são observações independentes de uma distribuição uniforme no intervalo . Assim, como a esperança , temos que a precisão aumenta com o aumento no número de amostras .

 

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.

 

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).