У Gekko есть решатели, которые находят локальные минимумы. Решение, которое оно находит, зависит от того, с чего вы начнете. Это также относится к fsolve или другим решателям уравнений. Единственным исключением являются символические решения, доступные в SymPy, однако для этого необходимо, чтобы уравнения были достаточно простыми, чтобы генерировать аналитическое решение в замкнутой форме. Вот несколько примеров:
http://apmonitor.com/che263/index.php/Main/PythonSolveEquations
Single Root (Числовой раствор):
from gekko import GEKKO
m = GEKKO()
x,y,w = [m.Var(1) for i in range(3)]
m.Equations([x**2+y**2==20,y-x**2==0,w+5-x*y==0])
m.solve(disp=False)
print(x.value,y.value,w.value)
Несколько корней (аналитическое решение):
import sympy as sym
sym.init_printing()
x,y,z = sym.symbols('x,y,z')
c1 = sym.Symbol('c1')
f = sym.Eq(2*x**2+y+z,1)
g = sym.Eq(x+2*y+z,c1)
h = sym.Eq(-2*x+y,-z)
sym.solve([f,g,h],(x,y,z))
Ответ профессора Хеденгрена из BYU из дискуссионной группы по электронной почте.