可以在Pyomo的目标函数中编写一个非线性分段函数吗?

2024-10-01 19:17:16 发布

您现在位置:Python中文网/ 问答频道 /正文

我想用Pyomo来解决一个非线性优化问题。在这方面,我在代码中设计了一个函数作为目标函数,它本身在代码中使用了另一个函数。内部函数是非线性分段函数,定义如下

def U3(x,omega,U_alpha3):
       if x<=omega/U_alpha3:
              return omega*x-U_alpha3/2*x**2
       else:
              return 0.5*omega**2/U_alpha3

但此函数会导致此错误:

TypeError: '<=' not supported between instances of 'IndexedComponent_slice' and 'numpy.float64'

考虑到我的决策变量在x(IndexedComponent_slice)类型中,而omega和U_alpha3是固定参数(即'numpy.float64'类型)


Tags: 函数代码numpy类型目标return定义def

热门问题