【发布时间】:2019-11-21 18:47:03
【问题描述】:
我正在尝试将三次样条曲线拟合到下面的数据点,当我使用 Param(如示例 m.x = m.Param(value=np.linspace(-1, 6)))或使用常量 Const 时,我有点困惑。
import numpy as np
from gekko import GEKKO
xm = np.array([0, 1, 2, 3, 4, 5])
ym = np.array([0.1, 0.2, 0.3, 0.5, 1.0, 0.9])
m = GEKKO()
m.x = m.Param(value=np.linspace(-1, 6))
m.y = m.Var()
m.options.IMODE = 2
m.cspline(m.x, m.y, xm, ym)
m.solve(disp=False)
p = GEKKO()
p.x = p.Var(value=1, lb=0, ub=5)
p.y = p.Var()
p.cspline(p.x, p.y, xm, ym)
p.Obj(-p.y)
p.solve(disp=False)
【问题讨论】:
-
仅供参考:gekko 中有一个新的
Maximize函数,因此您的目标函数可以使用p.Maximize(p.y)而不是p.Obj(-p.y)更具可读性。