6

我在“位置: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])
4

1 回答 1

5

它应该是x1.dt()andx2.dt()而不是x1.dtand x2.dt。缺少括号导致无法正确评估方程。

一旦解决了这个问题,模型就可以正确求解。总的来说是一个令人困惑的错误,但一个简单的修复。

于 2019-11-21T19:16:57.437 回答