自拍偷在线精品自拍偷,亚洲欧美中文日韩v在线观看不卡

阮一峰:蒙特卡羅方法入門

移動開發(fā)
蒙特卡羅方法是一種計(jì)算方法。原理是通過大量隨機(jī)樣本,去了解一個(gè)系統(tǒng),進(jìn)而得到所要計(jì)算的值。它非常強(qiáng)大和靈活,又相當(dāng)簡單易懂,很容易實(shí)現(xiàn)。對于許多問題來說,它往往是最簡單的計(jì)算方法,有時(shí)甚至是唯一可行的方法。

一、概述

蒙特卡羅方法是一種計(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 美元。

責(zé)任編輯:倪明 來源: 阮一峰的網(wǎng)絡(luò)日志
相關(guān)推薦

2015-11-13 11:33:39

阮一峰ecmascript

2015-09-17 15:23:56

阮一峰網(wǎng)頁性能

2012-11-15 09:43:08

開發(fā)算法高斯模糊

2011-12-05 10:44:38

inodeLinux文件系統(tǒng)

2022-12-15 16:53:55

2015-09-24 09:43:08

阮一峰持續(xù)集成

2015-11-02 19:11:27

阮一峰javascript循環(huán)加載

2015-10-08 08:44:23

阮一峰Github清點(diǎn)對象

2015-09-18 15:21:33

求職就業(yè)創(chuàng)業(yè)阮一峰

2015-09-29 08:51:59

內(nèi)存地址主引導(dǎo)

2021-06-23 10:32:24

前端ES6代碼

2020-06-01 08:43:23

機(jī)器學(xué)習(xí)函數(shù)模型

2020-11-20 08:41:19

ES6

2022-03-15 09:50:00

量子計(jì)算材料

2021-12-16 06:52:33

Flex屬性布局

2021-09-13 16:40:30

Java C 語言游戲

2011-06-28 17:52:49

SEO

2015-10-28 12:11:34

易到

2013-09-18 14:01:46

JavaScript

2012-11-27 09:54:57

簡歷創(chuàng)業(yè)項(xiàng)目
點(diǎn)贊
收藏

51CTO技術(shù)棧公眾號