蒙特卡洛近似的一些例子
Monte Carlo Algorithms
Calculating Pi
假设我们有一个随机数生成器,它可以随机生成[-1,1]之间的实数,我们每次生成两个随机数,一个作为x,一个作为y,这样我们就有了一个点,所有的点都会落在蓝色的正方形里面,由于x和y都是在[-1,1]之间均匀分布,所以正方形中所有的点都有相同的概率密度,正方形中包含一个绿色的原,半径为1,圆心是原点。刚刚随机生成的点可能会落在圆里面,可能会落在圆外面。这里我们不难得到落在圆中的概率为π4\frac{\pi}{4}4π。
假设我们在正方形区域中随机抽样n个点,那么点落在圆中的期望就是Pn=πn4Pn=\frac{\pi n}{4}Pn=4πn。当然这里只是期望,可能我们抽五个点,他们都不在圆中。
那么我们怎么判断点是不是在圆中呢?我们可以使用圆的方程可以得到下面一个不等式:x2+y2≤1x^2+y^2 \leq 1x2+y2≤1
假设我们均匀随机抽样n个点,通过上述不等式,我们发现有m个点在圆中。如果我们的抽样n非常大,这样我们就可以观测到m≈πn4m\approx \frac{\pi n}{4}m≈4πn,所以我们得到π≈4mn\pi\approx\frac{4m}{n}π≈n4m。大数定律保证蒙特卡洛的正确性,当n→∞n \rightarrow \inftyn→∞,4mn→π\frac{4m}{n}\rightarrow\pin4m→π。
这样我们可以得出结论,当我们在正方形中随机抽样n个点,有m个点落在圆中,我们就可以将π\piπ近似为4mn\frac{4m}{n}n4m。这里我们需要保证抽样是均匀的,抽到所有点的概率都相同,否则就不成立。
Buffon’s Needle Problem
- 这也是一个计算Pi的例子,通过画几条平行线,然后撒一把针,通过针与平行线相交的个数可以推算出pi。
- 先画一些平行线,两个平行线之间的距离为d
- 取一些针,针的长度为l。
- 随机把针抛到纸上,针的长度是l,针可能与平行线相交也可能不相交。
- 假设针的位置和角度都是均匀随机的,那么针和平行线有一定概率相交,通过微积分可以计算出相交的概率为P=2lπdP=\frac{2l}{\pi d}P=πd2l。
- 上面我们得到了针与平行线相交的概率$ P=\frac{2l}{\pi d},这样我们就可以得到期望,这样我们就可以得到期望,这样我们就可以得到期望Pn = \frac{2ln}{\pi d},这样我们不难计算,这样我们不难计算,这样我们不难计算\pi \approx \frac{2ln}{dm}$
近似求积分
假设给我们一个函数:f(x)=11+sin(x)⋅(logex)2f(x)=\frac{1}{1+sin(x)\cdot (log_e x)^2}f(x)=1+sin(x)⋅(logex)21
计算定积分:I=∫0.83f(x)dxI = \int_{0.8}^{3} f(x)dxI=∫0.83f(x)dx
这个函数太复杂了我们没有办法求它的定积分,这时候我们就需要用数值方法近似求它的定积分了,蒙特卡洛就是最常用的数值方法。
- 我们首先在[0.8,3]上均匀随机抽样n个样本
- 然后我们计算n个样本的函数值
- 然后用Qn=(b−a)⋅1nΣi=1nf(xi)Q_n=(b-a)\cdot\frac{1}{n}\Sigma_{i=1}^{n}f(x_i)Qn=(b−a)⋅n1Σi=1nf(xi)
- 然后就可以使用QnQ_nQn来近似定积分。
刚刚计算的是一元函数的定积分,下面我们看看多元函数的定积分
- 假设f(x)是一个多元函数,自变量是向量x
- 计算函数在集合Ω\OmegaΩ上的定积分:I=∫Ωf(x)dxI=\int_{\Omega}f(x)dxI=∫Ωf(x)dx
- 从集合Ω\OmegaΩ中随机抽样n个向量
- 计算Ω\OmegaΩ集合的体积:V=∫ΩdxV=\int_{\Omega}dxV=∫Ωdx
- 然后计算Qn=V⋅1nΣi=1nf(i)Q_n=V\cdot\frac{1}{n}\Sigma_{i=1}^nf(i)Qn=V⋅n1Σi=1nf(i)
- 然后我们使用QnQ_nQn来近似定积分
近似求期望
定义X为d维的随机变量
P(x)为概率密度函数,它描述了变量X在某个点附近取值的可能性。有这样的性质:∫Rdp(x)dx=1\int_{\mathbb{R}^d}p(x)dx = 1∫Rdp(x)dx=1
使用蒙特卡洛来近似求期望
- 根据概率密度函数p(x)p(x)p(x)来随机抽样
- 计算每个样本f(xi)f(x_i)f(xi)的值,然后求所有n个函数值的平均,将平均值记为:QnQ_nQn
- 使用QnQ_nQn作为期望的估计。
蒙特卡洛近似的一些例子相关推荐
- 数学理论—— 蒙特卡洛近似
数学理论-- 蒙特卡洛近似 1. 圆周率估算 1.1 理论 1.2 代码实现 2. 近似积分 2.1 一元积分(univariate) 2.2 多元积分(multivariate) 3 期望估计(Es ...
- 蒙特卡洛算法_MCMC、蒙特卡洛近似和Metropolis算法简介
MCMC 是Markov Chain Monte Carlo 的简称,但在传统模拟中有一个很重要的假设是样本是独立的(independent samples),这一点在贝叶斯统计尤其是高纬度的模型中很 ...
- MCMC、蒙特卡洛近似和Metropolis算法简介
MCMC 是Markov Chain Monte Carlo 的简称,但在传统模拟中有一个很重要的假设是样本是独立的(independent samples),这一点在贝叶斯统计尤其是高纬度的模型中很 ...
- 在我方某前沿防守地域 matlab,蒙特卡洛方法模拟小例子
例 在我方某前沿防守地域,敌人以一个炮排(含两门火炮)为单位对我方进行干扰和破坏.为躲避我方打击,敌方对其阵地进行了伪装并经常变换射击地点. 经过长期观察发现,我方指挥所对敌方目标的指示有50%是准确 ...
- 蒙特卡洛能解决啥_用蒙特卡洛方法解决“无法解决”的问题
蒙特卡洛能解决啥 How do you solve an 'unsolvable' problem? 您如何解决"无法解决"的问题? The worlds of data scie ...
- 蒙特卡洛(Monte Carlo)方法的介绍和应用
蒙特卡洛(Monte Carlo)方法的介绍和应用 蒙特卡洛(Monte Carlo)方法 在渲染中,我们经常听到术语"蒙特卡洛"(通常缩写为MC).但是这是什么意思?实际上,它所 ...
- 【强化学习】蒙特卡洛方法
目录 动态规划的局限性 蒙特卡洛方法介绍 蒙特卡洛方法的使用条件 蒙特卡洛方法在强化学习中的基本思路 蒙特卡洛控制 没有Exploring Starts的MC控制 基于重要度采样的off policy ...
- MCMC(蒙特卡洛采样)
1.MCMC是一种随机性近似推断方法,核心思想是求复杂概率分布下的期望值 2.采样的样本应该趋于高概率区域以及样本之间相互独立 3.如果p(z)分布简单,可以通过概率分布采样得到所需要的样本 4.大多 ...
- 蒙特卡洛算法学习笔记
导语 蒙特卡洛算法是一大类随机算法,通过随机样本来估算真实值. 本节课我们使用几个例子来讲解蒙特卡洛算法. 通过均匀抽样计算π\piπ 假如我们不知道π\piπ值,现在我们来估算π\piπ值,假设我们 ...
- python解zuobiaoxi方程_从马尔可夫链到蒙特卡洛-Metropolis方法(Python)
这学期在上郭璐老师的<计算物理>,结合<An Introduction to Computational Physics>与网上一些资料,整理一下马尔科夫链与蒙特卡洛法相关笔记 ...
最新文章
- python elasticsearch 入门教程(二) ---全文搜索
- JSON——IT技术人员都必须要了解的一种数据交换格式
- Struts2 学习系列 (2) 访问web资源
- 毕业设计word 表格标题 图表标题
- linux so 库的生成与调用
- c语言能选无,【提问】求助,一个C语言选择执行题怎么都不能完美运行
- nodejs版本更新问题:express不是内部或外部命令
- 从零开始刷Leetcode——数组(941.977)
- h3c,nat网络地址转换
- 浏览器,图片格式及特点
- 2014华为机试西安地区B组试题
- 英语简历计算机能力描述,简历计算机水平描述
- 示波器的主要功能 示波器作用介绍
- amos看拟合度在哪里看_Amos软件完结篇!模型无法拟合,拟合指标不佳如何解决?...
- 软件设计师刷题与知识点总结 笔记
- 一夜之间,几十万人失去房票!
- Visual Assist 配色
- 北京烤鸭+腊肉炒花菜+香椿炒蛋
- 万能解决问题思路方法——3W
- 心理学家:当你发现这三个现象,说明有人正在欺骗你,句句很真实