我试图用gekko解决Python中的一个优化问题,其中一个变量在每个时间步上都有一个随机值,但我无法使用返回随机数的gekko函数.

在文档页面(http://t-t.dk/gekko/docs/user-manual/functions.htm)之后,函数rnorm返回"一个正态分布中的随机数,并提供均值和方差".我使用它如下所示:

x = m.Var(value=0)
m.Equation(x == 5.*m.rnorm(0, 1))

前提是

m = GEKKO()

但我收到以下错误消息:

AttributeError:"GEKKO"对象没有属性"rnorm"

我想知道我是否遗漏了什么,或者是否有其他方法获得随机数.

推荐答案

您提供的文档链接指向不同的gekko软件:

Gekko Timeseries and Modeling Software是一个免费的开源软件系统,用于管理和分析Timeseries数据,以及解决和分析大规模经济模型.参见Gekko主页:www.t-t.dk/gekko.在Gekko版本概述页面上阅读有关不同Gekko版本状态的更多信息.

Python pip install gekko中的Gekko优化套件在Wikipedia articleRead the Docs documentation中进行了描述.

GEKKO是一个Python软件包,用于机器学习和优化混合整数和微分代数方程.它与线性、二次、非线性和混合整数规划(LP、QP、NLP、MILP、MINLP)的大规模解算器相耦合.操作模式包括参数回归、数据协调、实时优化、动态仿真和非线性预测控制.GEKKO是一个面向对象的Python库,用于促进APMonitor的本地执行.

这两个软件包都可以分析时间序列数据.numpy.random.randn()功能可与gekko一起使用.

from gekko import GEKKO
import numpy as np
m = GEKKO(remote=False)
p = m.Param()
x = m.Var()
m.Equation(x==5*p)

for i in range(10):
    p.value = np.random.randn()
    m.solve(disp=False)
    print(x.value[0],p.value[0])

这将从正态平均零分布中抽取p个样本,使用不同的值解决优化问题10次.

Python相关问答推荐

Class_weight参数不影响RandomForestClassifier不平衡数据集中的结果

使用新的类型语法正确注释ParamSecdecorator (3.12)

Django mysql图标不适用于小 case

ModuleNotFound错误:没有名为flags.State的模块; flags不是包

运行总计基于多列pandas的分组和总和

如何使用LangChain和AzureOpenAI在Python中解决AttribeHelp和BadPressMessage错误?

Pandas - groupby字符串字段并按时间范围 Select

如果值不存在,列表理解返回列表

Python虚拟环境的轻量级使用

Python Pandas获取层次路径直到顶层管理

在两极中过滤

从Windows Python脚本在WSL上运行Linux应用程序

如何在PySide/Qt QColumbnView中删除列

python panda ExcelWriter切换动态公式到数组公式

OpenCV轮廓.很难找到给定图像的所需轮廓

将一个双框爆炸到另一个双框的范围内

使用tqdm的进度条

查找数据帧的给定列中是否存在特定值

使用Scikit的ValueError-了解

在使用ROLING()获得最大值时,是否可以排除每个窗口中的前n个值?