Python 3.x gekko优化问题中IMODE的选择

Python 3.x gekko优化问题中IMODE的选择,python-3.x,gekko,Python 3.x,Gekko,我发现imode=3相当于稳态模拟(我猜imode=2),只是允许额外的自由度 我如何决定使用imode=3而不是imode=2 我使用imode=2进行优化,其中我使用m.Var和其他使用m.Param定义由解算器计算的变量,以满足约束。要使用imode=3,我需要对变量进行哪些更改?Niladri IMODE 2用于多数据点的稳态问题 以下是一个例子: from gekko import GEKKO import numpy as np xm = np.array([0,1,2,3,4,5

我发现imode=3相当于稳态模拟(我猜imode=2),只是允许额外的自由度

我如何决定使用imode=3而不是imode=2

我使用imode=2进行优化,其中我使用m.Var和其他使用m.Param定义由解算器计算的变量,以满足约束。要使用imode=3,我需要对变量进行哪些更改?

Niladri

IMODE 2用于多数据点的稳态问题

以下是一个例子:

from gekko import GEKKO
import numpy as np

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)
这是具有多个数据点的三次样条曲线近似。当您切换到IMODE 3时,它非常相似,但它只考虑模型的一个实例。所有“值”特性应仅具有1个值,例如,当您优化三次样条曲线以找到最大值时

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)
以下是有关IMODE的其他信息:

致以最良好的祝愿


John Hedengren

感谢您在电子邮件讨论组中发布此问题和答案。