Modèle Gillespie - Plot - MatLab
Répondre à la discussion
Affichage des résultats 1 à 1 sur 1

Modèle Gillespie - Plot - MatLab



  1. #1
    invite3eeb4495

    Modèle Gillespie - Plot - MatLab


    ------

    Bonjour tout le monde,
    J'ai un projet à rendre sur le modèle Gillespie. Si vous ne connaissez pas de nombreux articles sont présents sur le net.
    Mon prblème est que je dois développer ça avec MatLab, outil que j'ai utilisé deux fois dans ma vie...
    Dans mon programme j'essaie de plot a en fonction du temps, mais cela ne me retourne rien. Quelqu'un peut)-il m'aider svp ?
    Voici le code :
    Code:
    clear all;
    
    % Set initial state
    a = 1; 
    b = 1;
    c = 0;
    d = 0;
    e = 0;
    t = 0;
    tend = 1000;
    
    %Mesoscopic : 
    r1 = 4;     %A->ARNA
    r2 = 1;     %ARNA->ARNA + A
    r3 = 1;     %ARNA->
    r4 = 0.1;   %A->
    r5 = 100;   %A + R->AR (AR->A + R)
    r6 = 0.01;  %R->
    r7 = 0.1;   %RRNA->R
    r8 = 0.02;  %RRNA->
    r9 = 0.001; %A->RRNA
    
    while t<tend 
        u1 = r1*a;
        u2 = r2*c;
        u3 = r3*c;
        u4 = r4*a;
        u5 = r5*a*b;
        u6 = r6*b;
        u7 = r7*d;
        u8 = r8*d;
        u9 = r9*a;
        
        lambda = u1+u2+u3+u4+u5+u6+u7+u8+u9;
        Y = rand;
        tau = -log(Y)./lambda;
        t=t+tau;
        
        x1 = u1/lambda;
        x2 = (u1+u2)/lambda;
        x3 = (u1+u2+u3)/lambda;
        x4 = (u1+u2+u3+u4)/lambda;
        x5 = (u1+u2+u3+u4+u5)/lambda;
        x6 = (u1+u2+u3+u4+u5+u6)/lambda;
        x7 = (u1+u2+u3+u4+u5+u6+u7)/lambda;
        x8 = (u1+u2+u3+u4+u5+u6+u7+u8)/lambda;
        
        z = rand;
        
        if z<x1
            a = a - 1;
            c = c +1;
            
        elseif z<x2
            a = a + 1;
           
        elseif z<x3
            c = c - 1;
            
        elseif z<x4
            a = a - 1;
           
        elseif z<x5
            a = a - 1;
            b = b - 1;
            c = c + 1;
            
        elseif z<x6
            b = b-1;
           
        elseif z<x7
            b = b + 1;
            d = d - 1;
            
        elseif z<x8
            d = d - 1;
            
        else 
            a = a - 1;
            d = d-1;
          
        end
    end
    
    plot(t,a);
    xlabel('Time');
    ylabel('Number of particles A');
    plot(b,t);
    Merci d'avance .
    PS : ne tenez pas compte des commentaires à côté des déclarations des variables r .

    -----
    Dernière modification par Antoane ; 26/09/2016 à 16h39. Motif: Ajout balises code

Discussions similaires

  1. Modèle Gillespie
    Par invited6b2ac16 dans le forum Chimie
    Réponses: 2
    Dernier message: 27/05/2014, 01h11
  2. Modèle de Gillespie.
    Par invitece461fe0 dans le forum Chimie
    Réponses: 2
    Dernier message: 25/01/2013, 12h20
  3. plot matrice 3d matlab
    Par invite1ca7ba4c dans le forum Logiciel - Software - Open Source
    Réponses: 2
    Dernier message: 31/07/2008, 15h49
  4. plot sur matlab
    Par invite324a27e2 dans le forum Logiciel - Software - Open Source
    Réponses: 0
    Dernier message: 29/07/2008, 11h35
  5. plot 3D et matlab
    Par invitedbd9bdc3 dans le forum Logiciel - Software - Open Source
    Réponses: 5
    Dernier message: 10/04/2008, 15h25