我正在使用Scipy的odeint(scipy.integrate.odeint
)爲我解決一些ODE,所有工作都很好,很好。但是,現在我想在計算中包含另一個與時間相關的數據集,即t = [0, 1, 2, 3]
我已將數據z = [0.1, 0.2, 0.25, 0.22]
包含在計算中。我可以通過向量作爲參數,但是這給了我每個時間步的整個向量。有沒有一種有效的方法來獲取計算的當前步驟(迭代器)?這樣我可以獲得z[i]
第i個時間步。請注意,z
的長度爲t
,並且兩者都可以包含數千個元素。當前迭代在scipy odeint
感謝
一個很簡單的例子:
import numpy as np
from scipy.integrate import odeint
def func(y, t, z):
# I'd like to get the i-th element
# of z, corresponding to t[i]
return y+z[i]
result = odeint(func, [0], t, (z,))