蒙特卡洛

蒙特卡洛模拟

半城伤御伤魂 提交于 2020-03-07 10:16:28
Monte Carlo:一般采用实验的方法来研究随机变量的分布,反复实验取得随机变量的样本,用样本的分布来近似地代替随机变量分布。有了概率分布,就可以用数学来模拟实际的物理过程,得到随机变量的样本。(Stanislaw Marcin Ulam, Enrico Fermi, John von Neumann Nicholas Metropolis) 频率--概率 在计算机上容易产生服从均匀分布的 随机数 ,而任意分布的随机数可以由均匀分布为基础而产生。 1.Monte Carlo模拟某一过程时,需要产生各种概率分布的随机变量。 2.用统计方法把模型的数字特征估计出来,从而得到实际问题的数值解。 计算机上,用数学递推公式产生。这样产生的序列,与真正的随机数序列不同,所以称为伪随机数,或伪随机数序列。不过,经过多种统计检验表明,它与真正的随机数,或随机数序列具有相近的性质,因此可把它作为真正的随机数来使用。 建立各种估计量:构造了概率模型并能从中抽样后,即实现模拟实验后,我们就要确定一个随机变量,作为所要求的问题的解,我们称它为无偏估计。 随机变量的分布, IDL 来源: https://www.cnblogs.com/haizhupan/p/4158736.html

蒙特卡洛积分和重要性采样(Importance Sampling)

我是研究僧i 提交于 2020-03-04 21:58:07
一、蒙特卡洛积分 蒙特卡洛积分概述 :简而言之蒙特卡洛积分就是,在求定积分时,如果找不到被积函数的原函数,无法使用经典牛顿-莱布尼茨积分法得到定积分结果的。而蒙特卡洛积分方法利用一个随机变量对被积函数进行采样,并将采样值进行一定的处理可以得到定积分的一个近似值,当采样数量很高时,得到的近似值可以很好的近似原积分的结果。这样一来,我们就不用去求原函数的形式,就能求得积分的近似结果。 补充一些基础性公式: 假设一连续型随机变量 X X X 的样本空间为 D D D ,其概率密度分布函数为 p ( x ) p(x) p ( x ) ,则其数学期望为: E ( X ) = ∫ D x p ( x ) d x E(X)= ∫_Dxp(x)dx E ( X ) = ∫ D ​ x p ( x ) d x 若另一连续随机变量 Y Y Y 满足 Y = f ( X ) Y=f(X) Y = f ( X ) ,则 Y Y Y 的数学期望为: E ( Y ) = ∫ D f ( x ) p ( x ) d x E(Y)= ∫_Df(x)p(x)dx E ( Y ) = ∫ D ​ f ( x ) p ( x ) d x 蒙特卡洛积分方法基础形式 现在 假设我们要计算一个定积分: A = ∫ a b f ( x ) d x A=∫_a^bf(x)dx A = ∫ a b ​ f ( x ) d x

从蒙特卡洛方法计算pi值谈random模块

蓝咒 提交于 2020-02-29 06:20:39
计算机模拟常常需要用到随机选择的数。本文从随机数的一个简单应用开始简要地介绍Python的random模块。 使用蒙特卡洛方法计算pi值 Links:该问题来自于pudure university(普渡大学)python课程中的problem set2 Monte Carlo methods are used to simulate complex physical and mathematical systems by repeated random sampling. In simple terms, given a probability, p, that an event will occur in certain conditions, a program generates those conditions repeatedly. The number of times the event occurs divided by the number of times the conditions are generated should be approximately equal to p. 蒙特卡洛方法通过重复随机取样用于复杂的物理和数学系统的 仿真 。简单地说,给定一个变量p,用于描述事件在一定条件下发生的概率,程序重复地生成这些条件

蒙特卡洛积分与重要性采样详解

孤街醉人 提交于 2020-02-06 14:11:22
最近在看有关蒙特卡洛积分的内容,发现网上很多博主写的证明过程跳步较为严重,而且过程晦涩,不太容易理解。我在自己阅读国外相关教材附录后发现证明蒙特卡洛积分方法并不难,利用的仅是概率论的基本知识,现整理下来与大家分享。 那么什么是蒙特卡洛积分?简而言之就是,在求积分时,如果找不到被积函数的原函数,那么利用经典积分方法是得不到积分结果的,但是蒙特卡洛积分方法告诉我们,利用一个随机变量对被积函数进行采样,并将采样值进行一定的处理,那么当采样数量很高时,得到的结果可以很好的近似原积分的结果。这样一来,我们就不用去求原函数的形式,就能求得积分的近似结果。 一、前提知识: 由概率论基本知识,假设一连续型随机变量$X$的样本空间为$D$,其概率密度分布函数为$p(x)$,则其数学期望为 \begin{equation} E\left[X\right]=\int_D {xp(x){\rm{d}}x} \end{equation} 若另一连续随机变量Y满足$Y=f(X)$,则$Y$的数学期望$E[Y]$可由下式给出 \begin{equation} E\left[Y\right]=\int_D {f(x)p(x){\rm{d}}x} \end{equation} 二、蒙特卡洛积分与重要性采样 根据以上叙述,假设这里我们要计算一个一维积分式 \begin{equation} A=\int_a^b {f

蒙特卡洛法—非均匀随机数的产生

流过昼夜 提交于 2020-02-06 13:57:08
1.反变换法 设需产生分布函数为F(x)的连续随机数X。若已有[0,1]区间均匀分布随机数R,则产生X的反变换公式为: F(x)=r, 即 x=F -1 (r) 反函数存在条件:如果函数y=f(x)是定义域D上的单调函数,那么f(x)一定有反函数存在,且反函数一定是单调的。分布函数F(x)为是一个单调递增函数,所以其反函数存在。 从直观意义上理解,因为r一一对应着x,而在[0,1]均匀分布随机数R≤r的概率P(R≤r)=r 。 因此,连续随机数X≤x的概率P(X≤x)=P(R≤r)=r=F(x) 即X的分布函数为F(x)。 例子:下面的代码使用反变换法在区间[0, 6]上生成随机数,其概率密度近似为 P ( x ) = e -x 1 import numpy as np 2 import matplotlib.pyplot as plt 3 4 # probability distribution we're trying to calculate 5 p = lambda x: np.exp(-x) 6 7 # CDF of p 8 CDF = lambda x: 1-np.exp(-x) 9 10 # invert the CDF 11 invCDF = lambda x: -np.log(1-x) 12 13 # domain limits 14 xmin = 0 # the

PBRT笔记(12)——蒙特卡洛积分

假如想象 提交于 2020-02-06 12:35:12
这里还涉及到pdf、方差等概念,推荐去看《全局光照技术:从离线到实时渲染》 积累分布函数 cumulative distribution function (CDF) 蒙特卡洛估算 为了计算式蒙特卡罗估算量,就有必要从选择的概率分布中抽取随机样本。 逆推法 逆推法使用一个或多个均匀的随机变量映射到随机变量的期望分布中。 为了从该分布中获取样本,我们首先计算CDF P(x),在这个函数是连续的情况下,P表示为p的不定积分。 当从该分布中获取样本时,我们可以使用均匀随机数ξ,并根据CDF选取某一可能结果。对此,其中一种方法是利用自身概率选取某一特定结果,如图13.3所示,时间概率投射至垂直轴上,随机变量ξ沿其进行取值。不难发现,这是从正确的分布中得出的——均匀样本击中任何特定条棒的概率恰好等于该条棒的高度。 为了将这种技术运用到到连续分布中,考虑当离散概率趋于无穷时的情形。图13.1中的PDF会变成了一条光滑的曲线,而图13.2中的CDF则会变成了它的积分。尽管函数是连续的,但投影拥有以下的数学解释——逆CDF。使用以上解释,通过随机数ξ,计算该位置的逆CDF值,因此被称为反演法。 准确地说,可以通过以下步骤根据任意PDF获取样本值。 计算CDF, \(P(x)=\int^x_0 p(x')dx'\) 计算逆CDF, \(P^{-1}(x)\) 获取均匀分布的随机数ξ 计算样本, \

蒙特卡洛原理

天大地大妈咪最大 提交于 2020-01-19 21:49:00
基本原理: 事件的概率可以用大量实验中发生的概率来估计,当样本容量足够大时,可以认为该事件发生的频率即为其频率。因此可以先对影响其可靠度的随机变量进行大量的随机抽样,然后把这些抽样值一组一组地带入功能函数式,确定结构是否失效,最后求得结构的失效概率。 1.1 方法: 1 构造或者描述概率过程 对于本身就具有随机性质的问题,就需要正确描述和模拟这个概率过程,对于本身不是随机性质的确定性问题。就需要事先构造一个概率过程,即将不具有随机性质的问题转化为随机问题。 2 从已知概率分步中抽样 已知概率 分布的随机 变量(或者随机向量)就成为实现蒙特卡洛芳fa模拟实验的基本手段,这也是蒙特卡洛芳方法被称为随机抽样的原因。产生随机变量的一种方法是通过数学递推公式产生,这样产生的序列与真正的随机数序列不同,所以成为伪随机数或者伪随机数序列,。但实验表明,它与真正的随机数序列具有相近的性质。 3 建立各种估计量 来源: CSDN 作者: 主攻 链接: https://blog.csdn.net/weixin_42528089/article/details/104044277

AMCL自适应蒙特卡洛原理概述

杀马特。学长 韩版系。学妹 提交于 2020-01-17 02:46:45
看到这篇文章,解决了我最近的疑惑,机器人绑架问题,哈哈哈 先转了 看了很多资料,讲amcl用法的很多,原理和概念能说清的很少,大都是一带而过稀里糊涂。这里,先把概念区分开来,后面将对原理进行讲解。 1,粒子滤波和蒙特卡洛 蒙特卡洛:是一种思想或方法。举例:一个矩形里面有个不规则形状,怎么计算不规则形状的面积?不好算。但我们可以近似。拿一堆豆子,均匀的撒在矩形上,然后统计不规则形状里的豆子的个数和剩余地方的豆子个数。矩形面积知道的呀,所以就通过估计得到了不规则形状的面积。拿机器人定位来讲,它处在地图中的任何一个位置都有可能,这种情况我们怎么表达一个位置的置信度呢?我们也使用粒子,哪里的粒子多,就代表机器人在哪里的可能性高。 粒子滤波:粒子数代表某个东西的可能性高低。通过某种评价方法(评价这个东西的可能性),改变粒子的分布情况。比如在机器人定位中,某个粒子A,我觉得这个粒子在这个坐标(比如这个坐标就属于之前说的“这个东西”)的可能性很高,那么我给他打高分。下次重新安排所有的粒子的位置的时候,就在这个位置附近多安排一些。这样多来几轮,粒子就都集中到可能性高的位置去了。 2,重要性采样 就像转盘抽奖一样,原本分数高(我们给它打分)的粒子,它在转盘上对应的面积就大。原本有100个粒子,那下次我就转100次,转到什么就取个对应的粒子。这样多重复几次,仍然是100个粒子

蒙特卡罗方法入门

此生再无相见时 提交于 2019-12-15 06:54:28
蒙特卡罗方法入门 通俗介绍:筐里有100个苹果, 我每次从筐中拿一个苹果A, 然后下一次再随机从筐中拿一个苹果B, 如果B比A大的话, 则舍弃A而保留B. 如此这般,很明显,如果我们拿了100次的话, 则最后在手中的就是最大的那个苹果. 如果不允许我们拿100次呢? 但是我们的策略是每次保留较好的. 则我们也有理由相信——经过N次(N<100)之后,留在我们手上的苹果也是接近最大的. 如果将每次拿苹果视作是采样的话, 则 蒙特卡洛算法就是每次采样尽量找好的,但不保证是最好的 , 而且采样越多,越近似最优解 原文 本文通过五个例子,介绍 蒙特卡罗方法 (Monte Carlo Method)。 一、概述 蒙特卡罗方法是一种计算方法。原理是通过大量随机样本,去了解一个系统,进而得到所要计算的值。 它非常强大和灵活,又相当简单易懂,很容易实现。对于许多问题来说,它往往是最简单的计算方法,有时甚至是唯一可行的方法。 它诞生于上个世纪40年代美国的"曼哈顿计划",名字来源于赌城蒙特卡罗,象征概率。 二、π的计算 第一个例子是,如何用蒙特卡罗方法计算圆周率π。 正方形内部有一个相切的圆,它们的面积之比是π/4。 现在,在这个正方形内部,随机产生10000个点(即10000个坐标对 (x, y)),计算它们与中心点的距离,从而判断是否落在圆的内部。 如果这些点均匀分布

马尔可夫蒙特卡洛采样法

China☆狼群 提交于 2019-12-05 11:33:08
可以用于比较复杂的分布的采样,并且在高维空间中也能使用 马尔可夫蒙特卡洛法 蒙特卡洛法:基于采样的数值型近似求解方法 马尔可夫链:用于采样 MCMC基本思想 针对目标分布,构造一个马尔可夫链,使得该马尔可夫链的平稳分布就是目标分布 从任何一个初始状态出发,沿着马尔可夫链进行转移 最终的状态转移序列会收敛到目标分布,得到一系列样本 核心点:构造马尔可夫链、确定状态转移序列 Metropolis-Hastings采样法 对于目标分布 \(p(x)\) ,选择一个易采样的参考条件分布 \(q(x^*|x)\) ,并令 \[A(x, x^*) = \mathop{\min} \{1, \frac{p(x^*)q(x|x^*)}{p(x)q(x^*|x)} \}\] 然后根据如下过程进行采样 随机选一个初始样本 \(x^{(0)}\) For t = 1, 2, 3,,,,,, 根据参考条件分布 \(q(x^{*}|x^{(t-1)})\) 抽取一个样本 \(x^{*}\) 根据均匀分布 \(U(0,1)\) 产生随机数 \(u\) 若 \(u < A(x^{(t-1)}, x^*)\) ,则令 \(x^{(t)} = x^*\) ,否则令 \(x^{(t)} = x^{(t-1)}\) 样本序列 \(\{ \dots, x^{(t-1)}, x^{(t)} \}\) 最终会收敛到目标分布