数模算法 — 蒙特卡罗算法及Matlab案例

本文深入探讨蒙特卡罗算法及其在计算问题中的应用,包括算法定义、特点及实例,如通过随机抽样求解圆周率和图形面积。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

本文为博主编写文章,未经博主允许转载,转载请注明出处:https://blog.youkuaiyun.com/weixin_42604241/article/details/97382158

蒙特卡罗算法(方法)定义

蒙特卡罗方法又称统计模拟法、随机抽样技术,是一种概率算法(随机模拟方法),以概率和统计理论方法为基础的一种计算方法,是使用随机数(或更常见的伪随机数)来解决很多计算问题的方法。将所求解的问题同一定的概率模型相联系,用电子计算机实现统计模拟或抽样,以获得问题的近似解。为象征性地表明这一方法的概率统计特征,故借用赌城蒙特卡罗命名。

该方法在金融工程学,宏观经济学,计算物理学(如粒子输运计算、量子热力学计算、空气动力学计算)等领域应用广泛。

 蒙特卡罗算法:采样越多,越近似最优解;
 拉斯维加斯算法:采样越多,越有机会找到最优解。

举个例子,假如筐里有100个苹果,让我每次闭眼拿1个,挑出最大的。于是我随机拿1个,再随机拿1个跟它比,留下大的,再随机拿1个……我每拿一次,留下的苹果都至少不比上次的小。拿的次数越多,挑出的苹果就越大,但我除非拿100次,否则无法肯定挑出了最大的。这个挑苹果的算法,就属于蒙特卡罗算法——尽量找好的,但不保证是最好的。
而拉斯维加斯算法,则是另一种情况。假如有一把锁,给我100把钥匙,只有1把是对的。于是我每次随机拿1把钥匙去试,打不开就再换1把。我试的次数越多,打开(最优解)的机会就越大,但在打开之前,那些错的钥匙都是没有用的。这个试钥匙的算法,就是拉斯维加斯算法——尽量找最好的,但不保证能找到。
所以你看,这两个词并不深奥,它只是概括了随机算法的特性,算法本身可能复杂,也可能简单。这两个词本身是两座著名赌城,因为赌博中体现了许多随机算法,所以借过来命名。这两类随机算法之间的选择,往往受到问题的局限。如果问题要求在有限采样内,必须给出一个解,但不要求是最优解,那就要用蒙特卡罗算法。反之,如果问题要求必须给出最优解,但对采样没有限制,那就要用拉斯维加斯算法。

如下图,例如我们想要计算二维空间的阴影图形的面积,就可以使用蒙特卡罗算法。
我们在x属于[0,2],y属于[0,4]之间,任取1000个随机点,结果如下:

我们计算落在图中阴影图形中的点(其y<=x^2)的个数与1000做比,这个值就近似认为是图形与[0,2]和[0,4]围成矩形的面积的比,矩形的面积为8是已知,可以用刚才算的比值乘以8就得到图中图形的近似解。
蒙特卡罗算法思想就是上述例子使用的想法,上述问题可以直接通过积分求得,但一些现实问题,比如我们玩过

评论 7
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值