Monte_Carlo蒙特卡洛算法模拟
蒲丰投针――MonteCarlo算法

蒲丰投针 ―― Monte Carlo 算法背景:蒙特卡罗方法(Monte Carlo ),也称统计模拟方法,是在二次世界大战期间随着科学技术的发展和电子计算机的发明,而被提出的一种以概率统计理论为基础的一类非常重要的数值计算方法。
蒙特卡罗方法在应用物理、原子能、固体物理、化学、生态学、社会学以及经济行为等领域中得到广泛利用。
蒙特卡罗方法的名字来源于世界著名的赌城 —— 摩纳哥的蒙特卡罗。
其历史起源可追溯到1777年法国科学家蒲丰提出的一种计算圆周的方法 —— 随机投针法,即著名的蒲丰投针问题。
问题:设在平面上有一组平行线,间距为d ,把一根长L 的针随机投上去,则这根针和平行线相交的概率是多少?(其中 L < d )分析:由于 L < d ,所以这根针至多只能与一条平行线相交。
设针的中点与最近的平行线之间的距离为 y ,针与平行线的夹角为 θ (0 ≤ θ ≤ π)。
相交情形 不相交情形易知针与平行线相交的充要条件是:sin 2Ly x θ≤=由于1[0,], [0, ]2y d θπ∈∈,且它们的取值均满足平均分布。
建立直角坐标系,则针与平行线的相交条件在坐标系下就是曲线所围成的曲边梯形区域(见右图)。
所以有几何概率可知针与平行线相交的概率是sin d 2212LL p d d πθθππ==⎰Monte Carlo 方法:随机产生满足平均分布的 y 和 θ,其中1[0,], [0, ]2y d θπ∈∈,判断 y 是否在曲边梯形内。
重复上述试验,并统计 y 在曲边梯形内的次数 m ,其与试验次数 n 的比值即为针与平行线相交的概率的近似值。
clear;n = 100000; L = 1; d = 2; m = 0;for k = 1 : ntheta = rand(1)*pi; y = rand(1)*d/2;if y < sin(theta)*L/2m = m + 1; end endfprintf('针与平行线相交的概率大约为 %f\n', m/n)计算π的近似值利用该方法可以计算 π 的近似值:sin d 22 22 1n LL m p d m d L d n πθθπππ⇒≈==≈⎰下面是一些通过蒲丰投针实验计算出来的 π 的近似值:蒲丰投针问题的重要性并非是为了求得比其它方法更精确的π值,而是在于它是第一个用几何形式表达概率问题的例子。
蒙特卡洛(Monte Carlo)模拟法

当科学家们使用计算机来试图预测复杂的趋势和事件时, 他们通常应用一类需要长串的随机数的复杂计算。
设计这种用来预测复杂趋势和事件的数字模型越来越依赖于一种称为蒙特卡罗模似的统计手段, 而这种模拟进一步又要取决于可靠的无穷尽的随机数目来源。
蒙特卡罗模拟因摩纳哥著名的赌场而得名。
它能够帮助人们从数学上表述物理、化学、工程、经济学以及环境动力学中一些非常复杂的相互作用。
数学家们称这种表述为“模式”, 而当一种模式足够精确时, 他能产生与实际操作中对同一条件相同的反应。
但蒙特卡罗模拟有一个危险的缺陷: 如果必须输入一个模式中的随机数并不像设想的那样是随机数, 而却构成一些微妙的非随机模式, 那么整个的模拟(及其预测结果)都可能是错的。
最近, 由美国佐治亚大学的费伦博格博士作出的一分报告证明了最普遍用以产生随机数串的计算机程序中有5个在用于一个简单的模拟磁性晶体中原子行为的数学模型时出现错误。
科学家们发现, 出现这些错误的根源在于这5个程序产生的数串其实并不随机, 它们实际上隐藏了一些相互关系和样式, 这一点只是在这种微小的非随机性歪曲了晶体模型的已知特性时才表露出来。
贝尔实验室的里德博士告诫人们记住伟大的诺伊曼的忠告:“任何人如果相信计算机能够产生出真正的随机的数序组都是疯子。
”蒙特卡罗方法(MC)蒙特卡罗(Monte Carlo)方法:蒙特卡罗(Monte Carlo)方法,又称随机抽样或统计试验方法,属于计算数学的一个分支,它是在本世纪四十年代中期为了适应当时原子能事业的发展而发展起来的。
传统的经验方法由于不能逼近真实的物理过程,很难得到满意的结果,而蒙特卡罗方法由于能够真实地模拟实际物理过程,故解决问题与实际非常符合,可以得到很圆满的结果。
这也是我们采用该方法的原因。
蒙特卡罗方法的基本原理及思想如下:当所要求解的问题是某种事件出现的概率,或者是某个随机变量的期望值时,它们可以通过某种“试验”的方法,得到这种事件出现的频率,或者这个随机变数的平均值,并用它们作为问题的解。
蒙特卡洛模拟法

蒙特卡洛模拟法一蒙特卡洛模拟法简介蒙特卡洛(Monte Carlo)模拟是一种通过设定随机过程,反复生成时间序列,计算参数估计量和统计量,进而研究其分布特征的方法。
具体的,当系统中各个单元的可靠性特征量已知,但系统的可靠性过于复杂,难以建立可靠性预计的精确数学模型或模型太复杂而不便应用时,可用随机模拟法近似计算出系统可靠性的预计值;随着模拟次数的增多,其预计精度也逐渐增高。
由于涉及到时间序列的反复生成,蒙特卡洛模拟法是以高容量和高速度的计算机为前提条件的,因此只是在近些年才得到广泛推广。
这个术语是二战时期美国物理学家Metropolis执行曼哈顿计划的过程中提出来的。
蒙特卡洛模拟方法的原理是当问题或对象本身具有概率特征时,可以用计算机模拟的方法产生抽样结果,根据抽样计算统计量或者参数的值;随着模拟次数的增多,可以通过对各次统计量或参数的估计值求平均的方法得到稳定结论。
二蒙特卡洛模拟法求解步骤应用此方法求解工程技术问题可以分为两类:确定性问题和随机性问题。
解题步骤如下:1.根据提出的问题构造一个简单、适用的概率模型或随机模型,使问题的解对应于该模型中随机变量的某些特征(如概率、均值和方差等),所构造的模型在主要特征参量方面要与实际问题或系统相一致2 .根据模型中各个随机变量的分布,在计算机上产生随机数,实现一次模拟过程所需的足够数量的随机数。
通常先产生均匀分布的随机数,然后生成服从某一分布的随机数,方可进行随机模拟试验。
3. 根据概率模型的特点和随机变量的分布特性,设计和选取合适的抽样方法,并对每个随机变量进行抽样(包括直接抽样、分层抽样、相关抽样、重要抽样等)。
4.按照所建立的模型进行仿真试验、计算,求出问题的随机解。
5. 统计分析模拟试验结果,给出问题的概率解以及解的精度估计。
三蒙特卡洛模拟法的应用领域蒙特卡洛模拟法的应用领域主要有:1.直接应用蒙特卡洛模拟:应用大规模的随机数列来模拟复杂系统,得到某些参数或重要指标。
蒙特卡洛模拟方法

蒙特卡洛模拟方法蒙特卡洛模拟方法(Monte Carlo simulation)是一种基于随机过程的数值计算方法,通过生成大量随机数来模拟实际问题的概率分布和确定性结果。
它的原理是通过随机抽样和统计分析来近似计算复杂问题的解,适用于各种领域的问题求解和决策分析。
蒙特卡洛模拟方法最早于20世纪40年代在核能研究中出现,命名源于摩纳哥的蒙特卡洛赌场,因为其运作原理与赌场的概率计算类似。
它的核心思想是通过大量的重复实验来模拟问题的解空间,并基于统计原理对结果进行分析。
蒙特卡洛模拟方法的应用领域广泛,包括金融、工程、物理、统计学、风险管理等。
在金融领域,蒙特卡洛模拟方法可以用于模拟股票价格的变动,估计期权的价格和价值-at-risk(风险价值),帮助投资者进行风险管理和资产配置。
在工程领域,蒙特卡洛模拟方法可以用于模拟不同参数对产品性能的影响,优化产品设计和工艺流程。
在物理学中,蒙特卡洛模拟方法可以用于模拟粒子运动轨迹,研究核反应和量子系统的行为。
在统计学中,蒙特卡洛模拟方法可以用于估计未知参数的分布和进行概率推断。
1.明确问题:首先需要明确问题的目标和约束条件。
例如,如果要求估计一个金融产品的价值,需要明确产品的特征和市场环境。
2.设定模型:根据问题的特性,建立模型。
模型可以是概率模型、物理模型、统计模型等,用于描述问题的随机性和确定性因素。
3. 生成随机数:根据问题的特点,选择适当的随机数生成方法。
常见的随机数生成方法包括伪随机数生成器、蒙特卡洛(Monte Carlo)方法、拉丁超立方(Latin Hypercube)采样等。
4.进行实验:根据模型和随机数生成方法,进行大量的实验。
每次实验都是一次独立的抽样过程,生成一个样本,用于计算问题的目标函数或约束条件。
5.统计分析:对实验结果进行统计分析,得到问题的解或概率分布。
常用的统计分析方法包括均值、方差、最大值、最小值、分位数等。
还可以进行敏感性分析,评估输入参数对结果的影响程度。
蒙特卡罗算法

蒙特卡洛算法算法简介:蒙特·卡罗方法(Monte Carlo method),也称统计模拟方法,是二十世纪四十年代中期由于科学技术的发展和电子计算机的发明,而被提出的一种以概率统计理论为指导的一类非常重要的数值计算方法。
是指使用随机数(或更常见的伪随机数)来解决很多计算问题的方法。
蒙特·卡罗方法的名字来源于摩纳哥的一个城市蒙地卡罗,该城市以赌博业闻名,而蒙特·卡罗方法正是以概率为基础的方法。
与它对应的是确定性算法。
蒙特·卡罗方法在金融工程学,宏观经济学,计算物理学(如粒子输运计算、量子热力学计算、空气动力学计算)等领域应用广泛。
背景知识:蒙特卡洛是摩纳哥公国第一大城市,与澳门、美国拉斯维加斯并称世界三大赌城。
位于地中海沿岸,首都摩纳哥之北,建于阿尔卑斯山脉突出地中海的悬崖之上。
景色优美,是地中海地区旅游胜地。
市内建有豪华的旅馆、俱乐部、歌剧院、商店、游泳池、温泉浴室、运动场等娱乐设施。
城内开设有蒙特卡洛大赌场。
赌场建于1865年,为双层楼建筑,上有钟楼、塔厅和拱形亭阁,还饰以若干人物雕塑,庭前棕榈树成行,还辟有花园,旁边有大酒店和酒吧间。
整个城市在旺季时,约有赌场70多个,约有赌室3500间左右。
蒙特卡罗赌场由国家经营。
当地的其他活动,许多也带有赌博色彩。
游客住的旅店房间,有抽奖的号码,中奖的免付部分房费。
早餐的牛奶麦片粥里,如遇上金属牌子,亦可领奖。
该城只有1万人口,但每天报纸销量可达100万份,因为报纸上都印有可能得奖的号码。
游客最后离境,购买的车票上也印有彩票号码,于离境前开彩。
经营赌业是摩纳哥的主要经济来源,每年都从赌业中收取高额外汇利润。
蒙特卡洛算法简单描述:以概率和统计理论方法为基础的一种计算方法。
将所求解的问题同一定的概率模型相联系,用计算机实现统计模拟或抽样,以获得问题的近似解。
比如,给定x=a,和x=b,你要求某一曲线f和这两竖线,及x轴围成的面积,你可以起定y轴一横线y=c 其中c>=f(a) and c>=f(b),很简单的,你可以求出y=c,x=a,x=b,及x轴围成的矩形面积,然后利用随机参生生大量在这个矩形范围之类的点,统计出现在曲线上部点数和出现在曲线下部点的数目,记为:doteUpCount,nodeDownCount,然后所要求的面积可以近似为doteDownCounts所占比例*矩形面积。
MonteCarlo模拟教程

rand('seed',0.1);
rand(1) %每次运ra行nd程('s序tat产e',s生um的(1值00*是clo相ck同)*r的and);
1901 3408
3.1415929
蒙特卡罗投点法是蒲丰投针实验的推广:
在一个边长为a的正方形内随机投点,
该点落在此正方形的内切圆中的概率 y
(a/2,a/2)
应为该内切圆与正方形的面积比值,
即 πa/22 : a2 π/4
n=10000; a=2; m=0; for i=1:n
ox
x=rand(1)*a; y=rand(1)*a;
举例
例1 在我方某前沿防守地域,敌人以一个炮排(含两门火炮) 为单位对我方进行干扰和破坏.为躲避我方打击,敌方对其阵地 进行了伪装并经常变换射击地点.
经过长期观察发现,我方指挥所对敌方目标的指示有50%是准 确的,而我方火力单位,在指示正确时,有1/3的射击效果能毁 伤敌人一门火炮,有1/6的射击效果能全部毁伤敌人火炮.
Monte Carlo 模拟
内容提纲
➢1.引言 ➢2.Monte Carlo模拟基本思想 ➢3.随机数生成函数 ➢4.应用实例举例 ➢5.排队论模拟 ➢6.Monte Carlo模拟求解规划问题
Monte Carlo方法:
引言(Introduction)
蒙特卡罗方法,又称随机模拟方法,属于计算数学的一个分支,它是在上世纪四 十年代中期为了适应当时原子能事业的发展而发展起来的。亦称统计模拟方法, statistical simulation method 利用随机数进行数值模拟的方法
蒙特卡罗算法举例

蒙特卡罗算法举例
蒙特卡罗算法(Monte Carlo algorithm)是一种基于随机样本的计算方法,它通过模拟大量的随机数据来获得问题的概率性结果。
这种算法可以用于估计数学问题、物理问题、金融问题以及其他实际应用中的复杂问题的解。
下面将以几个实际例子来说明蒙特卡罗算法的应用。
例1:估计圆周率π的值
具体步骤:
1.在正方形内生成大量均匀分布的随机点。
2.统计落入圆形内的点的数量。
3.通过落入圆形的点的数量与总点数的比例来估计π的值。
例2:绘制希腊国旗
具体步骤:
1.建立一个正方形区域。
2.在正方形区域内随机生成大量的点。
3.统计每个小正方形内的点的数量。
4.将每个小正方形的点的数量转化为绘制像素点的比例。
例3:计算投资回报率的概率分布
具体步骤:
1.建立资产的收益率分布模型,可使用历史数据进行参数估计。
2.随机生成资产的未来收益率。
3.根据资产的权重计算投资组合的回报率。
4.迭代多次,统计投资组合回报率的概率分布。
例4:模拟森林火灾蔓延的概率
具体步骤:
1.建立一个森林地区的模型,包括地形、植被分布等信息。
2.随机生成火源的起始位置。
3.模拟火势的蔓延规律,考虑风向、植被密度等因素。
4.统计火灾烧毁的面积。
以上是几个蒙特卡罗算法的应用示例。
蒙特卡罗算法的优点是可以解决复杂问题,并提供概率性结果。
但需要注意的是,结果的准确性受到样本数量的影响,样本数量越大,结果越接近真值。
此外,算法的运行效率也是一个需要考虑的因素。
直接蒙特卡洛模拟方法

直接蒙特卡洛模拟方法蒙特卡洛模拟方法(Monte Carlo simulation)是一种基于概率和统计方法的数值模拟技术,通过随机抽样和概率模型来解决复杂的问题。
它可以模拟各种问题的随机性和不确定性,适用于金融、经济、工程、物理等各种领域。
下面将详细介绍蒙特卡洛模拟的基本原理、步骤和应用。
蒙特卡洛模拟的基本原理是通过随机抽样来模拟一个系统或问题的不确定性。
首先,需要确定一个合适的概率模型,该模型可以以随机变量和概率分布的形式描述系统或问题的不确定性。
然后,通过生成大量的随机数样本,通过计算这些样本的统计特征来近似计算问题的解。
蒙特卡洛模拟的基本步骤如下:1.定义问题:明确需要解决的问题和目标。
2.定义概率模型:建立一个合适的概率模型,用于描述问题的不确定性。
这包括对输入变量和输出变量的概率分布进行建模。
3.生成随机数样本:根据概率模型,生成大量的随机数样本。
这些样本需要符合概率分布的特性。
4.进行模拟计算:使用生成的随机数样本,进行模拟计算。
对每个样本进行计算,并记录计算结果。
5.统计分析:对模拟计算的结果进行统计分析,得到问题的解的近似值。
这可以包括计算均值、方差、分位数等。
6.模型验证与调整:根据模拟计算得到的近似解,与真实的解进行对比,验证模型的准确性。
如果有必要,可以对模型进行调整和改进。
蒙特卡洛模拟方法可以应用于各个领域的问题,下面以金融领域为例进行介绍。
在金融领域,蒙特卡洛模拟方法常常用于风险评估和投资决策。
例如,我们可以使用蒙特卡洛模拟模拟股票价格的随机变动,来评估投资组合的风险和回报。
具体步骤如下:1.定义问题和目标:比如,我们想要评估一个投资组合在未来一年的收益。
2.定义概率模型:通过历史数据,我们可以建立股票价格的概率模型,比如使用几何布朗运动模型描述股票的价格变动。
3.生成随机数样本:根据概率模型,生成大量的随机数样本,模拟未来一年的股票价格变动。
4.进行模拟计算:对每个样本,计算投资组合的收益。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
Xianhua Peng (HKUST)
Simulating Stock Price Under Black-Scholes Model
Simulate Stock Prices Under Black-Scholes Model
d
If we find A such that AAT = Σ, then we obtain µ + AZ ∼ Nn (µ, Σ).
d
Xianhua Peng (HKUST)
Monte Carlo Simulation
Fall 2014
4 / 59
Generating Multivariate Normal and t Random Vectors
Monte Carlo Simulation
FE5107 Risk Analysis and Management
Instructor: Xianhua Peng Department of Mathematics HKUST maxhpeng@ust.hk
Fall 2014
Xianhua Peng (HKUST)
We want to simulate X = (X1 , . . . , Xn )T ∼ Nn (µ, Σ)
d
d
Let Z = (Z1 , . . . , Zn )T ∼ Nn (0, In ). We know how to simulate Z . Let A ∈ Rn×n . We know µ + AZ ∼ Nn (µ, AAT ) How to find such a A?
Spectral Decomposition of Σ
Spectral decomposition of real-valued symmetric matrix Σ: Σ = ΓΛΓT , where Λ = diag{λ1 , . . . , λn } A can be chosen to be A = Γdiag{ λ1 , . . . , λn }
The random vector X has a multivariate t distribution with dof ν (denoted by tn (ν, µ, Σ)), if X =µ+
d d
H V /ν
, where
H ∼ Nn (0, Σ)
X can be simulated by simulating H and V respectively. Matlab function: mvtrnd
2
3
4
5
6
Xianhua Peng (HKUST)
Monte Carlo Simulation
Fall 2014
3 / 59
Generating Multivariate Normal and t Random Vectors
Generate Multivariate Normal Random Vectors
Logarithm of stock price is a constant plus a Brownian motion: σ2 )t + σ Wt , for all t 2 Log return of the stock from time s to time s + t : log St = log S0 + (µ − log σ2 σ2 S s +t d = (µ − )t + σ (Ws+t − Ws ) ∼ N ((µ − )t , σ 2 t ) Ss 2 2
Xianhua Peng (HKUST) Monte Carlo Simulation Fall 2014 6 / 59
Generating Multivariate Normal and t Random Vectቤተ መጻሕፍቲ ባይዱrs
Generate Multivariate t Random Vectors
Xianhua Peng (HKUST)
Monte Carlo Simulation
Fall 2014
5 / 59
Generating Multivariate Normal and t Random Vectors
Cholesky Decomposition of Σ
Cholesky decomposition: any positive semi-definite symmetric matrix Σ can be decomposed into Σ = AAT , where A is a lower triangular matrix with all elements above diagonal being zero. The 3-dimensional case: a11 0 0 a11 a21 a31 σ11 σ12 σ13 σ21 σ22 σ23 = a21 a22 0 0 a22 a32 0 0 a33 σ31 σ32 σ33 a31 a32 a33 Matlab function for Cholesky decomposition: chol Be careful! If C = chol(Σ), then Σ = C T C ! Matlab function for simulating Nn (µ, Σ): mvnrnd
Xianhua Peng (HKUST)
Monte Carlo Simulation
Fall 2014
11 / 59
The Monte Carlo Framework and Output Analysis
Outline
1
Generating Multivariate Normal and t Random Vectors Simulating Stock Price Under Black-Scholes Model The Monte Carlo Framework and Output Analysis Calculating VaR via Simulation Importance Sampling Relative Errors
V ∼ χ2 ν and V is independent of Z
Xianhua Peng (HKUST)
Monte Carlo Simulation
Fall 2014
7 / 59
Simulating Stock Price Under Black-Scholes Model
Outline
1
Generating Multivariate Normal and t Random Vectors Simulating Stock Price Under Black-Scholes Model The Monte Carlo Framework and Output Analysis Calculating VaR via Simulation Importance Sampling Relative Errors
Stationary increments: for any s > 0 and t > 0, the distribution of Wt +s − Ws does not depend on s. Normal distribution: for any s ≥ 0 and t > 0,
d
Wt +s − Ws ∼ N (t µ, t σ 2 )
2
3
4
5
6
Xianhua Peng (HKUST)
Monte Carlo Simulation
Fall 2014
2 / 59
Generating Multivariate Normal and t Random Vectors
Outline
1
Generating Multivariate Normal and t Random Vectors Simulating Stock Price Under Black-Scholes Model The Monte Carlo Framework and Output Analysis Calculating VaR via Simulation Importance Sampling Relative Errors
d
σ2 2 )t1
+ σ X1 ), where
Sequentially simulate Sti , i = 2, 3, . . ., by
Sti = Sti −1 exp((µ−
σ2 d )(ti −ti −1 )+σ Xi ), Xi ∼ N (0, ti −ti −1 ), i = 2, 3, . . . , 2
Xianhua Peng (HKUST)
Monte Carlo Simulation
Fall 2014
9 / 59
Simulating Stock Price Under Black-Scholes Model
Black-Scholes Model of Stock Prices
Black-Scholes model: stock price at time t is σ2 )t + σ Wt ), for all t , 2 where Wt is a standard Brownian motion. Overall log return over [0, t ] is a Brownian motion: St = S0 exp((µ − log σ2 σ2 St d = (µ − )t + σ Wt ∼ N (t (µ − ), t σ 2 ) S0 2 2