蒙特卡洛方法:一种神奇的计算技巧

蒙特卡洛方法:一种神奇的计算技巧首先先说一声抱歉 这几天忙着出差赶路 更新的不是那么勤 但是作者本人在高铁上的时候也在思考 自己的头条号到底应该是什么结果呢 我思考的结果是 文章贵精不贵多 我写科普的目的是为改善这娱乐至死的网络环境贡献一份力 让更多忙碌的人开始自己的思考

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

首先先说一声抱歉,这几天忙着出差赶路,更新的不是那么勤。但是作者本人在高铁上的时候也在思考:自己的头条号到底应该是什么结果呢?我思考的结果是:文章贵精不贵多,我写科普的目的是为改善这娱乐至死的网络环境贡献一份力,让更多忙碌的人开始自己的思考。因此未来,我将会放慢更新速度,精心雕琢每一篇文章,部分科普推文将会变成本人自己的学习笔记的分享。(作者本人也是一个读书学习中的小白)。在日常读书和研究中若有值得分享的,我将会尽数分享。文章内容可能是作者读某一本书后的一些感悟,也可能是研究某些科学工程理论的一些过程,一切就看我心情啦。

言归正传,今天想要介绍的是一种常见的数学方法-蒙特卡洛算法 (Monte Carlo Algorithm),简称蒙卡算法。(数学方向的大神们就别往下看了,我没脸班门弄斧)。今天我们就来简单介绍一下蒙卡算法的基本概念。

蒙特卡罗这个名字源自摩纳哥的著名赌城蒙特卡洛,这个方法是为了表明其随机抽样的本质而命名。具体来说,1946年,美国拉斯阿莫斯国家实验室的三位科学家John von Neumann (冯诺依曼),Stan Ulam (斯坦乌尔姆)和Nick Metropolis (尼克梅特珀利斯)在为核武器计划工作时共同发明了这种方法。

该算法也称计算机随机模拟方法或统计模拟方法,是一种基于”随机数”的计算方法,是一类基于概率的方法的统称。这类方法的特点是,可以在随机采样上计算得到近似结果,随着采样的增多,得到的结果是正确结果的概率逐渐加大。为了让各位非STEM背景的读者更好的理解蒙卡算法的基本概念,我特意写了一段使用随机坐标估算正方形面积的代码来展示它的核心理念。

蒙卡算法的第一个任务就是定义问题:我需要随机模拟计算什么?在这个例子里,我们想要解决的问题是计算一个边长为5的正方形面积。当然,如今人类文明繁荣昌盛,微积分早就帮我们推理出了计算正方形面积的解析式:S = 边长的平方。那么我们假设一种场景:出于某种原因,人类文明回到了起点,一切科学技术都要重新研究。在一个和牛顿一样聪明的人类建立微积分体系前,没有面积公式的人怎么得出这个正方形的面积呢?这个时候蒙卡算法的思想就展现了它的强大:我们可以将这个边长为5正方形放在一个更大的正方形里(代码里我用了变成为10),然后闭着眼睛随机在这个大正方形里定点。如果点落在小正方形内,这个点被染上绿色,否则就染上红色。

从上帝视角看,小正方形面积/大正方形面积 = (5×5)/(10×10)=0.25,即有25%的概率点会落在小正方形内,75%的概率落在小正方形外。见下图

蒙特卡洛方法:一种神奇的计算技巧

小正方形面积(黄色)是大正方形(蓝色)的1/4



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

但这只是概率。如果正在进行科学研究的人类闭着眼睛随机定几个点(个位数或者两位数),有极高的概率大部分点都在黄色小正方形外。但如果闭着眼睛重复随机定点上千次甚至上万次呢?随着模拟次数增加,最终黄色小正方形内的绿点和总定点数的比值会越来越接近0.25,即25%。(再次强调,25%是上帝视角的答案,在假设情境里人类并不知道精确答案)。使用这个办法人类即使不知道解析公式,对于每一个正方形他们也能知道一个极其接近正确答案的结果。下图是我在大正方形范围内随机生成了10000个点坐标的结果,如果点坐标在我们需要求解的正方形内,点被我认为的染上绿色,如果不在,则染上红色。

蒙特卡洛方法:一种神奇的计算技巧

可以看到绿色占据的面积肉眼可见的大约是大正方形的1/4

我还特意将统计了一下绿点数量占所有点数量的比例,结果为0.2499,可以看出这个结果已经很接近上帝答案0.25了。如果这批人类得出结果后四舍五入,依旧可以得出正确答案0.25,蒙卡算法的强大在此时体现的淋漓尽致:人类以肉体凡胎比肩神明。但蒙卡算法的结果大概率无法正中精确答案,即使模拟次数非常巨大,结果依旧会有一丢丢的偏差。这是自然界一直存在的自然不确定性导致的。这种自然不确定性在统计学上有重要意义,日后会再展开细讲。下图证明0.2499真的是代码运行的结果

蒙特卡洛方法:一种神奇的计算技巧

蒙特卡洛算法的优点在于它可以处理高维度、非线性、复杂的问题,而且不需要知道问题的解析解。这使得蒙特卡洛算法在许多领域都有广泛的应用。然而,蒙特卡洛算法的缺点也很明显,那就是它的计算复杂度较高,需要进行大量的随机抽样和分析。因此,在实际应用中,我们需要根据问题的特点和需求,选择合适的抽样策略和算法优化方法。典型的例子就是如今的电离辐射剂量计算,过程中会用到蒙卡算法模拟每个光子是如何与介质内的电子发生反应并且沉积剂量

总之,蒙特卡洛算法是一种通过随机抽样来解决问题的数学方法。它的核心思想是利用概率模型和抽样策略来估计问题的解。虽然蒙特卡洛算法的计算复杂度较高,但它在处理复杂问题方面具有很大的优势。随着计算机技术的发展和算法优化方法的研究,蒙特卡洛算法在未来的应用前景将更加广阔。

最后附上我写的一段惨不忍睹的烂代码,程序员大神们请装作没看到,因为就是个基本编程,没脸看,没脸看,真的没脸看

蒙特卡洛方法:一种神奇的计算技巧

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

(0)
上一篇 32分钟前
下一篇 22分钟前

相关推荐

发表回复

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

联系我们YX

mu99908888

在线咨询: 微信交谈

邮件:itzsgw@126.com

工作时间:时刻准备着!

关注微信