大学数学实验之蒙特卡洛方法
- 格式:doc
- 大小:136.70 KB
- 文档页数:9
蒙特卡洛方法蒙特卡洛方法是一种基于概率和统计的数值计算方法,常用于解决复杂的数学和物理问题。
它的原理是通过随机抽样来估计数学模型中的未知量,从而得到近似解。
该方法非常灵活,可以应用于各种领域,例如金融学、物理学、计算机科学等。
蒙特卡洛方法的命名源于摩纳哥的蒙特卡洛赌场,因为这种方法采用了赌场中使用的随机抽样技术。
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$的值接近于真实积分的值。
蒙特卡洛方法蒙特卡洛方法是一种基于随机抽样的数值计算方法,广泛应用于科学、工程、金融等领域。
它的核心思想是通过随机抽样来近似求解问题,是一种统计模拟方法。
蒙特卡洛方法的应用领域非常广泛,包括但不限于求解数学积分、模拟随机系统、优化问题、风险评估等。
蒙特卡洛方法的基本原理是利用随机数来模拟实际问题,通过大量的随机抽样来近似计算问题的解。
其核心思想是利用随机性来解决确定性问题,通过大量的随机抽样来逼近问题的解。
蒙特卡洛方法的优势在于能够处理复杂的多维积分、高维优化等问题,同时能够提供结果的置信区间,对于随机性较强的问题具有很好的适用性。
在实际应用中,蒙特卡洛方法通常包括以下几个步骤,首先,确定需要求解的问题,建立数学模型;其次,生成符合特定分布的随机数,进行大量的随机抽样;然后,利用抽样结果进行数值计算,得到问题的近似解;最后,对结果进行分析和验证,评估计算的准确性和置信度。
蒙特卡洛方法的应用非常广泛,其中一个典型的应用是求解数学积分。
对于复杂的多维积分,传统的数值积分方法往往难以求解,而蒙特卡洛方法可以通过随机抽样来逼近积分值,具有很好的适用性。
此外,蒙特卡洛方法还可以用于模拟随机系统,如粒子物理实验、金融市场波动等,通过大量的随机抽样来模拟系统的行为,得到系统的统计特性。
除此之外,蒙特卡洛方法还可以用于优化问题的求解。
对于复杂的高维优化问题,传统的优化算法往往难以找到全局最优解,而蒙特卡洛方法可以通过随机抽样来搜索解空间,有可能得到更好的优化结果。
此外,蒙特卡洛方法还可以用于风险评估,通过大量的随机模拟来评估风险的大小和分布,对于金融、保险等领域具有重要意义。
总的来说,蒙特卡洛方法是一种非常重要的数值计算方法,具有广泛的应用前景。
它的核心思想是利用随机抽样来近似求解问题,能够处理复杂的多维积分、高维优化等问题,同时能够提供结果的置信区间,对于随机性较强的问题具有很好的适用性。
在未来的发展中,蒙特卡洛方法将继续发挥重要作用,为科学、工程、金融等领域的问题求解提供强大的工具支持。
蒙特卡罗方法讲解
蒙特卡洛方法(Monte Carlo Method)又称几何表面积法,是用来解决统计及数值分析问题的一种算法。
蒙特卡洛方法利用了随机数,其特点是算法简单,可以解决复杂的统计问题,并得到较好的结果。
蒙特卡洛方法可以被认为是统计学中一种具体的模拟技术,可以通过模拟仿真的方式来估算一个问题的可能解。
它首先利用穷举或随机的方法获得随机变量的统计数据,然后针对该统计数据利用数理统计学的方法获得解决问题的推断性结果,例如积分、概率等。
蒙特卡洛方法在计算机科学中的应用非常广泛,可以用来模拟统计物理、金融工程、统计数据反演、运行时参数优化以及系统可靠性计算等问题,因此广泛被用于许多不同的领域。
蒙特卡洛方法的基本思想是:将一个难以解决的复杂问题,通过把它分解成多个简单的子问题,再用数学方法求解这些子问题,最后综合这些简单问题的结果得到整个问题的解。
蒙特卡洛方法的这种思路,也称作“积分”,即将一个复杂的问题,分解成若干小问题,求解它们的结果,再综合起来,得到整体的结果。
蒙特卡洛方法以蒙特卡罗游戏为基础,用统计学的方法对游戏进行建模。
蒙特卡洛方法蒙特卡洛方法是一种基于随机抽样的计算方法,可以用于解决众多复杂的数学问题,涉及到概率统计、数值计算、优化问题等多个领域。
蒙特卡洛方法的核心思想是通过随机抽样来近似计算问题的解,其优点在于适用范围广,对于复杂的问题能够给出较为准确的结果。
本文将介绍蒙特卡洛方法的基本原理、应用领域以及优缺点。
蒙特卡洛方法的基本原理是利用随机抽样来估计问题的解。
通过生成服从特定分布的随机数,然后根据这些随机数来近似计算问题的解。
蒙特卡洛方法的核心思想是“用随机数来代替确定性数”,通过大量的随机抽样来逼近问题的解,从而得到较为准确的结果。
蒙特卡洛方法的随机性使得其能够处理复杂的问题,尤其在概率统计领域和数值计算领域有着广泛的应用。
蒙特卡洛方法的应用领域非常广泛,其中包括但不限于,概率统计、金融工程、物理学、生物学、计算机图形学等。
在概率统计领域,蒙特卡洛方法可以用来估计各种概率分布的参数,进行模拟抽样,计算统计量等。
在金融工程领域,蒙特卡洛方法可以用来进行期权定价、风险管理、投资组合优化等。
在物理学领域,蒙特卡洛方法可以用来模拟粒子的行为、计算物理系统的性质等。
在生物学领域,蒙特卡洛方法可以用来模拟生物分子的构象、预测蛋白质的结构等。
在计算机图形学领域,蒙特卡洛方法可以用来进行光线追踪、图像渲染等。
蒙特卡洛方法的优点在于适用范围广,能够处理各种复杂的问题,且能够给出较为准确的结果。
蒙特卡洛方法的缺点在于计算量大,需要进行大量的随机抽样才能得到较为准确的结果,且随机抽样的过程可能会引入误差。
因此,在实际应用中需要权衡计算成本和精度要求,选择合适的抽样方法和样本量。
总之,蒙特卡洛方法是一种重要的计算方法,具有广泛的应用价值。
通过随机抽样来近似计算问题的解,能够处理各种复杂的问题,且能够给出较为准确的结果。
在实际应用中,需要根据具体问题的特点和要求来选择合适的抽样方法和样本量,以平衡计算成本和精度要求。
希望本文能够帮助读者更好地理解蒙特卡洛方法的基本原理、应用领域以及优缺点,为实际问题的解决提供一些参考和启发。
蒙特卡洛方法蒙特卡洛方法是一种通过随机抽样来解决问题的数值计算方法,它被广泛应用于金融、物理、生物、工程等领域。
蒙特卡洛方法的核心思想是利用随机抽样来近似求解复杂的数学问题,通过大量的随机实验来获取问题的近似解,从而得到更加准确的结果。
蒙特卡洛方法的应用范围非常广泛,下面我们将介绍一些蒙特卡洛方法的基本原理和应用。
首先,蒙特卡洛方法的基本原理是利用随机抽样来近似求解问题。
在实际应用中,我们往往无法通过解析的数学方法来得到问题的精确解,因此需要借助蒙特卡洛方法来进行近似求解。
通过生成大量的随机样本,并利用这些样本来估计问题的解,从而得到问题的近似解。
蒙特卡洛方法的核心思想是利用大数定律,通过大量的随机实验来逼近问题的解,从而得到更加准确的结果。
其次,蒙特卡洛方法的应用非常广泛。
在金融领域,蒙特卡洛方法被广泛应用于期权定价、风险管理等方面。
通过模拟股票价格的随机波动,可以对期权的价格进行估计,从而帮助投资者进行风险管理。
在物理领域,蒙特卡洛方法被应用于统计物理、粒子物理等领域。
通过随机抽样来模拟系统的行为,可以得到系统的性质和行为规律。
在生物领域,蒙特卡洛方法被应用于蛋白质折叠、分子模拟等领域。
通过模拟分子的随机运动,可以研究分子的结构和功能。
在工程领域,蒙特卡洛方法被应用于可靠性分析、优化设计等方面。
通过随机抽样来评估系统的可靠性,可以指导工程设计和优化。
总之,蒙特卡洛方法是一种强大的数值计算方法,它通过随机抽样来近似求解问题,被广泛应用于金融、物理、生物、工程等领域。
蒙特卡洛方法的应用范围非常广泛,它可以帮助我们解决复杂的数学问题,得到更加准确的结果。
随着计算机技术的发展,蒙特卡洛方法在实际应用中发挥着越来越重要的作用,相信在未来会有更多的领域受益于蒙特卡洛方法的应用。
第三章蒙特卡罗方法概述蒙特卡罗方法是一种基于概率统计的数学模拟方法,广泛应用于各个领域,如物理学、工程学、统计学、金融学等。
蒙特卡罗方法的基本思想是通过随机抽样的方法,通过大量的实验模拟系统的行为,从而推导出系统的统计性质。
它的核心理念是“试验多次,取平均值”,即通过进行大量的实验模拟,得到的结果的平均值可以近似于真实值。
蒙特卡罗方法的起源可以追溯到二战时期的原子能研究。
当时科学家们在尝试研究核反应堆的物理过程时,很难通过解析方法得到解决方案。
于是他们将问题建模成概率统计的形式,通过大量的实验模拟来获得结果。
这种方法最初被称为“纯概率模拟”,后来由于其背后的基本思想与蒙特卡罗赌场有些类似而得名为蒙特卡罗方法。
蒙特卡罗方法包括以下几个基本步骤:1.建立模型:首先需要建立一个适当的模型,即用数学方程描述所研究问题的特征。
模型的复杂程度取决于具体问题的复杂程度。
2.随机抽样:根据建立的模型,需要进行随机抽样,生成一系列符合指定分布的随机数。
这些随机数代表了系统的输入或初态。
通常使用伪随机数生成器来生成这些随机数。
3.求解模型:将随机抽样得到的样本代入模型,并通过模型进行求解。
可以使用各种数值计算方法来求解模型,如积分法、差分法、微分方程等。
通过数值计算方法,可以得到模型的输出或末态。
4.统计分析:通过大量的实验模拟,得到了系统的多组输出或末态。
在这些输出或末态中,可以统计得到系统的统计性质,如均值、方差、概率分布等。
蒙特卡罗方法的优势在于它可以处理复杂的非线性问题,以及高维问题。
由于模拟过程完全基于随机抽样,与传统的解析方法相比,蒙特卡罗方法的求解过程更加灵活。
另外,由于蒙特卡罗方法是一种直接模拟的方法,因此对于复杂的系统,可以通过蒙特卡罗方法进行近似求解,避免了复杂内部结构的精确建模过程。
然而,蒙特卡罗方法也存在一些限制。
首先,蒙特卡罗方法通常需要进行大量的实验模拟才能得到准确的结果,从而需要大量的计算时间和计算资源。
monte carlo方法估计
蒙特卡洛方法是一种使用随机抽样技术来估计数学问题的方法。
它可以用于估计积分、求解微分方程、模拟物理系统等各种问题。
蒙特卡洛方法的基本思想是通过生成大量的随机样本来近似计算某
个问题的数学期望值。
首先,让我们来看看蒙特卡洛方法的基本原理。
假设我们要估
计一个函数在某个区间上的积分,我们可以通过在该区间上生成大
量的随机点,并计算这些随机点处函数值的平均值乘以区间的长度
来估计积分值。
这样的估计值在样本量足够大的情况下通常会逼近
真实的积分值。
蒙特卡洛方法的优点之一是它的普适性和灵活性。
它可以用于
解决各种复杂的数学问题,而不需要对问题的具体形式做出过多的
假设。
这使得蒙特卡洛方法在实际问题中具有广泛的应用价值。
另外,蒙特卡洛方法也可以用于求解概率分布、模拟随机过程
等问题。
通过生成大量的随机样本,我们可以近似地计算出某个随
机变量的期望值、方差等统计量,从而对概率分布进行估计和模拟。
然而,蒙特卡洛方法也存在一些局限性。
首先,它通常需要大量的随机样本才能得到准确的估计值,因此在计算效率上可能存在一定的问题。
其次,蒙特卡洛方法在高维空间中的计算复杂度会呈指数增长,这使得它在高维问题上的应用受到限制。
总的来说,蒙特卡洛方法是一种强大的数值计算工具,它在估计数学问题、求解概率分布、模拟随机过程等方面具有广泛的应用价值。
然而,在实际应用中需要注意样本量的选择、计算效率等问题,以确保获得准确的估计结果。
蒙特卡洛试验检验算法蒙特卡洛试验是一种基于随机抽样的数值计算方法,广泛应用于科学研究、金融风险评估、工程设计等领域。
本文将介绍蒙特卡洛试验的原理、应用和优缺点。
一、蒙特卡洛试验的原理蒙特卡洛试验原理基于概率统计的思想,通过随机抽样和统计分析的方法,对未知或复杂问题进行数值计算和模拟。
其基本步骤如下: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.实验总结和实验感悟这次蒙特卡洛法令我印象比较深刻,特别是可以利用多次模拟实验的方法来求圆周率,这是我以前没有接触过的。
蒙特卡洛法可以理解成一种思想,就是多次随机的实验来求近似值。
不过这种方法比较适合电脑模拟,模拟次数足够高才可以保证误差不过大,而且某些可以直接求解的问题并不需要用蒙特卡罗法来做。