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

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

"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

Hey! thanks .
How u gave different colour to the graph for different values of b2 and how to add legend ?
Welcome @Parag
See the plot line, I have removed 'g' from that line
Hey, I did the same for x but getting an error. (x is a parameter in my function file)
x=1:.25:2;
for i=1:length(x);
sol = dde23('funtryp',100,[0,0,0,0,0],[0,1500],options,x(i));
plot(sol.x,sol.y(5,:),'LineWidth',2)
hold on;
end
Legend:
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_data(i)=plot(sol.x,sol.y(5,:),'LineWidth',2)
legend_data{i}=['b2=',num2str(b2(i))];
hold on;
end
legend(plot_data,legend_data,'Location','SouthEast');
112.png
Hope it helps!
Hey, I did the same for x instead for b2 but getting an error. (x is a parameter in my function file)
x=1: .25:2;
for i=1:length(x);
sol = dde23('funtryp',100,[0,0,0,0,0],[0,1500],options,x(i));
plot(sol.x,sol.y(5,:),'LineWidth',2)
hold on;
end
See its running in my case, exit Matlab and repeat it (copied the code from my answer), both function file and main script.
@kalyan thanks its running.

Sign in to comment.

More Answers (0)

Categories

Find more on 2-D and 3-D Plots 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!