首页 理论教育 蒙特卡罗计算圆周率:云计算实践

蒙特卡罗计算圆周率:云计算实践

时间:2023-11-20 理论教育 版权反馈
【摘要】:根据上面的描述,我们用Java语言实现一个通过大炮打点计算圆周率的例子,如代码清单7-1所示。图7-3 蒙特卡罗模拟计算圆周率结果历史上确实有人使用过蒙特卡罗模拟算法来计算圆周率。下面我们总结了一下使用蒙特卡罗模拟算法的几个步骤:1)确定要解决的问题是否可以用概率统计的方法解决,也就是建立数学模型,通过数学模型f(x1,x2,x3,…通过这一节的描述,希望读者对使用蒙特卡罗模拟算法解决实际问题有一个基本概念。

蒙特卡罗计算圆周率:云计算实践

根据上面的描述,我们用Java语言实现一个通过大炮打点计算圆周率的例子,如代码清单7-1所示。

【代码清单7-1】

978-7-111-36687-4-Chapter07-4.jpg

978-7-111-36687-4-Chapter07-5.jpg

在Eclipse中执行,结果如图7-3所示。

978-7-111-36687-4-Chapter07-6.jpg

图7-3 蒙特卡罗模拟计算圆周率结果

历史上确实有人使用过蒙特卡罗模拟算法来计算圆周率。最早是法国的科学家蒲丰,他没有用大炮,而是在墙上画一个长度为1的正方形,然后在里面画出最大的圆,在一定距离进行投针,针投入圆的次数和投入正方形的次数之比,就是它们的面积比,进而计算出圆周率,最后得到了不错的结果。1850年沃尔夫投针5000次测得圆周率为3.1596,1860年德摩根投针600次算的圆周率为3.137,最后1901年意大利的数学家拉泽里尼投针3408次,并结合现代数学缩减偏差的方法得到圆周率3.1415929,在没有计算机辅助计算的当时,很早就算出了3.1415926和3.1415927的区间。

下面我们总结了一下使用蒙特卡罗模拟算法的几个步骤:(www.xing528.com)

1)确定要解决的问题是否可以用概率统计的方法解决,也就是建立数学模型,通过数学模型f(x1,x2,x3,…)可以模拟要求解的问题。

在求圆周率的例子中,这个数学模型也就是圆的外切正方形,不确定变量为采样点的横、纵坐标。

2)确定随机采样点的计算方法,也就是确定x1,x2,x3,…。

在求圆周率的例子中,这些采样点就是打在正方形中的所有点。

3)确定随机采样点的选择方法,确定哪些采样点符合要求。

在求圆周率的例子中,打在圆内的点可以通过计算到圆心的距离来判断。

4)根据比值确定最终结果。

通过这一节的描述,希望读者对使用蒙特卡罗模拟算法解决实际问题有一个基本概念。

免责声明:以上内容源自网络,版权归原作者所有,如有侵犯您的原创版权请告知,我们将尽快删除相关内容。

我要反馈