包含变量的矩阵方程
x1=x0+px2−1=x1+x0x2=x21
p=1.2
1 from gekko import GEKKO 2 m=GEKKO() 3 p=m.Param(1.2) 4 x=m.Array(m.Var,3) 5 eq0 = x[1]==x[0]+p 6 eq1 = x[2]-1==x[1]+x[0] 7 m.Equation(x[2]==x[1]**2) 8 m.Equations([eq0,eq1]) 9 m.solve() 10 for i in range(3): 11 print('x['+str(i)+']='+str(x[i].value))
还可以做一些修改
1 from gekko import GEKKO 2 m=GEKKO() 3 p=m.Param(1.2) 4 x=m.Array(m.Var,3) 5 eq0 = x[1]==x[0]+p 6 eq1 = x[2]-1==x[1]+x[0] 7 eq2 = x[2]==x[1]**2 #m.Equation(x[2]==x[1]**2) 8 m.Equations([eq0,eq1,eq2]) 9 m.solve(disp=False) 10 for i in range(3): 11 print('x['+str(i)+']='+str(x[i].value))
变量表示方法还可以修改为
1 from gekko import GEKKO 2 m=GEKKO() 3 p=m.Param(1.2) 4 x0,x1,x2=[m.Var() for i in range(3)] 5 eq0 = x1==x0+p 6 eq1 = x2-1==x1+x0 7 eq2 = x2==x1**2 8 m.Equations([eq0,eq1,eq2]) 9 m.solve(disp=False) 10 11 print('x0='+str(x0.value)) 12 print('x1='+str(x1.value)) 13 print('x2='+str(x2.value))
每一个方程还可以单独用Equation表示
1 from gekko import GEKKO 2 m=GEKKO() 3 p=m.Param(1.2) 4 x0,x1,x2=[m.Var() for i in range(3)] 5 m.Equation (x1==x0+p) 6 m.Equation (x2-1==x1+x0) 7 m.Equation (x2==x1**2) 8 m.solve(disp=False) 9 10 print('x0='+str(x0.value)) 11 print('x1='+str(x1.value)) 12 print('x2='+str(x2.value))