분기 다이어그램의 데이터, 즉 [N]의 정상 상태 (nullcline) 값을 제공하는 trigger [A] (Aspace의 linspace로 지정) 값을 얻으려고합니다. 미분 방정식의 세트에서 : 방정식의 집합을 다시 배열로 nullclines을 얻기 위해 시도하는 데 시간이 너무 오래있는 그대로 odeint를 사용하여 분기를 결정합니다.
, 나는 주어진 시간이 지남에 통합 할 수 odeint를 사용하여 모든의 값을 얻기 위해 노력하고 있어요 d [x]/d (t)를 0으로 설정하고 해당 nullclines의 [A] 및 [N]의 값을 반환합니다. 이론적으로이 코드는 예상 값을 반환해야하지만 더 이상 설명하지 않고 커널을 죽인 것처럼 보이므로 문제를 추적 할 수 없습니다. 아래 코드를 찾으십시오 (두려워하지 말고, 대부분 변수 값을 나타냅니다).
내 코드 : 이제
#basic conditions as specified in the material
OS = 0
O = 0
S= 0
N = 0
B = 0
n1 = 1*(10**-4)
a1 = 1
a2 = 0.01
a3 = 0.2
n2 = 1*(10**-7)
b1 = 0.0011
b2 = 0.001
b3 = 0.0007
n3 = 1*(10**-4)
c1 = 1
c2 = 0.01
c3 = 0.2
n4 = 1*(10**-7)
d1 = 0.0011
d2 = 0.001
d3 = 0.0007
n5 = 1*(10**-4)
e1 = 0.005
e2 = 0.1
n6 = 1*(10**-7)
f1 =0.001
f2 = 9.95*(10**-4)
f3 = 0.01
k1c = 0.05
k2c = 0.001
k3c = 5
g1 = 1
g2 = 1
g3 = 1
def differential_eq(y, t, A, B):
O, S, OS, N = y
dydt = np.empty(4)
dydt[0] = ((n1 + a1*A + a2*OS + a3*OS*N)/(1 + n2 + b1*A + b2*OS + b3*OS*N)) - g1*O - k1c*O*S + k2c*OS
dydt[1] = (n3 + c1*A + c2*OS + c3*OS*N)/(1 + n4 + d1*A + d2*OS + d3*OS*N) - g2*S - k1c*O*S + k2c*OS
dydt[2] = k1c*O*S -k2c*OS - k3c*OS
dydt[3] = ((n5 + e1*OS + e2*OS*N)/(1 + n6 +f1*OS + f2*OS*N + f3*B)) - g3*N
return dydt
timepool =np.linspace(0,100,10)
def simulate(A):
A = A
y = (0,0,0,0)
B =0
solution = sp.odeint (differential_eq(y, timepool, A, B), (A, B), timepool)
solution = sp.odeint (differential_eq, initial, timepool)
if dydt[0] == 0 and dydt[1] ==0 and dydt[2] ==0 and dydt[3] ==0:
print (A,N, solution)
return (A, N)
Aspace = np.linspace(0,150,150)
for A in Aspace:
simulate(A)
이 작동하지 않는 것, 내가의 징후를 볼 이유는, 그냥 커널을 죽이고 같이 사람이이 경우에 왜 어떤 생각이있는 경우, 저에게 알려주세요.
에서 [odeint''의 문서화 문자열]을 읽어 보시기 바랍니다 (https://docs.scipy.org/doc/scipy/reference/generated/scipy.integrate.odeint.html). 방정식을 정의하는 함수의 처음 두 인수 ('differential_eq')는'y, t'이어야합니다. 여기서'y'는 상태 변수를 포함하는 배열입니다 ('[O, S, OS, N]', in 너의 경우). docstring에는 예제가 있습니다. [튜토리얼] (https://docs.scipy.org/doc/scipy/reference/tutorial/integrate.html#ordinary-differential-equations-odeint) 및 [scipy cookbook] (http : //scipy-cookbook.readthedocs.io/). –
'[scipy] odeint '를 검색하면 더 많은 예제를 stackoverflow에서 찾을 수 있습니다. –
함수를 differential_eq (A, B, O, S, OS, N)로 정의하고 Aspace 범위에있는 A를 제외하고 odeint에 대해 'initial'내의 모든 것을 0으로 지정하더라도 커널을 죽이는 것처럼 보입니다. . 나는 문서화 문자열에 무엇이 기록되어 있는지 이해하지 못하거나 문제가 다른 곳에서 발생합니다. –