蒙特卡洛近似的一些例子

本文介绍了如何使用蒙特卡洛算法来计算π,通过随机生成点并判断其是否落在单位圆内,随着样本数量增加,估算的π值逐渐逼近真实值。此外,还探讨了布丰投针问题,同样利用概率来计算π。最后,展示了蒙特卡洛方法在近似积分和估计期望值中的应用,包括一元和多元函数的定积分计算。这种方法在处理复杂函数时特别有用,即使无法直接求解,也能通过大量随机抽样得到近似解。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

Monte Carlo Algorithms

Calculating Pi

  • 假设我们有一个随机数生成器,它可以随机生成[-1,1]之间的实数,我们每次生成两个随机数,一个作为x,一个作为y,这样我们就有了一个点,所有的点都会落在蓝色的正方形里面,由于x和y都是在[-1,1]之间均匀分布,所以正方形中所有的点都有相同的概率密度,正方形中包含一个绿色的原,半径为1,圆心是原点。刚刚随机生成的点可能会落在圆里面,可能会落在圆外面。这里我们不难得到落在圆中的概率为 π 4 \frac{\pi}{4} 4π

  • 假设我们在正方形区域中随机抽样n个点,那么点落在圆中的期望就是 P n = π n 4 Pn=\frac{\pi n}{4} Pn=4πn​​。当然这里只是期望,可能我们抽五个点,他们都不在圆中。
    在这里插入图片描述

  • 那么我们怎么判断点是不是在圆中呢?我们可以使用圆的方程可以得到下面一个不等式: x 2 + y 2 ≤ 1 x^2+y^2 \leq 1 x2+y21

  • 假设我们均匀随机抽样n个点,通过上述不等式,我们发现有m个点在圆中。如果我们的抽样n非常大,这样我们就可以观测到 m ≈ π n 4 m\approx \frac{\pi n}{4} m4πn,所以我们得到 π ≈ 4 m n \pi\approx\frac{4m}{n} πn4m。大数定律保证蒙特卡洛的正确性,当 n → ∞ n \rightarrow \infty n​, 4 m n → π \frac{4m}{n}\rightarrow\pi n4mπ

  • 这样我们可以得出结论,当我们在正方形中随机抽样n个点,有m个点落在圆中,我们就可以将 π \pi π近似为 4 m n \frac{4m}{n} n4m​​。这里我们需要保证抽样是均匀的,抽到所有点的概率都相同,否则就不成立。
    在这里插入图片描述

Buffon’s Needle Problem

  • 这也是一个计算Pi的例子,通过画几条平行线,然后撒一把针,通过针与平行线相交的个数可以推算出pi。
    • 先画一些平行线,两个平行线之间的距离为d
    • 取一些针,针的长度为l。
    • 随机把针抛到纸上,针的长度是l,针可能与平行线相交也可能不相交。
    • 假设针的位置和角度都是均匀随机的,那么针和平行线有一定概率相交,通过微积分可以计算出相交的概率为 P = 2 l π d P=\frac{2l}{\pi d} P=πd2l​。
      在这里插入图片描述
  • 上面我们得到了针与平行线相交的概率$ P=\frac{2l}{\pi d} ​ ​ , 这 样 我 们 就 可 以 得 到 期 望 ​​,这样我们就可以得到期望 Pn = \frac{2ln}{\pi d} , 这 样 我 们 不 难 计 算 ,这样我们不难计算 \pi \approx \frac{2ln}{dm}$​

近似求积分

  • 假设给我们一个函数: f ( x ) = 1 1 + s i n ( x ) ⋅ ( l o g e x ) 2 f(x)=\frac{1}{1+sin(x)\cdot (log_e x)^2} f(x)=1+sin(x)(logex)21

  • 计算定积分: I = ∫ 0.8 3 f ( x ) d x I = \int_{0.8}^{3} f(x)dx I=0.83f(x)dx

  • 这个函数太复杂了我们没有办法求它的定积分,这时候我们就需要用数值方法近似求它的定积分了,蒙特卡洛就是最常用的数值方法。

    • 我们首先在[0.8,3]上均匀随机抽样n个样本
    • 然后我们计算n个样本的函数值
    • 然后用 Q n = ( b − a ) ⋅ 1 n Σ i = 1 n f ( x i ) Q_n=(b-a)\cdot\frac{1}{n}\Sigma_{i=1}^{n}f(x_i) Qn=(ba)n1Σi=1nf(xi)
    • 然后就可以使用 Q n Q_n Qn来近似定积分。
  • 刚刚计算的是一元函数的定积分,下面我们看看多元函数的定积分

    • 假设f(x)是一个多元函数,自变量是向量x
    • 计算函数在集合 Ω \Omega Ω上的定积分: I = ∫ Ω f ( x ) d x I=\int_{\Omega}f(x)dx I=Ωf(x)dx
      • 从集合 Ω \Omega Ω中随机抽样n个向量
      • 计算 Ω \Omega Ω集合的体积: V = ∫ Ω d x V=\int_{\Omega}dx V=Ωdx
      • 然后计算 Q n = V ⋅ 1 n Σ i = 1 n f ( i ) Q_n=V\cdot\frac{1}{n}\Sigma_{i=1}^nf(i) Qn=Vn1Σi=1nf(i)
      • 然后我们使用 Q n Q_n Qn来近似定积分

近似求期望

  • 定义X为d维的随机变量

  • P(x)为概率密度函数,它描述了变量X在某个点附近取值的可能性。有这样的性质: ∫ R d p ( x ) d x = 1 \int_{\mathbb{R}^d}p(x)dx = 1 Rdp(x)dx=1
    在这里插入图片描述

  • 使用蒙特卡洛来近似求期望

    • 根据概率密度函数 p ( x ) p(x) p(x)来随机抽样
    • 计算每个样本 f ( x i ) f(x_i) f(xi)的值,然后求所有n个函数值的平均,将平均值记为: Q n Q_n Qn
    • 使用 Q n Q_n Qn作为期望的估计。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值