How to smoothen the following plot in matlab?

1 visualización (últimos 30 días)
marya
marya el 18 de Mayo de 2017
Respondida: 10B el 26 de Mayo de 2017
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 comentarios
Tina
Tina el 18 de Mayo de 2017
In what way the curves are not smooth enough? To me it seems only due to the resolution of the plot.
Guillaume
Guillaume el 18 de Mayo de 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.

Iniciar sesión para comentar.

Respuesta aceptada

10B
10B el 26 de Mayo de 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.

Más respuestas (0)

Etiquetas

Productos

Community Treasure Hunt

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

Start Hunting!

Translated by