我正在使用 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/