Monte Carlo Pi
![]() |
| Distribuição aleatória de pontos. |
Uma das formas mais engraçadas de calcular uma aproximação ao número PI é a de considerar um círculo de raio um inscrito no quadrado de lado dois; gerar um conjunto de pontos aleatoriamente com coordenadas dentro do quadrado, e se o ponto estiver dentro do círculo é contado, no caso de cair fora não se conta. O número de pontos que cai dentro do círculo a dividir pelo número total de pontos vezes quatro é aproximadamente igual a 3.1415926... Como se pode verificar no gráfico seguinte da quantidade referida em função do número de pontos; a linhas vermelha é o valor 3.1415926...
![]() |
| Convergência para o valor de Pi. |
O código seguinte em GNU/Octave faz todo o trabalho:
clf; hold on axis square u=[0:.01:2*pi]; plot(cos(u),sin(u),'r-') n=500; x=2*rand(n,2)-1; px=[]; j=0; for i=1:n if sumsq(x(i,:))<1 plot(x(i,1),x(i,2),'o') j=j+1; px(j)=4*j/i; else endif; endfor; [j i] print -dpng "circPI.png" clf; hold on; plot(px,'-') plot([1:length(px)],pi*ones(1,length(px)),'r-') print -dpng "circPIx.png"Palavras chave: Pi, Monte Carlo, matemática
Última actualização/Last updated: 2012-02-26 [15:49]
1999-2011 (c) Tiago Charters de Azevedo
São permitidas cópias textuais parciais/integrais em qualquer meio com/sem alterações desde que se mantenha este aviso.
Verbatim copying and redistribution of this entire page are permitted provided this notice is preserved.


