python - 适用于 Python 的 Gekko 优化套件 - if3 始终 <0

标签 python gekko

我正在使用 python 3.8.10 和 gekko 1.0.1。我尝试使用 model.if3 来检查变量是否与内部 -model.abs3 相等。我观察到一个我无法解释的奇怪行为,这就是为什么我运行来自 https://gekko.readthedocs.io/en/latest/model_methods.html 的示例代码的原因。 (if3):

import numpy as np
import matplotlib.pyplot as plt
from gekko import GEKKO
m = GEKKO(remote=False)
p = m.Param()
y = m.if3(p-4,p**2,p+1)

# solve with condition<0
p.value = 3
print(p.value)
m.solve(disp=False)
print(y.value)

# solve with condition>=0
p.value = 5
print(p.value)
m.solve(disp=False)
print(y.value)

但我得到了以下输出:

3
[9.0]
5
[9.0]

如有任何帮助,我将不胜感激!

最佳答案

我将gekko 1.0.1 升级到gekko 1.0.2,这解决了我的问题。 也许我的缓存变量有问题或升级修复了该问题。

关于python - 适用于 Python 的 Gekko 优化套件 - if3 始终 <0,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/70381444/

相关文章:

python - Gekko 找不到小问题的解决方案

gekko - 减少 GEKKO 中的总解析(总系统)时间

python - 计算所有部门列的累计和

python - 通过 Python API 提交的 BigQuery 作业历史记录

python - 在 Python 中使用命令模式执行/撤消

python - Gekko 最优控制。如何创建多个终止目标/条件?

python - Sublime如何循环完成?

python 3 url从文件和列表连接

python-3.x - 如何定义时间相关的离散参数?

Gekko MPC Controller - 在每个时间步更新参数