簡體   English   中英

壁虎中數組變量的總和

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM