How to smoothen the following plot in matlab?

1 view (last 30 days)
I used the following code to plot the figure below
function dydt = model (t,y)
dydt = zeros (size(y));
Ah=0.000051;Av=0.071;b1=0.071;b2=0.091;g=0.0035;
d1=0.0000043;d2=0.04;e1=0.001;w=0.11;
Sh=y(1);
Ih=y(2);
Rh=y(3);
Sv=y(4);
Iv=y(5);
Nh = Sh+Ih+Rh;
%The model
dydt(1) = Ah - b1*Iv*Sh/Nh +w*Rh - d1*Sh;
dydt(2) = b1*Iv*Sh/Nh - (g + e1 + d1)*Ih;
dydt(3) = g*Ih - (w +d1)*Rh;
dydt(4) = Av - b2*Ih*Sv/Nh - d2*Sv;
dydt(5) = b2*Ih*Sv/Nh - d2*Iv;
%The basic reproduction number for the model
R0 = sqrt((b1*b2*Av*d2)/(Ah*(d2^2)*(g + e1+ d1)));
disp(R0)
end
% plot
tspan = [0 10000];
y0 = [3600 1000 100 9600 400];
[t,y] = ode45(@model,tspan,y0);
plot(t,y(:,1),'b',t,y(:,2),'r',t,y(:,3),'g','Linewidth',3)
title('Plot of human population against time')
xlabel('Time(years)')
ylabel('Number of People')
legend('Susceptible ','Infectious','Recoverd' ,2)
As you can see the curves are not smooth enough. How can I smooth the curves further?
  3 Comments
Tina
Tina on 18 May 2017
In what way the curves are not smooth enough? To me it seems only due to the resolution of the plot.
Guillaume
Guillaume on 18 May 2017
@KSSV, marya original formatting was very confusing as she'd conflated the ode function with the script that uses it. All the information was there. I've edited her post.
@Maria, I agree with Tina, the plots look very smooth, so you'll have to explain better what improvements you want.

Sign in to comment.

Accepted Answer

10B
10B on 26 May 2017
Hello,
I think the pixellation is just because of the resolution of the image, but if you want to smooth your data - use smooth!
HTH
10B.

More Answers (0)

Categories

Find more on Loops and Conditional Statements in Help Center and File Exchange

Tags

Products

Community Treasure Hunt

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

Start Hunting!