Python-GEKKO从入门到精通(一)介绍

1.GEKKO是什么?
GEKKO是一个面向对象的 Python优化库。作为一种微分和代数建模语言,它的编写格式简单直观,通过后台的APMonitor与用于线性、二次、非线性和混合整数规划(LP、QP、NLP、MILP、MINLP)的大型求解器相结合,提供模型构建、分析工具以及模拟和优化求解功能。
2.GEKKO能干什么?
内置有九种运作模型(本质都是非线性模型):
参数估计:模型参数更新(MPU)、滚动时域估计 (EST)、动态序列估计 (SQE)
模拟:稳态模拟 (SS)、动态模拟 (SIM)、动态序列模拟(SQS)
优化:实时优化 (RTO)、非线性控制/动态优化(CTL)、动态序列优化 (SQO)
其中各行中的第一列均属于导数为0的稳态模式,第二列是动态模式,第三列在求解时,在动态性之上又新增了序列的概念。
通过使用GEKKO,能调用Linear programming (LP)、Quadratic programming (QP)、Quadratically constrained quadratic program (QPQC)、Nonlinear programming (NLP)、Mixed integer linear programming (MILP)、Mixed integer nonlinear programming (MINLP)等诸多求解算法对上述类型的问题进行求解,并可通过调节 DIAGLEVEL 的取值(0-10)来决定输出求解结果内容的多少。
3.为什么要用GEKKO?
免费使用,功能强大
在农业、电力、能源、交通、化工、机械、自动化等领域有着广泛的应用
4.怎么使用GEKKO?
安装:
pip install gekko
测试代码:
from gekko import GEKKO
m = GEKKO()
eq = m.Param(value=40)
x1,x2,x3,x4 = [m.Var(lb=1, ub=5) for i in range(4)]
x1.value = 1
x2.value = 5
x3.value = 5
x4.value = 1
m.Equation(x1*x2*x3*x4>=25)
m.Equation(x1**2+x2**2+x3**2+x4**2==eq)
m.Minimize(x1*x4*(x1+x2+x3)+x3)
m.options.IMODE = 3
m.solve()
print('')
print('Results')
print('x1: ' + str(x1.value))
print('x2: ' + str(x2.value))
print('x3: ' + str(x3.value))
print('x4: ' + str(x4.value))
5.GEKKO代码入门教学?
敬请期待下一期~