在Matlab中求解延迟微分方程以再现已发布的图形

在Matlab中求解延迟微分方程以再现已发布的图形,matlab,differential-equations,Matlab,Differential Equations,我试图在Matlab中解一个延迟微分方程: mRNA' = k0 + k*Activator(t-delta_t) - gamma*mRNA(t) 在这个等式中 k0 is constant, representing basal transcription (production) of mRNA; k is another constant parameter representing the rate of Activator stimulated mRNA production th

我试图在Matlab中解一个延迟微分方程:

mRNA' = k0 + k*Activator(t-delta_t) - gamma*mRNA(t)
在这个等式中

k0 is constant, representing basal transcription (production) of mRNA; 
k is another constant parameter representing the rate of Activator stimulated mRNA production that is dependent on the amount of Activator at time t-delta_t;
gamma is another constant representing the rate of degradation of mRNA 
mRNA at time t is the amount of mRNA at time t. 
我试图模拟这个方程,这样我就可以搞乱,看看它在不同参数下的表现(即不同的时间延迟,与ODE的比较等)。我遵循代码示例取得了有限的成功

到目前为止,我的代码是:

function General_mRNA_DDE
  sol = dde23(@General_mRNA_DDE2,2,@input_function,[0,5])


  figure; 
  plot(sol.x,sol.y)


  function dydt =  General_mRNA_DDE2(t,y,z)
  k0=1;
  k=10;
  mRNA0=1; %initial concentration of mRNA
  gamma=0.1;
  z
  dydt= [k0 + k*z - gamma*y];
  end

  function hist = input_function(t)
      hist = 1;
  end


  end
但我看到的基本上是一条非常陡峭的指数曲线。以下是我试图复制的内容:

来自本文doi:10.15252/msb.20177554()

有没有人建议我准确地复制这个数字


提前感谢

这不是一个延时微分方程,因为未知mRNA的导数和值来自同一时间。如果激活剂值不依赖于前一时间的mRNA值,那么控制功能值来自延迟时间并不重要

您可以应用积分因子
exp(gamma*t)
,以便新的微分方程

 ( exp(gamma*t) * mRNA(t) )' = exp(gamma*t) * ( k0 + k*Activator(t-delta_t) )

可以通过简单的积分来求解,特别是如果激活函数是分段常数。

这不是一个时滞微分方程,因为未知mRNA的导数和值是从同一时间获得的。如果激活剂值不依赖于前一时间的mRNA值,那么控制功能值来自延迟时间并不重要

您可以应用积分因子
exp(gamma*t)
,以便新的微分方程

 ( exp(gamma*t) * mRNA(t) )' = exp(gamma*t) * ( k0 + k*Activator(t-delta_t) )
可以通过简单的积分来求解,特别是当激活器函数是分段常数时