How to plot for different values of parameters on one run?
21 次查看(过去 30 天)
显示 更早的评论
How to get the plots for different values of aplha = 2,3,4,5 on one run and how to merge all those graphs ?
function [t,y] = call_dstate()
tspan = [0 9]; % set time interval
y0 = 10; % set initial condition
% dstate evaluates r.h.s. of the ode
[t,y] = ode45( @dstate ,tspan ,y0);
plot(t,y)
disp([t,y]) % displays t and y(t)
function dydt = dstate (t,y)
alpha=2; gamma=0.0001;
dydt = alpha* y-gamma *y^2;
end
end
0 个评论
采纳的回答
David K.
2019-7-30
Using one of the options for that I believe this will do it for you. This works because the nested function can use variables created in the outer function.
function [t,y] = call_dstate()
tspan = [0 9]; % set time interval
y0 = 10; % set initial condition
% dstate evaluates r.h.s. of the ode
gamma=0.0001;
for alpha = 2:5
[t,y] = ode45( @dstate ,tspan ,y0);
plot(t,y); hold on;
end
disp([t,y]) % displays t and y(t)
function dydt = dstate (t,y)
dydt = alpha* y-gamma *y^2;
end
end
3 个评论
David K.
2019-8-2
I may be wrong but it looks like you chose a color for the plot to use. So first I would suggest letting it choose a different color for each. Or if you want to do it manually you can create an array to set them yourself like this
color = {'r','m','b','c'}
for alpha = 2:5
[t,y] = ode45( @dstate ,tspan ,y0);
plot(t,y,color{alpha-1}); hold on;
end
Then you can add a legend after they are all plotted like this
for alpha = 2:5
...
end
legend('a=2','a=3','a=4','a=5')
And a legend will show up indicating which color plot corresponds to each alpha
更多回答(0 个)
另请参阅
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!