大学数学实验之蒙特卡洛方法
- 格式:docx
- 大小:138.11 KB
- 文档页数:9
Monte Carlo方法又称为随机抽样技巧或统计实验方法,属于计算数学的一个分支,它是在上世纪四十年代中期,为适应当时的曼哈顿计划需求而在美国Los Alamos实验室发展起来的,说白了就是美国为了造原子弹才逼出来的。
Monte Carlo方法与一般的计算方法有很大的区别,一般计算方法对解决多维或因素复杂的问题非常困难,而Monte Carlo方法对解决这类问题却比较简单,因此Monte Carlo方法自从它诞生之日起就得到了快速的发展,现以发展成为计算数学中一个不可缺少的重要组成部分。
Monte Carlo方法创始人主要是这四位:Stanislaw Marcin Ulam, Enrico Fermi, John von Neumann(学计算机的肯定都认识这个牛人吧)和Nicholas Metropolis。
Stanislaw Marcin Ulam是波兰裔美籍数学家,早年是研究拓扑的,后因参与曼哈顿工程,兴趣遂转向应用数学,他首先提出用Monte Carlo方法解决计算数学中的一些问题,然后又将其应用到解决链式反应的理论中去,可以说是MC方法的奠基人;Enrico Fermi是个物理大牛,理论和实验同时都是大牛,这在物理界很少见,在“物理大牛的八卦”那篇文章里提到这个人很多次,对于这么牛的人只能是英年早逝了;John von Neumann可以说是计算机界的牛顿吧,太牛了,结果和Fermi一样,被上帝嫉妒了;Nicholas Metropolis,希腊裔美籍数学家,物理学家,计算机科学家,这个人对Monte Carlo方法做的贡献相当大,正式由于他提出的一种什么算法,才使得Monte Carlo方法能够得到如此广泛的应用,这人现在还活着,与前几位牛人不同,Metropolis很专一,他一生主要的贡献就是Monte Carlo方法。
Monte Carol方法这个名字比较有意思,为什么叫Monte Carlo呢?这得从Monte Carlo 方法的历史讲起。
蒙特卡洛方法。
全文共四篇示例,供读者参考第一篇示例:蒙特卡洛方法是一种基于随机抽样的数值计算方法,最早由美国科学家冯·诺伊曼在20世纪40年代发明,用于解决各种难以通过解析方法解决的问题。
蒙特卡洛方法的核心思想是通过大量的随机抽样来近似计算目标函数的值,从而得到问题的解或近似解。
这种方法被广泛应用于统计学、金融学、天文学、计算物理学、生物学等领域,并在电脑模拟、随机生成等方面得到广泛应用。
蒙特卡洛方法的基本思想是通过大量的随机抽样来近似计算一个确定性问题的解。
其核心思想是在问题的解域上进行均匀的随机采样,并将采样得到的结果代入到目标函数中进行计算,最终得到问题的解或近似解。
蒙特卡洛方法的优势在于可以通过增加抽样量来提高计算精度,而且对于复杂的多维问题也有很好的适应性。
在实际应用中,蒙特卡洛方法通常可以分为三个步骤:第一步是生成随机数,也就是对解域进行随机抽样;第二步是将随机抽样得到的结果代入到目标函数中进行计算;第三步是根据计算得到的结果进行分析和判断。
通过不断迭代这三个步骤,可以逐步逼近目标函数的真实值,得到问题的解或近似解。
蒙特卡洛方法有很多具体的应用,比如在金融领域中,可以通过模拟价格的波动来计算期权的风险价值;在天文学中,可以通过随机模拟宇宙生成的演化过程;在生物学中,可以通过模拟蛋白质的折叠过程来研究蛋白质的结构与功能等。
蒙特卡洛方法是一种十分强大的数值计算方法,在解决各种难题和模拟复杂系统中具有很好的效果。
蒙特卡洛方法的实现有很多种形式,比如蒙特卡洛积分、蒙特卡洛模拟、蒙特卡洛蒙特卡罗链等。
这些方法都是以随机抽样为基础,通过不同的算法与技巧来实现对问题的近似计算。
在实际应用中,需要根据具体的问题特点和精度要求选择适当的方法,并对随机抽样的次数进行合理的选择,以达到计算精度与效率的平衡。
蒙特卡洛方法是一种十分强大与广泛应用的数值计算方法,通过大量的随机抽样可以解决各种难题与模拟复杂系统过程。
数学建模——蒙特卡洛简介-CAL-FENGHAI-(2020YEAR-YICAI)_JINGBIAN数学建模——蒙特卡洛方法(案例)一、概述蒙特卡罗方法是一种计算方法。
原理是通过大量随机样本,去了解一个系统,进而得到所要计算的值。
它非常强大和灵活,又相当简单易懂,很容易实现。
对于许多问题来说,它往往是最简单的计算方法,有时甚至是唯一可行的方法。
它诞生于上个世纪40年代美国的"曼哈顿计划",名字来源于赌城蒙特卡罗,象征概率。
二、π的计算第一个例子是,如何用蒙特卡罗方法计算圆周率π。
正方形内部有一个相切的圆,它们的面积之比是π/4。
现在,在这个正方形内部,随机产生10000个点(即10000个坐标对 (x, y)),计算它们与中心点的距离,从而判断是否落在圆的内部。
如果这些点均匀分布,那么圆内的点应该占到所有点的π/4,因此将这个比值乘以4,就是π的值。
通过R语言脚本随机模拟30000个点,π的估算值与真实值相差0.07%。
三、积分的计算上面的方法加以推广,就可以计算任意一个积分的值。
比如,计算函数 y = x2 在 [0, 1] 区间的积分,就是求出下图红色部分的面积。
这个函数在 (1,1) 点的取值为1,所以整个红色区域在一个面积为1的正方形里面。
在该正方形内部,产生大量随机点,可以计算出有多少点落在红色区域(判断条件 y < x2)。
这个比重就是所要求的积分值。
用Matlab模拟100万个随机点,结果为0.3328。
四、交通堵塞蒙特卡罗方法不仅可以用于计算,还可以用于模拟系统内部的随机运动。
下面的例子模拟单车道的交通堵塞。
根据 Nagel-Schreckenberg 模型,车辆的运动满足以下规则。
▪当前速度是 v 。
▪如果前面没车,它在下一秒的速度会提高到 v + 1 ,直到达到规定的最高限速。
▪如果前面有车,距离为d,且 d < v,那么它在下一秒的速度会降低到 d -1 。
蒙特卡罗法在煤层气目标区储量计算中的运用一、蒙特卡罗方法简介蒙特卡罗法,或称计算机模拟方法,是一种基于“随机数”的计算方法。
这一方法源于美国在第二次世界大战中研制原子弹的“曼哈顿计划”。
蒙特卡罗方法在金融工程学,宏观经济学,计算物理学等领域运用广泛。
蒙特卡洛法以随机变量为对象,以概率论为理论基础,提供不同可靠程度的储量数字。
采用蒙特卡洛法计算煤层气目标区储量,可以提供一个合理的储量范围值,有利于提高优选排序工作的准确性,进而保证勘探开发规划和投资决策的合理性。
二、蒙特卡洛法计算煤层气目标区储量的原理和流程。
1、蒙特卡洛法计算煤层气目标区储量的原理。
按照含气量法,计算煤层气目标区储量的公式如下:G=A×H×D×C式中 A——有效含气煤储层面积,k㎡H——平均有效煤储层厚度,m;D——煤储层容重;t/m³;C——煤储层含气量,m³/t;G——煤层气目标区储量,810m³。
应用蒙特卡洛法的原理在于将A、H、D、C等参数看作随机变量,在不同的概率分布下对参数进行取值,再通过含气量法计算出一个G(随机数),当进行很多次的参数取值后可以获得1组G,最后据此确定G的概率分布。
2、蒙特卡洛法计算煤层气目标区储量的流程。
蒙特卡洛法计算煤层气目标区储量的流程设计如图1所示,包括:(1)确定这4个参数各自的概率分布,如直线分布、正态分布等;(2)独立的随机抽取各个参数的数值,并使所抽取的数值符合其概率分布;(3)按照含气量法计算第一次模拟的煤层气目标区储量;(4)确定模拟次数n(一般为1 000次),就可以获得较大样本来模拟煤层气目标区储量的概率分布规律。
三、参数选取办法一般情况下,在进行煤层气目标区优选排序时,并非所有参数都被当作随机变量。
有效含气煤储层面积A 在进行优选排序前已经确定;煤储层容重D 在取得少量实际资料后,确定的数值变化不大,因此也可以视为定值。
蒙特卡洛方法蒙特卡洛方法是一种基于概率和统计的数值计算方法,常用于解决复杂的数学和物理问题。
它的原理是通过随机抽样来估计数学模型中的未知量,从而得到近似解。
该方法非常灵活,可以应用于各种领域,例如金融学、物理学、计算机科学等。
蒙特卡洛方法的命名源于摩纳哥的蒙特卡洛赌场,因为这种方法采用了赌场中使用的随机抽样技术。
20世纪40年代,由于原子弹的研制需求,蒙特卡洛方法开始应用于物理学领域。
当时,美国科学家在洛斯阿拉莫斯国家实验室利用蒙特卡洛方法模拟了中子输运过程,为原子弹的研发提供了重要支持。
蒙特卡洛方法最简单的例子是估算圆周率π的值。
我们可以在一个正方形内随机投放一些点,然后统计落入圆内的点的比例。
根据概率理论,圆的面积与正方形的面积之比等于落入圆内的点的数量与总点数之比。
通过这种方法,可以得到一个逼近π的值,随着投放点数的增加,逼近结果将越来越精确。
除了估算圆周率,蒙特卡洛方法还可以用于解决更为复杂的问题。
例如,在金融学中,蒙特卡洛方法常用于计算期权的价格。
期权是一种金融衍生品,它的价格与未来股票价格的波动性有关。
利用蒙特卡洛方法,可以通过随机模拟股票价格的变化来估计期权的价值。
在物理学中,蒙特卡洛方法可以用于模拟复杂的粒子系统。
例如,科学家可以通过模拟蒙特卡洛抽样来研究原子、分子的运动方式,从而揭示它们的行为规律。
这对于理解材料的性质、开发新的药物等具有重要意义。
在计算机科学领域,蒙特卡洛方法也有着广泛的应用。
例如,在人工智能中,蒙特卡洛树搜索算法常用于决策过程的优化。
通过模拟随机抽样,可以得到各种决策结果的估计值,并选择给出最佳决策的路径。
尽管蒙特卡洛方法有着广泛的应用,但它并不是解决所有问题的万能方法。
在实际应用中,蒙特卡洛方法往往需要耗费大量的计算资源和时间。
此外,它也依赖于随机抽样过程,因此可能会引入一定的误差。
因此,在使用蒙特卡洛方法时,需要在效率和精确性之间做出权衡。
总之,蒙特卡洛方法是一种基于概率和统计的数值计算方法,通过随机抽样来估计数学模型中的未知量。
蒙特卡洛法的基本原理蒙特卡洛法(Monte Carlo method)是一种基于随机抽样的数值计算方法,用于解决难以通过解析方法或传统数学模型求解的问题。
它在物理学、化学、工程学、计算机科学、金融学、生物学等领域都有广泛应用。
本文将介绍蒙特卡洛法的基本原理,包括随机数生成、统计抽样、蒙特卡洛积分、随机漫步等方面。
一、随机数生成随机数是蒙特卡洛法中的基本元素,其质量直接影响着计算结果的准确性。
随机数的生成必须具有一定的随机性和均匀性。
常见的随机数生成方法有:线性同余法、拉斯维加斯法、梅森旋转算法、反序列化等。
梅森旋转算法是一种广泛使用的准随机数生成方法,其随机数序列的周期性长、随机性好,可以满足大多数应用的需要。
二、统计抽样蒙特卡洛法利用抽样的思想,通过对输入参数进行随机取样,来模拟整个系统的行为,并推断出某个问题的答案。
统计抽样是蒙特卡洛方法中最核心的部分,是通过对概率分布进行样本抽取来模拟随机事件的发生,从而得到数值计算的结果。
常用的统计抽样方法有:均匀分布抽样、正态分布抽样、指数分布抽样、泊松分布抽样等。
通过对这些概率分布进行抽样,可以在大量随机取样后得到一个概率分布近似于输入分布的“抽样分布”,进而求出所需的数值计算结果。
三、蒙特卡洛积分蒙特卡洛积分是蒙特卡洛法的重要应用之一。
它利用统计抽样的思想,通过对输入函数进行随机抽样,计算其随机取样后的平均值,来估算积分的值。
蒙特卡洛积分的计算精度与随机取样的数量、抽样分布的质量等因素有关。
蒙特卡洛积分的计算公式如下:$I=\frac{1}{N}\sum_{i=1}^{N}f(X_{i})\frac{V}{p(X_{i})}$$N$为随机取样的数量,$f(X_{i})$为输入函数在点$X_{i}$的取值,$V$为积分区域的体积,$p(X_{i})$为在点$X_{i}$出现的抽样分布的概率密度函数。
通过大量的样本拟合,可以估算出$I$的值接近于真实积分的值。
蒙特卡罗算法及简单应用蒙特卡罗算法是一种基于统计的计算方法,主要用于估计数学、物理和工程领域中难以直接求解的问题。
它通过随机采样和统计分析的方法,可以近似地得到问题的解或概率分布。
蒙特卡罗算法的核心思想是利用随机性来代替确定性,通过重复进行大量的随机实验,从而得到问题的近似解。
蒙特卡罗算法的主要步骤如下:1. 定义问题:将问题转化为数学模型,并明确待求解的量。
2. 随机采样:根据问题的特点,选择合适的随机采样方法,生成一系列的随机样本。
3. 计算估计值:根据随机样本计算待求解量的统计量,如均值、方差等。
4. 得到结果:根据统计量得出问题的近似解或概率分布,并根据需求进行分析和应用。
蒙特卡罗算法的简单应用非常广泛,下面以两个例子来说明。
1. 计算圆周率π的近似值:假设有一个边长为2的正方形,并在其中画一个半径为1的圆,那么这个圆的面积就是π/4。
现在我们需要通过蒙特卡罗算法估计圆周率的近似值。
步骤如下:1. 在正方形内随机生成大量的点。
2. 统计落在圆内的点的个数。
3. 通过统计量计算圆的面积,进而估计π的值。
这里的关键在于随机点的生成和统计量的计算,通过重复进行大量的实验,我们可以得到π的近似值。
2. 金融风险评估:蒙特卡罗算法可以用于金融领域中的风险评估。
以股票投资为例,我们希望知道在不同的投资策略下,投资组合的收益和风险的分布情况。
假设我们有若干个股票的历史数据,包括每日的收益率和波动率。
利用蒙特卡罗算法可以模拟出若干个未来的可能情景,然后根据投资策略计算每个情景下的投资组合收益和波动率,最终得到收益和风险的概率分布。
通过分析这些分布,投资者可以评估不同策略的风险和回报情况,制定合理的投资决策。
蒙特卡罗算法不仅可以应用于上述两个简单问题,还可以应用于复杂的问题,如模拟核反应堆的裂变过程、计算复杂的多维积分和求解偏微分方程等。
蒙特卡罗算法的优点是适用于求解各种类型的问题,无论是确定性问题还是概率性问题,只要问题可以建模为数学模型,并且可以通过随机采样进行估计,就可以使用蒙特卡罗算法进行求解。
蒙特卡洛方法蒙特卡洛方法是一种基于随机抽样的计算方法,可以用于解决众多复杂的数学问题,涉及到概率统计、数值计算、优化问题等多个领域。
蒙特卡洛方法的核心思想是通过随机抽样来近似计算问题的解,其优点在于适用范围广,对于复杂的问题能够给出较为准确的结果。
本文将介绍蒙特卡洛方法的基本原理、应用领域以及优缺点。
蒙特卡洛方法的基本原理是利用随机抽样来估计问题的解。
通过生成服从特定分布的随机数,然后根据这些随机数来近似计算问题的解。
蒙特卡洛方法的核心思想是“用随机数来代替确定性数”,通过大量的随机抽样来逼近问题的解,从而得到较为准确的结果。
蒙特卡洛方法的随机性使得其能够处理复杂的问题,尤其在概率统计领域和数值计算领域有着广泛的应用。
蒙特卡洛方法的应用领域非常广泛,其中包括但不限于,概率统计、金融工程、物理学、生物学、计算机图形学等。
在概率统计领域,蒙特卡洛方法可以用来估计各种概率分布的参数,进行模拟抽样,计算统计量等。
在金融工程领域,蒙特卡洛方法可以用来进行期权定价、风险管理、投资组合优化等。
在物理学领域,蒙特卡洛方法可以用来模拟粒子的行为、计算物理系统的性质等。
在生物学领域,蒙特卡洛方法可以用来模拟生物分子的构象、预测蛋白质的结构等。
在计算机图形学领域,蒙特卡洛方法可以用来进行光线追踪、图像渲染等。
蒙特卡洛方法的优点在于适用范围广,能够处理各种复杂的问题,且能够给出较为准确的结果。
蒙特卡洛方法的缺点在于计算量大,需要进行大量的随机抽样才能得到较为准确的结果,且随机抽样的过程可能会引入误差。
因此,在实际应用中需要权衡计算成本和精度要求,选择合适的抽样方法和样本量。
总之,蒙特卡洛方法是一种重要的计算方法,具有广泛的应用价值。
通过随机抽样来近似计算问题的解,能够处理各种复杂的问题,且能够给出较为准确的结果。
在实际应用中,需要根据具体问题的特点和要求来选择合适的抽样方法和样本量,以平衡计算成本和精度要求。
希望本文能够帮助读者更好地理解蒙特卡洛方法的基本原理、应用领域以及优缺点,为实际问题的解决提供一些参考和启发。
1、说明蒙特卡洛实验技术的方法。
蒙特卡洛实验技术是一种通过随机模拟方法进行数值计算和分析的方法。
它得名于蒙特卡洛赌场,因为这种方法使用了随机数生成器来模拟尽可能多的随机事件。
蒙特卡洛实验技术的基本思想是通过生成大量的随机样本,通过对样本进行统计分析得到所关注问题的概率、期望值和其他统计指标。
具体的方法如下:
1. 定义问题:首先需要明确要分析的问题,包括目标、约束和变量。
2. 建立模型:根据问题的特点和复杂程度,建立适当的数学模型,将问题转化为可用随机抽样方法解决的问题。
3. 生成随机样本:根据模型,使用随机数生成器生成样本数据,样本数据的生成应具有代表性,并且要满足所设定的分布特性。
4. 进行模拟实验:利用生成的样本数据,进行模拟实验,模拟实验可以是简单的统计分析,也可以是复杂的物理、化学、生物等过程的模拟。
5. 统计分析:根据问题的要求,对模拟实验的结果进行统计分析,可以计算概率、期望值、方差等指标,也可以绘制概率分布图或散点图等。
6. 得出结论:根据统计分析的结果,得出问题的结论,并对结论进行解释和说明。
蒙特卡洛实验技术在金融、工程、物理、化学等领域都有广泛应用,它的优点是可以对复杂问题进行较为准确的数值计算和分析,但也存在着计算量大、收敛速度慢等问题。
蒙特卡洛试验检验算法蒙特卡洛试验是一种基于随机抽样的数值计算方法,广泛应用于科学研究、金融风险评估、工程设计等领域。
本文将介绍蒙特卡洛试验的原理、应用和优缺点。
一、蒙特卡洛试验的原理蒙特卡洛试验原理基于概率统计的思想,通过随机抽样和统计分析的方法,对未知或复杂问题进行数值计算和模拟。
其基本步骤如下:1. 定义问题:明确问题的数学模型和待求解的目标。
2. 设定参数:确定问题中的各个参数和变量,并为它们设定合适的取值范围。
3. 随机抽样:根据设定的参数范围,利用随机数发生器生成一组符合概率分布的随机数。
4. 计算模拟:使用生成的随机数代入数学模型,进行数值计算和模拟,得出结果。
5. 统计分析:对多次试验的结果进行统计分析,得出问题的近似解或概率分布。
二、蒙特卡洛试验的应用蒙特卡洛试验在各个领域有着广泛的应用,以下是几个典型的应用案例:1. 金融风险评估:蒙特卡洛试验可以用于评估金融市场中的风险。
通过随机模拟资产价格的变动情况,可以计算出投资组合的价值在不同市场情况下的分布,进而评估投资组合的风险水平。
2. 工程设计:在工程设计中,蒙特卡洛试验可以用于评估设计方案的可靠性。
通过模拟不同参数的随机变化,可以分析设计方案在不同情况下的性能表现,并评估其可靠性和安全性。
3. 科学研究:蒙特卡洛试验在科学研究中常用于模拟实验。
例如,在天体物理学中,可以使用蒙特卡洛试验模拟宇宙的演化过程;在生物医学领域,可以使用蒙特卡洛试验模拟药物的作用机制。
4. 优化问题:蒙特卡洛试验也可以用于解决优化问题。
通过多次随机抽样和计算模拟,可以搜索解空间中的最优解或接近最优解的解。
三、蒙特卡洛试验的优缺点蒙特卡洛试验作为一种数值计算方法,具有以下优点:1. 灵活性:蒙特卡洛试验适用于多种复杂问题,不受问题形式和参数分布的限制。
2. 可靠性:通过增加试验次数,可以提高结果的准确性和可靠性。
3. 直观性:蒙特卡洛试验的结果通常以概率分布的形式呈现,直观易懂。
《数学实验》报告班级:序号:姓名:1.问题描述I、用蒙特卡罗方法计算以下函数在区间上的积分,并改变随机点数目观察对结果的影响。
(1)y=1/(1+x), 0=<x=<1;(2)y= (exp(3*x))*sin(2*x), 0=<x=<2 ;(3)y=(1+x^2)^0.5, 0=<x=<2;(4)y=(1/(2*pi)^0.5)*exp(-x(i)^2/2), 0=<x=<2;(5)y=exp(x(i)/2)*(sin(x(i)))^2, 0=<x=<2*pi;(6)f(x,y)=exp(-x^2-y^2) 0=<x=<pi, 0=<y=<sin(x);II、用蒙特卡罗法求解全局最优化及约束问题并通过图形做出评论,求下列函数的最大值。
(1) f(x)=(1-x.^2).*sin(3*x), -2*pi=<x=<2*pi;(2) maxf(x)=x1*x2*x3,s.t.:-x1+2x2+2x3>=0,x1+2x2+2x3<=72,10<=x2<=20,x1-x2=10;(3) f(x,y)=(X.^2+2*(Y.^2)+X.*Y).*exp(-X.^2-Y.^2),abs(x)<1.5,abs(y)<1.5;2.问题分析与实验过程I、(1)使用均值估计法程序:function p=shell1(a,b,n)z=0;x=unifrnd(a,b,1,n);for i=1:nu=(x(i)+1)^(-1);z=z+u;endp=(b-a)*z/n;运行结果:p=shell1(0,1,1000)p =0.6975>> p=shell1(0,1,10000)p =0.6922>> p=shell1(0,1,100)p =0.7001>> p=shell1(0,1,500)p =0.6890结果分析:改变了四次随机点数,结果都趋近于0.69,说明积分值约等于0.69,但是点数越多,值越接近。
I、(2)使用均值估计法程序:function p=shell2(a,b,n)z=0;x=unifrnd(a,b,1,n);for i=1:nu=(exp(3*x(i)))*sin(2*x(i));z=z+u;endp=(b-a)*z/n;运行结果:>> p=shell2(0,2,1000)p =-24.4911>> p=shell2(0,2,100)p =-43.8720>> p=shell2(0,2,10000)p =-30.8699>> p=shell2(0,2,500)p =-23.2955>> p=shell2(0,2,100000)p =-30.0058结果分析:改变了5次随机点数,结果变化较大,但是点数越多,值越接近真实积分值。
所以积分值近似于-30。
I、(3)使用均值估计法程序:function p=shell3(a,b,n)z=0;x=unifrnd(a,b,1,n);for i=1:nu=(1+x(i)^2)^0.5;z=z+u;endp=(b-a)*z/n;运行结果:>> p=shell3(0,2,100)p =2.9293>> p=shell3(0,2,1000)p =2.9516>> p=shell3(0,2,10000)p =2.9512>> p=shell3(0,2,100000)p =2.9600结果分析:改变了四次随机点数,结果都趋近于2.95,说明积分值约等于2.95,而且点数越多,值越接近真实积分值。
I、(4)使用均值估计法程序:function p=shell4(a,b,n)z=0;x=unifrnd(a,b,1,n);for i=1:nu=(1/(2*pi)^0.5)*exp(-x(i)^2/2);z=z+u;endp=(b-a)*z/n;运行结果:>> p=shell4(0,2,100000)p =0.4783>> p=shell4(0,2,10000)p =0.4777>> p=shell4(0,2,1000)p =0.4765>> p=shell4(0,2,100)p =0.4432结果分析:改变了四次随机点数,结果都趋近于0.47,说明积分值约等于0.47,而且点数越多,值越接近真实积分值。
I、(5)使用均值估计法程序:function p=shell5(a,b,n)z=0;x=unifrnd(a,b,1,n);for i=1:nu=exp(x(i)/2)*(sin(x(i)))^2;z=z+u;endp=(b-a)*z/n;运行结果:>> p=shell5(0,2*pi,100)p =22.0140>> p=shell5(0,2*pi,1000)p =20.2718>> p=shell5(0,2*pi,10000)p =20.9394>> p=shell5(0,2*pi,100000)p =20.7968结果分析:改变了四次随机点数,结果都趋近于20.8,说明积分值约等于20.8,而且点数越多,值越接近真实积分值。
I、(6)使用均值估计法程序:function p=shell6(a1,b1,a2,b2,n)z=0;x=unifrnd(a1,b1,1,n);y=unifrnd(a2,b2,1,n);for i=1:nif y(i)<=sin(x(i));u=exp(-x(i)^2-y(i)^2);z=z+u;endendp=(b1-a1)*(b2-a2)*z/n;运行结果:>> p=shell6(0,pi,0,1,100)p =0.4368>> p=shell6(0,pi,0,1,1000)p =0.3378>> p=shell6(0,pi,0,1,10000)p =0.3674>> p=shell6(0,pi,0,1,100000)p =0.3610结果分析:改变了四次随机点数,结果都趋近于0.36,说明积分值约等于0.36,而且点数越多,值越接近真实积分值。
II、(1)使用蒙特卡罗法分析:将x在它被允许的范围内生成多个随机的数值,利用max函数可以近似地求出结果。
然后做出图像,进行结果的比较。
程序:function f81(n)x=unifrnd(-2*pi,2*pi,1,n); y=(1-x.^2).*sin(3*x);max(y)x=-2*pi:0.001:2*pi;y=(1-x.^2).*sin(3*x);plot(x,y)xlabel('x');ylabel('y');运行结果:>> f81(1000)ans =32.3293>> f81(10000)ans =32.4002>> f81(100000)ans =32.4006做出函数的图像,并且标出最高点的值结果分析:可以看到,蒙特卡罗法求出的最大值接近于32.4,而从图中可以看出最大值是32.33,求出的结果比较符合。
II、(2)使用均值估计法分析:由于x1=x2+10,所以可以消元,使其变为两个自变量x2和x3。
x2,x3在它们被允许的范围内生成多个随机的数值,利用max函数可以近似地求出结果。
然后做出图像,进行结果的比较。
程序:function f82(n)x2=unifrnd(10,20,1,n);x1=10+x2;x3=unifrnd(-10,20,1,n);for i=1:nif -x1(i)+2*x2(i)+2*x3(i)>=0if x1(i)+2*x2(i)+2*x3(i)<=72y(i)=(x1(i))*(x2(i))*(x3(i));endendendmax(y)x2=10:0.1:20;x3=-5:21/100:16;[X,Y]=meshgrid(x2,x3);err1 = X+2*Y<10;err2 = 3*X+2*Y>62;X(err1) = nan;Y(err2) = nan;Z=X.*Y.*(X+10);surf(X,Y,Z)运行结果:>> f82(1000)ans =3.3889e+03>> f82(10000)ans =3.4357e+03>> f82(100)ans =3.3726e+03>> f82(100000)ans =3.4441e+03结果分析:可以看到,蒙特卡罗法求出的最大值接近于3400,而从图中可以看出最大值是3437,求出的结果比较符合。
II、(3)使用蒙特卡罗法分析:x,y在它们被允许的范围内生成多个随机的数值,利用max 函数可以近似地求出结果。
然后做出图像,进行结果的比较。
程序:function f83(n)x=unifrnd(-1.5,1.5,1,n);y=unifrnd(-1.5,1.5,1,n);z=(x.^2+2*(y.^2)+x.*y).*exp(-x.^2-y.^2);max(z)x=-1.5:0.1:1.5;y=-1.5:0.1:1.5;[X,Y]=meshgrid(x,y);Z=(X.^2+2*(Y.^2)+X.*Y).*exp(-X.^2-Y.^2);surf(X,Y,Z)运行结果:>> f83(1000)ans =0.8105>> f83(10000)ans =0.8117作出函数图,并且标出最大值结果分析:可以看到,蒙特卡罗法求出的最大值接近于0.81,而从图中可以看出最大值是0.8025,求出的结果比较符合。
3.实验总结和实验感悟这次蒙特卡洛法令我印象比较深刻,特别是可以利用多次模拟实验的方法来求圆周率,这是我以前没有接触过的。
蒙特卡洛法可以理解成一种思想,就是多次随机的实验来求近似值。
不过这种方法比较适合电脑模拟,模拟次数足够高才可以保证误差不过大,而且某些可以直接求解的问题并不需要用蒙特卡罗法来做。