How to plot with various initial conditions?

Edited: I want to plot
using the model with different initial conditions(use whatever you like)
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;
% plot
tspan = [0 10000];
y0 = [3600 1000 100 9600 400];% Here is the initial condition
[t,y] = ode45(@model,tspan,y0);
plot(t,y(:,2),'r','Linewidth',1)
title('Plot of human population against time')
xlabel('Time(years)')
ylabel('Number of People')
legend('Infectious')
Regards,

4 commentaires

KSSV
KSSV le 9 Juin 2017
What and where are the initial conditions here in the code?
y0 = [3600 1000 100 9600 400];
is the initial condition. (I've added a comment right to it)
Torsten
Torsten le 9 Juin 2017
And what should be the result of the three lines of code below ?
Best wishes
Torsten.
KSSV
KSSV le 9 Juin 2017
Then what is this params1 ??

Connectez-vous pour commenter.

 Réponse acceptée

KSSV
KSSV le 9 Juin 2017
tspan = [0 10000];
% initilai conditions
figure
hold on
for i = 1:5
% y0 = [3600 1000 100 9600 400];
y0 = rand(1,5)*100*i ;
[t,y] = ode45(@model,tspan,y0);
plot(t,y(:,2),'r','Linewidth',1)
end
title('Plot of human population against time')
xlabel('Time(years)')
ylabel('Number of People')
legend('Infectious')

3 commentaires

Thank you! But what if I want to use the following initials
y0 = [13413000 3350000 3343000 16500000 38000000];
y0 = [13400 3350 3000 165000 38000];
y0 = [1341300 436000 334300 1650000 3800000];
y0 = [1341300 55000 33430 1650000 3800000];
y0 = [13400 3200 2800 16500000 38000000];
y0 = [134000 43350 3000 165000 38000];
y0 = [15130 6000 4300 1650000 3800000];
y0 = [16000 5000 4000 1650000 3800000];
Init=[13413000 3350000 3343000 16500000 38000000
13400 3350 3000 165000 38000
1341300 436000 334300 1650000 3800000
1341300 55000 33430 1650000 3800000
13400 3200 2800 16500000 38000000
134000 43350 3000 165000 38000
15130 6000 4300 1650000 3800000
16000 5000 4000 1650000 3800000];
tspan = [0 10000];
% initilai conditions
figure
hold on
for i = 1:8
y0 = Init(i,:) ;
[t,y] = ode45(@model,tspan,y0);
plot(t,y(:,2),'r','Linewidth',1)
end
title('Plot of human population against time')
xlabel('Time(years)')
ylabel('Number of People')
legend('Infectious')
marya
marya le 9 Juin 2017
Thank You Very MUCH!!!

Connectez-vous pour commenter.

Plus de réponses (0)

Tags

Community Treasure Hunt

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

Start Hunting!

Translated by