首页 > 解决方案 > 拉丁超立方抽样

问题描述

LHS 方法提供 0 到 1 之间的采样值。例如,如果我想设置界限,一维值应该是 -0 到 15?我怎样才能在 pyDOE python 中做到这一点?

from pyDOE import *
n = 2
samples = 50

d = lhs(n, samples, criterion='center')
x1 = d[:,0]
x2 = d[:,1]

我的 x1 值应该在 -10 到 10 之间,x2 应该在 1 到 20 之间。

标签: pythonpyomopydoe

解决方案


我想到了

import pyDOE as pyd
bounds = np.array([[-10,10],[1,20]]) #[Bounds]

# print(xbounds)
X = pyd.lhs(2, 100, criterion='centermaximin')

X[:,0] = (X[:,0]*(bounds[0,1]-bounds[0,0])+bounds[0,0])
X[:,1] = (X[:,1]*(bounds[1,1]-bounds[1,0])+bounds[1,0])

推荐阅读