Mathemaitca做蒙特卡羅積分法

2022-09-04 21:39:15 字數 988 閱讀 8745

目錄蒙特卡羅積分法是一種利用模擬來近似計算定積分值\(\int_a^b f(x)dx\)的一種方法

公式是\[\int f(x) \mathrm x=\frac \sum_^ \frac\right)}\right)} \quad x_ \sim p(x)

\]\(\right)}\)是隨機變數服從分布的pdf在\(x_\)處的值

這裡以計算\(\int_0^\pi \sin(x)dx\)為例,這個定積分的精確值是2

步驟:1.取1000000個iid且[0,pi]均勻分布的r.v.,

2.分別計算\(\frac\right)}\right)}\),再對他們求平均值

clear["global`*"]

n = 1000000;

montecarlo[nn_] :=

module[,

total[sin[#] & /@ randomvariate[uniformdistribution, n]]/

n*pi];

table[montecarlo[n], 10]

結果如下

有幾點注意事項

使用蒙特卡洛積分法求積分涉及到兩個問題:1.如何對乙個任意分布函式進行抽樣; 2.如何減少方差。

首先是給定乙個概率密度函式,如何對其進行取樣,使取樣滿足其概率分布。其中有逆變換演算法和取捨演算法。更多的資訊可以看這篇部落格。

接著是如何減少方差。直觀的理解,pdf()形狀越接近f(),效果越好。更多的資訊可以看這篇部落格。

mcmc(markov chain monte carlo)。因為對於任意分布的概率函式的取樣不容易做到,可以構造乙個馬爾可夫鏈(怎麼構造?)之後在上面隨機遊走來取點。其中有metropolis-hasting 演算法和gibbs 取樣法。更多的資訊可以看這篇部落格

蒙特卡洛理解

蒙特卡羅演算法並不是一種演算法的名稱,而是是一類隨機方法的統稱。這類方法的特點是,可以在隨機取樣上計算得到近似結果,隨著取樣的增多,得到的結果是正確結果的概率逐漸加大,但在 放棄隨機取樣,而採用類似全取樣這樣的確定性方法 獲得真正的結果之前,無法知道目前得到的結果是不是真正的結果。從特性特性來說,我...

蒙特卡洛演算法

從今天開始要研究sampling methods,主要是mcmc演算法 contents 1.蒙特卡洛介紹 2.蒙特卡洛的應用 3.蒙特卡洛積分 1.蒙特卡洛介紹 蒙特卡羅方法 monte carlo method 也稱統計模擬方法,是二十世紀四十年代中期由於科學技術的 發展和電子計算機的發明,而被...

蒙特卡洛取樣

1.馬爾可夫鏈及其平穩分布 馬爾可夫鏈的定義很簡單,即後乙個狀態只與前面乙個狀態相關 p x t x cdots,x p x t x 2.馬氏鏈定理 如果乙個非週期馬爾可夫鏈具有狀態轉移矩陣 p 且它的任意兩個狀態都是連通的,那麼 mathop limits p n 存在且與 i 無關,記 math...