MVLib - Short Writeup - Version 4.0 Example Number 46 - Pi-grec estimation |
This example shows how to estimate the value of Pi-grep using a Montecarlo-based method. The loop in the main program extracts two random coordinate and counts the
number of points falling inside the circle. Being the ratio of "good points" proportional to the ratio of the areas, the value og Pi-grec is estimated.
The fortran code is available here and the complete script running the code is available here.
|
|
| implicit none real x,y,acaso,ngol ; integer i,ntiri ; character title*40 call graphiclayout ntiri=100 ; ngol=0 do i=1,ntiri x=acaso(x) ; y=acaso(y) call disegnapunto(x,y) if (x**2+y**2.lt.1) ngol=ngol+1 enddo write(title,'(a,f4.2)') 'Stima di pi greco: ',4*ngol/ntiri call displayplot(' ',' ',title) end subroutine disegnapunto(x,y) implicit none real x,y call pallocchetto ((x+1)/2,(y+1)/2,0.005,9) return end subroutine graphiclayout call mvsetflags('Palette di colori',8.0) call mvsetflags('Colore Titoli',6.0) call mvsetflags('Random seed',3388148907.0) call scrivisulplot(' ',0.85,0.05) call set (0.0,1.0,0.0,1.0,-1.0,1.0,-1.0,1.0,1) call pallocchetto (0.5,0.5,0.5,8) call linea(0.0,-1.0,0.0,1.0) call linea(-1.0,0.0,1.0,0.0) return end |