问题标签 [gekko]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
1 回答
531 浏览

python - Gekko 非线性优化,目标函数中的错误

函数 'def gekko_obj(x)' 适用于任何 x 值。

但是,当被 m 调用为 Gekko 目标函数时,它会失败。对象 (gekko_obj (x)) 。

文件“/anaconda3/lib/python3.6/site-packages/spyder/utils/site/sitecustomize.py”,第 710 行,在运行文件 execfile(文件名,命名空间)中

文件“/anaconda3/lib/python3.6/site-packages/spyder/utils/site/sitecustomize.py”,第 101 行,在 execfile exec(compile(f.read(), filename, 'exec'), namespace)

文件“/Users/swatisachan/Desktop/Python files/Optimization /BRB optimization by GEKKO1.py”,第 451 行,在 m.Obj(gekko_obj(x))

文件“/Users/swatisachan/Desktop/Python files/Optimization /BRB optimization by GEKKO1.py”,第 444 行,在 gekko_obj Data_Transformation(RV)

如果 L1[i][j] > RV[k],Data_Transformation 中的文件“/Users/swatisachan/Desktop/Python files/Optimization /BRB optimization by GEKKO1.py”,第 53 行:

文件“/anaconda3/lib/python3.6/site-packages/gekko/gk_operators.py”,第 25 行,在len 返回 len(self.value)

文件“/anaconda3/lib/python3.6/site-packages/gekko/gk_operators.py”,第 122 行,在len 返回 len(self.value)

TypeError:“int”类型的对象没有 len()

数据转换函数为:

我已经发布了部分代码。

0 投票
1 回答
628 浏览

javascript - 简单的node.js修改,如何判断一个变量是递增还是递减?

问题在技术上是关于 Javascript (node.js),特别是使用它编码的Gekko软件。我正在尝试对其一种交易策略进行非常简单的修改:MACD。涉及的文件有:

MACD 配置文件:gekko/config/strategies/MACD.toml

MACD 指标文件:gekko/strategies/indicators/MACD.js

最后,要修改的文件,MACD 策略:gekko/strategies/MACD.js

当所有这些条件都成立时,此 MACD 策略建议买入:

  • macddiff > this.settings.thresholds.up
  • this.trend.duration >= this.settings.thresholds.persistence

并且在相反的情况发生时建议卖出:

  • macddiff < this.settings.thresholds.up
  • this.trend.duration >= this.settings.thresholds.persistence


好的,我需要的修改是:

  • 一种新的买入条件:当实际的 macddiff 值大于其直接的先前值时

  • 一种新的卖出条件:当实际 macddiff 值 < 小于其前一个值时


例如,假设 15 分钟的蜡烛棒:

如何才能做到这一点?必须对gekko/strategies/MACD.js文件进行哪些修改?请提供包含完整修改的完整文件。


Gekko 论坛中的另一个答案可能是实用的,但是......不幸的是我无法正确理解它。

提前致谢!

0 投票
3 回答
3065 浏览

python - 如何在 Python 的 Gekko 优化器中使用数组

gekko python我试图通过使用列表array x[]而不是变量来转换优化器中的示例x1...... x4这是给出结果的代码,但我认为它不正确

请任何人都可以帮助我了解如何在gekko. 在我看来,这似乎不太优雅,我想知道是否有一种使用 Array() 函数而不是 Var() 的方法。我不知道我们如何以及何时可以使用 Array() 函数。

0 投票
1 回答
1586 浏览

python-3.x - 在 python 中使用 numpy 创建数学方程

我想使用 numpy 数组乘法创建方程,即我想将所有变量保留在一个数组中,并将其系数保留在其他数组中,并将两者相乘以产生一个表达式,以便我可以使用 GEKKO 的 m.Equation() 方法。我尝试了上述代码但失败了,请让我知道如何实现我的目标。

“它失败了”我的意思是它只是给出了一个错误,并没有让我使用 x*y==1 作为 GEKKO 中可用的 m.Equation() 方法中的方程。我的目标是我想将变量保留在一个数组中,并将它们的系数保留在另一个数组中,然后将它们相乘以获得数学方程,用作 m.Equation() 方法的输入。

我得到的错误如下

0 投票
1 回答
332 浏览

python - Gekko 优化包和 numpy 反函数

我正在使用 Gekko 为一组反应动力学选择 A 最优实验。目标函数是最小化迹线(inv(Z'Z)),其中 Z 是通过围绕其参数线性化 ODE 计算得出的尺度敏感度矩阵。如您所见,目标函数涉及 Z'Z 的倒数。我使用了 numpy(甚至 scipy)逆函数,但遇到以下错误:“没有找到与指定签名匹配的循环,并且为 ufunc inv 找到了强制转换”

我真的不知道怎么了。如果没有反函数,优化器可以正常工作。请,请帮助我。我被这个问题困扰了两个多星期。

代码如下:

0 投票
1 回答
549 浏览

python - python自定义函数中使用GEKKO变量的问题

我尝试在 python 的自定义函数中使用 GEKKO 变量。但是总是有一些我找不到原因的恼人的错误。你能帮我一个忙吗?

整个代码太长了。所以我在这里只挑了重要的几行来说明问题。

错误如下:

0 投票
1 回答
497 浏览

optimization - Scipy.optimize.minimize 关于轨迹优化(成本函数最小化)

我在这里发布了一个问题,询问如何解决这个问题:

使用 scipy.optimize.minimize 对“火箭”进行轨迹优化

理想情况下,我只想最小化最终时间,但我无法让优化器将时间附加到可以正确调整的变量上,所以我决定暂时尝试最小化 u^2。

这是代码:


代码运行但优化器失败。这是输出中的错误。

似乎在一定数量的迭代中没有满足约束。我应该切换目标函数以包含最终速度和最终位置吗?我尝试了不同的步长,但没有使用相同的退出代码。

有没有更好的方法可以将此功能用于我想要得到的东西?我试图在从 t0 到 t_f 的整个间隔内获取控制向量 u(t),这样我就可以将这些命令发送到火箭以进行最佳控制。现在我已经将优化简化为单轴,只是为了学习如何使用该函数。但正如你所见,我没有成功。

类似的示例将非常有帮助,我对其他优化方法持开放态度,只要它们是数字的,并且相对较快,因为我计划最终将其作为模型预测控制器实时实现。

0 投票
2 回答
581 浏览

python - Gekko 非线性优化,约束函数评估 if 语句中的对象类型错误

我正在尝试解决非线性优化问题。我通过创建下面的代码复制了我的问题。Python 返回TypeError: object of type 'int' has no len(). 如何在约束函数中包含 IF 语句?

控制台打印以下内容:

-

-

我希望 GEKKO 在约束中使用 IF 语句运行,我不关心代码中的优化问题是否有解决方案。先感谢您。

0 投票
1 回答
52 浏览

conditional-statements - 壁虎的 sign3 和 abs3 返回什么?

我有一个变量,我希望基于中间体的符号为 1 或 0。我可以使用基于符号返回 1 或 -1 的 sign2 并执行操作以将其变为 0 或 1。但是,当我探索时,我注意到 sign3 和 abs3 包含一个带有符号/绝对值的二进制变量。这些函数是否返回类似 [signum/absolute value, 0/1] 的列表?

0 投票
1 回答
242 浏览

gekko - 使用“过去”值定义 GEKKO 方程中的当前值

我正在编写 GEKKO 方程来确定车辆的齿轮箱比,这取决于车辆先前的导数。有没有办法将一个变量设置为另一个变量的时移值?

前任:

v=0,[1,2,3,4,5]

shift_v=[0,1,2,3,4]

其中方括号是地平线,v 是由方程定义的状态变量。