利用蒙特卡洛(Monte Carlo)计算圆的面积python

时间:2024-05-18 21:32:29

Monte Carlo
(1)循环次数C、计数器s;
(2)生成随机数;
(3)如果满足条件s+1;
(4)模拟结果=s/C。
优点:
  1.预测精确;
  2.连续和非连续都能处理。
缺点:
  1.计确时间通常较长;
  2.误差是概率误差。

#以半径为1的圆,在第一象限内的面积计算为例
import random
import math
import matplotlib.pyplot as plt
C=2000#循环次数
s=0#计数器
#作图的视野范围
plt.xlim(xmax=1.5,xmin=0)
plt.ylim(ymax=1.5,ymin=0)
for i in range(C):
	#生成随机坐标(x,y)
    x=random.random()#生成0-1之间的随机数
    #print(x)
    y=random.random()#生成0-1之间的随机数
    #print(y)
    y_predict=math.sqrt(1-x**2)
    #print(y_predict)
    if y_predict>=y:#坐标点y小于y_predict,才是圆的点,即才符合条件,计数器加1
        s=s+1
        plt.plot(x,y,'r+')
plt.show()  
#上面计算的是1/4面积,所以要乘4
predict_value=4*s/C
print(predict_value)
  • 送上结果
    利用蒙特卡洛(Monte Carlo)计算圆的面积python
    利用蒙特卡洛(Monte Carlo)计算圆的面积python