1
私は関数scipy.integrate.odeint
を使用していますが、予期しないエラーが発生します。`scipy.integrate.odeint`の使用中にエラーが発生しました
import numpy as np
from scipy.integrate import odeint
def hyper_exp_ODE(y, s, λ, k, μ, p):
F, H = y
C_bar_s = 1 - (1 - F) **k
rhs = [-λ * np.sum(p * μ * H) + λ * C_bar_s]
rhs.extend([-μ[i] * H[i] + C_bar_s for i in range(len(μ))])
return rhs
def limit_hyper_exp(S, λ, k, N, μ, p):
S_range = np.linspace(0,S,N)
y0 = (1-λ, np.zeros(len(μ)))
sol = odeint(hyper_exp_ODE, y0, S_range, args = (λ, k, μ, p))
return sol, S_range
S = 10
λ = 0.8
k = 2
N = 100
μ, p = np.array([2.0, 1.2]), np.array([0.2, 0.8])
sol, S_range = limit_hyper_exp(S, λ, k, N, μ, p)
そして、私が予期せずエラーValueError: setting an array element with a sequence.
を取得するには、私が前に非常によく似たコードを使用しているが、このコードは、私(に相当すると思われたが、代わりにベクトル化の私は、明示的にすべてのものを入力したが、明らかではありません。次のように私のコードです)。
ようなもので
y0
を作成することができますで、'(2予想) 'F、y = [0]、H = y0 [1:] 'を取ることによって、これは容易に解ける。ありがとう! – HolyMonk