推荐星级:
  • 1
  • 2
  • 3
  • 4
  • 5

基于Python实现圆周率的蒙特卡罗算法的研究

更新时间:2019-12-22 10:31:54 大小:2M 上传用户:songhuahua查看TA发布的资源 标签:python蒙特卡罗算法 下载积分:1分 评价赚积分 (如何评价?) 打赏 收藏 评论(0) 举报

资料介绍

本文基于python和蒙特卡罗算法[1]的结合,实现了对于圆周率数值的更有效计算。基于不同方法所能实现的求解方法均需要大量的实验和计算归纳,因此在求解圆周率的实验中引入计算机编程技术,可以有效降低运算量,同时基于python编写的程序代码在数值计算方面具有简洁、易操作的数据处理优势,可以很好地模拟利用蒙特卡罗法求解概率的过程,从而实现各种求解圆周率的计算方法。


部分文件列表

文件名 大小
基于Python实现圆周率的蒙特卡罗算法的研究.pdf 2M

【关注B站账户领20积分】

部分页面预览

(完整内容请下载后查看)
20196333期  
Journal of Chizhou University  
Jun. 2019 Vol.33 No.3  
DOI10.13420/j.cnki.jczu.2019.03.005  
Python实现圆周率的蒙特卡罗算法的研究  
王玉122  
1.杏花村实验学校徽 池2471002. 池州学院 大数据学院徽 池247000)  
[摘要]本文基python蒙特卡罗算法[1]的结合现了对于圆周率数值的更有效计算。基于不同方法所能实现的求解方法均需要  
大量的实验和计算归纳此在求解圆周率的实验中引入计算机编程技术以有效降低运算量时基python写的程序代码在数值  
计算方面具有简洁操作的数据处理优势以很好地模拟利用蒙特卡罗法求解概率的过程而实现各种求解圆周率的计算方法。  
[关键词] π 特卡罗法Python率近似值  
[中图分类号]O12  
[文献标识码]A  
[文章编号]1674-1102(2019)03-0017-02  
圆周率 π 在计算界占据着重要的地位古  
至今周率计算方法的发展史基本包括验获  
取阶段何算法阶段析算法阶段算机时代  
圆周率的计算这四个发展阶段[2]。  
广泛地应用于各种领域[6]python运用到模拟  
求解圆周率 π 的方法验证过程当中以快速有  
效地简化数值计算过程助于提高数值计算速  
省不必要的数值运算时间一定程度  
在第一阶段当中过实验对 π 值进行估算; 上也有助于 Python 这类科学计算软件的应用与推  
在几何算法阶段学家引入了基于数学几何的  
“割圆术用内接正多边形确定了圆周率的  
界的方法来计算圆周率 π [3]。在第三阶段中,  
随着数学分析这一锐利工具的出现周率 π 的计  
算发展也有了一个崭新的思路[4]。最后着电子  
计算机的普遍使用算圆周率 π 值的方法再次实  
现了前所未有的突破使圆周率的计算达到了惊人  
的程度周率的数值达到难以想象的精度。  
蒙特卡罗方法又统计实验法用概率模  
型来进行近似计算的方法。18 世纪法国学者蒲丰  
投针实验蒙特卡洛算法核心思想的起源。  
其中实验是以大数定理和中心极限定理作为必  
备的数学基础。随着计算机科学技术及相关领域  
的持续发展方法在计算领域的应用方面也得到  
了更加广泛的普及[5]。在数学的科研探索过程中,  
蒙特卡罗法已经被多方学者引用且在科研领域  
经过了深入的探讨研究。在数学理论研究方向上  
蒙特卡罗法不仅可以对问题的结果提供更强的说  
服力能够为新的结论提供广阔的发展空间。  
在计算机技术飞速发展的时代是少不了各  
种编程语言的辅助与支撑。python 编程语言集成  
了开发快言简洁和易操作等多种人性化优势,  
收稿日期2019-01-28  
广科研探索事业提供极大地辅助作用。  
1 应用案例  
任取三个正数组成钝角三角形的概率为  
π - 2  
4
p =  
证明abc 替任取的三个正数令  
a b c 。我们对 c 进行讨论于每一个确定的  
c要 组 成 钝 角 三 角 形 ,则 必 须 满 足 a + b c ,  
a2 + b2 c2 过来abc 满足前两个式子则可  
以组成一个钝角三角形abc 为边长能  
组成一个钝角三角形与“ a + b c a2 + b2 c2 互  
为充要条件。由线性规划知识可求得总的可行域  
为一个边长为 c 的正方形满足题设的可行域为  
直线 a + b = c 与圆 a2 + b2 c2 围成的弓形以组  
成钝角三角形的概率  
πc2 c2  
(
-
)
S弓形  
S正方形  
π - 2)  
4
2
p =  
=
=
。因为对于每  
c2  
4
π - 2)  
一个 c个概这个概率都为  
此对于任  
4
π - 2  
4
意的正数 abcp =  
题得证。  
结合以上概率的论证原理合任意写出两个  
基金项目安徽省自然科学基金项1808085MA21徽高校自然科学研究重点项KJ2016A511, KJ2018A0582徽省质量工程项  
2017xjjd035, 2017XJXTD02徽省大学生创新创业训练计划项201811306127201811306128。  
作者简介王玉1979徽池州人花村实验学校一级教师要从事中学数学教学。  
通讯作者方曙东(1966)徽池州人州学院大数据学院教授要从事量子计算与算法研究。  
池州学院学报  
33卷  
18  
小于 1 a,b其和变量 c 成一个数对  
a,b,ca,b c 能构成一个钝角三角形的概  
π - 2)  
率就是  
用这个结论也可以求出 π 的近  
4
似值了演示的方便性代码的编辑过程中,  
c的数值取1)  
2 python拟代码  
import numpy as np  
图1 周率计算结果图  
sample_number_list = [ 10 ]  
for i in range(6):  
4 结语  
综上所述着现代科学的高速发展算圆  
周率 π 的近似值的方法也在得到不断更新和改  
进。利Python和蒙特卡洛算法结合的计算方法,  
可以通过调控迭代次数的递增程度而快捷简  
便学地计算出圆周率的近似值。利用计算机软  
件来实际模拟每一个圆周率的计算过程够清晰  
明了地展现出最后的模拟实验结果能够模拟真实  
的实验过程[7]。有效地使用此方法仅让学习者  
对蒙特卡罗方法的思想—随机投点思想有了较清  
楚的认识让大家在实际操作当中蒙特卡罗  
法的简洁实用的特点有更加深入的理解与认识。  
同时python语言的简洁易懂的独特优势融入到  
求解圆周率的实验过程当中够让学习者更加注  
重问题的思想本质而根据需求将此方法灵活地  
运用到更加广泛的科研领域省更多的时间去进  
一步挖掘和研究科研领域的新知识。  
sample_number_list.appendsample_number_list  
[i]*10 )  
for sample_number in sample_number_list:  
X = np.random.rand(sample_number2)  
obtuse_triangle_number = 0  
for i in range(sample_number):  
if (X[i0] + X[i1] > 1) and (X[i0]*X[i0]  
+
X[i1]*X[i1] < 1):  
obtuse_triangle_number += 1  
p = obtuse_triangle_number/sample_number  
pi = 4*p + 2  
print('---------------------------')  
print('sample_number='sample_number)  
print('pi='pi)  
3 计算结果  
表 1 圆周率实验数据  
参考文献:  
实验次数  
100  
圆周率计算数值  
3.14091  
[1].用蒙特卡罗方法计算圆周率的近似值[J].内江师范学  
院学报200823(4):14-16.  
1000  
3.14102  
[2]强春. 圆周率计算方法发展史[J]. 延安大学学报(自然科  
学版) 201231(2):42-46.  
10000  
3.14204  
100000  
3.14199  
[3]孙宏. 圆周率计算简史[J]. 中学数学教学参考1998(11):  
49-50.  
1000000  
10000000  
100000000  
1000000000  
10000000000  
3.14161  
3.14162  
3.14154  
[4]徐五光. 数学美与数学的统一美[J]. 杭州师范学院学报,  
1994(3):39-46.  
3.14158  
3.14159  
[5]张德然. 蒲丰投针问题的推广及其应用[J]. 阜阳师范学院  
学报(自然科学版)1997(1):17-19.  
如果采用传统的运算方式去计算圆周率耗  
费大量的程序运行时间时对计算机的内存开销  
占用也比较严重。因此此次实验设计当中本  
文采用了多次实验中统计的方法仅避免了  
严重的内存占用问题有效地扩充了实验的数据  
规模而提高了实验的准确性与计算精度。  
[6]姚建盛. Python在科学计算中的应用[J]. 数字技术  
与应用2016(11):76-76.  
[7]贾瑞凤. Python为工具培养学生计算思维  
[J]. 电脑知识与技术201814(2):117-118.  
[责任编辑传友]  

全部评论(0)

暂无评论

上传资源 上传优质资源有赏金

  • 打赏
  • 30日榜单

推荐下载