【随机算法】蒙特▪卡罗方法初识

随机算法

随机算法分为两类:蒙特卡罗和拉斯维加斯

蒙特卡罗指的是算法的时间复杂度固定,然而结果有一定几率失败;

拉斯维加斯指的是算法一定成功,然而运行时间是概率的;

蒙特卡罗方法

蒙特·卡罗方法(Monte Carlo method),也称统计模拟方法,是二十世纪四十年代中期由于科学技术的发展和电子计算机的发明,而被提出的一种以概率统计理论为指导的一类非常重要的数值计算方法。是指使用随机数(或更常见的伪随机数)来解决很多计算问题的方法。与它对应的是确定性算法。蒙特·卡罗方法在金融工程学,宏观经济学,计算物理学(如粒子输运计算、量子热力学计算、空气动力学计算)等领域应用广泛。

本文只选取蒙特卡罗的一小部分应用例子,直观地感受下该方法。

π的计算

正方形内部有一个相切的圆,正方形边长为2r,圆半径为r,则它们的面积之比是π/4。

现在,在这个正方形内部,随机产生10000个点(即10000个坐标对 (x, y)),计算它们与中心点的距离,从而判断是否落在圆的内部。

如果这些点均匀分布,那么圆内的点应该占到所有点的 π/4,因此将这个比值乘以4,就是π的值。通过R语言随机模拟30000个点,π的估算值与真实值相差0.07%。

积分的计算

计算函数 y = x^2 在 [0, 1] 区间的积分,则可以这样:
在以(0,0)和(1,1)为对角线顶点的正方形内产生大量随机点,判断满足 y < x^2 的点的个数,则其所占比重就是所要求的积分值。
用Matlab模拟100万个随机点,结果为0.3328。

(THE END)

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值