gpt4 book ai didi

numpy - 如何在 GEKKO 中间体中使用 np.log 或 np.exp

转载 作者:行者123 更新时间:2023-12-04 08:01:31 24 4
gpt4 key购买 nike

我正在使用 gekko 求解方程组。作为一个中间步骤,我使用一个将 MV 温度插入以下函数的中间体:

def riedelVP(T, const):
'''Returns Vapor Pressure
INPUTS
:T - Temperature (K)
:const - A, B, C, D, E constants for eqn
OUTPUTS
:Y - Pressure in Pascals'''
# unpack constants
a, b, c, d, e = const

# plug into equation
Y = np.exp(a+b/T+c*np.log(T) + d*T**e)
return Y

当我这样做时,出现以下错误:

我尝试使用 T.valueT.value[0] 作为函数的参数而不是 T。
TypeError: ufunc 的循环不支持 GKVariable 类型的参数 0,它没有可调用的日志方法
如何使用带有 exp 的函数并登录到 gekko 中间体

最佳答案

这种情况下的问题是 np.exp() 函数和 np.log 函数都需要一个浮点型参数,而 gekko 变量是他们自己的类型。如果您使用 gekko 的方法求幂并在函数中取对数,它将起作用。为此,请使用 m.expm.log 方法。在此示例中,我已经使用 m = GEKKO() 创建了一个 gekko 模型,然后我可以创建函数:

def riedelVP(T, const):
'''Returns Vapor Pressure
INPUTS
:T - Temperature (K)
:const - A, B, C, D, E constants for eqn
OUTPUTS
:Y - Pressure in Pascals'''
# unpack constants
a, b, c, d, e = const

# plug into equation
Y = m.exp(a+b/T+c*m.log(T) + d*T**e)
return Y

当函数中出现类型错误时使用 gekko 的类似方法。

关于numpy - 如何在 GEKKO 中间体中使用 np.log 或 np.exp,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/66443655/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com