python(2)–使用蒙特卡罗方法计算圆周率

python(2)–使用蒙特卡罗方法计算圆周率0 主要参考 1 https blog csdn net weixin article details 2 https zhuanlan zhihu com p 蒙特卡洛 1

欢迎大家来到IT世界,在知识的湖畔探索吧!

0、主要参考

(1)https://blog.csdn.net/weixin_/article/details/

(2)https://zhuanlan.zhihu.com/p/

1、蒙特卡洛

1.1概念

蒙特卡罗方法是由冯诺依曼和乌拉姆等人发明的,“蒙特卡罗”这个名字是出自摩纳哥的蒙特卡罗赌场,这个方法是一类基于概率的方法的统称,不是特指一种方法。

蒙特卡罗方法也成统计模拟方法,是指使用随机数(或者更常见的伪随机数)来解决很多计算问题的方法。他的工作原理就是两件事:不断抽样、逐渐逼近。

1.2 应用

通常蒙特卡罗方法可以粗略地分成两类:

一类是所求解的问题本身具有内在的随机性,借助计算机的运算能力可以直接模拟这种随机的过程。例如在核物理研究中,分析中子在反应堆中的传输过程。中子与原子核作用受到量子力学规律的制约,人们只能知道它们相互作用发生的概率,却无法准确获得中子与原子核作用时的位置以及裂变产生的新中子的行进速率和方向。科学家依据其概率进行随机抽样得到裂变位置、速度和方向,这样模拟大量中子的行为后,经过统计就能获得中子传输的范围,作为反应堆设计的依据。

另一种类型是所求解问题可以转化为某种随机分布的特征数,比如随机事件出现的概率,或者随机变量的期望值。通过随机抽样的方法,以随机事件出现的频率估计其概率,或者以抽样的数字特征估算随机变量的数字特征,并将其作为问题的解。这种方法多用于求解复杂的多维积分问题。

2、求圆周率Pi的例子

2.1原理

为了使用蒙特卡罗方法来计算圆周率π,我们绘制一个圆及其外接正方形,如下图所示,假设圆的半径r=1,那么圆的面积S=πr²等于π,外接正方形的面积为4,。任意产生正方形内的一个点,该点落在圆内的概率为:圆面积/正方形面积,即π/4(该点要么在圆内,要么在圆外,但一定在正方形内)。

python(2)--使用蒙特卡罗方法计算圆周率

图片来源https://blog.csdn.net/weixin_/article/details/

编写程序,在正方形内随机产生10000个点,落在圆内点的数量用n来表示。因此n的值约为10000π/4.因此我们可以估算π的值约为4n/10000。还需要判断点(x,y)落在圆内:x²+y²<=1。产生随机数使用random模块中的random()函数。

2.2测试代码

(1)代码

# 使用蒙特卡罗方法计算圆周率 import random NUMBER =  n = 0 for i in range(NUMBER): x = random.random()*2-1 #random()会随机生成(0,1)之间的数,我们把它乘2,再减1,范围就控制在了[-1,1]之间 y = random.random()*2-1 if((x*x+y*y)<=1): n+=1 pi = 4.0*n/NUMBER print("使用蒙特卡罗方法计算圆周率的值为:",pi)

欢迎大家来到IT世界,在知识的湖畔探索吧!

(2)结果,可以尝试,增大随机点个数哦

python(2)--使用蒙特卡罗方法计算圆周率

免责声明:本站所有文章内容,图片,视频等均是来源于用户投稿和互联网及文摘转载整编而成,不代表本站观点,不承担相关法律责任。其著作权各归其原作者或其出版社所有。如发现本站有涉嫌抄袭侵权/违法违规的内容,侵犯到您的权益,请在线联系站长,一经查实,本站将立刻删除。 本文来自网络,若有侵权,请联系删除,如若转载,请注明出处:https://itzsg.com/86560.html

(0)

相关推荐

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

联系我们YX

mu99908888

在线咨询: 微信交谈

邮件:itzsgw@126.com

工作时间:时刻准备着!

关注微信