|||
在2006年,看到一篇文献中介绍,使用蒙特卡洛方法与模型结合进行品种(株型)设计。我就开始注意这种方法。今天我使用一个小例子说明一下这种方 法究竟是个什么东东。
蒙特卡洛方法也称为随机模拟方法或统 计试验方法,它的基本思想是,为了判别预测对象的未来发展,首先建立一个概率模型或随机过程,使它的参数等于问题的解,然后通过对模型,或过程的观察抽样 试验,来计算所求参数的统计特征, 最后给出所求解的近似值。
摘自 应用蒙特卡洛方法对黑龙江创业农场水稻单产变化的预测, 生物数学学报, 2003
我们使用蒙特卡洛方法估算一下油田的可采储量。
第一步:分析影响因子,获取估算模型。
第二步:分析估算模型参数的分布类型及取值范围。
第三步:借助工具,实现随机抽样,对模型求解。
在这里我们使用的是R语言,你也可以使用SAS语言,Matlab等,也可以使用Excel或蒙特卡洛专用软件。
##加载软件包
require(Runuran)
##含油面积 A 均匀分布
A <- runif(5000,min=1500,max=3000)
##水饱和度Swi 均匀分布
Swi <- runif(5000,min=0.15,max=0.25)
##原油体积系数Boi 均匀分布
Boi <- runif(5000,min=1.1,max=1.3)
##孔隙度(%)phi 三角分布
phi <- urtriang(n=5000,a=0.13,m=0.20,b=0.26,lb=0.13,ub=0.26)
##采收率RF 三角分布
RF <- urtriang(n=5000,a=0.3,b=0.45,m=0.4,lb=0.3,ub=0.45)
##油层厚度h 三角分布
h <- urtriang(n=5000,a=50,b=130,m=100,lb=50,ub=130)
## 容积法估算可采储量
Np <- 7758*A*h*phi*(1-Swi)*RF/Boi
第四步:对模型结果进行统计分析
注:在R语言中,我找到三个三角分布随机数生成函数,分别在软件包CircStats、Runuran和mc2d中。
require(CircStats)
rtri(n,r)
require(Runuran)
urtriang(n=,a=,b=,m=,lb=a,ub=b)
require(mc2d)
triangular(n,min=,mod=,max=)
install.packages(“mc2d”)
本例选自:刘清志,马二领。用Excel实现油气可采储量估算的蒙特卡洛模拟分析,技术经济,2009,28(9):63-87
Archiver|手机版|科学网 ( 京ICP备07017567号-12 )
GMT+8, 2025-1-5 10:11
Powered by ScienceNet.cn
Copyright © 2007- 中国科学报社