蒙特卡罗方法介绍( 二)

蒙特卡罗方法介绍( 二)

一、蒙特卡罗求解定积分

蒙特卡洛方法求解定积分有两种方法,一种是上一节中讲的投点法,另外一种是期望法(也称平均值法)。

1.1 投点法

给出如下曲线f(x)f(x)f(x),求f(x)f(x)f(x)a,ba,ba,b上的积分,即xxxa,ba,ba,b上与曲线f(x)f(x)f(x)围成的面积。随机在如下矩形中进行投点,假设绿色点数为ggg,红色点数为rrr,矩阵的面积为AAA,则绿色部分的面积SSS就是:
S=A∗gr+gS = A*\frac{g}{r+g} S=Ar+gg

注意,蒙特卡罗方法所求的数值是一个近似值,而不是精确值。

在这里插入图片描述

1.2 期望法(平均值法)

1.2.1 无意识统计学家定律(Law of the unconscious statistician,LOTUS)

统计学中期望描述了随机变量的平均取值的大小特征,计算期望过程:试验中每次可能结果的概率值乘以其结果的总和,也就是数值乘以其发生的概率的和。理解无意识统计学家定律就是告诉我们,事件万物相互之间是有相互联系的,一个事件的发生概率一定程度上可以用另一个事件的发生概率进行描述,比如函数F(X)=(X−3)2F(X) = (X-3)^2F(X)=(X3)2中,XXX是一个随机变量,XXX的概率密度函数是影响到F(X)F(X)F(X)取值的概率密度函数的。

无意识统计学加定律,则是告诉已知随机变量XXX的概率分布fx(x)f_x(x)fx(x),但不知道g(X)g(X)g(X)的分布,此时用LOTUS公式能计算出函数g(X)g(X)g(X)的数学期望。

XXX是离散分布时
E[g(X)]=∑xg(X)fx(x)E[g(X)] = \sum_xg(X)f_x(x) E[g(X)]=xg(X)fx(x)

XXX是连续分布时
E[g(X)]=∫g(X)fx(x)dxE[g(X)] = \int g(X)f_x(x)dx E[g(X)]=g(X)fx(x)dx

常见的分布变换如下:
在这里插入图片描述

1.2.2 期望法

还是上边的例子,我们用期望法求解曲线的面积。
任意选取一组独立的、同分布的随机变量Xi{X_i}Xi,Xi{X_i}Xi[a,b][a,b][a,b]上服从分布律fxf_xfx,也就是说fxf_xfx是随机变量XXX的概率密度函数(PDF)或者PMF。令:
g∗(x)=g(x)fx(x)g^*(x) = \frac{g(x)}{f_x(x)} g(x)=fx(x)g(x)
g∗(x)g^*(x)g(x)也是一组独立同分布的随机变量。因为g∗(x)g^*(x)g(x)xxx的函数,所以,根据LOTUS得:
E[g∗(Xi)]=∫abg∗(x)fx(x)dx=∫abg(x)dx=IE[g^*(X_i)] = \int_a^b g^*(x)f_x(x)dx = \int_a^b g(x)dx = I E[g(Xi)]=abg(x)fx(x)dx=abg(x)dx=I

由强大数定理知:
Pr(lim⁡N→∞1N∑g∗(Xi)=I)=1P_r(\lim_{N \to \infty} \frac{1}{N} \sum g^*(X_i) = I) = 1 Pr(NlimN1g(Xi)=I)=1
上式理解为所有概率值和为1.

假设若计算的积分有如下形式:
I=∫abg(x)dxI = \int_a^b g(x)dx I=abg(x)dx
其中,被积函数g(x)g(x)g(x)在区间[a,b][a,b][a,b]内可积,任意选择一个有简便方法可以抽样的函数fx(x)f_x(x)fx(x),满足以下条件:
{fx(x)≠0(a≤x≤b),g(x)≠0∫abg(x)dx=1\begin{cases} f_x(x) \neq 0& (a \le x \le b),g(x)\neq 0\\ \int_a^b g(x)dx=1& \\ \end{cases} {fx(x)=0abg(x)dx=1(axb),g(x)=0
记:
g∗(x)={g(x)fx(x),fx(x)≠00,fx(x)=0g^*(x) = \begin{cases} \frac{g(x)}{f_x(x)} &,f_x(x)\neq 0\\ 0,& f_x(x) = 0\\ \end{cases} g(x)={fx(x)g(x)0,,fx(x)=0fx(x)=0
那么原积分可以写成:
I=∫abg∗(x)fx(x)dxI=\int_a^b g^*(x)f_x(x)dx I=abg(x)fx(x)dx
计算积分的步骤为:

  1. 产生服从分布fx(x)f_x(x)fx(x)的随机变量Xi,i=1,2,3...NX_i,{i=1,2,3...N}Xi,i=1,2,3...N
  2. 计算均值
    I∗=1N∑1Ng∗(Xi)I^*=\frac{1}{N} \sum_1^N g^*(X_i) I=N11Ng(Xi)

I∗I^*I作为III的近似值。

如果a,ba,ba,b为有限值,取fx(x)f_x(x)fx(x)为均匀分布
fx(x)={1b−a,a≤x≤b0,otherwisef_x(x) = \begin{cases} \frac{1}{b-a} &,a \le x \le b\\ 0,& otherwise\\ \end{cases} fx(x)={ba10,,axbotherwise

则:
I=∫abg(x)dx=(b−a)∗1b−a∫abg(x)dx=(b−a)∫abg(x)1b−adxI=\int_a^b g(x)dx = (b-a) * \frac{1}{b-a}\int_a^b g(x)dx=(b-a)\int_a^b g(x)\frac{1}{b-a}dx I=abg(x)dx=(ba)ba1abg(x)dx=(ba)abg(x)ba1dx
计算积分的步骤为:

  1. 产生服从均匀分布fx(x)f_x(x)fx(x)的随机变量Xi,i=1,2,3...NX_i,{i=1,2,3...N}Xi,i=1,2,3...N
  2. 计算均值
    I∗=b−aN∑1Ng(Xi)I^*=\frac{b-a}{N} \sum_1^N g(X_i) I=Nba1Ng(Xi)

I∗I^*I作为III的近似值。

二、理解平均值法

给出如下问题,如图所示:已知曲线f(x)f(x)f(x),求
F=∫abf(x)dxF=\int_a^b f(x)dx F=abf(x)dx
在这里插入图片描述
以上问题,即求解阴影部分的面积。这里,我们使用一种近似的方法来求积分,任意选取a,ba,ba,b之间的一点xxx,函数值为f(x)f(x)f(x),则阴影部分的面积约等于:
S=f(x)∗(b−a)S=f(x)*(b-a) S=f(x)(ba)
在这里插入图片描述
以上随机选取了一个点,如果随机选取4个点,那我们分别计算4个面积,然后取平均值,作为阴影部分的面积,如下图所示:
在这里插入图片描述
我们选取的点越多,计算出来的值也就越接近真实值。假设随机选取NNN个点,则根据以上,我们可以得出:
S=1N∑1Nf(xi)∗(b−a)=b−aN∑1Nf(xi)S=\frac{1}{N} \sum_1^N f(x_i)*(b-a) = \frac{b-a}{N} \sum_1^N f(x_i) S=N11Nf(xi)(ba)=Nba1Nf(xi)
当然,这也是一种近似方法。

参考文献

  1. https://www.scratchapixel.com/lessons/mathematics-physics-for-computer-graphics/monte-carlo-methods-in-practice/monte-carlo-integration
  2. https://blog.csdn.net/qq_32618327/article/details/90452846
  3. https://blog.csdn.net/baimafujinji/article/details/53869358
  4. https://blog.csdn.net/qq_36931982/article/details/92788754

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/576409.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

大数据技术之kafka (第 3 章 Kafka 架构深入) 分区策略在分析

如果不懂分区策略请看我之前的文章:https://blog.csdn.net/ywl470812087/article/details/105328015 默认的方式我们采用的是Range策略方式(按主题给消费者消费,主题被谁订阅了就谁消费) 先看下下面这个图,画的很丑&a…

如何达成目标笔记

如何达成目标 一、本书主要内容 推荐序一 升级你的行动工具箱 推荐序二 人们可以改变 引言 成功者和自制力的悖论 //004 自制力到底是怎样的 //007 你能做什么 //009 本书的主题 //011 1.1 准备就绪 第1章 你明白自己去往哪里吗 别说“做到最好” //017 大局与细节 //…

大数据技术之 Kafka (第 4 章 Kafka API ) Producer API

4.1.1 消息发送流程 Kafka 的 Producer 发送消息采用的是异步发送的方式。在消息发送的过程中,涉及到了两个线程——main 线程和 Sender 线程,以及一个线程共享变量——RecordAccumulator。main 线程将消息发送给 RecordAccumulator,Sender…

《关键对话——何谓关键对话》读书笔记(一)

《关键对话——何谓关键对话》读书笔记(一) 利用假期的时间,将关键对话阅读了一遍,书中提到的观点,方法,场景等很适合我目前处的状态,有的时候读起来仿佛就是自己身临其境,有种感同身…

从java读取Excel继续说大道至简 .

在上一篇博客《从复杂到简单,大道至简》中说道我们要把复杂的问题简单化,也就是要把问题细分,让大问题变成小问题,这样解决起来会相对容易,当我们把容易的小问题解决掉了,大问题自动就会迎刃而解。 所以今天…

推荐算法工程师的成长之道

推荐算法工程师的成长之道 原创: gongyouliu 大数据与人工智能 3月20日 源链接:原文地址 本文,作者会基于自己的实践经验讲述推荐算法工程师的成长之道,这里的“道”有发展路径和道(道理、方法论、经验、智慧)两层意思。 所以本文…

java电子商务源码解读 b2b2c o2o

大型企业分布式互联网电子商务平台,推出PC微信APP云服务的云商平台系统,其中包括B2B、B2C、C2C、O2O、新零售、直播电商等子平台。 分布式、微服务、云架构电子商务平台 java b2b2c o2o 技术解决方案 开发语言: java、j2ee 数据库&#x…

信息流推荐多样性

信息流推荐多样性 一、问题现状 信息流产品中一个常见的问题是多样性越来越差,造成这种问题的原因在于机器学习算法本身。下面通过一副系统循环图来介绍多样性差的问题。 资讯库随机推荐文章,由于是按照全库比例采样,娱乐占比较大&#xf…

Robocode教程2——你的第一个robo,取个好名字哦

摘自:http://site.douban.com/widget/notes/7736245/note/210029011/ 你需要准备的东西:1.c语言的知识和一点点的java知识,robocode意在学习java,不要要太深的java水平,你只要理解java和c的区别就可以了。2.robocode A…

UI设计师的面试过程

Palantir Technologies是一家提供分析、整合、可视化各种数据的IT型技术公司。在该公司,前端工程师和后端工程师有同样的面试过程,前端工程师也需要的一定的编程基础。该公司技术博客Palantir TeckBlog日前发表了一篇博文《The UI Design Interview》&am…

数据在市场运营中的应用

数据在市场运营中的应用 1. 背景 目前的产品运营、用户拉新、渠道投放、留存等都是靠人工进行策略制定,有的公司和部门完全靠着以前的经验在尝试互联网产品的市场营销和运营。这样不仅效率很低,而且效果也不显著。 主要存在的问题有以下几点&#xff…

信息流项目计划和思路

目录 一、对项目的认识. 4 1.用户需求和竞品. 4 2. 项目现状. 4 3. 发展前景. 4 二、项目的业务方向和思路. 6 1. 业务方向. 6 2. 2020年目标. 6 3. 思路. 6 3.1用户留存提升(6%->12%). 6 3.2日活提升(30万->80万…

MySQL学习笔记_关于MySQL的字符类型VARCHAR长度知识总结

MySQL学习笔记_关于MySQL的字符类型VARCHAR长度知识总结 一.VARCHAR存储和行长度限制 1.VARCHAR(N)中,N指的是字符的长度,VARCHAR类型最大支持65535,指的是65535个字节,但并不支持65535长度的varchar,65535中应该包含了所有字段的长度、变长字段长度标示…

链表的分类

分类: 单链表 双链表:每一个节点有两个指针域 循环链表:能通过任何一个节点找到其他所有的结点 非循环链表 链表中第一个结点的存储位置叫做头指针,那么整个链表的存取就必须是从头指针开始进行了。之后的每一个结点,其实就是上一个的后继指…

机器学习基础笔记总结

最近在学习latex,将之前的机器学习基础知识相关的笔记用latex整理了以下,源地址如下: https://github.com/duankai/latex_book,感兴趣的可以自由下载,也可以随意使用latex的格式。 pdf 效果如下,文件可在h…

IOS基础:ActionSheet(上拉菜单)的实现

一看图就明白了,毋需多说。 [java] view plaincopyprint?UIActionSheet* mySheet [[UIActionSheet alloc] initWithTitle:"ActionChoose" delegate:self cance…

Word2vec学习笔记总结

git地址: https://github.com/duankai/latex_book/tree/master/word2vec

创建链表和遍历链表算法演示

#include <stdio.h> #include <malloc.h> #include <string.h> #include <stdlib.h>typedef struct Node {int data; //数据域struct Node * pNext; //指针域}Node, *pNode;//函数声明 pNode create_list(); void traverse_list(pNode pHead); int…

@Autowired、@Resource

Autowired通过 Autowired的使用来消除 set &#xff0c;get方法 - Spring 2.5 JPA hibernate 使用方法的点滴整理我们编写spring 框架的代码时候。一直遵循是这样一个规则&#xff1a;所有在spring中注入的bean 都建议定义成私有的域变量。并且要配套写上 get 和 set方法。虽然…