How to plot the graphs when b2 varies from 0 to 2 in the code I attached below?

2 views (last 30 days)
I tried to use a for loop but getting error. Could you please tell how can I get graph for b2 = 0:2 and how to merge them on graph?

Accepted Answer

KALYAN ACHARJYA
KALYAN ACHARJYA on 2 Aug 2019
Edited: KALYAN ACHARJYA on 2 Aug 2019
"How to plot the graphs when b2 varies from 0 to 2 in the code I attached below?"
Function file:
function v = funtryp(t,y,Z,b2);
r_v = 0.33; r_l = 0.33;b1 = 2*10^(-9);b3 = 0.5;t2 = 10;d_v = 0.5;d_l = 0.5;d_m = 0.1;c = 10^(2);
C = 10^(8);x = 2;gamma = 2.71;delta = 2.5*10^(-2);
ylag1 = Z(:,1);
v = zeros(5,1);
v(1) = r_v*y(1)-b1*y(4)*y(1)-b2*y(1)-d_v*y(5)*y(1);
v(2) = r_l*y(2)+b1*y(4)*y(1)+b2*y(1)-gamma*y(2)-d_l*y(5)*y(2);
v(3) = gamma*y(2)-delta*y(3)-d_m*y(5)*y(3);
v(4) =y(1)+y(2)-b3*y(4);
v(5) = c*(((ylag1(1)+ylag1(2)+ylag1(3))/C)^x)*(1-y(5));
end
Main Script:
options = ddeset('RelTol',1e-5,'AbsTol',1e-8,'InitialY',[20,0,0,0,0]);
b2=0:.25:2;
for i=1:length(b2);
sol = dde23('funtryp',100,[0,0,0,0,0],[0,1500],options,b2(i));
plot(sol.x,sol.y(5,:),LineWidth',2)
hold on;
end
Please note: when you assined b2=0 at initial it taking longer time, please check the issue. rest the code is ok, I have check the following one b2 ranges 1 to 2 with step size 0.25
options = ddeset('RelTol',1e-5,'AbsTol',1e-8,'InitialY',[20,0,0,0,0]);
b2=1:.25:2;
for i=1:length(b2);
sol = dde23('funtryp',100,[0,0,0,0,0],[0,1500],options,b2(i));
plot(sol.x,sol.y(5,:),'LineWidth',2)
hold on;
end
Result:
Hope you get the idea, how you can pass the different b2 values to the function file
  8 Comments
KALYAN ACHARJYA
KALYAN ACHARJYA on 2 Aug 2019
See its running in my case, exit Matlab and repeat it (copied the code from my answer), both function file and main script.

Sign in to comment.

More Answers (0)

Categories

Find more on Startup and Shutdown in Help Center and File Exchange

Community Treasure Hunt

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

Start Hunting!