包含变量的矩阵方程

x1=x0+px21=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))
View Code

变量表示方法还可以修改为

 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))
View Code

每一个方程还可以单独用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))
View Code

 

posted @ 2019-04-18 09:38  华小电  阅读(415)  评论(0编辑  收藏  举报