[英]Summation of array variable in gekko
我嘗試了這段代碼,但似乎有問題。 通常 print (z.value) 必須返回一個數字,但在我的情況下它返回一個數組。 有人可以幫忙嗎
from gekko import GEKKO
import numpy as np
import matplotlib.pyplot as plt
xm = np.array([0,1,2,3,4,5])
ym = np.array([0.1,0.2,0.3,0.5,0.8,2.0])
m = GEKKO()
x = m.Param(value=xm)
a = m.FV()
a.STATUS=1
y = m.CV(value=ym)
y.FSTATUS=1
z = None
m.Equation(y==0.1*m.exp(a*x))
z = m.Intermediate(sum([y[i] for i in range(len(y))]))
m.options.IMODE = 2
m.solve(disp=False)
print(z.value)
print(y.value)
使用z=m.vsum(y)
在 IMODE IMODE=2
的數據集中創建變量的總和。
from gekko import GEKKO
import numpy as np
import matplotlib.pyplot as plt
xm = np.array([0,1,2,3,4,5])
ym = np.array([0.1,0.2,0.3,0.5,0.8,2.0])
m = GEKKO()
x = m.Param(value=xm)
a = m.FV()
a.STATUS=1
y = m.CV(value=ym)
y.FSTATUS=1
m.Equation(y==0.1*m.exp(a*x))
z = m.vsum(y)
m.options.IMODE = 2
m.solve(disp=False)
print(z.value)
print(y.value)
您定義z
的方法會創建初始值ym
的總和。 在 Gekko 中定義 model 時,重要的是要意識到 model 為每個數據集定義一次。 然后 Gekko 采用 model 並為每個數據集求解。 在解決多個時間點時,這也是相同的方法。 即使報告了多個z
值,也只有一個唯一值 ( 4.3146
)。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.