微分方程建模例题

目录

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

T1 code

g=9.8                          %重⼒加速度 
d=0.03;                        %⼩孔直径 
syms h                         %定义符号变量⽔⾯⾼度h 
t=-h^(1.5)/(0.6*d^2*sqrt(2*g));%⽔深下降dh所需时间dt的表达式 
T=int(t,h,1.2,0);              %⽔深由1.2m⾄0定积分得放空时间 
t1=eval(T)                     %执⾏T的内容,将字符串转换为matlab可执⾏语句 
x=((T-120)*(1.5*d^2*sqrt(2*g)))^(0.4);%设两分钟后⽔深为X m 
h1=eval(x)                     %执⾏x的内容,将字符串转换为matlab可执⾏语句

T2 code

%----------
%   初始化 
%----------- 
clear;clc; 
%----------
%   参数设置 
%----------- 
N = 330000000;  %美国⼈⼝总数 
E = 0;     %潜伏者 
I = 1;     %传染者 
S = N - I;     %易感者 
R = 0;     %康复者 
r = 20;     %感染者接触易感者的⼈数 
B = 0.03;     %传染概率 
a = 0.1;     %潜伏者转化为感染者概率 
r2 = 20;     %潜伏者接触易感者的⼈数 
B2 = 0.03;     %潜伏者传染正常⼈的概率 
y = 0.1;     %康复概率 
T = 1:140; 
for idx = 1:length(T)-1 
	 if idx>=73  %根据新闻,美国第73天开始戒严 
	  	r=5;  
	  	r2=5;  
	end  
	S(idx+1) = S(idx) - r*B*S(idx)*I(idx)/N(1) - r2*B2*S(idx)*E(idx)/N;  
	E(idx+1) = E(idx) + r*B*S(idx)*I(idx)/N(1)-a*E(idx) + r2*B2*S(idx)*E(idx)/N;  
	I(idx+1) = I(idx) + a*E(idx) - y*I(idx);  
	R(idx+1) = R(idx) + y*I(idx); 
end 
plot(T,S,T,E,T,I,T,R);grid on; 
hold on 
plot([10 10],[0 10000]) 
xlabel('天');ylabel('⼈数') 
legend('易感者','潜伏者','传染者','康复者','执⾏戒严措施') 
title('戒严措施对SEIR模型的影响')

猜你喜欢

转载自blog.csdn.net/qq_43787707/article/details/105964066