【发布时间】:2021-07-29 22:03:03
【问题描述】:
我想使用 Pyomo 来解决使用 Ipopt 的非线性优化。在这方面,我在我的代码中设计了一个函数作为目标函数,它本身在其中使用另一个函数。内函数是非线性分段的,定义如下。
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”类型)
【问题讨论】: