蒙特卡罗方法介绍(一)
蒙特卡羅方法介紹(一)
一、蒙特卡羅方法的基本思想和解題步驟
1.1 蒙特卡羅方法的基本思想
蒙特卡羅方法也稱隨機(jī)模擬法、隨機(jī)抽樣技術(shù)或統(tǒng)計(jì)實(shí)驗(yàn)發(fā),其基本思想是:為了求解數(shù)學(xué)、物理、工程技術(shù)或生產(chǎn)管理等方面的問題。首先,建立一個(gè)與求解有關(guān)的概率模型或隨機(jī)過程,使他的參數(shù)等于所求問題的解;然后通過對(duì)模型或過程的觀察或者抽樣試驗(yàn)來計(jì)算所求參數(shù)的統(tǒng)計(jì)特征;最后給出所求解的近似值。
概率統(tǒng)計(jì)是蒙特卡羅方法的理論基礎(chǔ),其基本手段是隨機(jī)抽樣或者隨機(jī)變量抽樣,對(duì)于那些難以進(jìn)行的或者條件不滿足的試驗(yàn)而言,是一種極好的替代方法。
1.2 蒙特卡羅的解題步驟
蒙特卡羅方法可以解決隨機(jī)性問題和確定性問題,基本步驟如下:
二、蒙特卡羅求解π\(zhòng)piπ
2.1原理
有一個(gè)圓心為(0,0)(0,0)(0,0),半徑為rrr的圓。
圓的面積和正方形面積之比如下:
πr2(2r)2=π4\frac {\pi r^2}{(2r)^2}=\frac{\pi}{4} (2r)2πr2?=4π?
我們對(duì)正方形隨機(jī)投點(diǎn),圓的面積和正方形面積之比可以近似為圓內(nèi)的點(diǎn)數(shù)比上所有的點(diǎn)數(shù)。
記所有點(diǎn)數(shù)為nnn,圓內(nèi)點(diǎn)數(shù)為ccc:
cn=π4?π=4cn\frac{c}{n}=\frac{\pi}{4} \Longrightarrow \pi=\frac{4c}{n} nc?=4π??π=n4c?
隨著nnn的增大,π\(zhòng)piπ值會(huì)越來越接近真實(shí)值
2.2實(shí)現(xiàn)
采用java實(shí)現(xiàn)
public static float getPi(){float result = 0;float r = 1;long n = 100000000;long count = 0;for (int i = 0; i<n; i++) {float x = (float) (Math.random()*2 -1);float y = (float) (Math.random()*2 -1);if (x*x + y*y < r*r) {count ++;}}result = (float) 4*count/n;return result;}結(jié)果為:
參考文獻(xiàn)
總結(jié)
以上是生活随笔為你收集整理的蒙特卡罗方法介绍(一)的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: Dijkstra 最短路径算法详解 无向
- 下一篇: 面试中回答离职原因的万能公式