box muller --- (1)
我要很認真的說、我真的不是數學系的~ = . .=
這次想要來筆記一下、一個超好用的東西~ @ 0@++ 雖然、過程也許可能有點難懂,不過、it’s ok。最重要的只是不要害怕
算式。(← 順便提醒自己一下)
rand number、是個跑模擬會用到、基本到不行的一樣東西。不管是在哪種語言,只要、srand()、rand(),然後…rand num
就會被生出來了。可是、挑剔的我,絕對不會因此滿足的,因為、根據情況不同,資料的數據分佈肯定會不一樣。
而、這次要講的box muller、在實做上、只需要短短的幾行就可以解決了我的問題阿~ (握拳) 為了怕自己忘記、一定要認真
的紀錄一下整個過程(有的過程、我大概會跳過啦~ XDDD 很多東西沒那摸熟 哈)
不想看無趣(又不正確?)的推導嗎~XDDDD
那就直接看精簡版吧~
box muller、和一般的rand有啥不同咧~ 其實、一般程式裡面用的rand、都是線性的,無論是從系統出的、還是尼很自豪的
說,『我那可是用內建的rand函數跑出來的咧~』其實、都跳脫不了那個線性的框框。很前一陣子、我異常的著迷於rand~。
就在那時候、我挖到了box muller,它和系統出的不同在於,box muller有著、最常見的圖形分佈,也就是『常態分佈』,
所謂的常態分佈就是…. 統計裡面最常看到的 → 中間高、兩邊低。而這種分佈圖、在各方面都有蠻多運用的。也有很多
讓人容易混亂的別名(中間定理、鐘型分佈、高斯分佈…balabala),和類似常態分佈(柯西分佈、韋伯分佈…)的其他圖形
。其實、我沒有很認真的去比較過它們的不同啦~ = “””= 功力不夠~ XDD 我只都覺得、它們就是中間比較高、其他地方比較
低。可能有些會牽扯到收不收斂的問題、還有對不對稱…這類的。
而其中、box muller、就是要用到常態分佈
圖形和其算式啦~ @ @+++
常態分佈圖形及算式如下,代表著期望值0、變異數1、其相關的變化,基本上就是基於修改這2數所產生的變化:
p(x):=e−x22√2π⟸N(0,1) , the mean = 0, variance = 1
我們將 (1) 經過轉換、可以得到下式 (2) :
∫∞−∞dxe−x22=√2π
將(2)取平方、並做簡單的拆解(科、那種平方啦、座標啦~最容易想到的就是x、y 轉 r、θ的極座標了
,還蠻直覺的)。
如同上段所說、我們利用xy座標系轉極座標系如下(4)以及(5)的基本資料、代入
(2)
x=rcosθ y=rsinθ
x2+y2=r2 tan−1yx=θ ∣∂(x,y)∣∣∂(r,θ)∣=r
把上面那些都塞進去算式、利用一下超好用的Jacobian,我們可以得到(6)
一直到這邊、其實我們都在證明…. 常態分佈的算式和r、θ… ㄜ、是有關係的。 (應該是可以這摸說….吧~)
接下來、好不容易要進入正題了~ @ @+++
我們將(6) 移來移去然後、再順便帶入一下(5)、我們可以得到下面這個(7)
1=12π∫∞−∞dxdye−x2+y22
然後、我們將(7) 整個整理好成為 R 的關係式、得到(8):
U(R)=12π∫2π0dθ∫R0drre−r22=∫R220due−u=1−e−R22其實、我們也可以很清楚的知道(10)的內容,就…. 算式講得很白啦~ XDD 跳過~
limR→0U(R)=0limR→∞U(R)=1再回去看一下(8)、我們令它=p、然後再交換交換…就可以得到(11)
U(R)=p ⟹ R=√−2log(1−p)
挖~結果、終於要出現囉~ 科科科
我們再利用一下(4)的東西、把R帶入…然後經過一些整理、將它們表達為s、t的函數、得到(12)
s:=1−p∈[0,1],t∈[0,1] x={√−2log(s)cos(2πt)√−2log(s)sin(2πt)
最後一步囉~ (歐耶~) 我們將(12) 分別引入常態分佈的mean和variance,就完成…box muller的隨機數產生
器啦~
z=μ+σ√−2log(s)cos(2πt) or, z=μ+σ√−2log(s)sin(2πt)
好好、我相信…大家看完一定還是霧颯颯的、所以… 我們利用(13)來一個精簡版總結:
我們只要決定好μ和σ,用這個決定好隨機數分佈範圍和樣貌。 (←這個就是邪惡的圖形函數)
利用系統產生隨機數s和t。 (←利用這2個隨機數、讓圖形產生變動、其實讓s=t=rand()也不是不行、就按照需求吧
一般來說、我比較愛2個都是隨機~ XDDD)最後把所有的東西統統帶入 (13)、就完成啦~ XDDDD
很簡單、很簡單、很簡單的吧~ @ @+++
也就是說、我們依照上面的精簡版,可以得到一個簡單到不行的規律,就是….. 只要、爽爽的把圖形函數換掉,然後…
其他通通帶入算式就好啦~(撒花轉圈圈) 想要什摸分佈、就會是什摸分佈囉~ (←請考慮合理的情況下~ = . .=|||)