У меня есть ошибка в программе Python Gekko, которая говорит, что есть проблема с уравнением. Я знаю, что есть два решения этой проблемы, когда единичный круг пересекает линию.
![enter image description here](https://i.stack.imgur.com/Bosjt.png)
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()
Я могу получить решение, включив уравнения в качестве целевой функции, но решающий IPOPT сообщит x=0, y=0
, если я дам это начальное предположение. Когда я угадываю 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?