Métodos computacionais
O Método de Monte Carlo é uma técnica para a avaliação ou estimação de problemas complexos (geralmente intratáveis) usando simulação probabilística e amostragem.
É uma integração numérica usando números aleatórios para a avaliação aproximada de integrais definidas,
Pode ser aproximada por: onde todas xi são observações independentes de uma distribuição uniforme no intervalo [a,b]. Assim, como a esperança E(I^)=I, temos que a precisão aumenta com o aumento no número de amostras n.
Toda simulação de Monte Carlo é efetuada por meio de amostragens das funções densidade de probabilidade e do uso das funções probabilidade cumulativa. Essas amostragens são realizadas através de números aleatórios, portanto, qualquer programa computacional que utiliza o MMC necessita de um gerador de números aleatórios. Geradores de números aleatórios são baseados em algoritmos matemáticos que geram números, cujas ocorrências obedecem a uma aleatoriedade, e que simulam a verdadeira aleatoriedade encontrada na natureza. Neste sentido, os números gerados por estes algoritmos são formalmente chamados de números pseudoaleatórios. Um conjunto de números definidos dentro de um intervalo, por exemplo [0,1], constitui uma sequência de números aleatórios se eles estiverem uniformemente distribuídos neste intervalo e se nenhuma correlação existir dessa sequência.
Para definir o número de simulações, deve-se fazer um balanço entre a qualidade dos resultados desejada e as disponibilidades de hardware e de tempo.
Exemplo:
Aplicações: Medicina Nuclear, Radioterapia, Estudos da População, Atividades Metrológicas.
Python:
-*- coding: utf-8 -*-
#
# integral_monte_carlo.py - Numerical Integration (Monte Carlo's)
#
#
# Autor: Pedro Garcia Freitas [sawp@sawp.com.br]
# License: Creative Commons
#
#
# Sep 2012
#
from math import cos, sin, exp, fabs from random import random
def integral_monte_carlo(fun, xi,