Math 服從高斯分布的隨機生成器 續

2022-08-09 10:12:12 字數 2094 閱讀 7794

修改@2010.11.2

由於篇幅過長,分為兩段,生成器的基本目的和**請參照前文。

以下給出證明,驚人的發現此證明竟還能一併完成box-muller transformation的證明,簡直太神奇啦^_^。

在這之前,我們首先引出inverse transform sampling定理(中文可能是反變換定理,反變換法吧。)

定義:假設u=f(x)是乙個連續累計分布函式(也就是乙個密度函式的積分), f

-1為其反函式。

定理:如果u是乙個均勻分布(0,1)的隨機變數的話,則f

-1(u)服從函式f給出的分布。

證明:

這樣就匯出乙個方法:

輸入:一組[0,1]之間的滿足均勻分布的隨機數u

任務:給定乙個分布的密度函式f(x),要生成滿足這一分布的一組隨機數。

輸出:一組滿足f(x)的隨機數v

方法:1)求f(x)的分布函式f(x)

2)求f(x)的反函式f'(x)

3)對於u中的每乙個元素u,將f'(u)加入序列v中。

據此,我們發現

只要求出正態分佈的密度函式的分布函式的反函式,然後直接代入服從均勻分布的隨機數

所得的結果即為服從正態分佈的隨機數了

接下來如何匯出正態分佈pdf(probabilistic distribution function概率密度函式)的分布函式的反函式呢?(太拗口了。。。)

我們都非常熟悉了正態分佈的pdf,但是其分布函式(也就是從0-x的積分)據我所知很難搞定。

< 如果是無窮積分的話還有可能搞出來(用個平方和的技巧) >

其實,我們這裡使用和這個平方和技巧相同的方法。進行變形,就可以神奇的得到boxmuller了~

過程如下:

使用兩個正態分佈的概率密度函式

以及

用上述的化為極座標的技巧,

將x=rcos(theta), y=rsin(theta)

這樣可以得到極座標上的兩個正交的服從正態分佈的變數

概率為具體步驟不再詳述,利用了jacobian行列式,然後就直接得到這個結果啦。

接下來根據上述的方法1)2)3)

步驟1)首先對其分別積分,得到分布函式

以及

步驟2)

求上述函式的反函式

據此,我們其實已經證明了marsaglia polar method方法。所以這個才叫做polar法~

步驟3)

代入服從均勻分布的隨機數,得到

因為服從均勻分布(0,1),所以可以將

終於,我們對box-muller transformation證明完畢。

歷時許久,終於將隨機數生成的方法和背後的想法以及證明搞明白了。

看似簡單的乙個方法,其內部竟然如此複雜,數學概念和證明也一大把。。。

數學果然是非常高深的一門基礎的基礎學科呀!

如有錯誤望高手多多指點~

matlab生成二維服從高斯分布的資料

由於實驗需要,需要生成兩類模式的資料,同時這兩類資料要服從正態分佈 高斯分布 使用matlab來實現 mu 2 3 sigma 1 0 0 2 r mvnrnd mu,sigma,100 plot r 1 r 2 r hold on mu 7 8 sigma 1 0 0 2 r2 mvnrnd mu...

C C 生成高斯分布隨機數

產生正態分佈或高斯分布的三種方法 1.運用中心極限定理 大數定理 1 include 2 include 3 4 define nsum 25 5 6 double gaussrand 7 14 15 x nsum 2.0 16 x sqrt nsum 12.0 17 18 return x 19 ...

高斯分布的理解

高斯分布 gaussian distribution 又稱正態分佈 normal distribution 最早由a.棣莫弗在求 二項分布 的漸近公式中得到。c.f.高斯在研究測量誤差時從另乙個角度匯出了它。p.s.拉普拉斯和高斯研究了它的性質。1 是乙個在 數學 物理及工程等領域都非常重要的 概率...