蒙特卡洛算法及简单应用

基本概念

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

基本思想:

当所求问题的解是某个事件的概率,或者是某个随机变量的数学期望,或者是与概率,数学期望有关的量时,通过某种试验的方法,得出该事件发生的概率,或者该随机变量若干个具体观察值的算术平均值,通过它得到问题的解。
当随机变量的取值仅为1或0时,它的数学期望就是某个事件的概率。或者说,某种事件的概率也是随机变量(仅取值为1或0)的数学期望。 

简单通俗点说,蒙特卡洛算法就是通过大量的随机模拟,在随机的数据里找到符合条件的数据,计算他的比例,从而推出解的近似值,比如,我要计算一个矩形里的不规则图形的面积,我可以通过在矩形里生成大量随机点,然后计算随机点在不规则图形里的概率,乘以矩形面积得出不规则图形的面积;

蒙特卡洛应用范围很广,解决的问题也很多很深,本文只针对蒙特卡洛算法在纯数学里的一些基本的简单的应用,实现语言:matlab

优点:

1、能够比较逼真地描述具有随机性质的事物的特点及物理实验过程
2、受几何条件限制小
3、收敛速度与问题的维数无关
4、具有同时计算多个方案与多个未知量的能力
5、误差容易确定
6、程序结构简单,易于实现

缺点:

1收敛速度慢
2误差具有概率性
3在粒子输运问题中,计算结果与系统大小有关


   所以在使用蒙特卡罗方法时,要“扬长避短”,只对问题中难以用解析(或数值)方法处理的部分,使用蒙特卡罗方法计算,对那些能用解析(或数值)方法处理的部分,应当尽量使用解析方法


使用蒙特卡洛算法计算积分,积分大家应该都知道,其实他就是曲线与坐标轴的面积,可以用牛顿-莱布尼兹公式求解,基本初等函数我们会求他的积分,可是如果不是呢? 那我们可以直接从他的物理意义入手,用蒙特卡洛算法求面积得出积分的近似值;


在进行实例之前,先介绍下一个函数:引自:点击打开链接

unifrnd可以创建随机的连续均匀分布的数组。

1.R = unifrnd(A,B)

returns an array of random numbers chosen from the continuous uniform distribution on the interval from A to B. The size of R is the common size of A and B if both are arrays.  If either parameter is a scalar, the size of R is the size of the otherparameter.

这是matlab自带的帮助文件的解释,比较简略,以下补充本人的理解

  • 10
    点赞
  • 69
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值