日韩av黄I国产麻豆传媒I国产91av视频在线观看I日韩一区二区三区在线看I美女国产在线I麻豆视频国产在线观看I成人黄色短片

歡迎訪問 生活随笔!

生活随笔

當(dāng)前位置: 首頁 >

数学理论—— 蒙特卡洛近似

發(fā)布時(shí)間:2025/3/21 76 豆豆
生活随笔 收集整理的這篇文章主要介紹了 数学理论—— 蒙特卡洛近似 小編覺得挺不錯(cuò)的,現(xiàn)在分享給大家,幫大家做個(gè)參考.

數(shù)學(xué)理論—— 蒙特卡洛近似

  • 1. 圓周率估算
    • 1.1 理論
    • 1.2 代碼實(shí)現(xiàn)
  • 2. 近似積分
    • 2.1 一元積分(univariate)
    • 2.2 多元積分(multivariate)
  • 3 期望估計(jì)(Estimate of Expection)

1. 圓周率估算

1.1 理論

  • 邊長為2的正方形的橫坐標(biāo)范圍為[-1,1],縱坐標(biāo)為[-1,1]。
  • 數(shù)據(jù)點(diǎn)(x,y)的橫坐標(biāo)從[-1,1]中均勻抽樣得到,縱坐標(biāo)從[-1,1]中均勻抽樣得到,則數(shù)據(jù)點(diǎn)落在圓內(nèi)的概率為:p=A2A1=π4p=\frac{A_2}{A_1}=\frac{\pi}{4}p=A1?A2??=4π?
  • 計(jì)算誤差為:o(1n)o(\frac{1}{\sqrt{n}})o(n?1?)

    則計(jì)算圓周率的流程為:
  • 設(shè)定一個(gè)大數(shù)n,計(jì)數(shù)器m。
  • for i = 1 to n:x←[?1,1]y←[?1,1]m←m+1(當(dāng)x2+y2≤1時(shí))x\gets[-1,1]\\y\gets[-1,1]\\ \\m\gets m+1(當(dāng)x^2+y^2≤1時(shí))x[?1,1]y[?1,1]mm+1(當(dāng)x2+y21時(shí))
  • π←4mn\pi \gets \frac{4m}{n}πn4m?
  • 1.2 代碼實(shí)現(xiàn)

    import random n = 10000000 m = 0 for i in range(n):x = random.uniform(-1,1)y = random.uniform(-1,1)if x**2 + y**2 <= 1:m += 1 print(4*m/n) 3.1415656

    2. 近似積分

    2.1 一元積分(univariate)

    • 計(jì)算如下積分:I=∫abf(x)dxI=\int_a^b{f(x)}d_xI=ab?f(x)dx?
  • 從[a,b]中進(jìn)行n次抽樣,得到:x1,x2,...,xnx_1,x_2,...,x_nx1?,x2?,...,xn?
  • 計(jì)算:Qn=(b?a)?1n?∑i=1nf(xi)Q_n=(b-a)\cdot \frac{1}{n}\cdot \sum_{i=1}^n f(x_i)Qn?=(b?a)?n1??i=1n?f(xi?)
  • 可用Qn去近似積分I,因?yàn)榇髷?shù)定律可以保證其誤差反比于:n\sqrt nn?
    代碼為:
  • import random def f(x):return x**2 a = -1 b = 1 n = 100000000 sum_num = 0 for i in range(n):x = random.uniform(a,b)sum_num += f(x) Q = (b-a)* sum_num / n print(Q)

    結(jié)果為:

    0.6666073503023225

    2.2 多元積分(multivariate)

    求取積分:I=∫Ωf(X)dXI=\int_{\Omega}f(X)d_XI=Ω?f(X)dX?

  • Ω\OmegaΩ中進(jìn)行n次抽樣,得到:X1,X2,...,XnX_1,X_2,...,X_nX1?,X2?,...,Xn?
  • 計(jì)算:V=∫ΩdXV=\int_\Omega d_XV=Ω?dX?
  • 計(jì)算:Qn=V?1n?∑i=1nf(Xi)Q_n=V\cdot \frac{1}{n}\cdot \sum_{i=1}^n f(X_i)Qn?=V?n1??i=1n?f(Xi?)
  • 可用Qn去近似積分I,因?yàn)榇髷?shù)定律可以保證其誤差反比于:n\sqrt nn?
    求取下式積分:f(x,y)={1,x2+y2≤10,otherwiseΩ=[?1,1]?[?1,1]I=∫Ωf(x,y)dxdyf(x,y)=\left\{ \begin{aligned} 1&, x^2+y^2≤1 \\ 0&,otherwise \end{aligned} \right.\\ \Omega=[-1,1]\cdot[-1,1]\\I=\int_{\Omega}f(x,y)d_xd_yf(x,y)={10?,x2+y21,otherwise?Ω=[?1,1]?[?1,1]I=Ω?f(x,y)dx?dy?
    代碼為:
  • def f(x,y):if x**2 + y**2 <= 1:return 1return 0 a1 = -1 a2 = -1 b1 = 1 b2 = 1 n = 10000000 sum_num = 0 for i in range(n):x = random.uniform(a1,b1)y = random.uniform(a2,b2)sum_num += f(x,y) V = 2*2 Q = V*sum_num / n print(Q) 3.1415416

    3 期望估計(jì)(Estimate of Expection)

    • X為d維隨機(jī)變量
    • P(X)為X的概率密度函數(shù):P(X)←probabilitydensityfunctionP(X)\gets probability\quad density\quad functionP(X)probabilitydensityfunction
    • ∫RP(X)dX=1\int_RP(X)d_X=1R?P(X)dX?=1
      計(jì)算f(X)的期望:
  • 依據(jù)P(X)進(jìn)行隨機(jī)抽樣,得到:X1,X2,...,XnX_1,X_2,...,X_nX1?,X2?,...,Xn?
  • 計(jì)算:Qn=1n?∑i=1nf(Xi)Q_n=\frac{1}{n}\cdot \sum_{i=1}^n f(X_i)Qn?=n1??i=1n?f(Xi?)
  • Qn≈EX~P[f(X)]Q_n\approx E_{X\sim P}[f(X)]Qn?EXP?[f(X)]
  • 代碼為:

    n = 10000000 sum_num = 0 for i in range(n):x = random.normalvariate(2,1)sum_num += x print(sum_num/n) 2.000336379227587

    本文部分內(nèi)容為參考此視頻。

    by CyrusMay 2022 04 04

    生命是華麗錯(cuò)覺
    時(shí)間是賊偷走一切
    ————五月天(如煙)————

    總結(jié)

    以上是生活随笔為你收集整理的数学理论—— 蒙特卡洛近似的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。

    如果覺得生活随笔網(wǎng)站內(nèi)容還不錯(cuò),歡迎將生活随笔推薦給好友。