How can I fix my MATLAB code for the simulation of a rate equation?

  • Thread starter Thread starter almesba
  • Start date Start date
  • Tags Tags
    Rate Simulation
Join the discussion
Registration is free. Ask a follow-up in this thread, or start your own.
4 replies · 2K views
almesba
Messages
5
Reaction score
0
i have try this rate equation code in MATLAB. but its not working. can anyone help me please!
mm=0;

for I = 0.1e-3:0.1e-3:4.5e-3;
m=mm+1;
q=1.6e-19;
alpha=2;
Tn=3e-9;
Tp=1e-12;
G0=0.6;
N0 = 1e24;

Gamma=.2;
epsilon=1e1;
Va=3.7e-14;
tini=0;
tfin=4e-9;
dt=1e-12;
N(1)=0;
S(1)=0;
p=G0*N(m)*S(m);
l=1+epsilon*S(m);
y=q*Va;
for t=tini:dt:tfin
delN=(I/y)-(N(m)/Tn)-(p/l);



end

end

tt=t;
tt=tt*1e9;
figure(1);
plot(tt,N);
 
Last edited by a moderator:
Engineering news on Phys.org
I'm not sure whether Matlab requires that you define your variables before attempting to execute them, but I see that line 4, for example, (I0 = N0*q*Va/Tn;) contains several variables you do not define until later in your routine.
 
almesba said:
i have try this rate equation code in MATLAB. but its not working. can anyone help me please!
mm=0;

for I = 0.1e-3:0.1e-3:4.5e-3;
m=mm+1;
q=1.6e-19;
alpha=2;
Tn=3e-9;
Tp=1e-12;
G0=0.6;
N0 = 1e24;

Gamma=.2;
epsilon=1e1;
Va=3.7e-14;
tini=0;
tfin=4e-9;
dt=1e-12;
N(1)=0;
S(1)=0;
p=G0*N(m)*S(m);
l=1+epsilon*S(m);
y=q*Va;
for t=tini:dt:tfin
delN=(I/y)-(N(m)/Tn)-(p/l);



end

end

tt=t;
tt=tt*1e9;
figure(1);
plot(tt,N);

Welcome to the PF. What do you mean by "not working"? Does MATLAB throw an error somewhere, or does the program run and not give a reasonable answer?
 
berkeman said:
Welcome to the PF. What do you mean by "not working"? Does MATLAB throw an error somewhere, or does the program run and not give a reasonable answer?

MATLAB isn't throwing any error. NOT WORKING means i am getting a white or blank graph. i have tried with different axis values but still no result.
 
Code:
p=G0*N(m)*S(m);
l=1+epsilon*S(m)

Both those lines are bound to throw an error on the second iteration because neither N() or S() are defined past an index of 1.