以下面的非线性方程为例:
x+2y=0
x^2+y^2=1
很明显,方程有 2 个根。
但是,我使用 GEKKO 只能获得 1 个 root,更改 的初始值x,y
可以得到另一个。
from gekko import GEKKO
m = GEKKO()
# first solution
x,y = [m.Var(1) for i in range(2)]
m.Equations([x+2*y==0,x**2+y**2==1])
m.solve(disp=False)
print(x.value,y.value)
# second solution
x.value=-1
y.value=-1
m.solve(disp=False)
print(x.value,y.value)
Solutions:
[0.894427191] [-0.4472135955]
[-0.894427191] [0.4472135955]
如何同时获得所有根?