首頁 > 繪畫

Monte Carlo演算法及實現

作者:由 昆明雨季 發表于 繪畫日期:2023-02-06

1/4圓的面積怎麼算

Monte\ \ Carlo

計算是基於隨機取樣與隨機移動的原理。我們採用

Monte\ \ Carlo

的主要目的是計算經典多體體系的平衡物性。儘管該方法有許多其它的應用,現在我們考察簡單的

Monte \ \ Carlo

程式。

我們採用

Monte\ \ Carlo

方法計算半徑為

1

1/4

圓的面積。

我們可任意選取範圍為

(0\leq x\leq 1,0\leq y\leq 1)

的一組隨機數點

P(x_i,y_i)

若該點滿足

y_i\leq\sqrt{1-x^2_i}

,即

\sqrt{x_i^2+y_i^2}\leq 1

,則

P

點判定為被接受,反之則捨棄。

設共隨意選取了

N

個隨機點,其中有

n

個點被接受(在圓內),則我們求解的

1/4

圓的面積為

P

點落在

1/4

圓區間的機率乘以矩形的面積,即:

A=\frac{n}{N}\times 1^2

那麼我們所求的面積的真正值為

\pi(i)^2/4=0。785398

採用

Python

語言進行計算:

#求解半徑為1的1/4圓的面積Aimport randomimport mathimport matplotlib。pyplot as pltN=20000#迴圈次數n=0#被接受的點數#繪製被接受點的圖片plt。xlim(xmax=1,xmin=0)#畫圖的區域plt。ylim(ymax=1,ymin=0)for i in range(N): xi=random。random()#x為0-1之間的隨機數 yi=random。random()#y為0-1之間的隨機數 y=math。sqrt(1-xi**2) if y>=yi:#當座標點yi小於y時,才符合條件 n=n+1#被接受的點數加1 plt。plot(xi,yi,‘r+’)#將點輸出在圖上plt。show() A=n/N*1*1#面積計算print(A)

計算結果為:

A=0。7835

Monte Carlo演算法及實現

採用

Fortran \ 77

語言計算:

C MONTE CARLO 計算1/4圓的面積 REAL Y,XI,YI,A ISEED=RTC() N0=0!被接受的點數 N=200000!迴圈次數 DO I=1,N XI=RAN(ISEED)!隨機生成點數xi、yi YI=RAN(ISEED) Y=SQRT(1-XI**2) IF(Y。GE。YI)N0=N0+1!判定是否接受 END DO A=1。0*N0/N WRITE(*,*)A END

計算結果為:

0。7859300