“最后的方法”——附Python代码

2020-09-18 20:41 BalMind团队

拉丁超立方抽样是一种分层抽样,在蒙特∙卡罗抽样方法的基础上对采样策略进行了改进,从而做到在保持统计显著性的同时减小采样规模。


[为何称之为“最后的方法”?]

这种抽样方法是在解析方法和数值方法解决问题无效时,可以考虑采用的方法,它可以解决什么问题?最为经典的就是,它可以利用“随机实验”来计算圆周率

#1/4圆import random,math,timestart_time = time.perf_counter()s = 1000*1000hits = 0for i in range(s):    x = random.random()    y = random.random()    z = math.sqrt(x**2+y**2)    if z<=1:        hits +=1
PI = 4*(hits/s)print(PI)end_time = time.perf_counter()print("{:.2f}S".format(end_time-start_time))----------结果如下:----------3.141340.59S

通过多次撒点,模拟概率,求面积,而是否在圆内,可以通过到圆心的距离求解,利用计算机的运算速度,可以很快求出,即使1000万次,也只需要6秒左右。

[基本思想]

通过抓住事物运动的几何数量和几何特征,利用数学方法来加以模拟,即进行一种数字模拟实验。它是以一个概率模型为基础,按照这个模型所描绘的过程,通过模拟实验的结果,作为问题的近似解

[主要步骤]
1、构造或描述概率过程;
2、实现从已知概率分布抽样;
3、建立各种估计量

[优点]
1、简单,省却了繁复的数学报导和演算过程,使得一般人也能够理解和掌握;
2、快速,借助计算机技术快速求解。

[Python代码:引入库及参数]

如前正态分布的抽样博客。
相对于生成生态分布随机变量的抽样方法及代码,仅仅需要改变生成部分即可,故本文仅仅展示了修改部分代码,其他部分请参见博文《对应于正态分布的拉丁超立方抽样

[Python代码:生成(具有对数正态分布的随机变量)参数的随机数]
# s=sigma,loc=0,scale = exp(mu)mu= 6.1190751666963002237320209725491sigma= 0.07419776239466247091008367627108 random_state=333 #伪随机数器的“种子” rdm = RandomState(random_state)#=======j代表一个区域一个区域循环---(等概率区域)for j in range(N): #设置等概率(=1/N)区域 #X为正态分布,mu是均值,sigma是标准差,且exp(X) = Y,就是lnY~N(mu,sigma^2),即Y是对数正态分布,其参数s = sigma and scale = exp(mu) e1 = st.lognorm.ppf(j*d,sigma,loc=0,scale=math.exp(mu)) e2 = st.lognorm.ppf((j+1)*d,sigma,loc=0,scale=math.exp(mu)) emp[j]=e2 s = rdm.lognormal(mu, sigma) #如果生成的随机数在e1和e2之间即满足了符合要求分布的所在区域的随机数 #引入while循环,如果满足条件将一直执行下去,若不满足才会跳出循环 while s<e1 or s>e2: #基于伪随机数器的正态分布 s = rdm.lognormal(mu, sigma) temp[j] = s#shuffle(x)---现场修改序列,改变自身内容。(类似洗牌,打乱顺序)np.random.shuffle(temp)
for j in range(N): result[j, 2] = temp[j] e[j, 2] = emp[j]

[Python代码:将生成的随机数输出到Excel中]

如前正态分布的抽样博客;注意参数个数D的变化对代码的影响。

[Python代码:将生成的随机数输出到图像中]

如前正态分布的抽样博客;注意参数个数D的变化对代码的影响。


附录1

如有问题,可以在公众号菜单栏寻找佐佑询问。

附录2
BalMind还有更多软件,我们整理了丰富的免费共享资源:免费的考研+考证(包含公考)+crack软件+外刊+知识平台+学习资料+电子书+影视+游戏等,助同学们一臂之力,欢迎大家扫描小程序二维码(见上方文中)或登录网站(网址见附录4)查看。
资源获取步骤
① 打开BalMind网站→点击RESOURCES→查找相关资源→关注“佐佑思维”或“爱读学术”公众号→回复“免费”→按要求分享图片→回复“截图+资源名称”领取资源;

② 关注“佐佑思维”或“爱读学术”公众号→点击“资源目录”→进入BalMind资源库小程序查找相关资源→在“佐佑思维”或“爱读学术”公众号后台回复“免费”→按要求分享图片→回复“截图+资源名称”领取资源。

附录3
“我不想单打独斗了”,
如果你的内心独白是这样的,那么欢迎你扫描下方二维码,进入BalMind学术交流微信群。

P.S. 如群码已过期,请关注“佐佑思维”或“爱读学术”公众号,回复“学术交流群”获取最新的群二维码进群。
附录4
如果你还为下载免费学术文献而苦恼,不要担心,我们为大家备上了详细的教程
请点击文献下载方法查看。
附录5
图片有参考网络,侵权删
昵称:
内容:
验证码:
提交评论
评论一下