제가 현재 과제 문제를 푸는데 전혀 답이 안 나와서 어디서 잘못된건지 질문드리려 왔습니다.
일단 파이썬이고 odeint를 이용한 미분방정식 문제입니다.
위 미분방적식을 보고 위 그래프를 그리는 문제인데요
제가 열심히 풀어서 그려본 그래프는 계속 이렇게만 나옵ㄴ디ㅏ.
일단 코딩을 적어보면
import numpy as np
import matplotlib.pyplot as plt
from scipy.integrate import odeint
def func(U,t,n=1,V_9=0.5,K_l=9,K_1=10,K_2=8,K_3=15):
def v1():
return 2.5*U[0]/((1+(U[7]/K_l)**n)*(K_1+U[0]))
def v2():
return 0.25*U[1]/(K_2+U[1])
def v3():
return 0.025*U[1]*U[2]/(K_3+U[2])
def v4():
return 0.025*U[1]*U[3]/(K_3+U[3])
def v5():
return 0.75*U[4]/(K_3+U[4])
def v6():
return 0.75*U[3]/(K_3+U[3])
def v7():
return 0.025*U[4]*U[5]/(K_3+U[5])
def v8():
return 0.025*U[4]*U[6]/(K_3+U[6])
def v9():
return V_9*U[7]/(K_3+U[7])
def v10():
return V_9*U[6]/(K_3+U[6])
return [v2()-v1(),v1()-v2(),v6()-v3(),v3()+v5()-v4()-v6(),v4()-v5(),v10()-v7(),v7()+v9()-v8()-v10(),v8()-v9()]
U0=[100,0,300,0,0,300,0,0]
ts=np.linspace(0,150,15001)
Us=odeint(func,U0,ts)
MAPKs=Us[:,5]
plt.plot(ts,MAPKs)
plt.show()
이런 식으로 짰습니다.
func에서 변수가 여러개인 이유가 다음 문제가 이 변수 값을 바꿔서 푸는 문제라서 여러개 입력을 했고요
그리고 U[0]~U[7]은 순서대로 MKKK, MKKK-P, MKK, MKK-P, MKK-PP, MAPK, MAPK-K, MAPK-PP이고
U0는 초기값 입니다
다음 문제에서도 V_9 = V_10 이고 K_3 = K_4 = ... = K_10 이라서 변수 수를 줄일 겸 같은 변수로써 사용했습니다.
여기서 뭐가 잘못된건지 알려주실 수 있을까요?