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

2 次查看(过去 30 天)
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?

采纳的回答

KALYAN ACHARJYA
KALYAN ACHARJYA 2019-8-2
编辑:KALYAN ACHARJYA 2019-8-2
"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 个评论
KALYAN ACHARJYA
KALYAN ACHARJYA 2019-8-2
See its running in my case, exit Matlab and repeat it (copied the code from my answer), both function file and main script.

请先登录,再进行评论。

更多回答(0 个)

类别

Help CenterFile Exchange 中查找有关 Startup and Shutdown 的更多信息

Community Treasure Hunt

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

Start Hunting!

Translated by