2017-06-03 2 views
0

Je suis en train de résoudre une équation différentielle retardée Matlab:Résoudre une équation différentielle retardée Matlab pour reproduire un chiffre publié

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

Dans cette équation

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. 

Je suis en train de simule cette équation pour que je puisse déconner et voir comment il se comporte avec différents paramètres (c.-à-d. différents délais, comparaisons avec des ODE, etc.). Je suis l'exemple de code here avec un succès limité.

Mon code à ce jour est:

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 

Mais ce que j'ai regarde essentiellement comme une courbe exponentielle très raide. Voici ce que je suis en train de reproduire:

enter image description here

De ce doi papier: 10,15252/msb.20177554 (http://msb.embopress.org/content/msb/13/5/928.full.pdf)

Quelqu'un at-il des conseils pour moi de reproduire avec précision la figure?

Merci à l'avance

Répondre

3

Ce n'est pas une équation différentielle temporisée, comme le dérivé et la valeur de l'ARNm inconnus sont prises à la même période. Le fait que la valeur de la fonction de commande provient d'un temps différé n'est pas important si la valeur de l'activateur ne dépend pas de la valeur de l'ARNm à ce moment-là.

Vous pouvez appliquer un facteur d'intégration exp(gamma*t) de telle sorte que la nouvelle équation différentielle

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

peut être résolu par des intégrations simples, esp. si la fonction Activator est constante par morceaux.