python - 是否可以使用 python 执行参数敏感性分析?

标签 python parameters statistics

这可能吗?我有一个基本方程式:

Q = (pi*(Ta-Ts))/(((1/ha*Do))+(1/(2*k))*math.log(Do/Di)) * L

where; 
ha = 8.14
k = 0.0026
Do = 0.2
Di = 0.003175
L = 0.25
F = 0.0704
Ta = 293
Ts = 113
pi = 3.14159265

我想看看一些变量是如何影响最终输出的(并建立一个变量敏感性表)。我已经以图形格式对此进行了管理,但想要一些描述性统计数据。

例如,我想将 Do(外径)作为范围 np.arange(0.1,2,100) 并保持其他变量不变。

我有以下代码来创建一些这样的图:

def enthalpy_mod1(ambient_temp, LNG_temp, Flow):

    ha = 8.14
    k = 0.0026
    Do = 0.2
    Di = 0.003175
    L = 0.25
    F = Flow
    Ta = ambient_temp
    Ts = LNG_temp
    pi = 3.14159265
    Q = (pi*(Ta-Ts))/(((1/ha*Do))+(1/(2*k))*math.log(Do/Di)) * L

    e = (Q*3600)/F

    results.append(e) # append the result to the empty list
    df['Enthalpy Result']= e
    plt.plot(Flow, e)
    plt.rcParams.update({'font.size': 12})
    plt.annotate('Flow rate effects', xy =(0.1,14000))
    plt.show()
    print df

print Flow_mod(df['Temp'], df['LNG'], df['Flow'])

ambient_temp = [293,293,293,293,293,293,293,293,293,293,293,293,293,293,293,293,293,293]
Flow = np.linspace(0.04, 0.2, 18)
LNG_range = [113,113,113,113,113,113,113,113,113,113,113,113,113,113,113,113,113,113]

results = []

并将结果放入数据框中......并以这种方式绘制。

InsulationThicknessEffects

最佳答案

敏感性分析本身就是一种方法,所以它应该独立于语言(当然你知道,只是说明一点)所以你可以自己用 python 实现算法。但是当你问到 python 时,是的,人们已经做到了。看看SALib ,一个用于使用各种不同方法执行全局敏感性分析的 Python 库。

您描述的方法一次移动一个参数。这是局部敏感性分析,不会让您深入了解变量之间的交互作用,也无法衡量上下文中的非线性影响。鉴于您的方程非常简单,这可能无关紧要,但这在更复杂的模型中非常重要。

关于python - 是否可以使用 python 执行参数敏感性分析?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28340173/

相关文章:

python - 使用 NumPy 对大型数组进行多次采样的有效方法?

javascript - Google Scribe 是如何工作的?

python - Biopython 从变量而不是文件解析

python - OpenCV VideoCapture 在 Flask 项目中不起作用,但在基本示例中起作用

python - 在 pandas 中与 NaT 连接时保持一致的数据类型和时区

powershell - 将引用的参数传递给 PowerShell 脚本

python - 在 python 中优化 DFS

MySQL ALTER TABLE 在存储过程中带有参数

C : double pointer passed as parameters comes back empty

java - Apache Math : calculate the confidence interval in a t-test, 有两个样本