蒙特卡羅方法入門(Monte Carlo Method)

原文出處:阮一峰的日志(@ruanyf)歡迎分享原創(chuàng)到伯樂頭條

http://blog.jobbole.com/88465/

本文通過五個(gè)例子,介紹蒙特卡羅方法(Monte Carlo Method)。

一、概述

蒙特卡羅方法是一種計(jì)算方法。原理是通過大量隨機(jī)樣本,去了解一個(gè)系統(tǒng),進(jìn)而得到所要計(jì)算的值。

它非常強(qiáng)大和靈活,又相當(dāng)簡單易懂,很容易實(shí)現(xiàn)。對于許多問題來說,它往往是最簡單的計(jì)算方法,有時(shí)甚至是唯一可行的方法。

它誕生于上個(gè)世紀(jì)40年代美國的”曼哈頓計(jì)劃”,名字來源于賭城蒙特卡羅,象征概率。

二、π的計(jì)算

第一個(gè)例子是,如何用蒙特卡羅方法計(jì)算圓周率π。

正方形內(nèi)部有一個(gè)相切的圓,它們的面積之比是π/4。

現(xiàn)在,在這個(gè)正方形內(nèi)部,隨機(jī)產(chǎn)生10000個(gè)點(diǎn)(即10000個(gè)坐標(biāo)對 (x, y)),計(jì)算它們與中心點(diǎn)的距離,從而判斷是否落在圓的內(nèi)部。

如果這些點(diǎn)均勻分布,那么圓內(nèi)的點(diǎn)應(yīng)該占到所有點(diǎn)的 π/4,因此將這個(gè)比值乘以4,就是π的值。通過R語言腳本隨機(jī)模擬30000個(gè)點(diǎn),π的估算值與真實(shí)值相差0.07%。

三、積分的計(jì)算

上面的方法加以推廣,就可以計(jì)算任意一個(gè)積分的值。

比如,計(jì)算函數(shù) y = x2 在 [0, 1] 區(qū)間的積分,就是求出下圖紅色部分的面積。

這個(gè)函數(shù)在 (1,1) 點(diǎn)的取值為1,所以整個(gè)紅色區(qū)域在一個(gè)面積為1的正方形里面。在該正方形內(nèi)部,產(chǎn)生大量隨機(jī)點(diǎn),可以計(jì)算出有多少點(diǎn)落在紅色區(qū)域(判斷條件 y < x2)。這個(gè)比重就是所要求的積分值。

用Matlab模擬100萬個(gè)隨機(jī)點(diǎn),結(jié)果為0.3328。

四、交通堵塞

蒙特卡羅方法不僅可以用于計(jì)算,還可以用于模擬系統(tǒng)內(nèi)部的隨機(jī)運(yùn)動。下面的例子模擬單車道的交通堵塞。

根據(jù) Nagel-Schreckenberg 模型,車輛的運(yùn)動滿足以下規(guī)則。

當(dāng)前速度是 v 。

如果前面沒車,它在下一秒的速度會提高到 v + 1 ,直到達(dá)到規(guī)定的最高限速。

如果前面有車,距離為d,且 d < v,那么它在下一秒的速度會降低到 d – 1 。

此外,司機(jī)還會以概率 p 隨機(jī)減速, 將下一秒的速度降低到 v – 1 。

在一條直線上,隨機(jī)產(chǎn)生100個(gè)點(diǎn),代表道路上的100輛車,另取概率 p 為 0.3 。

上圖中,橫軸代表距離(從左到右),縱軸代表時(shí)間(從上到下),因此每一行就表示下一秒的道路情況。

可以看到,該模型會隨機(jī)產(chǎn)生交通擁堵(圖形上黑色聚集的部分)。這就證明了,單車道即使沒有任何原因,也會產(chǎn)生交通堵塞。

五、產(chǎn)品厚度

某產(chǎn)品由八個(gè)零件堆疊組成。也就是說,這八個(gè)零件的厚度總和,等于該產(chǎn)品的厚度。

已知該產(chǎn)品的厚度,必須控制在27mm以內(nèi),但是每個(gè)零件有一定的概率,厚度會超出誤差。請問有多大的概率,產(chǎn)品的厚度會超出27mm?

取100000個(gè)隨機(jī)樣本,每個(gè)樣本有8個(gè)值,對應(yīng)8個(gè)零件各自的厚度。計(jì)算發(fā)現(xiàn),產(chǎn)品的合格率為99.9979%,即百萬分之21的概率,厚度會超出27mm。

六、證券市場

證券市場有時(shí)交易活躍,有時(shí)交易冷清。下面是你對市場的預(yù)測。

如果交易冷清,你會以平均價(jià)11元,賣出5萬股。

如果交易活躍,你會以平均價(jià)8元,賣出10萬股。

如果交易溫和,你會以平均價(jià)10元,賣出7.5萬股。

已知你的成本在每股5.5元到7.5元之間,平均是6.5元。請問接下來的交易,你的凈利潤會是多少?

取1000個(gè)隨機(jī)樣本,每個(gè)樣本有兩個(gè)數(shù)值:一個(gè)是證券的成本(5.5元到7.5元之間的均勻分布),另一個(gè)是當(dāng)前市場狀態(tài)(冷清、活躍、溫和,各有三分之一可能)。

模擬計(jì)算得到,平均凈利潤為92, 427美元。

七,參考鏈接

Introduction To Monte Carlo Methods,by Alex Woods

Monte Carlo Simulation Tutorial

蒙特卡羅(Monte Carlo)方法簡介,by 王曉勇

蒙特卡羅(Monte Carlo)模擬的一個(gè)應(yīng)用實(shí)例

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡書系信息發(fā)布平臺,僅提供信息存儲服務(wù)。
  • 序言:七十年代末,一起剝皮案震驚了整個(gè)濱河市,隨后出現(xiàn)的幾起案子,更是在濱河造成了極大的恐慌,老刑警劉巖,帶你破解...
    沈念sama閱讀 230,247評論 6 543
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件,死亡現(xiàn)場離奇詭異,居然都是意外死亡,警方通過查閱死者的電腦和手機(jī),發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 99,520評論 3 429
  • 文/潘曉璐 我一進(jìn)店門,熙熙樓的掌柜王于貴愁眉苦臉地迎上來,“玉大人,你說我怎么就攤上這事。” “怎么了?”我有些...
    開封第一講書人閱讀 178,362評論 0 383
  • 文/不壞的土叔 我叫張陵,是天一觀的道長。 經(jīng)常有香客問我,道長,這世上最難降的妖魔是什么? 我笑而不...
    開封第一講書人閱讀 63,805評論 1 317
  • 正文 為了忘掉前任,我火速辦了婚禮,結(jié)果婚禮上,老公的妹妹穿的比我還像新娘。我一直安慰自己,他們只是感情好,可當(dāng)我...
    茶點(diǎn)故事閱讀 72,541評論 6 412
  • 文/花漫 我一把揭開白布。 她就那樣靜靜地躺著,像睡著了一般。 火紅的嫁衣襯著肌膚如雪。 梳的紋絲不亂的頭發(fā)上,一...
    開封第一講書人閱讀 55,896評論 1 328
  • 那天,我揣著相機(jī)與錄音,去河邊找鬼。 笑死,一個(gè)胖子當(dāng)著我的面吹牛,可吹牛的內(nèi)容都是我干的。 我是一名探鬼主播,決...
    沈念sama閱讀 43,887評論 3 447
  • 文/蒼蘭香墨 我猛地睜開眼,長吁一口氣:“原來是場噩夢啊……” “哼!你這毒婦竟也來了?” 一聲冷哼從身側(cè)響起,我...
    開封第一講書人閱讀 43,062評論 0 290
  • 序言:老撾萬榮一對情侶失蹤,失蹤者是張志新(化名)和其女友劉穎,沒想到半個(gè)月后,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體,經(jīng)...
    沈念sama閱讀 49,608評論 1 336
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 41,356評論 3 358
  • 正文 我和宋清朗相戀三年,在試婚紗的時(shí)候發(fā)現(xiàn)自己被綠了。 大學(xué)時(shí)的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片。...
    茶點(diǎn)故事閱讀 43,555評論 1 374
  • 序言:一個(gè)原本活蹦亂跳的男人離奇死亡,死狀恐怖,靈堂內(nèi)的尸體忽然破棺而出,到底是詐尸還是另有隱情,我是刑警寧澤,帶...
    沈念sama閱讀 39,077評論 5 364
  • 正文 年R本政府宣布,位于F島的核電站,受9級特大地震影響,放射性物質(zhì)發(fā)生泄漏。R本人自食惡果不足惜,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 44,769評論 3 349
  • 文/蒙蒙 一、第九天 我趴在偏房一處隱蔽的房頂上張望。 院中可真熱鬧,春花似錦、人聲如沸。這莊子的主人今日做“春日...
    開封第一講書人閱讀 35,175評論 0 28
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽。三九已至,卻和暖如春,著一層夾襖步出監(jiān)牢的瞬間,已是汗流浹背。 一陣腳步聲響...
    開封第一講書人閱讀 36,489評論 1 295
  • 我被黑心中介騙來泰國打工, 沒想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留,地道東北人。 一個(gè)月前我還...
    沈念sama閱讀 52,289評論 3 400
  • 正文 我出身青樓,卻偏偏與公主長得像,于是被迫代替她去往敵國和親。 傳聞我的和親對象是個(gè)殘疾皇子,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 48,516評論 2 379

推薦閱讀更多精彩內(nèi)容