热门:蒙特卡洛模拟计算VaR_蒙特卡洛模拟

2023-03-08 19:01:11来源:互联网

你们好,最近小活发现有诸多的小伙伴们对于蒙特卡洛模拟计算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

以上就是蒙特卡洛模拟这篇文章的一些介绍,希望对大家有所帮助。

关键词:

上一篇:

下一篇: