我在 Python Gekko 程序中有一个错误,说方程有问题。我知道这个问题有两种解决方案,单位圆与直线相交。
from gekko import GEKKO
m = GEKKO()
x = m.Var()
y = m.Var()
m.Equation(x**2+y**2=1)
m.Equation(x=y)
m.solve()
当我把方程式放在一起时,它给出了不同的错误SyntaxError: invalid syntax
。
from gekko import GEKKO
m = GEKKO()
x = m.Var()
y = m.Var()
m.Equations([x**2+y**2=1,x=y])
m.solve()
我可以通过将方程作为目标函数来获得解决方案,但x=0, y=0
如果我给出初始猜测,求解器 IPOPT 会报告。当我猜x=1, y=1
它给出了正确的解决方案之一时x=0.707, y=0.707
。我想让求解器强制执行那些硬(非软)约束。
m.Obj((x**2+y**2-1)**2)
m.Obj((x-y)**2)
我该怎么做才能用 Python Gekko 解决这个问题?