用蒙特卡罗积分法近似求解定积分的值及举例

在这里插入图片描述

一、背景知识

1、连续随机变量的概率密度函数

对于连续型随机变量的概率密度函数(PDF),其在整个定义域上的积分必须等于1。这是概率密度函数的一个基本属性,它确保了随机变量取任何值的概率之和等于1,符合概率论的公理。

也即:如果x是一个连续型随机变量,其概率密度函数表示为f(x),则必须满足以下条件:

∫ l u f ( x )   d x = 1 ,其中 l 、 u 表示积分的上下界限 \int_{l}^{u} f(x) \, dx = 1,其中l、u表示积分的上下界限 luf(x)dx=1,其中lu表示积分的上下界限

这个积分表示了随机变量x取值在l到u之间所有可能值的概率之和必须等于1。

2、连续随机变量的均匀分布

均匀分布,又称矩形分布,是一种连续概率分布,其概率密度函数(Probability Density Function, PDF)在某个区间内是恒定的,而在该区间外是零。均匀分布的特点是随机变量在定义域内任何子区间上取值的概率是相同的。

对于连续型均匀分布,其数学表达式如下:

f ( x ) = { 1 b − a for  a ≤ x ≤ b , 0 otherwise . f(x) = \begin{cases} \frac{1}{b-a} & \text{for } a \le x \le b, \\ 0 & \text{otherwise}. \end{cases} f(x)={ba10for axb,otherwise.

其中,a 是分布的下限,b 是分布的上限,b > a。

对于连续型均匀分布,期望值(均值)E[X]是区间中点: E [ X ] = a + b 2 E[X] = \frac{a + b}{2} E[X]=2a+b

在这里插入图片描述

二、蒙特卡罗积分法

蒙特卡罗积分法是一种基于随机数的数值积分方法,核心思想是利用随机变量的期望值来近似计算积分的值,它通过随机抽样生成大量的样本点的方式来近似计算定积分的值,这是因为积分值服从大数定律。

具体来说,对于被积函数h(x),如果h(x)=f(x)p(x),其中p(x)为一个在积分区间的概率密度函数,即满足在积分区间的积分值为1,即:

∫ a b h ( x )   d x = ∫ a b f ( x ) p ( x )   d x ,其中 ∫ a b p ( x )   d x = 1 \int_{a}^{b} h(x) \, dx=\int_{a}^{b} f(x) p(x)\, dx,其中\int_{a}^{b} p(x)\, dx=1 abh(x)dx=abf(x)p(x)dx,其中abp(x)dx=1

则:
∫ a b h ( x )   d x ≈ 1 n ∑ i = 1 n f ( x i ) ,其中 n 为抽样的样本点数量, f ( x ) = h ( x ) / p ( x ) \int_{a}^{b} h(x) \, dx≈\frac{1}{n} \sum_{i=1}^{n}f(x_i),其中n为抽样的样本点数量 ,f(x)=h(x)/p(x) abh(x)dxn1i=1nf(xi),其中n为抽样的样本点数量,f(x)=h(x)/p(x)

蒙特卡罗方法的误差主要取决于样本点的数量。一般来说,随着样本点数量的增加,误差会减小。
在实际应用中,蒙特卡洛积分法的一个关键步骤是生成随机数。这些随机数通常是均匀分布的,但也可以是其他类型的分布,如正态分布、泊松分布等,主要看被积函数h(x)怎么分解成f(x)p(x),使得p(x)在被积区间的积分值为1,如果p(x)是均匀分布则p(x)=1/(b-a),f(x)=(b-a)h(x)。

三、用蒙特卡罗求定积分求 ∫ 1 10 x d x \int_{1}^{10}xdx 110xdx案例

采用p(x)为均匀分布,则p(x)=1/10,f(x)=10x,取n=11, x i x_i xi=1,2,…,10,针对11个采样点,计算10x的值并求和:
在这里插入图片描述
则:
∫ 1 10 x   d x ≈ 1 11 ∑ i = 1 11 10 x i = 550 / 11 = 50 \int_{1}^{10} x\, dx≈\frac{1}{11} \sum_{i=1}^{11}10x_i=550/11=50 110xdx111i=11110xi=550/11=50

如果用正规的积分计算方式,x的积分为x²/2,则 ∫ 1 10 x d x = ( x 2 / 2 ) ∣ 0 10 = 50 \int_{1}^{10}xdx=(x²/2)|^{10}_0=50 110xdx=(x2/2)010=50,可以看到这2种方式计算的积分完全相同。

四、小结

本文介绍了蒙特卡罗积分法近似求解定积分的方法,并举例说明了具体使用方法,案例是一个简单积分,实际上蒙特卡罗积分法更适合用于计算不好求积分函数的积分计算,背后的原理是一样的。

在这里插入图片描述

更多统计学习基础知识请参考专栏《统计学习基础知识》。

更多人工智能基础知识请参考专栏《人工智能基础知识》。

写博不易,敬请支持:

如果阅读本文于您有所获,敬请点赞、评论、收藏,谢谢大家的支持!

关于老猿的付费专栏

  1. 付费专栏《https://blog.csdn.net/laoyuanpython/category_9607725.html 使用PyQt开发图形界面Python应用》专门介绍基于Python的PyQt图形界面开发基础教程,对应文章目录为《 https://blog.csdn.net/LaoYuanPython/article/details/107580932 使用PyQt开发图形界面Python应用专栏目录》;
  2. 付费专栏《https://blog.csdn.net/laoyuanpython/category_10232926.html moviepy音视频开发专栏 )详细介绍moviepy音视频剪辑合成处理的类相关方法及使用相关方法进行相关剪辑合成场景的处理,对应文章目录为《https://blog.csdn.net/LaoYuanPython/article/details/107574583 moviepy音视频开发专栏文章目录》;
  3. 付费专栏《https://blog.csdn.net/laoyuanpython/category_10581071.html OpenCV-Python初学者疑难问题集》为《https://blog.csdn.net/laoyuanpython/category_9979286.html OpenCV-Python图形图像处理 》的伴生专栏,是笔者对OpenCV-Python图形图像处理学习中遇到的一些问题个人感悟的整合,相关资料基本上都是老猿反复研究的成果,有助于OpenCV-Python初学者比较深入地理解OpenCV,对应文章目录为《https://blog.csdn.net/LaoYuanPython/article/details/109713407 OpenCV-Python初学者疑难问题集专栏目录
  4. 付费专栏《https://blog.csdn.net/laoyuanpython/category_10762553.html Python爬虫入门 》站在一个互联网前端开发小白的角度介绍爬虫开发应知应会内容,包括爬虫入门的基础知识,以及爬取CSDN文章信息、博主信息、给文章点赞、评论等实战内容。

前两个专栏都适合有一定Python基础但无相关知识的小白读者学习,第三个专栏请大家结合《https://blog.csdn.net/laoyuanpython/category_9979286.html OpenCV-Python图形图像处理 》的学习使用。

对于缺乏Python基础的同仁,可以通过老猿的免费专栏《https://blog.csdn.net/laoyuanpython/category_9831699.html 专栏:Python基础教程目录)从零开始学习Python。

如果有兴趣也愿意支持老猿的读者,欢迎购买付费专栏。

老猿Python,跟老猿学Python!

☞ ░ 前往老猿Python博文目录 https://blog.csdn.net/LaoYuanPython
  • 20
    点赞
  • 31
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

LaoYuanPython

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值