你也能看懂的:蒙特卡羅方法
蒙特卡羅方法,也稱統計模擬方法,是1940年代中期由於科學技術的發展和電子計算機的發明,而提出的一種以概率統計理論為指導的數值計算方法。是指使用隨機數(或更常見的偽隨機數)來解決很多計算問題的方法
蒙特卡羅方法可以粗略地分成兩類:一類是所求解的問題本身具有內在的隨機性,藉助計算機的運算能力可以直接模擬這種隨機的過程。另一種型別是所求解問題可以轉化為某種隨機分佈的特徵數,比如隨機事件出現的概率,或者隨機變數的期望值。通過隨機抽樣的方法,以隨機事件出現的頻率估計其概率,或者以抽樣的數字特徵估算隨機變數的數字特徵,並將其作為問題的解。
概念
蒙特卡羅方法是一種計算方法。原理是通過大量隨機樣本,去了解一個系統,進而得到所要計算的值
通過一個簡單的例子,可以幫助我們很快地瞭解。在中學的數學課上,學習概率的相關內容時,就有這樣的題目:正方形內部有一個相切圓,若是往正方形區域扔一個小石頭,其落在圓內的的概率是多少?
解答過程很簡單,用圓的面積除以正方形的面積就行了,為 。
那這跟蒙特卡羅方法有什麼關係呢?現在已經知道了一個概率值,但是這裡面有一個數其實是不確定的,那就是 (一個無限不迴圈小數),如果讓你求它的近似值(精確到某一位),該怎麼做呢?
現在就輪到蒙特卡羅方法出場了,通過概率來求值,在正方形中隨機放置大量的點,比如 10000 個,這樣每一個點落在圓內的概率就是 ,將落在圓內點的數量比上所有點的數量,就可以把這個概率的具體值求出來,再乘 4 就是 的值。
點的數量越多精確度就越高,在求解一些無精確值的問題時可以發揮很大的作用,比如一些曲線圍成圖形的面積、積分問題等。而均值是概率密度與自變數乘積的積分,期望就是均值,最優值往往接近或就是期望,所以蒙特卡羅就是求最優值的方法
案例解讀
使用 MatLab 語言
求一個簡單的面積問題: 與 軸在第一象限圍成一個曲邊三角形。設計一個隨機試驗,求該圖形的近似值
x = 0:0.25:12;
y1 = x.^2;
y2 = 12-x;
plot(x, y1, x, y2)
xlabel('x');
ylabel('y');
legend('y1=x^2', 'y2=12-x');
title('繪製');
axis([0 15 0 15]);
text(3, 9, '交點');
grid on
% 隨機生成點
x = unifrnd(0, 12, [1, 10000000]);
y = unifrnd(0, 9, [1, 10000000]);
frequency = sum(y<x.^2 & x<=3)+sum(y<12-x & x>=3);
area = 12*9*frequency/10^7
圖形如下:
結果:
相關文章
- 蒙特卡羅法求圓周率
- 蒙特卡羅方法:當丟失確定性時的處理辦法
- 使用蒙特卡羅模擬期權定價
- 蒙特卡羅演算法求圓周率Pi的值演算法
- 強化學習(四)用蒙特卡羅法(MC)求解強化學習
- 六西格瑪與商業分析:蒙特卡羅模擬
- 蒙特卡洛方法(Monte-Carlo Simulation)
- 隨機化演算法(5) — 蒙特卡羅(Monte Carlo)演算法隨機演算法
- 資源 | 跟著Sutton經典教材學強化學習中的蒙特卡羅方法(程式碼例項)強化學習
- 小白也能看懂的MySQLMySql
- 比特幣的價格今年會達到10萬美元嗎?有人用蒙特卡羅方法預測了一下比特幣
- 強化學習(十八) 基於模擬的搜尋與蒙特卡羅樹搜尋(MCTS)強化學習
- DeepMind開發用於量子化學計算的神經網路變分蒙特卡羅神經網路
- 小白也能看懂的 AUC 曲線詳解
- 小白也能看懂的Java記憶體模型Java記憶體模型
- 小白也能看懂的ArrayList的擴容機制
- promise初體驗,小白也能看懂Promise
- 不是技術也能看懂雲原生
- 小白也能看懂的快取雪崩、穿透、擊穿快取穿透
- 小白也能看懂的JVM記憶體區域JVM記憶體
- 女朋友也能看懂的Zookeeper分散式鎖原理分散式
- DQN(Deep Q-learning)入門教程(三)之蒙特卡羅法演算法與Q-learning演算法演算法
- 蒙特卡洛模擬(1)————三門問題
- 蒙特卡洛積分——非均勻取樣
- 新手也能看懂的 SpringBoot 非同步程式設計指南Spring Boot非同步程式設計
- 【筆記】草履蟲也能看懂的ELK搭建流程筆記
- 絕對乾貨!初學者也能看懂的DPDK解析
- 結合貪心搜尋和蒙特卡洛隨機遊走的面向DBpedia的實體連結方法隨機
- 保姆教程系列:小白也能看懂的 Linux 掛載磁碟實操Linux
- 【AlphaGo】AlphaGo背後的力量:蒙特卡洛樹搜尋入門指南Go
- 你能看懂這些圖?(1)
- 小白也能看懂的JDK1.8前_HashMap的擴容機制原理JDKHashMap
- Composer 實現自動載入原理-新手也能看懂
- 從Webpack原始碼探究打包流程,萌新也能看懂~Web原始碼
- 小刻也能看懂的Unraid系統使用手冊:基礎篇AI
- 小白也能看懂的機器學習之整合演算法機器學習演算法
- 圖解Java中的資料結構及原理,傻瓜也能看懂!圖解Java資料結構
- 圖解 Java 中的資料結構及原理,傻瓜也能看懂!圖解Java資料結構