Python 使用Gekko中的条件(if)开关组合两个函数

Python 使用Gekko中的条件(if)开关组合两个函数,python,conditional-statements,mathematical-optimization,gekko,Python,Conditional Statements,Mathematical Optimization,Gekko,对于低温(300-1000K)和高温(1000-3000K),我有两个热力学关系。如果我想在Gekko中使用这两种方法,我如何将它们组合成一个单一的相关性,用于优化问题 下面是一段Python代码,用于计算300K到3000K之间的低温或高温关系 将numpy导入为np 将matplotlib.pyplot作为plt导入 T=np.linspace(300.03000.0,50) a_lo=np.数组([5.15,-1.37E-02,4.92E-05,-4.85E-08,1.67E-11])

对于低温(300-1000K)和高温(1000-3000K),我有两个热力学关系。如果我想在Gekko中使用这两种方法,我如何将它们组合成一个单一的相关性,用于优化问题

下面是一段Python代码,用于计算300K到3000K之间的低温或高温关系

将numpy导入为np
将matplotlib.pyplot作为plt导入
T=np.linspace(300.03000.0,50)
a_lo=np.数组([5.15,-1.37E-02,4.92E-05,-4.85E-08,1.67E-11])
a_hi=np.数组([7.49E-02,1.34E-02,-5.73E-06,1.22E-09,-1.02E-13])

i_lo=np。其中(np.logical_和(T>=300.0,T=1000.0,T有几种方法可以在优化或模拟问题中使用条件函数。第一种方法不精确,但可能是一种合适的近似方法,使用三次样条线在采样点之间创建插值(请参见方法#1)第二种方法是精确的,但需要一个带有互补约束的数学程序(MPCC)和
if2()
,或者一个带有
if3()
(请参见方法#2)的整数开关变量。这两种方法在上的设计优化课程页中讨论

将numpy导入为np
将matplotlib.pyplot作为plt导入
从gekko进口gekko
#CH4热容参数(LO:300-1000K,HI:1000K-3000K)
a_lo=np.数组([5.15,-1.37E-02,4.92E-05,-4.85E-08,1.67E-11])
a_hi=np.数组([7.49E-02,1.34E-02,-5.73E-06,1.22E-09,-1.02E-13])
Rg=8.314#J/mol-K
m=GEKKO()
#方法1:三次样条
def cp1(T):

如果T>=300、T1000和T,有几种方法可以在优化或模拟问题中使用条件函数。第一种方法不精确,但可能是通过使用三次样条曲线在采样点之间创建插值的合适近似值(请参见方法#1)第二种方法是精确的,但需要一个带有互补约束的数学程序(MPCC)和
if2()
,或者一个带有
if3()
(请参见方法#2)的整数开关变量。这两种方法在上的设计优化课程页中讨论

将numpy导入为np
将matplotlib.pyplot作为plt导入
从gekko进口gekko
#CH4热容参数(LO:300-1000K,HI:1000K-3000K)
a_lo=np.数组([5.15,-1.37E-02,4.92E-05,-4.85E-08,1.67E-11])
a_hi=np.数组([7.49E-02,1.34E-02,-5.73E-06,1.22E-09,-1.02E-13])
Rg=8.314#J/mol-K
m=GEKKO()
#方法1:三次样条
def cp1(T):
如果T>=300和T1000以及T