資料分析之蒙特卡洛模擬
阿新 • • 發佈:2018-11-09
一、簡單表述
通過大量重複產生大量隨機數模擬可能的實現環境幫助我們解決不確定場景下 的決策問題的方法
二、圓周率pi的計算
程式碼:
from __future__ import division import random import time num=1 for j in range(1,10): startT=time.clock() #落入圓內計數 counter=0 #往正方形內扔了10的j次方 for i in range(10**j): x=random.uniform(-1,1) y=random.uniform(-1,1) #落入園內計數 if x**2+y**2<1: counter+=1 endT=time.clock() print(num) print('pi:{0}'.format(4*(counter/10**j))) print('時間:{0}'.format(startT-endT)) print() num+=1
三、蒙特卡洛模擬在期權定價或者風險管理問題上有很強的能力,容易處理高維問題
缺點:高計算要求,因此必須高效的實現該演算法
實現策略:(1)從基礎到向量化兩種方法
(2)純Python,只使用內建的Python功能和標準庫實現蒙特卡洛值
(3)向量化Numpy,使用Numpy功能實現更加緊湊高效的版本