2017-06-03 93 views
0

我试图解决在Matlab延迟微分方程:解决延迟微分方程在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的比较等)。我遵循代码示例here,并取得了有限的成功。

到目前为止我的代码是:

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 

但是我有什么本质上看起来像一个非常陡峭的指数曲线。这里就是我试图重现:

enter image description here

从本文DOI:10.15252/msb.20177554(http://msb.embopress.org/content/msb/13/5/928.full.pdf

没有任何人有任何建议对我来说,准确地再现人物?

预先感谢

回答

3

这不是一个时间延迟的微分方程,作为衍生物和未知的mRNA的值是从同一时间服用。如果Activator值不依赖于前一次的mRNA值,则控制函数的值来自延迟时间并不重要。

你可以申请一个积分因子exp(gamma*t),使新微分方程

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

可以通过简单的集成解决,ESP。如果激活函数是分段常量。