相关阅读
你们好,最近小活发现有诸多的小伙伴们对于蒙特卡洛模拟计算VaR,蒙特卡洛模拟这个问题都颇为感兴趣的,今天小活为大家梳理了下,一起往下看看吧。
1、求解圆周率,在平面中随机抽样,分布着一定数量的点,点的分布服从均匀分布。通过求解点落在圆内的概率,即可求解圆的面积与平面面积的比值,而求解出圆周率。
(资料图片)
2、代码演示及结果
3、x=numpy.random.uniform(0,1,100000)
4、y=numpy.random.uniform(0,1,100000)
5、计数=0
6、对于范围内的我(len(x)):
7、d=math.sqrt(幂((x[i]-0.5),2)幂((y[i]-0.5),2))
8、如果d=0.5:
9、计数=1
10、PI=计数/浮点(len(x))*4
11、delta=round((PI-math。PI)/数学。* 100,2)
12、打印“str(len(x))”的str(count)位于圆内点:"
13、"打印"计算出的圆周率是:"字符串(圆周率)
14、"打印"的理论值是:" str(math.pi)
15、"打印"的偏差是:" str(delta)% "
16、"打印"圆的面积是:" str(count/float(len(x)))"使用蒙特卡罗。"
17、"打印"圆的面积为:" str(round(math.pi*power(0.5,2),4))"使用理论值"
18、从matplotlib .补丁导入圆
19、将matplotlib.pyplot作为plt导入
20、图=plt .图()
21、ax=figure.add_subplot(111)
22、ax.plot(x,y," ro "markersize=1)
23、circle=Circle(xy=(0.5,0.5),半径=0.5,=0.5)
24、ax.add_patch(圆形)
25、plt.show()
26、数值积分。
27、对复杂函数的积分,可以使用此方法,误差是存在的。但是方便快捷。
28、与第一个例子类似,也是抽样分析。分析点落在积分面积的概率。
29、代码演示及结果
30、a=numpy.linspace(0,1,10000)
31、b=幂(一,2)
32、图=plt .图()
33、ax=figure.add_subplot(111)
34、ax.plot(a,b," b- ")
35、plt.show()
36、f=x:幂(x,2)
37、x=numpy.random.uniform(0,1,1000000)
38、y=numpy.random.uniform(0,1,1000000)
39、计数=0
40、对于范围内的我(len(x)):
41、如果y[i]=f(x[i]):
42、计数=1
43、打印计数/浮动(len(x))
44、打印1/浮动(3)
45、人口问题模拟
46、例如某些人生二胎是为了,生男孩,那么采用这种策略会影响男女性别比例吗?
47、代码如下:
48、n=10000
49、比率=[]
50、dic={ "男性"0,"女性"0}
51、对于范围内的我(n):
52、p=numpy.random.rand()
53、如果p0.5:
54、dic["男性"]=1
55、否则:
56、dic["女性"]=1
57、而p0.5:
58、p=numpy.random.rand()
59、如果p0.5:
60、dic["女性"]=1
61、否则:
62、dic["男性"]=1
63、如果dic["女"]!=0:
64、ratio.append(dic["男性]/float(dic["女性"]))
65、绘图(比率,“b-”)
66、通过模拟我们发现其实不会影响。男女比例大致为1:1
以上就是蒙特卡洛模拟这篇文章的一些介绍,希望对大家有所帮助。
关键词:
相关阅读
2023-03-08
2023-03-08
2023-03-08
2023-03-08
2023-03-08
2023-03-08
2023-03-08
2023-03-08
2023-03-08
2023-03-08
2021-12-02
2021-12-02
2021-12-02
2021-12-02