蒙特卡罗方法介绍(一)
生活随笔
收集整理的這篇文章主要介紹了
蒙特卡罗方法介绍(一)
小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
蒙特卡羅方法介紹(一)
一、蒙特卡羅方法的基本思想和解題步驟
1.1 蒙特卡羅方法的基本思想
蒙特卡羅方法也稱隨機模擬法、隨機抽樣技術或統計實驗發,其基本思想是:為了求解數學、物理、工程技術或生產管理等方面的問題。首先,建立一個與求解有關的概率模型或隨機過程,使他的參數等于所求問題的解;然后通過對模型或過程的觀察或者抽樣試驗來計算所求參數的統計特征;最后給出所求解的近似值。
概率統計是蒙特卡羅方法的理論基礎,其基本手段是隨機抽樣或者隨機變量抽樣,對于那些難以進行的或者條件不滿足的試驗而言,是一種極好的替代方法。
1.2 蒙特卡羅的解題步驟
蒙特卡羅方法可以解決隨機性問題和確定性問題,基本步驟如下:
二、蒙特卡羅求解π\piπ
2.1原理
有一個圓心為(0,0)(0,0)(0,0),半徑為rrr的圓。
圓的面積和正方形面積之比如下:
πr2(2r)2=π4\frac {\pi r^2}{(2r)^2}=\frac{\pi}{4} (2r)2πr2?=4π?
我們對正方形隨機投點,圓的面積和正方形面積之比可以近似為圓內的點數比上所有的點數。
記所有點數為nnn,圓內點數為ccc:
cn=π4?π=4cn\frac{c}{n}=\frac{\pi}{4} \Longrightarrow \pi=\frac{4c}{n} nc?=4π??π=n4c?
隨著nnn的增大,π\piπ值會越來越接近真實值
2.2實現
采用java實現
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;}結果為:
參考文獻
總結
以上是生活随笔為你收集整理的蒙特卡罗方法介绍(一)的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: Dijkstra 最短路径算法详解 无向
- 下一篇: 面试中回答离职原因的万能公式