gekko - 使用 m.abs3() 时出现 0
问题描述
在时间序列分析中使用 m.abs3() 时,初始值的结果值为 0。这进一步导致后续计算中的“除以 0”问题。
例如,在脚本中,对于 的值x = [-0.010292872139, -0.013621207394, -0.013666766692, -0.013712305714, -0.013757829097, -0.013803253697, -0.013848595166, -0.013893769488, -0.013943077385, -0.013987013738, -0.014030702679]
,m.abs3(x)[0.0, 0.013621207394, 0.013666766692, 0.013712305714, 0.013757829097, 0.013803253697, 0.013848595166, 0.013893769488, 0.013943077385, 0.013987013738, 0.014030702679]
作为结果返回。
我已尝试将 m.if3(x,-x,x) 作为此处建议的解决方法-如何使用 Python Gekko 解决绝对值 abs() 目标?但结果仍然与上述 m.abs3(x) 相同。
您能否让我知道导致这种情况发生的原因以及有没有办法解决这个问题。非常感谢。
解决方案
解决此问题的一种方法是将初始猜测更改为y
默认值以外的值0
。这是一个示例脚本,展示了如何y
使用y.value=1
.
from gekko import GEKKO
m = GEKKO()
x = m.Param(-1)
y = m.abs3(x)
# initialize y to value 1
y.value = 1
m.Minimize((x/y)**2)
m.solve()
推荐阅读
- javascript - 将小数转换为厘米或英寸后有条件地格式化小数
- python - 如何在熊猫数据框中的多列中选择最大值和最小值?
- javascript - 有没有办法使某些字符串或值与 JS 中的其他字符串或值等效?
- javascript - React Native:当您滑回已安装的屏幕时如何触发事件?
- reactjs - 使用 Spring 单点登录
- html - 如何让 Tab 键执行我期望的操作
- python - 如何在scrapy中添加进度条以下载视频?
- arrays - Excel VBA 工作表函数索引与数组匹配
- php - 如何在 foreach 循环中返回过滤信息
- rust - Rust 是否将直接切片隐式转换为切片的引用?