【发布时间】:2021-12-14 02:46:15
【问题描述】:
我正在尝试通过 GEKKO 建模和解决非线性优化问题。 目标函数如下:
m.Minimize(k*(w1*abs(x0-L10)+w2*abs(x1-L20))+β*Dindf[0]*(w1*alpha_beta(x0)+w2*alpha_beta(x1)+w1***alpha_beta**(x2)+w2*alpha_beta(x3)) +\
k*(w1*abs(x2-x0) + w2*abs(x3-x1)+w1*abs(x4-x2) + w2*abs(x5-x3)))
问题是我需要 alpha_beta(x) 函数(写入决策变量,如下所示)是一个段形式,我该如何编写这个函数来解决这个问题?
def alpha_beta(x):
a = 0.0019727939
b = 0.0078887
Lmin, Lnom, Lmax = 0.8035, 2.3811, 3.084
return np.piecewise(x, [np.logical_and(Lmin <= x, x < Lnom),
np.logical_and(Lnom <= x, x <= Lmax)],
[lambda x: a * ((x - Lnom)**2) + 0.006226,
lambda x: b * ((x - Lnom)**2) + 0.006226, 0])
非常感谢!
【问题讨论】:
标签: python optimization gekko