python - 使用来自 SALIb 的 saltelli.sample 和具有整数值的变量
问题描述
我想为 Sobol 分析创建一个 Saltelli 样本。为此,我使用SALib 包。
为了创建示例,需要执行以下操作:
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 时指定类型。
谢谢
解决方案
我认为没有一种简单的方法可以指定整数而不是浮点数。采样方法使用 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]]
}
推荐阅读
- python-3.x - 使用 .pack 的状态栏没有超出我的 .grid 框架
- javascript - 如何根据时间自动更改 CSS 类?
- ios - 'NSApp' 在 Mac 的 UIKit 中不可用:如何在 macOS 上的 iOS 应用程序中嵌入仅 Mac 框架?
- python - 无法从“a class”的beautifulsoup 中获取href
- rest - 使用 Flask 创建端点参数的约定?
- javascript - 当我为视频元素指定 css 类名时,为什么我的 html 会被覆盖?
- javascript - javascript中的嵌套MongoDB查询
- html - 我将如何使用绝对和相对标签来定位 CSS div
- javascript - 为什么 ES6 从一个模块中导入所有函数,而不仅仅是请求的函数?
- xslt - 如何使用 XSLT 计算输出节点的数量?