欢迎光临散文网 会员登陆 & 注册

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

2023-02-20 14:06 作者:迷路了upup  | 我要投稿


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代码入门教学

敬请期待下一期~

Python-GEKKO从入门到精通(一)介绍的评论 (共 条)

分享到微博请遵守国家法律