我在“位置:5”中遇到语法错误。我无法找到错误的根源,因为不知道“位置 5”指示的位置。如何通过读取错误代码来识别原始代码中有问题的行?还有,v3 是什么意思?
错误代码
Exception: @error: Model Expression
*** Error in syntax of function string: Invalid element: <boundmethodgkvariable
.dtof1>
Position: 5
v3-(<boundmethodgkvariable.dtof1>)
?
import numpy as np
from gekko import GEKKO
m = GEKKO()
nt = 101
m.time = np.linspace(0,1,nt)
# Variables
x1 = m.Var(value=1)
x2 = m.Var(value=0)
u = m.Var(value=-0.75)
p = np.zeros(nt)
p[-1] = 1.0
final = m.Param(value=p)
# Equations
m.Equation(x1.dt==u)
m.Equation(x2.dt==x1**2 + u**2)
# Objective Function
m.Obj(x2*final)
m.options.IMODE = 6
m.solve()
print(x1[-1], x2[-1])
它应该是x1.dt()
and x2.dt()
代替x1.dt
and x2.dt
。缺少括号导致方程无法正确计算。
一旦解决了这个问题,模型就能正确求解。总的来说,这是一个令人困惑的错误,但修复起来很简单。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)