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