2 views (last 30 days)

Hi everybody,

I have a problem with differential equation Kolmogorov in queuing theory. Now I need to write a code to solve the equation system (1) with the condition (2) and (3) according to Euler method. I wrote the code but the output didn't seem right (please see images). Any one can see my code and give me some advices. Thanks so much

clear all

tspan = [0:0.01:5];

n=6;

ic=zeros(1,n+1);

for ii=1:n+1

ic(1,1)=1;

end

[t, p] = ode45(@odeFun, tspan, ic);

figure ('name','xac suat theo time')

plot(t, p)

legend({'p7'})

function dpdt = odeFun(t, p)

lambda = 4.8;

mu = 2;

A=[-1 0 0 0 0 0 0;

1 -1 0 0 0 0 0;

0 1 -1 0 0 0 0;

0 0 1 -1 0 0 0;

0 0 0 1 -1 0 0;

0 0 0 0 1 -1 0;

0 0 0 0 0 1 0];

B=[0 1 0 0 0 0 0;

0 -1 0 0 0 0 0;

0 0 -2 2 0 0 0;

0 0 0 -2 2 0 0;

0 0 0 0 -2 2 0;

0 0 0 0 0 -2 2;

0 0 0 0 0 0 -2];

dpdt = (lambda.*A + mu.*B)*p;

end

.

Alan Stevens
on 29 Jun 2020

Alan Stevens
on 29 Jun 2020

Try this:

tspan = 0:0.01:5;

n=6;

ic=zeros(1,n);

for ii=1:n

ic(1,1)=1;

end

[t, p] = ode45(@odeFun, tspan, ic);

p6 = (1 - sum(p,2));

figure ('name','xac suat theo time')

plot(t, p)

legend('p0','p1','p2','p3','p4','p5')

function dpdt = odeFun(~, p)

lambda = 4.8;

mu = 2;

A=[-1 0 0 0 0 0 ;

1 -1 0 0 0 0 ;

0 1 -1 0 0 0 ;

0 0 1 -1 0 0 ;

0 0 0 1 -1 0 ;

0 0 0 0 1 -1 ];

B=[0 1 0 0 0 0 ;

0 -1 2 0 0 0 ;

0 0 -2 2 0 0 ;

0 0 0 -2 2 0 ;

0 0 0 0 -2 2 ;

-2 -2 -2 -2 -2 -4] ;

v = [0 0 0 0 0 2]';

dpdt = (lambda.*A + mu.*B + mu*v)*p;

end

Notice that the book plots only p0 to p5. It's still not identical to the book! I don't know if this is because the book used a simple Euler method (as you mentioned in your original post) and MATLAB is using a more accurate Runge-Kutta method, or not. I'll leave you to investigate!

Opportunities for recent engineering grads.

Apply TodayFind the treasures in MATLAB Central and discover how the community can help you!

Start Hunting!
## 0 Comments

Sign in to comment.