python蒙特卡洛模拟_用Python实现蒙特卡洛模拟
引用Numpy庫
NumPy庫是Python的一種開源的數(shù)值計算擴(kuò)展,提供了許多高級的數(shù)值編程工具,如:矩陣數(shù)據(jù)類型、矢量處理,以及精密的運(yùn)算庫。NASA用其來處理一些運(yùn)算。
蒙特卡洛模型用到的Numpy句法:
1、首先引用Numpy庫,起個名字叫np
import numpy as np
2、生成符合正太分布的0~99之間的隨機(jī)整數(shù) ,total_count代表生成隨機(jī)數(shù)的個數(shù),也就是要模擬多少次
np.random.randint(0,99,Total_Count)
3、用Numpy自帶函數(shù)計算相關(guān)指標(biāo) (NPV_Num是一個數(shù)組)
Max_Num=np.max(NPV_Num)
Min_Num=np.min(NPV_Num)
Mean_Num=round(np.mean(NPV_Num),0)
Std_Num=int(np.std(NPV_Num, ddof = 1))
用判斷語句給相關(guān)參數(shù)賦值
以研發(fā)費(fèi)為例,Python的句法實(shí)際上就是把EXCEL公式“翻譯”了一遍。Index_YFF是一個數(shù)組,使用.append方法增加數(shù)組值。
Index_YFF=[]
rnd_nums=np.random.randint(0,99,Total_Count)
rnd_num rnd_nums:
rnd_num<=19:
Index_YFF.append(400)
rnd_num>19
rnd_num<=69:
Index_YFF.append(500)
rnd_num>69:
Index_YFF.append(600)
用Print語句輸出計算結(jié)果
Print語句是Python常用的語句,用來顯示結(jié)果值。
print("樣本數(shù):",Total_Count)
print("最大值:",Max_Num)
print("最小值:",Min_Num)
print("平均值:",Mean_Num)
print("標(biāo)準(zhǔn)差:",Std_Num)
用matplotlib庫畫圖
Matplotlib 是一個 Python 的 2D繪圖庫,通過 Matplotlib,開發(fā)者可以僅需要幾行代碼,便可以生成繪圖,直方圖,功率譜,條形圖,錯誤圖,散點(diǎn)圖等。
counts, bins, path = plt.hist(NPV_Num,bins=Std_Num,color='green',density=True)
plt.title("Normal distribution")
plt.show()
寫一個可以計算年金現(xiàn)值的函數(shù)
編程就像搭積木,主程序一般是描述程序運(yùn)行的順序和邏輯,而一些用來傳遞參數(shù)進(jìn)行處理的代碼,可以放到自定義函數(shù)中。
def pv_f(c,r,n,when=1):
c=np.array(c)
r=np.array(r)
if when==1:
n=np.arange(1,n+1)
else:
n=np.arange(0,n)
pv=c/(1+r)**n
return pv.sum()
至此,用Python模擬蒙特卡洛的方法和代碼介紹完了。和EXCEL比較起來,Python的方法更容易擴(kuò)展,運(yùn)算速度更快,大有用武之地!
總結(jié)
以上是生活随笔為你收集整理的python蒙特卡洛模拟_用Python实现蒙特卡洛模拟的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: SecureCRT自动化脚本编写
- 下一篇: websocket python爬虫_p