欢迎来到天天文库
浏览记录
ID:44891032
大小:34.00 KB
页数:3页
时间:2019-11-01
《蒙特卡罗算法计算Pi》由会员上传分享,免费在线阅读,更多相关内容在行业资料-天天文库。
1、呵呵,刚好大二下学期学的,给你讲讲吧。根据我的理解简单的说就是以部分估计整体,利用随机数来解决问题的方法称为蒙特卡罗算法,记得课本上讲了个例题:在数值积分法中,我们利用求单位圆的1/4的面积来求得Pi/4从而得到Pi。单位圆的1/4面积是一个扇形,它是边长为1单位正方形的一部分(若能画图就好了!)只要能求出扇行面积S1在正方形面积S中占的比例K=S1/S就立即能得到S1,从而得到Pi的值.怎样求出扇形面积在正方形面积中占的比例K呢?一个办法是在正方形中随机投入很多点,使所投的点落在正方形中每一个位置的机会相等看其中有多少个点落在扇形内。将落在
2、扇形内的点数m与所投点的总数n的比m/n作为k的近似值。怎样实现这样的随机投点呢?任何一款计算机语言都有这种功能,能够产生在区间[0,1]内均匀分布的随机数,在mathematica中,产生区间[0,1]内均匀分布随机数的语句是Random[]产生两个这样的随机数x,y,则以(x,y)为坐标的点就是单位正方形内的一点P,它落在正方形内每个位置的机会均等,P落在扇形内的充要条件是x^2+y^2<=1.蒙特卡罗算法计算Pin=10000;p=();Do[m=0;Do[x=Random[];y=Random[];If[x^2+y^2<=1,m++]
3、,{k,1,n}];AppendTo[p,N[4m/n]],{t,1,10}];Print[p];Sum[p[[t]],{t,1,10}]/10注:以上语句的功能是:n=10000,每次投10000个点得出Pi的近似值存放到数组p中;一共做10次得到10个近似值,通过语句Print[p]将这10个近似值全部显示出来观察。最后再求这10个近似值的平均值,相当于随机投点100000次得到的近似值。以上是用Mathenatica编写的程序,方法就是这样,具体只能你自己体会了。蒙特卡罗算法以概率和统计理论方法为基础的一种计算方法。将所求解的问题同一定
4、的概率模型相联系,用电子计算机实现统计模拟或抽样,以获得问题的近似解。为象征性地表明这一方法的概率统计特征,故借用赌城蒙特卡罗命名。又称统计模拟法、随机抽样技术。由S.M.乌拉姆和J.冯·诺伊曼在20世纪40年代为研制核武器而首先提出。它的基本思想是,为了求解数学、物理、工程技术以及管理等方面的问题,首先建立一个概率模型或随机过程,使它们的参数,如概率分布或数学期望等问题的解;然后通过对模型或过程的观察或抽样试验来计算所求参数的统计特征,并用算术平均值作为所求解的近似值。对于随机性问题,有时还可以根据实际物理背景的概率法则,用电子计算机直接进
5、行抽样试验,从而求得问题的解答。蒙特卡罗方法有很强的适应性,问题的几何形状的复杂性对它的影响不大。该方法的收敛性是指概率意义下的收敛,因此问题维数的增加不会影响它的收敛速度,而且存贮单元也很省,这些是用该方法处理大型复杂问题时的优势。因此,随着电子计算机的发展和科学技术问题的日趋复杂,蒙特卡罗方法的应用也越来越广泛。它不仅较好地解决了多重积分计算、微分方程求解、积分方程求解、特征值计算和非线性方程组求解等高难度和复杂的数学计算问题,而且在统计物理、核物理、真空技术、系统科学、信息科学、公用事业、地质、医学,可靠性及计算机科学等广泛的领域都得到
6、成功的应用蒙特卡罗方法(Monte-Carlo方法),也称统计模拟方法,是二十世纪四十年代中期由于科学技术的发展和电子计算机的发明,而被提出的一种以概率统计理论为指导的一类非常重要的数值计算方法。是指使用随机数(或更常见的伪随机数)来解决很多计算问题的方法。与它对应的是确定性算法。蒙特卡罗方法在计算物理学以及相关的应用领域里中非常重要。它在粒子输运计算、量子热力学计算、空气动力学等方面应用非常广泛。蒙特卡罗方法的基本思想是:当所求解问题是某种随机事件出现的概率,或者是某个随机变量的期望值时,通过某种“实验”的方法,以这种事件出现的频率估计这一
7、随机事件的概率,或者得到这个随机变量的某些数字特征,并将其作为问题的解。在解决实际问题的时候应用蒙特·卡罗方法主要有两部分工作:用蒙特卡罗方法模拟某一过程时,需要产生各种概率分布的随机变量。用统计方法把模型的数字特征估计出来,从而得到实际问题的数值解。使用蒙特卡罗方法进行分子模拟计算是按照以下步骤进行的:使用随机数发生器产生一个随机的分子构型。对此分子构型的其中粒子坐标做无规则的改变,产生一个新的分子构型。计算新的分子构型的能量。比较新的分子构型于改变前的分子构型的能量变化,判断是否接受该构型。若新的分子构型能量低于原分子构型的能量,则接受新
8、的构型,使用这个构型重复再做下一次迭代。若新的分子构型能量高于原分子构型的能量,则计算玻尔兹曼常数,同时产生一个随机数。若这个随机数大于所计算出的玻尔兹曼因子,则放
此文档下载收益归作者所有