Monte Carlo算法步骤
(1)循环次数C、计数器s;
(2)生成随机数;
(3)如果满足条件s+1;
(4)模拟结果=s/C。
Monte Carlo优缺点
优点:
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)
result:
模拟散点图:
计算结果:
版权声明:本文为weixin_39797176原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接和本声明。