1 Universidade de São Paulo/Faculdade de Educação Seminários de Ensino de Matemática (SEMA-FEUSP) Coordenador: Nílson José Machado novembro/2009 O método de Monte Carlo: algumas aplicações na Escola Básica Marisa Ortegoza da Cunha [email protected] Sob o nome “Monte Carlo”, há vários métodos que seguem o mesmo paradigma: a utilização de números aleatórios como valores de variáveis envolvidas no processo, para viabilizar sua simulação. O nome do método remete diretamente à cidade de Monte Carlo, em Mônaco, famosa por seu cassino; a roleta, o jogo de azar, caracterizam dispositivos simples de produção de números aleatórios. A obtenção de grandes sequências de números aleatórios não é, no entanto, uma tarefa simples. Em 1946, John Von Neumann propôs o primeiro algoritmo para gerar números “pseudo” aleatórios, chamado “método do meio dos quadrados”. Sua lógica é a seguinte: consideremos um número inicial qualquer, entre 0 e 1, com quatro casas decimais. Por exemplo, x0 = 0,3542. Calculamos x02 = 0,12545764. Formamos, então, o número x1, com as quatro casas centrais: x1 = 0,5457. Repetindo o procedimento, teremos: x0 = 0,3542 x02 = 0,12545764 x1 = 0,5457 x12 = 0,29778849 x2 = 0,7788 x22 = 0,60652944 x3 = 0,6529 Há inúmeros algoritmos que visam à geração de números randômicos. Em computação, cada linguagem de programação tem definida uma função “pseudorandômica”, cuja descrição é de código “caixa-preta”, isto é: dada uma entrada 2 (geralmente chamada de seed = semente) qualquer, o usuário não sabe que procedimentos serão utilizados pela função para a produção do resultado. Geralmente são funções de muitas variáveis e uma possibilidade – entre tantas outras-, é a função também considerar, nos seus cálculos, o horário no relógio interno à CPU, no exato instante em que determinada linha do programa é executada. Há muitas aplicações para os métodos de Monte Carlo, principalmente quando a realização do processo envolve riscos ou custos muito altos. A ideia é: dado um problema que contém alguma variável aleatória, obter uma aproximação do resultado, atribuindo a essa variável valores fornecidos por algum método de geração de números aleatórios. Algumas aplicações na escola básica 1. Estimativa de áreas - Queremos avaliar a área da região plana destacada na figura abaixo, contida num quadrado de lado 10cm: São tomados, no interior do quadrado, 100 ponto ao acaso: 3 Desses pontos, aconteceu de 22 pertencerem ao interior da região assinalada. Logo, uma aproximação para sua área é dada pela relação: 22/100 = área/100 = 22cm2. No caso, por se tratar de uma figura poligonal, é possível calcular sua área com precisão: 19,75cm2. 2. Aproximação do - A ideia de estimar o valor da área de uma região pode ser útil numa aproximação de . Consideremos um quadrado de lado r e o quarto de círculo inscrito nele: Sabemos que a área da região destacada é e a do quadrado é r2. Tomando N pontos aleatórios no interior do quadrado, sendo N’ a quantidade desses pontos pertencentes à região cinza, teremos: = = . Daí, obtemos a aproximação: 4 3. Obtenção das raízes de equações - É bem conhecido, na área de cálculo numérico, o método da bisecção para obter uma aproximação das raízes de uma equação. Trata-se de um método simples e seguro, cuja precisão pode ser estipulada a priori (na prática, essa precisão depende também da quantidade de casas decimais consideradas). Ele se baseia no seguinte fato: dada uma equação f(x) = 0, com f(x) contínua num intervalo [a,b], se f(a).f(b) < 0, então existe pelo menos um zero de f(x) entre a e b. A ideia do método é “cercar” esse valor, diminuindo gradativamente o comprimento do intervalo que o contém. Para isso, tomamos o ponto médio do intervalo [a,b]. Seja x1 esse ponto. Se f(x1) = 0, x1 já é a raiz procurada. Se não, ficamos com a metade que contém a raiz e “descartamos” a outra. Procedemos dessa forma até chegar a um valor de x tal que f(x) seja satisfatoriamente próximo de zero: Um exemplo: Consideremos a equação f(x) = x3 – 9x + 2 = 0. Temos que f(0) = 2 > 0 e f(1) = -6 < 0. Logo, há pelo menos uma raiz dessa equação, no intervalo [0,1]. Calculamos o ponto médio desse segmento: x1 = 0,5. Como f(0,5) = -2,375 < 0, a raiz se encontra no intervalo [0 ; 0,5]. 5 Novamente, consideramos o ponto médio: 0,25. Como f(0,25) = -0,234, a raiz se encontra no intervalo [0 ; 0,25] Ponto médio de [0 ; 0,25]= 0,125 f(0,125) = 0,877 > 0; logo, há raiz entre 0,125 e 0,25: Procedendo dessa forma, e trabalhando com 3 casas decimais, chegamos ao valor 0,223 como aproximação da raiz procurada (f(0,223) = 0,004). Que alternativa o Método de Monte Carlo pode representar, nesse problema? Ora, por que o ponto médio? Se a ideia é diminuir, gradativamente, o comprimento do intervalo que contém a raiz, então qualquer número – aleatoriamente escolhido ou sorteado - no intervalo, pode fazer as vezes do ponto de secção! Como atividade com os alunos, o exercício anterior pode ser refeito, adotando a estratégia de Monte Carlo, e usando “chutes”, como números aleatórios divisores dos intervalos. Nesse processo, os alunos não mais fariam uma ação mecânica – calcular o ponto médio de um segmento-, mas teriam que observar os dois extremos, e comparálos (comparação de decimais), para fornecer um número intermediário. Bibliografia M. DOMBROVSKY. O MÉTODO DE MONTE CARLO. Tradução de M. Dombrovsky. Moscou: Editora MIR, 1983. http://www.eltonminetto.net/docs/monteCarloDistribuido.pdf http://www.facef.br/novo/publicacoes/IIforum/Textos