有没有一种方法可以绘制ODE非线性系统的零线

时间:2020-10-30 17:30:14

标签: python plot spyder ode

因此,我试图绘制ODE系统的零线图,但是我似乎无法以正确的方式绘制它们。当我绘制它们时,我设法根据时间(t vs x和t vs y)绘制它们,而不是根据(x vs y)绘制它们。我不确定如何解释它,我认为只显示它会更好。 I am trying to replicate this.给出了方程式和参数,但是这是在名为XPP的程序中完成的(我将在底部将其发布),并且有些参数我不明白它们的含义。

我的整个代码是:

import numpy as np
from scipy import integrate
import matplotlib.pyplot as plt

# define system in terms of a Numpy array
def Sys(X, t=0):
    # here X[0] = x and x[1] = y    
    #protien [] is represented with y, and mRNA [] is represented by x
    return np.array([ (k1*S*Kd**p)/(Kd**p + X[1]**p) - kdx*X[0],  ksy*X[0] - (k2*ET*X[1])/(Km + X[1])])



#variables
k1=.1
S=1
Kd=1
kdx=.1
p=2
ksy=1
k2=1
ET=1
Km=1



# generate 1000 linearly spaced numbers for x-axes
t = np.linspace(0, 50,100)
# initial values
Sys0 = np.array([1, 0])

#Solves the ODE
X, infodict = integrate.odeint(Sys, Sys0, t, full_output = 1, mxstep = 50000)


#assigns appropriate equations to x and y
x,y = X.T

#plot's the graph
fig = plt.figure(figsize=(15,5))
fig.subplots_adjust(wspace = 0.5, hspace = 0.3)
ax1 = fig.add_subplot(1,2,1)

ax1.plot(x, color="blue")
ax1.plot(y, color = 'red')

ax1.set_xlabel("Protien concentration")
ax1.set_ylabel("mRNA concentration")  
ax1.set_title("Phase space")
ax1.grid()

给定的方程式和参数为:

一个简单的负反馈回路模型

蛋白质(y)抑制其mRNA(x)的合成

dx / dt = k1 S Kd ^ p /(Kd ^ p + y ^ p)-kdx * x

dy / dt = ksy x-k2 ET * y /(Km + y)

p k1 = 0.1,S = 1,Kd = 1,kdx = 0.1,p = 2

p ksy = 1,k2 = 1,ET = 1,Km = 1

@ XP = y,YP = x,TOTAL = 100,METH = stiff,XLO = 0,XHI = 4,YLO = 0,YHI = 1.05(我不太清楚这是怎么回事)

同样,它使用一个名为XPP或WINPP的程序。 对此的任何帮助将不胜感激,我尝试从中复制的原始论文是:Bela Novak和John J. Tyson的生化振荡器的设计原理

0 个答案:

没有答案