2024-06-15 09:17:19 发布
网友
我正在尝试执行一个敏感度分析,我开始学习python,所以我想用python来完成这个任务。我找到了一个名为SALib的包,但我不知道如何实现我自己的等式。 例如,这是我的等式:
SALib
ET = 0,0031*C*(R+209)*(t*(t+15)**-1)
首先,我必须定义我的问题:
在这之后,我必须生成输入样本,但是我如何用我自己的方程生成这些样本呢?也许有人对萨利布有经验,可以帮我。我觉得软件包文档没有什么帮助。在
函数saltelli.sample()将生成一个矩阵,每个列表示在problem中定义的变量,并在{}中定义的相应边界中采样。之后,您可以将模型定义为一个函数,如下所示,并为这些输入计算函数ET()的值。结果是一个函数值的向量,它可以发送给文档(https://github.com/SALib/SALib)中给出的其他SALib函数。在
saltelli.sample()
problem
ET()
from SALib.sample import saltelli from SALib.analyze import sobol def ET(X): # column 0 = C, column 1 = R, column 2 = t return(0.0031*X[:,0]*(X[:,1]+209)*(X[:,2]*(X[:,2]+15))**-1) problem = {'num_vars': 3, 'names': ['C', 'R', 't'], 'bounds': [[10, 100], [3, 7], [-10, 30]] } # Generate samples param_values = saltelli.sample(problem, 10000000, calc_second_order=False) # Run model (example) Y = ET(param_values) # Perform analysis Si = sobol.analyze(problem, Y, print_to_console=True)
函数}中定义的相应边界中采样。之后,您可以将模型定义为一个函数,如下所示,并为这些输入计算函数
saltelli.sample()
将生成一个矩阵,每个列表示在problem
中定义的变量,并在{ET()
的值。结果是一个函数值的向量,它可以发送给文档(https://github.com/SALib/SALib)中给出的其他SALib
函数。在相关问题 更多 >
编程相关推荐