使用SALIb中的saltelli.sample和具有整数值的变量

2024-06-01 13:11:13 发布

您现在位置:Python中文网/ 问答频道 /正文

我想为Sobol分析创建一个Saltelli样本。为此,我使用了SALib package

要创建示例,需要执行以下操作:

from SALib.sample import saltelli
problem = {
    'num_vars': 3,
    'names': ['x1', 'x2', 'x3'],
    'bounds': [[-3, 10],
               [-3.14159265359, 3.14159265359],
               [-3.14159265359, 3.14159265359]]
}

其中,“num_vars”是在“bounds”中给出边界的变量数

我希望变量x1的值都是整数,但我一直得到实数。运行saltelli.sample时是否有方法指定类型

谢谢


Tags: samplefromimport示例packagevarsnum样本
1条回答
网友
1楼 · 发布于 2024-06-01 13:11:13

我认为没有一种简单的方法来指定整数而不是浮点数。采样方法使用Sobol序列生成(0,1)上的浮点,然后将这些浮点乘以边界

另一种方法是修改生成的样本。例如,您可以将第一个边界修改为[-3.5,10.5],然后对该列进行四舍五入以生成在-3和10之间的整数上均匀分布的整数值。然后可以在将来的计算中使用舍入值,而不会出现问题,因为整个列都使用相同的方法进行转换

problem = {
    'num_vars': 3,
    'names': ['x1', 'x2', 'x3'],
    'bounds': [[-3.5, 10.5],
               [-3.14159265359, 3.14159265359],
               [-3.14159265359, 3.14159265359]]
}

相关问题 更多 >