python-3.x - Gekko优化问题中IMODE的选择

标签 python-3.x gekko

我在看 here imode=3 等效于稳态模拟(我猜 imode=2),但允许额外的自由度。

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

我正在使用 imode=2 进行优化,其中我定义了求解器计算的变量以满足使用 m.Var 和其他使用 m.P​​aram 的约束。我需要对变量进行哪些更改才能使用 imode=3 ?

最佳答案

尼拉德里,

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 的其他信息:
  • https://apmonitor.com/wiki/index.php/Main/OptionApmImode
  • https://apmonitor.com/wiki/index.php/Main/Modes
  • https://gekko.readthedocs.io/en/latest/imode.html

  • 此致,

    约翰·赫登伦

    关于python-3.x - Gekko优化问题中IMODE的选择,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/55895002/

    相关文章:

    gekko - 使用 Gekko 优化,为什么我的模型构建器比我的求解器慢得多?

    optimization - 优化求和函数 - GEKKO

    python-3.x - 使用win32模块有一个透明的Python窗口

    python - 如何验证何时使用 Python 制作副本?

    python - 使用 OR 运算符的 DataFrame UserWarning

    python - 调整图像大小时如何最大程度地减少模糊度?

    python - input() 在 Windows 8 (python 3.3) 中阻止其他 python 进程

    python - GEKKO - 神经网络 - 求解器不工作

    jupyter-lab - 壁虎的最佳平台

    optimization - 使用数组模型函数初始化gekko中的变量